List of usage examples for com.google.gwt.user.client Window confirm
public static boolean confirm(String msg)
From source file:org.drools.workbench.screens.guided.rule.client.widget.FromAccumulateCompositeFactPatternWidget.java
License:Apache License
@Override protected Widget getCompositeLabel() { ClickHandler leftPatternclick = new ClickHandler() { public void onClick(ClickEvent event) { Widget w = (Widget) event.getSource(); showFactTypeSelector(w);/*from w w w.ja va 2s . com*/ } }; ClickHandler sourcePatternClick = new ClickHandler() { public void onClick(ClickEvent event) { Widget w = (Widget) event.getSource(); showSourcePatternSelector(w); } }; String lbl = "<div class='form-field'>" + HumanReadable.getCEDisplayName("from accumulate") + "</div>"; FlexTable panel = new FlexTable(); int r = 0; if (pattern.getFactPattern() == null) { panel.setWidget(r++, 0, new ClickableLabel("<br> <font color='red'>" + GuidedRuleEditorResources.CONSTANTS.clickToAddPattern() + "</font>", leftPatternclick, !this.readOnly)); } panel.setWidget(r++, 0, new HTML(lbl)); if (this.getFromAccumulatePattern().getSourcePattern() == null) { panel.setWidget(r++, 0, new ClickableLabel("<br> <font color='red'>" + GuidedRuleEditorResources.CONSTANTS.clickToAddPattern() + "</font>", sourcePatternClick, !this.readOnly)); } else { IPattern rPattern = this.getFromAccumulatePattern().getSourcePattern(); RuleModellerWidget sourcePatternWidget; if (rPattern instanceof FactPattern) { sourcePatternWidget = new FactPatternWidget(this.getModeller(), getEventBus(), rPattern, true, true, this.readOnly); } else if (rPattern instanceof FromAccumulateCompositeFactPattern) { sourcePatternWidget = new FromAccumulateCompositeFactPatternWidget(this.getModeller(), this.getEventBus(), (FromAccumulateCompositeFactPattern) rPattern, this.readOnly); } else if (rPattern instanceof FromCollectCompositeFactPattern) { sourcePatternWidget = new FromCollectCompositeFactPatternWidget(this.getModeller(), this.getEventBus(), (FromCollectCompositeFactPattern) rPattern, this.readOnly); } else if (rPattern instanceof FromEntryPointFactPattern) { sourcePatternWidget = new FromEntryPointFactPatternWidget(this.getModeller(), this.getEventBus(), (FromEntryPointFactPattern) rPattern, this.readOnly); } else if (rPattern instanceof FromCompositeFactPattern) { sourcePatternWidget = new FromCompositeFactPatternWidget(this.getModeller(), this.getEventBus(), (FromCompositeFactPattern) rPattern, this.readOnly); } else { throw new IllegalArgumentException( "Unsupported pattern " + rPattern + " for right side of FROM ACCUMULATE"); } sourcePatternWidget.addOnModifiedCommand(new Command() { public void execute() { setModified(true); } }); panel.setWidget(r++, 0, addRemoveButton(sourcePatternWidget, new ClickHandler() { public void onClick(ClickEvent event) { if (Window.confirm(GuidedRuleEditorResources.CONSTANTS.RemoveThisBlockOfData())) { setModified(true); getFromAccumulatePattern().setSourcePattern(null); getModeller().refreshWidget(); } } })); } //REVISIT: Nested TabLayoutPanel does not work, its content is truncated. //TabLayoutPanel tPanel = new TabLayoutPanel(2, Unit.EM); TabPanel tPanel = new TabPanel(); FlexTable codeTable = new FlexTable(); int codeTableRow = 0; int codeTableCol = 0; codeTable.setWidget(codeTableRow, codeTableCol++, new HTML("<div class='form-field'>" + GuidedRuleEditorResources.CONSTANTS.Init() + ":</div>")); final TextBox initField = new TextBox(); initField.setTitle(GuidedRuleEditorResources.CONSTANTS.InitCode()); initField.setText(getFromAccumulatePattern().getInitCode()); initField.setEnabled(!this.readOnly); codeTable.setWidget(codeTableRow++, codeTableCol--, initField); codeTable.setWidget(codeTableRow, codeTableCol++, new HTML("<div class='form-field'>" + GuidedRuleEditorResources.CONSTANTS.Action() + ":</div>")); final TextBox actionField = new TextBox(); actionField.setTitle(GuidedRuleEditorResources.CONSTANTS.ActionCode()); actionField.setText(getFromAccumulatePattern().getActionCode()); actionField.setEnabled(!this.readOnly); codeTable.setWidget(codeTableRow++, codeTableCol--, actionField); codeTable.setWidget(codeTableRow, codeTableCol++, new HTML("<div class='form-field'>" + GuidedRuleEditorResources.CONSTANTS.Reverse() + ":</div>")); final TextBox reverseField = new TextBox(); reverseField.setTitle(GuidedRuleEditorResources.CONSTANTS.ReverseCode()); reverseField.setText(getFromAccumulatePattern().getReverseCode()); reverseField.setEnabled(!this.readOnly); codeTable.setWidget(codeTableRow++, codeTableCol--, reverseField); codeTable.setWidget(codeTableRow, codeTableCol++, new HTML("<div class='form-field'>" + GuidedRuleEditorResources.CONSTANTS.Result() + ":</div>")); final TextBox resultField = new TextBox(); resultField.setTitle(GuidedRuleEditorResources.CONSTANTS.ResultCode()); resultField.setText(getFromAccumulatePattern().getResultCode()); resultField.setEnabled(!this.readOnly); codeTable.setWidget(codeTableRow++, codeTableCol--, resultField); //panel.setWidget(r++, 0, codeTable); ScrollPanel codePanel = new ScrollPanel(); codePanel.add(codeTable); tPanel.add(codePanel, GuidedRuleEditorResources.CONSTANTS.CustomCode()); FlexTable functionTable = new FlexTable(); functionTable.setWidget(0, 0, new HTML("<div class='form-field'>" + GuidedRuleEditorResources.CONSTANTS.Function() + ":</div>")); final TextBox functionField = new TextBox(); functionField.setTitle(GuidedRuleEditorResources.CONSTANTS.FunctionCode()); functionField.setText(getFromAccumulatePattern().getFunction()); functionField.setEnabled(!this.readOnly); functionTable.setWidget(0, 1, functionField); // panel.setWidget(r++, 0, functionTable); ScrollPanel functionPanel = new ScrollPanel(); functionPanel.add(functionTable); tPanel.add(functionPanel, GuidedRuleEditorResources.CONSTANTS.Function()); ChangeHandler changehandler = new ChangeHandler() { public void onChange(ChangeEvent event) { Widget sender = (Widget) event.getSource(); TextBox senderTB = (TextBox) event.getSource(); String code = senderTB.getText(); setModified(true); if (sender == initField) { getFromAccumulatePattern().setFunction(null); functionField.setText(""); getFromAccumulatePattern().setInitCode(code); } else if (sender == actionField) { getFromAccumulatePattern().setFunction(null); functionField.setText(""); getFromAccumulatePattern().setActionCode(code); } else if (sender == reverseField) { getFromAccumulatePattern().setFunction(null); functionField.setText(""); getFromAccumulatePattern().setReverseCode(code); } else if (sender == resultField) { getFromAccumulatePattern().setFunction(null); functionField.setText(""); getFromAccumulatePattern().setResultCode(code); } else if (sender == functionField) { getFromAccumulatePattern().clearCodeFields(); initField.setText(""); actionField.setText(""); reverseField.setText(""); resultField.setText(""); getFromAccumulatePattern().setFunction(code); } } }; initField.addChangeHandler(changehandler); actionField.addChangeHandler(changehandler); reverseField.addChangeHandler(changehandler); resultField.addChangeHandler(changehandler); functionField.addChangeHandler(changehandler); boolean useFunction = getFromAccumulatePattern().useFunctionOrCode() .equals(FromAccumulateCompositeFactPattern.USE_FUNCTION); tPanel.selectTab(useFunction ? 1 : 0); panel.setWidget(r++, 0, tPanel); return panel; }
From source file:org.drools.workbench.screens.guided.rule.client.widget.FromCollectCompositeFactPatternWidget.java
License:Apache License
@Override protected Widget getCompositeLabel() { ClickHandler leftPatternclick = new ClickHandler() { public void onClick(ClickEvent event) { Widget w = (Widget) event.getSource(); showFactTypeSelector(w);/*from w ww.j a v a 2 s . c om*/ } }; ClickHandler rightPatternclick = new ClickHandler() { public void onClick(ClickEvent event) { Widget w = (Widget) event.getSource(); showRightPatternSelector(w); } }; String lbl = "<div class='form-field'>" + HumanReadable.getCEDisplayName("from collect") + "</div>"; FlexTable panel = new FlexTable(); int r = 0; if (pattern.getFactPattern() == null) { panel.setWidget(r++, 0, new ClickableLabel("<br> <font color='red'>" + GuidedRuleEditorResources.CONSTANTS.clickToAddPatterns() + "</font>", leftPatternclick, !this.readOnly)); } panel.setWidget(r++, 0, new HTML(lbl)); if (this.getFromCollectPattern().getRightPattern() == null) { panel.setWidget(r++, 0, new ClickableLabel("<br> <font color='red'>" + GuidedRuleEditorResources.CONSTANTS.clickToAddPatterns() + "</font>", rightPatternclick, !this.readOnly)); } else { IPattern rPattern = this.getFromCollectPattern().getRightPattern(); RuleModellerWidget patternWidget = null; if (rPattern instanceof FactPattern) { patternWidget = new FactPatternWidget(this.getModeller(), this.getEventBus(), rPattern, true, true, this.readOnly); } else if (rPattern instanceof FromAccumulateCompositeFactPattern) { patternWidget = new FromAccumulateCompositeFactPatternWidget(this.getModeller(), this.getEventBus(), (FromAccumulateCompositeFactPattern) rPattern, this.readOnly); } else if (rPattern instanceof FromCollectCompositeFactPattern) { patternWidget = new FromCollectCompositeFactPatternWidget(this.getModeller(), this.getEventBus(), (FromCollectCompositeFactPattern) rPattern, this.readOnly); } else if (rPattern instanceof FromEntryPointFactPattern) { patternWidget = new FromEntryPointFactPatternWidget(this.getModeller(), this.getEventBus(), (FromEntryPointFactPattern) rPattern, this.readOnly); } else if (rPattern instanceof FromCompositeFactPattern) { patternWidget = new FromCompositeFactPatternWidget(this.getModeller(), this.getEventBus(), (FromCompositeFactPattern) rPattern, this.readOnly); } else if (rPattern instanceof FreeFormLine) { patternWidget = new FreeFormLineWidget(this.getModeller(), this.getEventBus(), (FreeFormLine) rPattern, this.readOnly); } else { throw new IllegalArgumentException( "Unsupported pattern " + rPattern + " for right side of FROM COLLECT"); } patternWidget.addOnModifiedCommand(new Command() { public void execute() { setModified(true); } }); panel.setWidget(r++, 0, addRemoveButton(patternWidget, new ClickHandler() { public void onClick(ClickEvent event) { if (Window.confirm(GuidedRuleEditorResources.CONSTANTS.RemoveThisBlockOfData())) { setModified(true); getFromCollectPattern().setRightPattern(null); getModeller().refreshWidget(); } } })); } return panel; }
From source file:org.drools.workbench.screens.guided.rule.client.widget.FromCompositeFactPatternWidget.java
License:Apache License
private ClickHandler createClickHandlerForAddRemoveButton() { return new ClickHandler() { public void onClick(ClickEvent event) { if (Window.confirm(GuidedRuleEditorResources.CONSTANTS.RemoveThisEntireConditionQ())) { setModified(true);/* w w w .j av a2 s .c om*/ pattern.setFactPattern(null); getModeller().refreshWidget(); } } }; }
From source file:org.drools.workbench.screens.guided.scorecard.client.widget.GuidedScoreCardEditor.java
License:Apache License
private void removeCharacteristic(final FlexTable selectedTable) { if (selectedTable != null) { final TextBox tbName = (TextBox) selectedTable.getWidget(0, 1); String name = tbName.getValue(); if (name == null || name.trim().length() == 0) { name = "Untitled"; }/* ww w . ja v a 2 s . co m*/ final String msg = GuidedScoreCardConstants.INSTANCE.promptDeleteCharacteristic0(name); if (Window.confirm(msg)) { characteristicsTables.remove(selectedTable); characteristicsAttrMap.remove(selectedTable); final Widget parent = selectedTable.getParent().getParent(); final int i = characteristicsPanel.getWidgetIndex(parent); characteristicsPanel.remove(parent); characteristicsPanel.remove(i); } } }
From source file:org.drools.workbench.screens.guided.scorecard.client.widget.GuidedScoreCardEditor.java
License:Apache License
private Widget addAttributeCellTable(final FlexTable cGrid, final Characteristic characteristic, final boolean enumColumn, final String dataType, final List<String> operators) { String[] enumValues = null;/*from www .j a v a 2 s . c o m*/ if (characteristic != null) { //enum values if (enumColumn) { String factName = characteristic.getFact(); String fieldName = characteristic.getField(); enumValues = oracle.getEnumValues(factName, fieldName); } } final CellTable<Attribute> attributeCellTable = new CellTable<Attribute>(); //Operators column final DynamicSelectionCell categoryCell = new DynamicSelectionCell(operators); final Column<Attribute, String> operatorColumn = new Column<Attribute, String>(categoryCell) { public String getValue(final Attribute object) { return object.getOperator(); } }; operatorColumn.setFieldUpdater(new FieldUpdater<Attribute, String>() { public void update(int index, Attribute object, String value) { object.setOperator(value); attributeCellTable.redraw(); } }); //Value column Column<Attribute, String> valueColumn = null; if (enumValues != null && enumValues.length > 0) { valueColumn = new Column<Attribute, String>(new DynamicSelectionCell(Arrays.asList(enumValues))) { public String getValue(final Attribute object) { return object.getValue(); } }; valueColumn.setFieldUpdater(new FieldUpdater<Attribute, String>() { public void update(int index, Attribute object, String value) { object.setValue(value); attributeCellTable.redraw(); } }); } if (valueColumn == null) { valueColumn = new Column<Attribute, String>(new CustomEditTextCell()) { public String getValue(final Attribute attribute) { return attribute.getValue(); } }; valueColumn.setFieldUpdater(new FieldUpdater<Attribute, String>() { public void update(int index, Attribute object, String value) { object.setValue(value); attributeCellTable.redraw(); } }); } //Partial Score column final EditTextCell partialScoreCell = new EditTextCell(); final Column<Attribute, String> partialScoreColumn = new Column<Attribute, String>(partialScoreCell) { public String getValue(final Attribute attribute) { return "" + attribute.getPartialScore(); } }; partialScoreColumn.setFieldUpdater(new FieldUpdater<Attribute, String>() { public void update(int index, Attribute object, String value) { try { double d = Double.parseDouble(value); object.setPartialScore(d); } catch (Exception e1) { partialScoreCell.clearViewData(object); } attributeCellTable.redraw(); } }); //Reason Code column final Column<Attribute, String> reasonCodeColumn = new Column<Attribute, String>(new EditTextCell()) { public String getValue(final Attribute attribute) { return attribute.getReasonCode(); } }; reasonCodeColumn.setFieldUpdater(new FieldUpdater<Attribute, String>() { public void update(int index, Attribute object, String value) { object.setReasonCode(value); attributeCellTable.redraw(); } }); final ActionCell.Delegate<Attribute> delegate = new ActionCell.Delegate<Attribute>() { public void execute(final Attribute attribute) { if (Window.confirm(GuidedScoreCardConstants.INSTANCE.promptDeleteAttribute())) { final List<Attribute> list = characteristicsAttrMap.get(cGrid).getList(); list.remove(attribute); if ("boolean".equalsIgnoreCase(dataType)) { ((Button) cGrid.getWidget(0, 3)).setEnabled(list.size() != 2); } attributeCellTable.redraw(); } } }; final Cell<Attribute> actionCell = new ActionCell<Attribute>(GuidedScoreCardConstants.INSTANCE.remove(), delegate); final Column<Attribute, String> actionColumn = new IdentityColumn(actionCell); // Add the columns. attributeCellTable.addColumn(operatorColumn, GuidedScoreCardConstants.INSTANCE.operator()); attributeCellTable.addColumn(valueColumn, GuidedScoreCardConstants.INSTANCE.value()); attributeCellTable.addColumn(partialScoreColumn, GuidedScoreCardConstants.INSTANCE.partialScore()); attributeCellTable.addColumn(reasonCodeColumn, GuidedScoreCardConstants.INSTANCE.reasonCode()); attributeCellTable.addColumn(actionColumn, GuidedScoreCardConstants.INSTANCE.actions()); attributeCellTable.setWidth("100%", true); attributeCellTable.setColumnWidth(operatorColumn, 20.0, Style.Unit.PCT); attributeCellTable.setColumnWidth(valueColumn, 20.0, Style.Unit.PCT); attributeCellTable.setColumnWidth(partialScoreColumn, 20.0, Style.Unit.PCT); attributeCellTable.setColumnWidth(reasonCodeColumn, 20.0, Style.Unit.PCT); attributeCellTable.setColumnWidth(actionColumn, 20.0, Style.Unit.PCT); ListDataProvider<Attribute> dataProvider = new ListDataProvider<Attribute>(); dataProvider.addDataDisplay(attributeCellTable); characteristicsAttrMap.put(cGrid, dataProvider); if ("boolean".equalsIgnoreCase(dataType)) { CustomEditTextCell etc = (CustomEditTextCell) attributeCellTable.getColumn(1).getCell(); etc.setEnabled(false); } return (attributeCellTable); }
From source file:org.drools.workbench.screens.testscenario.client.delete.DeleteExecutionTraceButton.java
License:Apache License
boolean deleteOperationConfirmed() { return Window.confirm(TestScenarioConstants.INSTANCE.AreYouSureYouWantToRemoveThisItem()); }
From source file:org.drools.workbench.screens.testscenario.client.FactWidget.java
License:Apache License
protected void onDelete() { if (Window.confirm(TestScenarioConstants.INSTANCE.AreYouSureYouWantToRemoveThisBlockOfData())) { for (Fixture f : definitionList) { scenario.removeFixture(f);//from w ww. j av a 2s. c o m } parent.renderEditor(); } }
From source file:org.drools.workbench.screens.testscenario.client.VerifyFactWidget.java
License:Apache License
private FlexTable render(final VerifyFact vf) { FlexTable data = new FlexTable(); for (int i = 0; i < vf.getFieldValues().size(); i++) { final VerifyField fld = (VerifyField) vf.getFieldValues().get(i); data.setWidget(i, 1, new SmallLabel(fld.getFieldName() + ":")); data.getFlexCellFormatter().setHorizontalAlignment(i, 1, HasHorizontalAlignment.ALIGN_RIGHT); final ListBox opr = new ListBox(); opr.addItem(TestScenarioConstants.INSTANCE.equalsScenario(), "=="); opr.addItem(TestScenarioConstants.INSTANCE.doesNotEqualScenario(), "!="); if (fld.getOperator().equals("==")) { opr.setSelectedIndex(0);//from ww w .j a v a 2s . c o m } else { opr.setSelectedIndex(1); } opr.addChangeHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { fld.setOperator(opr.getValue(opr.getSelectedIndex())); } }); data.setWidget(i, 2, opr); Widget cellEditor = new VerifyFieldConstraintEditor(type, new ValueChanged() { public void valueChanged(String newValue) { fld.setExpected(newValue); } }, fld, oracle, this.scenario, this.executionTrace); data.setWidget(i, 3, cellEditor); Image del = CommonAltedImages.INSTANCE.DeleteItemSmall(); del.setAltText(TestScenarioConstants.INSTANCE.RemoveThisFieldExpectation()); del.setTitle(TestScenarioConstants.INSTANCE.RemoveThisFieldExpectation()); del.addClickHandler(new ClickHandler() { public void onClick(ClickEvent w) { if (Window.confirm(TestScenarioConstants.INSTANCE .AreYouSureYouWantToRemoveThisFieldExpectation(fld.getFieldName()))) { vf.getFieldValues().remove(fld); FlexTable data = render(vf); outer.setWidget(1, 0, data); } } }); data.setWidget(i, 4, del); if (showResults && fld.getSuccessResult() != null) { if (!fld.getSuccessResult().booleanValue()) { data.setWidget(i, 0, new Image(CommonImages.INSTANCE.warning())); data.setWidget(i, 5, new HTML(TestScenarioConstants.INSTANCE.ActualResult(fld.getActualResult()))); data.getCellFormatter().addStyleName(i, 5, "testErrorValue"); //NON-NLS } else { data.setWidget(i, 0, new Image(TestScenarioImages.INSTANCE.testPassed())); } } } return data; }
From source file:org.drools.workbench.screens.testscenario.client.VerifyRulesFiredWidget.java
License:Apache License
private FlexTable render(final FixtureList rfl, final Scenario sc) { FlexTable data = new FlexTable(); for (int i = 0; i < rfl.size(); i++) { final VerifyRuleFired v = (VerifyRuleFired) rfl.get(i); if (showResults && v.getSuccessResult() != null) { if (!v.getSuccessResult().booleanValue()) { data.setWidget(i, 0, new Image(CommonImages.INSTANCE.warning())); data.setWidget(i, 4,/*from ww w . ja v a2 s. c o m*/ new HTML(TestScenarioConstants.INSTANCE.ActualResult(v.getActualResult().toString()))); data.getCellFormatter().addStyleName(i, 4, "testErrorValue"); //NON-NLS } else { data.setWidget(i, 0, new Image(TestScenarioImages.INSTANCE.testPassed())); } } data.setWidget(i, 1, new SmallLabel(v.getRuleName() + ":")); data.getFlexCellFormatter().setAlignment(i, 1, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_MIDDLE); final ListBox b = new ListBox(); b.addItem(TestScenarioConstants.INSTANCE.firedAtLeastOnce(), "y"); b.addItem(TestScenarioConstants.INSTANCE.didNotFire(), "n"); b.addItem(TestScenarioConstants.INSTANCE.firedThisManyTimes(), "e"); final TextBox num = new TextBox(); num.setVisibleLength(5); if (v.getExpectedFire() != null) { b.setSelectedIndex((v.getExpectedFire().booleanValue()) ? 0 : 1); num.setVisible(false); } else { b.setSelectedIndex(2); String xc = (v.getExpectedCount() != null) ? "" + v.getExpectedCount().intValue() : "0"; num.setText(xc); } b.addChangeHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { String s = b.getValue(b.getSelectedIndex()); if (s.equals("y") || s.equals("n")) { num.setVisible(false); v.setExpectedFire((s.equals("y")) ? Boolean.TRUE : Boolean.FALSE); v.setExpectedCount(null); } else { num.setVisible(true); v.setExpectedFire(null); num.setText("1"); v.setExpectedCount(Integer.valueOf(1)); } } }); b.addItem(TestScenarioConstants.INSTANCE.ChooseDotDotDot()); num.addChangeHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { v.setExpectedCount(Integer.valueOf(num.getText())); } }); HorizontalPanel h = new HorizontalPanel(); h.add(b); h.add(num); data.setWidget(i, 2, h); Image del = CommonAltedImages.INSTANCE.DeleteItemSmall(); del.setAltText(TestScenarioConstants.INSTANCE.RemoveThisRuleExpectation()); del.setTitle(TestScenarioConstants.INSTANCE.RemoveThisRuleExpectation()); del.addClickHandler(new ClickHandler() { public void onClick(ClickEvent w) { if (Window.confirm( TestScenarioConstants.INSTANCE.AreYouSureYouWantToRemoveThisRuleExpectation())) { rfl.remove(v); sc.removeFixture(v); outer.setWidget(1, 0, render(rfl, sc)); } } }); data.setWidget(i, 3, del); //we only want numbers here... num.addKeyPressHandler(new KeyPressHandler() { public void onKeyPress(KeyPressEvent event) { if (Character.isLetter(event.getCharCode())) { ((TextBox) event.getSource()).cancelKey(); } } }); } return data; }
From source file:org.ebayopensource.turmeric.policy.adminui.client.presenter.policy.PolicyCreatePresenter.java
License:Open Source License
private void bindSubjectSection() { // search for matching SubjectGroup this.view.addSbGroupSearchButtonClickHandler(new ClickHandler() { public void onClick(final ClickEvent event) { // do a lookup of all the matching SubjectGroups SubjectGroupKey key = new SubjectGroupKey(); key.setType(view.getSubjectContentView().getSubjectType()); String name = view.getSubjectContentView().getGroupSearchTerm(); if (name != null && !name.trim().equals("")) { key.setName(name);/* ww w. jav a 2s .c om*/ } SubjectGroupQuery query = new SubjectGroupQuery(); query.setGroupKeys(Collections.singletonList(key)); service.findSubjectGroups(query, new AsyncCallback<FindSubjectGroupsResponse>() { public void onFailure(final Throwable arg) { if (arg.getLocalizedMessage().contains("500")) { view.error(PolicyAdminUIUtil.messages .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage())); } else { view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage())); } } public void onSuccess(final FindSubjectGroupsResponse response) { List<SubjectGroup> subjectGroups = response.getGroups(); List<String> names = new ArrayList<String>(); if (subjectGroups != null && subjectGroups.size() > 0) { for (SubjectGroup s : subjectGroups) { names.add(s.getName()); } } else { view.info(PolicyAdminUIUtil.policyAdminConstants.noItemFoundMessage()); } view.getSubjectContentView().setAvailableSubjectGroups(names); view.getSubjectContentView().setAvailableExclusionSG(names); } }); } }); // search for matching Subject this.view.addSbSubjectSearchButtonClickHandler(new ClickHandler() { public void onClick(final ClickEvent event) { // do a lookup of all the matching Subjects SubjectKey key = new SubjectKey(); String name = view.getSubjectContentView().getSubjectSearchTerm(); if (name != null && !name.trim().equals("")) { key.setName(name); } key.setType(view.getSubjectContentView().getSubjectType()); final SubjectQuery query = new SubjectQuery(); query.setSubjectKeys(Collections.singletonList(key)); if ("USER".equals(key.getType())) { service.findExternalSubjects(query, new AsyncCallback<FindExternalSubjectsResponse>() { public void onFailure(final Throwable arg) { if (arg.getLocalizedMessage().contains("500")) { view.error(PolicyAdminUIUtil.messages .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage())); } else { view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage())); } } public void onSuccess(final FindExternalSubjectsResponse response) { List<Subject> subjects = response.getSubjects(); List<String> names = new ArrayList<String>(); if (subjects != null && subjects.size() > 0) { for (Subject s : subjects) { names.add(s.getName()); } } else { view.info(PolicyAdminUIUtil.policyAdminConstants.noItemFoundMessage()); } view.getSubjectContentView().setAvailableSubjects(getSubjectNames(subjects)); view.getSubjectContentView().setAvailableExclusionSubjects(getSubjectNames(subjects)); } }); } else { service.findSubjects(query, new AsyncCallback<FindSubjectsResponse>() { public void onFailure(final Throwable arg) { if (arg.getLocalizedMessage().contains("500")) { view.error(PolicyAdminUIUtil.messages .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage())); } else { view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage())); } } public void onSuccess(final FindSubjectsResponse response) { List<Subject> subjects = response.getSubjects(); List<String> names = new ArrayList<String>(); if (subjects != null) { if (subjects.size() > 0) { for (Subject s : subjects) { names.add(s.getName()); } } else { final String newSubjectName = query.getSubjectKeys().get(0).getName(); final String newSubjectType = query.getSubjectKeys().get(0).getType(); if (newSubjectName != null && !newSubjectName.endsWith("%")) { if (Window.confirm( PolicyAdminUIUtil.policyAdminConstants.createInternalSubjects())) { createInternalSubject(newSubjectName, newSubjectType); names.add(newSubjectName); } } else { // not found and do not create it view.info(PolicyAdminUIUtil.policyAdminConstants.noItemFoundMessage()); } } } view.getSubjectContentView().setAvailableSubjects(names); view.getSubjectContentView().setAvailableExclusionSubjects(names); } }); } } }); // edit an assignment this.view.addSbEditButtonClickHandler(new ClickHandler() { public void onClick(final ClickEvent event) { if (view.getSubjectContentView().getSelectedSubjectAssignments().size() != 1) { return; } /** * edit the existing assignment - set the available * SubjectTypes as only the one in the assignment, and * set the availables vs selected Subjects and * SubjectGroups based on the assignment */ editSubjectAssignment = view.getSubjectContentView().getSelectedSubjectAssignments().get(0); // remove the assignment from the list of assignments // while it is being edited subjectAssignments.remove(editSubjectAssignment); // update the display view.getSubjectContentView().setAssignments(subjectAssignments); // set the available subject types to just the type // being edited List<String> typeList = new ArrayList<String>(); typeList.add(editSubjectAssignment.getSubjectType()); view.getSubjectContentView().setAvailableSubjectTypes(typeList); // subject type attr values are: [0-9]+ when comes from // server, null when it has not been saved yet final boolean selectAllSubjects = (!editSubjectAssignment.getSubjects().isEmpty() && (editSubjectAssignment.getSubjects().get(0).getSubjectMatchTypes().get(0) .getAttributeValue().getValue() == null || editSubjectAssignment.getSubjects().get(0).getSubjectMatchTypes().get(0) .getAttributeValue().getValue().endsWith("+"))); view.getSubjectContentView().setSelectAllSubjects(selectAllSubjects); // get all the subjects of this type SubjectKey skey = new SubjectKey(); skey.setType(editSubjectAssignment.getSubjectType()); SubjectQuery query = new SubjectQuery(); query.setSubjectKeys(Collections.singletonList(skey)); service.findSubjects(query, new AsyncCallback<FindSubjectsResponse>() { public void onFailure(final Throwable arg) { if (arg.getLocalizedMessage().contains("500")) { view.error(PolicyAdminUIUtil.messages .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage())); } else { view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage())); } } public void onSuccess(final FindSubjectsResponse response) { List<Subject> subjects = response.getSubjects(); if (!selectAllSubjects) { view.getSubjectContentView() .setSelectedSubjects(getSubjectNames(editSubjectAssignment.getSubjects())); } subjects.removeAll(editSubjectAssignment.getSubjects()); view.getSubjectContentView().setAvailableSubjects(getSubjectNames(subjects)); List<Subject> exclusionSubjects = response.getSubjects(); view.getSubjectContentView().setSelectedExclusionSubjects( getSubjectNames(editSubjectAssignment.getExclusionSubjects())); exclusionSubjects.removeAll(editSubjectAssignment.getExclusionSubjects()); view.getSubjectContentView() .setAvailableExclusionSubjects(getSubjectNames(exclusionSubjects)); } }); // get the available SubjectGroups of the same type as // we've elected to edit SubjectGroupKey gkey = new SubjectGroupKey(); gkey.setType(editSubjectAssignment.getSubjectType()); SubjectGroupQuery gquery = new SubjectGroupQuery(); gquery.setGroupKeys(Collections.singletonList(gkey)); service.findSubjectGroups(gquery, new AsyncCallback<FindSubjectGroupsResponse>() { public void onFailure(final Throwable arg) { if (arg.getLocalizedMessage().contains("500")) { view.error(PolicyAdminUIUtil.messages .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage())); } else { view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage())); } } public void onSuccess(final FindSubjectGroupsResponse response) { List<SubjectGroup> subjectGroups = response.getGroups(); view.getSubjectContentView() .setSelectedSubjectGroups(getGroupNames(editSubjectAssignment.getSubjectGroups())); // if there are subject groups already // assigned, take them out of the list // of available ones if (editSubjectAssignment.getSubjectGroups() != null) { for (SubjectGroup existing : editSubjectAssignment.getSubjectGroups()) { ListIterator<SubjectGroup> itor = subjectGroups.listIterator(); while (itor.hasNext()) { SubjectGroup g = itor.next(); if (existing.getId() != null && existing.getId().equals(g.getId())) { itor.remove(); } else if (existing.getName() != null && existing.getName().equals(g.getName())) { itor.remove(); } } } } view.getSubjectContentView().setAvailableSubjectGroups(getGroupNames(subjectGroups)); // ExclusionSG List<SubjectGroup> exclSG = response.getGroups(); view.getSubjectContentView().setSelectedExclusionSG( getGroupNames(editSubjectAssignment.getExclusionSubjectGroups())); // if there are exclusion subject groups // already // assigned, take them out of the list // of available ones if (editSubjectAssignment.getExclusionSubjectGroups() != null) { for (SubjectGroup existing : editSubjectAssignment.getExclusionSubjectGroups()) { ListIterator<SubjectGroup> itor = exclSG.listIterator(); while (itor.hasNext()) { SubjectGroup g = itor.next(); if (existing.getId() != null && existing.getId().equals(g.getId())) { itor.remove(); } else if (existing.getName() != null && existing.getName().equals(g.getName())) { itor.remove(); } } } } view.getSubjectContentView().setAvailableExclusionSG(getGroupNames(exclSG)); view.getSubjectContentView().show(); } }); } }); // delete an assignment this.view.addSbDelButtonClickHandler(new ClickHandler() { public void onClick(final ClickEvent event) { if (view.getSubjectContentView().getSelectedSubjectAssignments().size() == 0) { return; } else { if (Window.confirm(PolicyAdminUIUtil.policyAdminConstants.deleteSelected())) { for (PolicySubjectAssignment assignment : view.getSubjectContentView() .getSelectedSubjectAssignments()) { subjectAssignments.remove(assignment); subjectTypes.add(assignment.getSubjectType()); } view.getSubjectContentView().getSelectedSubjectAssignments().clear(); view.getSubjectContentView().getSelectionModel().clear(); view.getSubjectContentView().setAssignments(subjectAssignments); // add back in the subject type as being // available view.getSubjectContentView().setAvailableSubjectTypes(subjectTypes); } } } }); // assign a new group of Subject/SubjectGroup to the policy this.view.addSbAddButtonClickHandler(new ClickHandler() { public void onClick(final ClickEvent event) { if (completePopulatedForm()) { // Add a new set of subjects and groups for a given // SubjectType if (subjectAssignments == null) { subjectAssignments = new ArrayList<PolicySubjectAssignment>(); } PolicySubjectAssignment assignment = null; if (editSubjectAssignment != null) { // we were editing an existing assignment assignment = editSubjectAssignment; editSubjectAssignment = null; } else { assignment = new PolicySubjectAssignment(); } assignment.setSubjectType(view.getSubjectContentView().getSubjectType()); // subject List<Subject> subjects = new ArrayList<Subject>(); if (view.getSubjectContentView().getSelectAllSubjects()) { Subject assignedSubject = getSubjectType(PolicyAdminUIUtil.policyAdminConstants.all(), assignment.getSubjectType(), false); subjects.add(assignedSubject); } else { for (String s : view.getSubjectContentView().getSelectedSubjects()) { Subject assignedSubject = getSubject(s, assignment.getSubjectType(), false); // let's do a second loading, external // subjects // should stored in local now if (assignedSubject.getSubjectMatchTypes() == null) { assignedSubject = getSubject(s, assignment.getSubjectType(), true); } subjects.add(assignedSubject); } } // exclusionSubjects List<Subject> exclusionSubjects = new ArrayList<Subject>(); for (String s : view.getSubjectContentView().getSelectedExclusionSubjects()) { Subject assignedSubject = getSubject(s, assignment.getSubjectType(), true); // let's do a second loading, external subjects // should stored in local now if (assignedSubject.getSubjectMatchTypes() == null) { assignedSubject = getSubject(s, assignment.getSubjectType(), true); } exclusionSubjects.add(assignedSubject); } // groups List<SubjectGroup> groups = new ArrayList<SubjectGroup>(); for (String s : view.getSubjectContentView().getSelectedSubjectGroups()) { groups.add(getGroup(s, assignment.getSubjectType(), false)); } // exclusion Subjectgroups List<SubjectGroup> exclSg = new ArrayList<SubjectGroup>(); for (String s : view.getSubjectContentView().getSelectedExclusionSG()) { exclSg.add(getGroup(s, assignment.getSubjectType(), true)); } assignment.setSubjects(subjects); assignment.setExclusionSubjects(exclusionSubjects); assignment.setSubjectGroups(groups); assignment.setExclusionSubjectGroups(exclSg); subjectAssignments.add(assignment); view.getSubjectContentView().setAssignments(subjectAssignments); // take the SubjectType of the assignment out of the // list of available types subjectTypes.remove(assignment.getSubjectType()); view.getSubjectContentView().setAvailableSubjectTypes(subjectTypes); view.getSubjectContentView().clearAssignmentWidget(); } } }); view.addSbCancelButtonClickHandler(new ClickHandler() { public void onClick(final ClickEvent event) { if (editSubjectAssignment != null) { subjectAssignments.add(editSubjectAssignment); editSubjectAssignment = null; view.getSubjectContentView().setAssignments(subjectAssignments); view.getSubjectContentView().hide(); // fix the subjecttypes view.getSubjectContentView().setAvailableSubjectTypes(subjectTypes); return; } view.getSubjectContentView().clearAssignmentWidget(); view.getSubjectContentView().hide(); } }); }