private void initClickModeSelectionUI(IGame game) { DockPanel clickModePanel = new DockPanel(); add(clickModePanel); clickModePanel.setWidth( Integer.toString(FieldCanvas.SIZE * game.getBoard().getDimension().x) + "px"); clickModePanel.setHorizontalAlignment(DockPanel.ALIGN_CENTER); clickOpenButton = new RadioButton("ClickOpens", "click opens"); clickOpenButton.setValue(true); clickFlagButton = new RadioButton("ClickFlags", "click flags"); clickFlagButton.setValue(false); ValueChangeHandler<Boolean> checkBoxToggler = new ValueChangeHandler<Boolean>() { @Override public void onValueChange(ValueChangeEvent<Boolean> event) { CheckBox checkBox = (CheckBox) event.getSource(); if (checkBox == clickOpenButton) clickFlagButton.setValue(!event.getValue()); else clickOpenButton.setValue(!event.getValue()); } }; clickOpenButton.addValueChangeHandler(checkBoxToggler); clickFlagButton.addValueChangeHandler(checkBoxToggler); clickModePanel.add(clickFlagButton, DockPanel.WEST); clickModePanel.add(clickOpenButton, DockPanel.EAST); clickModePanel.setCellHorizontalAlignment(clickOpenButton, DockPanel.ALIGN_LEFT); clickModePanel.setCellHorizontalAlignment(clickFlagButton, DockPanel.ALIGN_RIGHT); }
/** * Set rights values to widgets * * @param read * @param write * @param right */ private void setRightsToWidgets(CheckBox read, CheckBox write, AttributeRights right) { // prepare ArrayList<String> list = new ArrayList<String>(); for (int i = 0; i < right.getRights().length(); i++) { list.add(right.getRights().get(i)); } // set read if (list.contains("READ")) { read.setValue(true); } else { read.setValue(false); } // set write if (list.contains("WRITE")) { write.setValue(true); } else { write.setValue(false); } }
@Override protected void initFromConfig() { myWebLoginMessage.setValue(MyTunesRss.CONFIG.getWebLoginMessage()); myWebWelcomeMessage.setValue(MyTunesRss.CONFIG.getWebWelcomeMessage()); myServerBrowserActive.setValue(MyTunesRss.CONFIG.isServerBrowserActive()); myOpenIdActive.setValue(MyTunesRss.CONFIG.isOpenIdActive()); myProxyHost.setValue(MyTunesRss.CONFIG.getProxyHost()); myProxyPort.setValue(MyTunesRss.CONFIG.getProxyPort(), 1, 65535, ""); myMailHost.setValue(MyTunesRss.CONFIG.getMailHost()); myMailPort.setValue(MyTunesRss.CONFIG.getMailPort(), 1, 65535, ""); mySmtpProtocol.setValue(MyTunesRss.CONFIG.getSmtpProtocol()); myMailLogin.setValue(MyTunesRss.CONFIG.getMailLogin()); myMailPassword.setValue(MyTunesRss.CONFIG.getMailPassword()); myMailSender.setValue(MyTunesRss.CONFIG.getMailSender()); myHeadless.setValue(MyTunesRss.CONFIG.isHeadless()); myGraphicsMagickEnabled.setValue(MyTunesRss.CONFIG.isGmEnabled()); myGraphicsMagickBinary.setValue( MyTunesRss.CONFIG.getGmExecutable() != null ? MyTunesRss.CONFIG.getGmExecutable().getAbsolutePath() : ""); }
public void prepareView() { Messages messages = presenter.getBrowserFactory().getMessages(); setCreateRequestTitle(messages.createRequestTitle()); setToLabel(messages.to()); setRequestTitleLabel(messages.requestTitle()); setRequestDescriptionLabel(messages.requestDescription()); setExpectsAnswerLabel(messages.expectsAnswer()); setPublishRequestButtonText(messages.publishRequest()); setCancelButtonText(messages.cancel()); requestTitleContainer.setText(""); requestDescriptionContainer.setText(""); toContainer.setText(""); expectsAnswerContainer.setValue(false); }
@Override protected void initFromConfig() { myTranscoderTable.removeAllItems(); for (TranscoderConfig transcoderConfig : myTranscoderConfigs) { addTranscoderConfigTableItem(transcoderConfig); } myTranscodingCacheMaxGiB.setValue(MyTunesRss.CONFIG.getTranscodingCacheMaxGiB(), 1, 1024, "1"); myHttpLiveStreamCacheMaxGiB.setValue( MyTunesRss.CONFIG.getHttpLiveStreamCacheMaxGiB(), 1, 1024, "5"); myVlcEnabled.setValue(MyTunesRss.CONFIG.isVlcEnabled()); myVlcBinary.setValue( MyTunesRss.CONFIG.getVlcExecutable() != null ? MyTunesRss.CONFIG.getVlcExecutable().getAbsolutePath() : ""); setTablePageLengths(); }
public MoleculesDownloadPanel(Result result, MoleculesTab.Presenter presenter) { super(Style.Unit.PX); this.result = result; this.presenter = presenter; this.setWidth("99%"); this.textArea = new TextArea(); // Initialising and setting all the currently available checkboxes. chemTB = new CheckBox(PropertyType.CHEMICAL_COMPOUNDS.getTitle()); chemTB.setTitle("Show or hide " + PropertyType.CHEMICAL_COMPOUNDS.getTitle()); chemTB.setValue(true); protTB = new CheckBox(PropertyType.PROTEINS.getTitle()); protTB.setTitle("Show or hide " + PropertyType.PROTEINS.getTitle()); protTB.setValue(true); sequTB = new CheckBox(PropertyType.SEQUENCES.getTitle()); sequTB.setTitle("Show or hide " + PropertyType.SEQUENCES.getTitle()); sequTB.setValue(true); otheTB = new CheckBox(PropertyType.OTHERS.getTitle()); otheTB.setTitle("Show or hide " + PropertyType.OTHERS.getTitle()); otheTB.setValue(true); typeTB = new CheckBox("Type"); typeTB.setTitle("Show or hide type column"); typeTB.setValue(true); identifierTB = new CheckBox("Identifier"); identifierTB.setTitle("Show or hide identifier column"); identifierTB.setValue(true); nameTB = new CheckBox("Name"); nameTB.setTitle("Show or hide name column"); nameTB.setValue(true); }
public void testResetEvent() { System.out.println("testResetEvent"); FormPanel form = new FormPanel(); RootPanel.get().add(form); TextBox textBox = new TextBox(); textBox.setText("Hello World"); form.setWidget(textBox); /* * the following checkbox is not added to the form on purpose * in order to reset it via callback */ final CheckBox checkBox = new CheckBox(); checkBox.setValue(true); /* * first test shall not affect the checkbox */ // check preconditions assertEquals("Hello World", textBox.getText()); assertTrue(checkBox.getValue()); System.out.println("reset: normal"); form.reset(); // check postconditions assertEquals("", textBox.getText()); assertTrue(checkBox.getValue()); /* * second test shall affect the checkbox, * to this end a ResetHandler is added to to FormPanel which is called on a ResetEvent */ HandlerRegistration handlerRegistration = form.addResetHandler( new ResetHandler() { @Override public void onReset(ResetEvent event) { checkBox.setValue(false); } }); // init preconditions textBox.setText("Hello World"); // check preconditions assertEquals("Hello World", textBox.getText()); assertTrue(checkBox.getValue()); System.out.println("reset: normal"); form.reset(); nativeFormReset(form.getElement()); // check postconditions assertEquals("", textBox.getText()); assertFalse(checkBox.getValue()); /* * third test shall not affect the checkbox, * to this end the ResetHandler is removed from the FormPanel */ handlerRegistration.removeHandler(); // init preconditions textBox.setText("Hello World"); checkBox.setValue(true); // check preconditions assertEquals("Hello World", textBox.getText()); assertTrue(checkBox.getValue()); System.out.println("reset: normal"); form.reset(); // check postconditions assertEquals("", textBox.getText()); assertTrue(checkBox.getValue()); RootPanel.get().remove(form); }
/** * Tests submitting using url-encoded get, with all form widgets (other than FileUpload, which * requires post/multipart. */ public void testMethodGet() { System.out.println("testMethodGet"); final FormPanel form = new FormPanel(); form.setMethod(FormPanel.METHOD_GET); form.setEncoding(FormPanel.ENCODING_URLENCODED); form.setAction(GWT.getModuleBaseURL() + "formHandler"); TextBox tb = new TextBox(); tb.setText("text"); tb.setName("tb"); PasswordTextBox ptb = new PasswordTextBox(); ptb.setText("password"); ptb.setName("ptb"); CheckBox cb0 = new CheckBox(), cb1 = new CheckBox(); cb1.setValue(true); cb0.setName("cb0"); cb1.setName("cb1"); RadioButton rb0 = new RadioButton("foo"); RadioButton rb1 = new RadioButton("foo"); rb0.setValue(true); rb0.setName("rb0"); rb1.setName("rb1"); ListBox lb = new ListBox(); lb.addItem("option0"); lb.addItem("option1"); lb.addItem("option2"); lb.setValue(0, "value0"); lb.setValue(1, "value1"); lb.setValue(2, "value2"); lb.setSelectedIndex(1); lb.setName("lb"); Hidden h = new Hidden("h", "v"); FlowPanel panel = new FlowPanel(); panel.add(tb); panel.add(ptb); panel.add(cb0); panel.add(cb1); panel.add(rb0); panel.add(rb1); panel.add(lb); panel.add(h); form.setWidget(panel); RootPanel.get().add(form); delayTestFinish(TEST_DELAY); form.addSubmitCompleteHandler( new SubmitCompleteHandler() { public void onSubmitComplete(SubmitCompleteEvent event) { // The server just echoes the query string. This is what it should look // like. assertTrue( event .getResults() .equals( "tb=text&ptb=password&cb1=on&rb0=on&lb=value1&h=v")); finishTest(); } }); form.submit(); }
public PackageBuilderWidget(final PackageConfigData conf, ClientFactory clientFactory) { this.conf = conf; this.clientFactory = clientFactory; // UI above the results table FormStyleLayout layout = new FormStyleLayout(); final VerticalPanel container = new VerticalPanel(); final VerticalPanel buildResults = new VerticalPanel(); RadioButton wholePackageRadioButton = new RadioButton("action", constants.BuildWholePackage()); RadioButton builtInSelectorRadioButton = new RadioButton("action", constants.BuildPackageUsingBuiltInSelector()); RadioButton customSelectorRadioButton = new RadioButton("action", constants.BuildPackageUsingCustomSelector()); wholePackageRadioButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { buildWholePackageLayout.setVisible(true); builtInSelectorLayout.setVisible(false); customSelectorLayout.setVisible(false); buildMode = "buildWholePackage"; } }); builtInSelectorRadioButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { buildWholePackageLayout.setVisible(false); builtInSelectorLayout.setVisible(true); customSelectorLayout.setVisible(false); buildMode = "BuiltInSelector"; } }); customSelectorRadioButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { buildWholePackageLayout.setVisible(false); builtInSelectorLayout.setVisible(false); customSelectorLayout.setVisible(true); buildMode = "customSelector"; } }); VerticalPanel verticalPanel = new VerticalPanel(); HorizontalPanel wholePackageRadioButtonPanel = new HorizontalPanel(); wholePackageRadioButtonPanel.add(wholePackageRadioButton); wholePackageRadioButtonPanel.add( new InfoPopup(constants.BuildWholePackage(), constants.BuildWholePackageTip())); verticalPanel.add(wholePackageRadioButtonPanel); HorizontalPanel builtInSelectorRadioButtonPanel = new HorizontalPanel(); builtInSelectorRadioButtonPanel.add(builtInSelectorRadioButton); builtInSelectorRadioButtonPanel.add( new InfoPopup(constants.BuiltInSelector(), constants.BuiltInSelectorTip())); verticalPanel.add(builtInSelectorRadioButtonPanel); HorizontalPanel customSelectorRadioButtonPanel = new HorizontalPanel(); customSelectorRadioButtonPanel.add(customSelectorRadioButton); customSelectorRadioButtonPanel.add( new InfoPopup(constants.CustomSelector(), constants.SelectorTip())); verticalPanel.add(customSelectorRadioButtonPanel); layout.addAttribute("", verticalPanel); wholePackageRadioButton.setValue(true); buildWholePackageLayout.setVisible(true); builtInSelectorLayout.setVisible(false); customSelectorLayout.setVisible(false); // Build whole package layout layout.addRow(buildWholePackageLayout); // Built-in selector layout builtInSelectorLayout.addRow( new HTML(" <i>" + constants.BuildPackageUsingFollowingAssets() + "</i>")); HorizontalPanel builtInSelectorStatusPanel = new HorizontalPanel(); final CheckBox enableStatusCheckBox = new CheckBox(); enableStatusCheckBox.setValue(false); builtInSelectorStatusPanel.add(enableStatusCheckBox); builtInSelectorStatusPanel.add( new HTML(" <i>" + constants.BuildPackageUsingBuiltInSelectorStatus() + " </i>")); final ListBox statusOperator = new ListBox(); String[] vals = new String[] {"=", "!="}; for (int i = 0; i < vals.length; i++) { statusOperator.addItem(vals[i], vals[i]); } builtInSelectorStatusPanel.add(statusOperator); final TextBox statusValue = new TextBox(); statusValue.setTitle(constants.WildCardsSearchTip()); builtInSelectorStatusPanel.add(statusValue); builtInSelectorLayout.addRow(builtInSelectorStatusPanel); HorizontalPanel builtInSelectorCatPanel = new HorizontalPanel(); final CheckBox enableCategoryCheckBox = new CheckBox(); enableCategoryCheckBox.setValue(false); builtInSelectorCatPanel.add(enableCategoryCheckBox); builtInSelectorCatPanel.add( new HTML(" <i>" + constants.BuildPackageUsingBuiltInSelectorCat() + " </i>")); final ListBox catOperator = new ListBox(); String[] catVals = new String[] {"=", "!="}; for (int i = 0; i < catVals.length; i++) { catOperator.addItem(catVals[i], catVals[i]); } builtInSelectorCatPanel.add(catOperator); final CategoryExplorerWidget catChooser = new CategoryExplorerWidget( new CategorySelectHandler() { public void selected(String selectedPath) {} }); ScrollPanel catScroll = new ScrollPanel(catChooser); catScroll.setAlwaysShowScrollBars(true); catScroll.setSize("300px", "130px"); builtInSelectorCatPanel.add(catScroll); builtInSelectorLayout.addRow(builtInSelectorCatPanel); layout.addRow(builtInSelectorLayout); // Custom selector layout customSelectorLayout.setVisible(false); HorizontalPanel customSelectorPanel = new HorizontalPanel(); customSelectorPanel.add( new HTML( " <i>" + constants.BuildPackageUsingCustomSelectorSelector() + " </i>")); // NON-NLS final ListBox customSelector = new ListBox(); customSelector.setTitle(constants.WildCardsSearchTip()); customSelectorPanel.add(customSelector); loadCustomSelectorList(customSelector); customSelectorLayout.addRow(customSelectorPanel); layout.addRow(customSelectorLayout); final Button b = new Button(constants.BuildPackage()); b.setTitle(constants.ThisWillValidateAndCompileAllTheAssetsInAPackage()); b.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { doBuild( buildResults, statusOperator.getValue(statusOperator.getSelectedIndex()), statusValue.getText(), enableStatusCheckBox.getValue(), catOperator.getValue(catOperator.getSelectedIndex()), catChooser.getSelectedPath(), enableCategoryCheckBox.getValue(), customSelector.getSelectedIndex() != -1 ? customSelector.getValue(customSelector.getSelectedIndex()) : null); } }); HorizontalPanel buildStuff = new HorizontalPanel(); buildStuff.add(b); layout.addAttribute(constants.BuildBinaryPackage(), buildStuff); layout.addRow( new HTML("<i><small>" + constants.BuildingPackageNote() + "</small></i>")); // NON-NLS container.add(layout); // The build results container.add(buildResults); // UI below the results table layout = new FormStyleLayout(); Button snap = new Button(constants.CreateSnapshotForDeployment()); snap.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { showSnapshotDialog(conf.getName(), null); } }); layout.addAttribute(constants.TakeSnapshot(), snap); container.add(layout); initWidget(container); }
public Widget draw() { titleWidget.setText(Utils.getStrippedStringWithEllipsis(group.getName()) + ": settings"); // Main panel final VerticalPanel vp = new VerticalPanel(); vp.setSize("100%", "100%"); final TabMenu menu = new TabMenu(); // Adds menu to the main panel vp.add(menu); vp.setCellHeight(menu, "30px"); // IDS final Map<String, Integer> ids = new HashMap<String, Integer>(); ids.put("group", groupId); // define GET ATTRIBUTES callback final GetAttributesV2 jsonCallback = new GetAttributesV2(); jsonCallback.setIds(ids); if (!session.isGroupAdmin(groupId) && !session.isVoAdmin(group.getVoId())) jsonCallback.setCheckable(false); final CellTable<Attribute> table = jsonCallback.getEmptyTable(); table.setWidth("100%"); table.addStyleName("perun-table"); ScrollPanel sp = new ScrollPanel(table); sp.addStyleName("perun-tableScrollPanel"); session.getUiElements().resizePerunTable(sp, 350, this); vp.add(sp); // define GET RES. REQ ATTRIBUTES callback final GetResourceRequiredAttributesV2 reqAttrs = new GetResourceRequiredAttributesV2( null, JsonCallbackEvents.passDataToAnotherCallback(jsonCallback)); // GROUP RESOURCES LISTBOX final ListBoxWithObjects<Resource> resourceDropDown = new ListBoxWithObjects<Resource>(); resourceDropDown.setTitle( "By selecting a resource you will switch to either group-resource or member-resource setting (you must pick member too)"); // fill table with group attributes on page load if (lastSelectedMemberId == 0 && lastSelectedResourceId == 0) { jsonCallback.retrieveData(); } else { // load attrs by listbox selection after calls are done Scheduler.get() .scheduleFixedPeriod( new Scheduler.RepeatingCommand() { @Override public boolean execute() { // load proper table if something was selected if (resCallDone && memCallDone) { // trigger change event DomEvent.fireNativeEvent(Document.get().createChangeEvent(), resourceDropDown); return false; } return true; } }, 200); } // fill resources listbox if (resources == null) { // get assigned resources GetAssignedResources resources = new GetAssignedResources( groupId, PerunEntity.GROUP, new JsonCallbackEvents() { public void onFinished(JavaScriptObject jso) { ArrayList<Resource> resources = JsonUtils.jsoAsList(jso); resourceDropDown.clear(); if (resources != null && !resources.isEmpty()) { resources = new TableSorter<Resource>().sortByName(resources); resourceDropDown.addNotSelectedOption(); for (int i = 0; i < resources.size(); i++) { resourceDropDown.addItem(resources.get(i)); if (lastSelectedResourceId == resources.get(i).getId()) { resourceDropDown.setSelected(resources.get(i), true); } } } else { resourceDropDown.addItem("No resources available"); } resCallDone = true; } public void onError(PerunError error) { resourceDropDown.clear(); resourceDropDown.addItem("Error while loading"); resCallDone = true; } public void onLoadingStart() { resCallDone = false; resourceDropDown.clear(); resourceDropDown.addItem("Loading..."); } }); resources.retrieveData(); } else { // use predefined resources resourceDropDown.addNotSelectedOption(); resources = new TableSorter<Resource>().sortByName(resources); resourceDropDown.addAllItems(resources); } // GROUP MEMBERS LISTBOX final ListBoxWithObjects<RichMember> membersDropDown = new ListBoxWithObjects<RichMember>(); membersDropDown.setTitle( "By selecting a member you will switch to either member or member-resource settings (you must pick resource too)"); // fill members listbox GetGroupRichMembers members = new GetGroupRichMembers( groupId, new JsonCallbackEvents() { public void onFinished(JavaScriptObject jso) { ArrayList<RichMember> mems = JsonUtils.jsoAsList(jso); membersDropDown.clear(); if (mems != null && !mems.isEmpty()) { mems = new TableSorter<RichMember>().sortByName(mems); membersDropDown.addNotSelectedOption(); for (int i = 0; i < mems.size(); i++) { membersDropDown.addItem(mems.get(i)); if (mems.get(i).getId() == lastSelectedMemberId) { membersDropDown.setSelected(mems.get(i), true); } } } else { membersDropDown.addItem("No members available"); } memCallDone = true; } public void onError(PerunError error) { membersDropDown.clear(); membersDropDown.addItem("Error while loading"); memCallDone = true; } public void onLoadingStart() { memCallDone = false; membersDropDown.clear(); membersDropDown.addItem("Loading..."); } }); members.retrieveData(); // CHECKBOXES "FOR ALL MEMBERS" final CheckBox memChb = new CheckBox(); memChb.setText("To all members"); memChb.setVisible(false); memChb.setTitle("Uses this setting for all members of this group."); memChb.setValue(false); // SAVE CHANGES BUTTON final CustomButton saveChangesButton = TabMenu.getPredefinedButton( ButtonType.SAVE, ButtonTranslation.INSTANCE.saveChangesInAttributes()); if (!session.isGroupAdmin(groupId) && !session.isVoAdmin(group.getVoId())) saveChangesButton.setEnabled(false); // click handler to save group and member-user attributes final ClickHandler saveAttrsClickHandler = new ClickHandler() { public void onClick(ClickEvent event) { final ArrayList<Attribute> list = jsonCallback.getTableSelectedList(); if (UiElements.cantSaveEmptyListDialogBox(list)) { // refresh table and disable button a event for GetAttributes final JsonCallbackEvents events = JsonCallbackEvents.disableButtonEvents( saveChangesButton, JsonCallbackEvents.refreshTableEvents(jsonCallback)); if (memChb.getValue() == true) { // to all members selected UiElements.generateInfo( WidgetTranslation.INSTANCE.saveConfirmTitle(), "Same value(s) for selected attribute(s) will be set to ALL members of group.", new ClickHandler() { public void onClick(ClickEvent event) { ArrayList<RichMember> memList = membersDropDown.getAllObjects(); for (int i = 0; i < memList.size(); i++) { SetAttributes request = new SetAttributes(); if (i == memList.size() - 1) { request.setEvents(events); } else { request.setEvents( JsonCallbackEvents.disableButtonEvents(saveChangesButton)); } Map<String, Integer> ids = new HashMap<String, Integer>(); ids.put("member", memList.get(i).getId()); ids.put("workWithUserAttributes", 1); request.setAttributes(ids, list); } } }); } else { // just one group / memeber SetAttributes request = new SetAttributes(events); request.setAttributes(jsonCallback.getIds(), list); } } } }; // click handler to save required attributes final ClickHandler saveReqAttrsClickHandler = new ClickHandler() { public void onClick(ClickEvent event) { final ArrayList<Attribute> list = jsonCallback.getTableSelectedList(); // check if not empty if (UiElements.cantSaveEmptyListDialogBox(list)) { // refresh table and disable button a event for GetResourceRequiredAttributes final JsonCallbackEvents events = JsonCallbackEvents.disableButtonEvents( saveChangesButton, new JsonCallbackEvents() { public void onFinished(JavaScriptObject jso) { jsonCallback.clearTable(); // set back resourceToGetServicesFrom Map<String, Integer> ids = reqAttrs.getIds(); if (ids.containsKey("resource")) { ids.put("resourceToGetServicesFrom", ids.get("resource")); } if (ids.containsKey("user")) { ids.put("workWithUserAttributes", 1); } if (ids.containsKey("resource") && ids.containsKey("group")) { ids.put("workWithGroupAttributes", 1); } reqAttrs.setIds(ids); reqAttrs.retrieveData(); } }); final SetAttributes request = new SetAttributes(); if (memChb.getValue() == true) { // to all members selected UiElements.generateInfo( WidgetTranslation.INSTANCE.saveConfirmTitle(), "Same value(s) for selected attribute(s) will be set to ALL members of group.", new ClickHandler() { public void onClick(ClickEvent event) { ArrayList<RichMember> memList = membersDropDown.getAllObjects(); for (int i = 0; i < memList.size(); i++) { if (i == 0) { events.onLoadingStart(); } // trigger disable button if first Map<String, Integer> ids = new HashMap<String, Integer>(); ids.put("member", memList.get(i).getId()); ids.put("user", memList.get(i).getUserId()); ids.put("resource", resourceDropDown.getSelectedObject().getId()); ids.put("facility", resourceDropDown.getSelectedObject().getFacilityId()); if (i == memList.size() - 1) { request.setEvents(events); } // set events to last to get refresh and button enable request.setAttributes(ids, list); } } }); } else { // group or member request.setEvents(events); // disable button events request.setAttributes(reqAttrs.getIds(), list); } } } }; // REMOVE BUTTON final CustomButton removeButton = TabMenu.getPredefinedButton( ButtonType.REMOVE, ButtonTranslation.INSTANCE.removeAttributes()); if (!session.isGroupAdmin(groupId) && !session.isVoAdmin(group.getVoId())) removeButton.setEnabled(false); // click handler to remove group and member-user attributes final ClickHandler removeAttrsClickHandler = new ClickHandler() { public void onClick(ClickEvent event) { final ArrayList<Attribute> list = jsonCallback.getTableSelectedList(); if (UiElements.cantSaveEmptyListDialogBox(list)) { // refresh table and disable button a event for GetAttributes final JsonCallbackEvents events = JsonCallbackEvents.disableButtonEvents( removeButton, JsonCallbackEvents.refreshTableEvents(jsonCallback)); final RemoveAttributes request = new RemoveAttributes(); if (memChb.getValue() == true) { // to all members selected UiElements.generateInfo( WidgetTranslation.INSTANCE.deleteConfirmTitle(), "Selected attribute(s) will be removed from ALL members of group.", new ClickHandler() { public void onClick(ClickEvent event) { ArrayList<RichMember> memList = membersDropDown.getAllObjects(); for (int i = 0; i < memList.size(); i++) { if (i == 0) { events.onLoadingStart(); } // trigger disable button if first Map<String, Integer> ids = new HashMap<String, Integer>(); ids.put("member", memList.get(i).getId()); ids.put("workWithUserAttributes", 1); if (i == memList.size() - 1) { request.setEvents(events); } // set events to last to get refresh and button enable request.removeAttributes(ids, list); } } }); } else { // just one group / memeber request.setEvents(events); // disable button events request.removeAttributes(jsonCallback.getIds(), list); } } } }; // click handler to remove ResourceRequiredAttributes final ClickHandler removeReqAttrsClickHandler = new ClickHandler() { public void onClick(ClickEvent event) { final ArrayList<Attribute> list = jsonCallback.getTableSelectedList(); if (UiElements.cantSaveEmptyListDialogBox(list)) { // refresh table and disable button a event for GetAttributes final JsonCallbackEvents events = JsonCallbackEvents.disableButtonEvents( removeButton, new JsonCallbackEvents() { public void onFinished(JavaScriptObject jso) { jsonCallback.clearTable(); // set back resourceToGetServicesFrom Map<String, Integer> ids = reqAttrs.getIds(); if (ids.containsKey("resource")) { ids.put("resourceToGetServicesFrom", ids.get("resource")); } if (ids.containsKey("user")) { ids.put("workWithUserAttributes", 1); } if (ids.containsKey("resource") && ids.containsKey("group")) { ids.put("workWithGroupAttributes", 1); } reqAttrs.setIds(ids); reqAttrs.retrieveData(); } }); final RemoveAttributes request = new RemoveAttributes(); if (memChb.getValue() == true) { // to all members selected UiElements.generateInfo( WidgetTranslation.INSTANCE.deleteConfirmTitle(), "Selected attribute(s) will be removed from ALL members of group.", new ClickHandler() { @Override public void onClick(ClickEvent event) { ArrayList<RichMember> memList = membersDropDown.getAllObjects(); for (int i = 0; i < memList.size(); i++) { if (i == 0) { events.onLoadingStart(); } // trigger disable button if first Map<String, Integer> ids = new HashMap<String, Integer>(); ids.put("member", memList.get(i).getId()); ids.put("user", memList.get(i).getUserId()); ids.put("resource", resourceDropDown.getSelectedObject().getId()); ids.put("facility", resourceDropDown.getSelectedObject().getFacilityId()); if (i == memList.size() - 1) { request.setEvents(events); } // set events to last to get refresh and button enable request.removeAttributes(ids, list); } } }); } else { // just one group / member request.setEvents(events); // disable button events request.removeAttributes(reqAttrs.getIds(), list); } } } }; // SET NEW ATTR BUTTON final CustomButton setNewAttributeButton = TabMenu.getPredefinedButton(ButtonType.ADD, ButtonTranslation.INSTANCE.setNewAttributes()); if (!session.isGroupAdmin(groupId) && !session.isVoAdmin(group.getVoId())) setNewAttributeButton.setEnabled(false); // click handler setNewAttributeButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent event) { ids.clear(); if (resourceDropDown.getSelectedIndex() > 0) { if (membersDropDown.getSelectedIndex() > 0) { ids.put("member", membersDropDown.getSelectedObject().getId()); ids.put("user", membersDropDown.getSelectedObject().getUserId()); ids.put("resource", resourceDropDown.getSelectedObject().getId()); ids.put("facility", resourceDropDown.getSelectedObject().getFacilityId()); } else { ids.put("resource", resourceDropDown.getSelectedObject().getId()); ids.put("group", groupId); ids.put("workWithGroupAttributes", 1); } } else { if (membersDropDown.getSelectedIndex() > 0) { ids.put("member", membersDropDown.getSelectedObject().getId()); ids.put("user", membersDropDown.getSelectedObject().getUserId()); } else { ids.put("group", groupId); } } session .getTabManager() .addTabToCurrentTab(new SetNewAttributeTabItem(ids, jsonCallback.getList()), true); } }); // ClickHandlersRegistration - save onClicks for GetAttributes final ArrayList<HandlerRegistration> clickHandlers = new ArrayList<HandlerRegistration>(); clickHandlers.add(saveChangesButton.addClickHandler(saveAttrsClickHandler)); clickHandlers.add(removeButton.addClickHandler(removeAttrsClickHandler)); // DEFINE CHANGE HANDLER FOR ALL DROP DOWNS ChangeHandler changeHandler = new ChangeHandler() { public void onChange(ChangeEvent event) { int resIndex = resourceDropDown.getSelectedIndex(); int memIndex = membersDropDown.getSelectedIndex(); // no resource or member selected if (resIndex == 0 && memIndex == 0) { lastSelectedMemberId = 0; lastSelectedResourceId = 0; memChb.setValue(false); memChb.setVisible(false); jsonCallback.clearTable(); ids.clear(); ids.put("group", groupId); jsonCallback.setIds(ids); jsonCallback.retrieveData(); for (HandlerRegistration handler : clickHandlers) { if (handler != null) { handler.removeHandler(); } } clickHandlers.add(saveChangesButton.addClickHandler(saveAttrsClickHandler)); clickHandlers.add(removeButton.addClickHandler(removeAttrsClickHandler)); } // no resource but member selected if (resIndex == 0 && memIndex > 0) { lastSelectedMemberId = membersDropDown.getSelectedObject().getId(); lastSelectedResourceId = 0; memChb.setValue(false); memChb.setVisible(true); jsonCallback.clearTable(); ids.clear(); ids.put("member", membersDropDown.getSelectedObject().getId()); ids.put("workWithUserAttributes", 1); jsonCallback.setIds(ids); jsonCallback.retrieveData(); for (HandlerRegistration handler : clickHandlers) { if (handler != null) { handler.removeHandler(); } } clickHandlers.add(saveChangesButton.addClickHandler(saveAttrsClickHandler)); clickHandlers.add(removeButton.addClickHandler(removeAttrsClickHandler)); } // resource and no member selected if (resIndex > 0 && memIndex == 0) { lastSelectedMemberId = 0; lastSelectedResourceId = resourceDropDown.getSelectedObject().getId(); memChb.setValue(false); memChb.setVisible(false); jsonCallback.clearTable(); ids.clear(); ids.put("group", groupId); ids.put("resource", resourceDropDown.getSelectedObject().getId()); ids.put("resourceToGetServicesFrom", ids.get("resource")); ids.put("workWithGroupAttributes", 1); reqAttrs.setIds(ids); reqAttrs.retrieveData(); // set ids back to make saveChanges work ids.remove("resourceToGetServicesFrom"); reqAttrs.setIds(ids); for (HandlerRegistration handler : clickHandlers) { if (handler != null) { handler.removeHandler(); } } clickHandlers.add(saveChangesButton.addClickHandler(saveReqAttrsClickHandler)); clickHandlers.add(removeButton.addClickHandler(removeReqAttrsClickHandler)); } // resource and member selected if (resIndex > 0 && memIndex > 0) { lastSelectedMemberId = membersDropDown.getSelectedObject().getId(); lastSelectedResourceId = resourceDropDown.getSelectedObject().getId(); memChb.setValue(false); memChb.setVisible(true); jsonCallback.clearTable(); ids.clear(); ids.put("resource", resourceDropDown.getSelectedObject().getId()); ids.put("resourceToGetServicesFrom", ids.get("resource")); ids.put("member", membersDropDown.getSelectedObject().getId()); ids.put("workWithUserAttributes", 1); reqAttrs.setIds(ids); reqAttrs.retrieveData(); // set ids back to make saveChanges work ids.clear(); ids.put("member", membersDropDown.getSelectedObject().getId()); ids.put("user", membersDropDown.getSelectedObject().getUser().getId()); ids.put("facility", resourceDropDown.getSelectedObject().getFacilityId()); ids.put("resource", resourceDropDown.getSelectedObject().getId()); reqAttrs.setIds(ids); for (HandlerRegistration handler : clickHandlers) { if (handler != null) { handler.removeHandler(); } } clickHandlers.add(saveChangesButton.addClickHandler(saveReqAttrsClickHandler)); clickHandlers.add(removeButton.addClickHandler(removeReqAttrsClickHandler)); } } }; // ADD CHANGE HANDLERS TO DROP-DOWN MENUS resourceDropDown.addChangeHandler(changeHandler); membersDropDown.addChangeHandler(changeHandler); // PUT ELEMENTS IN MENU menu.addWidget(saveChangesButton); // menu.addWidget(resChb); menu.addWidget(memChb); menu.addWidget(setNewAttributeButton); menu.addWidget(removeButton); menu.addWidget(new HTML("<strong>Resources:</strong>")); menu.addWidget(resourceDropDown); menu.addWidget(new HTML("<strong>Members:</strong>")); menu.addWidget(membersDropDown); this.contentWidget.setWidget(vp); return getWidget(); }