List of usage examples for com.google.gwt.safehtml.shared SafeHtmlUtils fromString
public static SafeHtml fromString(String s)
From source file:org.datacleaner.monitor.shared.widgets.SchemaTree.java
License:Open Source License
public SchemaTree(TenantIdentifier tenant, DatastoreIdentifier datastore, DatastoreServiceAsync service) { super();// w w w .j a va 2 s .com addStyleName("SchemaTree"); _tenant = tenant; _datastore = datastore; _service = service; TreeItem rootItem = addItem(SafeHtmlUtils.fromString(datastore.getName())); rootItem.setUserObject(datastore); rootItem.addStyleName("datastoreItem"); rootItem.addItem(LOADING_ITEM_TEXT); addOpenHandler(this); }
From source file:org.datacleaner.monitor.shared.widgets.SchemaTree.java
License:Open Source License
private <E extends HasName> AsyncCallback<List<E>> createTreeCallback(final TreeItem item, final String childStyleName, final boolean addLoadingItem) { return new DCAsyncCallback<List<E>>() { @Override//from ww w . j a v a2 s . c o m public void onSuccess(List<E> children) { item.removeItems(); for (E child : children) { final String name = child.getName(); final TreeItem childItem = item.addItem(SafeHtmlUtils.fromString(name)); childItem.setUserObject(child); childItem.addStyleName(childStyleName); if (addLoadingItem) { childItem.addItem(LOADING_ITEM_TEXT); } } } }; }
From source file:org.drools.guvnor.client.decisiontable.GuidedDecisionTableWidget.java
License:Apache License
private Widget newColumn() { AddButton addButton = new AddButton(); addButton.setText(Constants.INSTANCE.NewColumn()); addButton.setTitle(Constants.INSTANCE.AddNewColumn()); addButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent w) { final FormStylePopup pop = new FormStylePopup(); pop.setModal(false);/* w ww . jav a 2 s . c o m*/ //List of basic column types final ListBox choice = new ListBox(); choice.setVisibleItemCount(NewColumnTypes.values().length); choice.addItem(Constants.INSTANCE.AddNewMetadataOrAttributeColumn(), NewColumnTypes.METADATA_ATTRIBUTE.name()); choice.addItem(SECTION_SEPARATOR); choice.addItem(Constants.INSTANCE.AddNewConditionSimpleColumn(), NewColumnTypes.CONDITION_SIMPLE.name()); choice.addItem(SECTION_SEPARATOR); choice.addItem(Constants.INSTANCE.SetTheValueOfAField(), NewColumnTypes.ACTION_UPDATE_FACT_FIELD.name()); choice.addItem(Constants.INSTANCE.SetTheValueOfAFieldOnANewFact(), NewColumnTypes.ACTION_INSERT_FACT_FIELD.name()); choice.addItem(Constants.INSTANCE.RetractAnExistingFact(), NewColumnTypes.ACTION_RETRACT_FACT.name()); //Checkbox to include Advanced Action types final CheckBox chkIncludeAdvancedOptions = new CheckBox( SafeHtmlUtils.fromString(Constants.INSTANCE.IncludeAdvancedOptions())); chkIncludeAdvancedOptions.setValue(false); chkIncludeAdvancedOptions.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { if (chkIncludeAdvancedOptions.getValue()) { addItem(3, Constants.INSTANCE.AddNewConditionBRLFragment(), NewColumnTypes.CONDITION_BRL_FRAGMENT.name()); addItem(Constants.INSTANCE.WorkItemAction(), NewColumnTypes.ACTION_WORKITEM.name()); addItem(Constants.INSTANCE.WorkItemActionSetField(), NewColumnTypes.ACTION_WORKITEM_UPDATE_FACT_FIELD.name()); addItem(Constants.INSTANCE.WorkItemActionInsertFact(), NewColumnTypes.ACTION_WORKITEM_INSERT_FACT_FIELD.name()); addItem(Constants.INSTANCE.AddNewActionBRLFragment(), NewColumnTypes.ACTION_BRL_FRAGMENT.name()); } else { removeItem(NewColumnTypes.CONDITION_BRL_FRAGMENT.name()); removeItem(NewColumnTypes.ACTION_WORKITEM.name()); removeItem(NewColumnTypes.ACTION_WORKITEM_UPDATE_FACT_FIELD.name()); removeItem(NewColumnTypes.ACTION_WORKITEM_INSERT_FACT_FIELD.name()); removeItem(NewColumnTypes.ACTION_BRL_FRAGMENT.name()); } pop.center(); } private void addItem(int index, String item, String value) { for (int itemIndex = 0; itemIndex < choice.getItemCount(); itemIndex++) { if (choice.getValue(itemIndex).equals(value)) { return; } } choice.insertItem(item, value, index); } private void addItem(String item, String value) { for (int itemIndex = 0; itemIndex < choice.getItemCount(); itemIndex++) { if (choice.getValue(itemIndex).equals(value)) { return; } } choice.addItem(item, value); } private void removeItem(String value) { for (int itemIndex = 0; itemIndex < choice.getItemCount(); itemIndex++) { if (choice.getValue(itemIndex).equals(value)) { choice.removeItem(itemIndex); break; } } } }); //OK button to create column final Button ok = new Button(Constants.INSTANCE.OK()); ok.addClickHandler(new ClickHandler() { public void onClick(ClickEvent w) { String s = choice.getValue(choice.getSelectedIndex()); if (s.equals(NewColumnTypes.METADATA_ATTRIBUTE.name())) { showMetaDataAndAttribute(); } else if (s.equals(NewColumnTypes.CONDITION_SIMPLE.name())) { showConditionSimple(); } else if (s.equals(NewColumnTypes.CONDITION_BRL_FRAGMENT.name())) { showConditionBRLFragment(); } else if (s.equals(NewColumnTypes.ACTION_UPDATE_FACT_FIELD.name())) { showActionSet(); } else if (s.equals(NewColumnTypes.ACTION_INSERT_FACT_FIELD.name())) { showActionInsert(); } else if (s.equals(NewColumnTypes.ACTION_RETRACT_FACT.name())) { showActionRetract(); } else if (s.equals(NewColumnTypes.ACTION_WORKITEM.name())) { showActionWorkItemAction(); } else if (s.equals(NewColumnTypes.ACTION_WORKITEM_UPDATE_FACT_FIELD.name())) { showActionWorkItemActionSet(); } else if (s.equals(NewColumnTypes.ACTION_WORKITEM_INSERT_FACT_FIELD.name())) { showActionWorkItemActionInsert(); } else if (s.equals(NewColumnTypes.ACTION_BRL_FRAGMENT.name())) { showActionBRLFragment(); } pop.hide(); } private void showMetaDataAndAttribute() { // show choice of attributes Image image = new Image(DroolsGuvnorImageResources.INSTANCE.config()); image.setAltText(Constants.INSTANCE.Config()); final FormStylePopup pop = new FormStylePopup(image, Constants.INSTANCE.AddAnOptionToTheRule()); final ListBox list = RuleAttributeWidget.getAttributeList(); //This attribute is only used for Decision Tables list.addItem(GuidedDecisionTable52.NEGATE_RULE_ATTR); // Remove any attributes already added for (AttributeCol52 col : guidedDecisionTable.getAttributeCols()) { for (int iItem = 0; iItem < list.getItemCount(); iItem++) { if (list.getItemText(iItem).equals(col.getAttribute())) { list.removeItem(iItem); break; } } } final Image addbutton = DroolsGuvnorImages.INSTANCE.NewItem(); final TextBox box = new TextBox(); box.setVisibleLength(15); list.setSelectedIndex(0); list.addChangeHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { AttributeCol52 attr = new AttributeCol52(); attr.setAttribute(list.getItemText(list.getSelectedIndex())); dtable.addColumn(attr); refreshAttributeWidget(); pop.hide(); } }); addbutton.setTitle(Constants.INSTANCE.AddMetadataToTheRule()); addbutton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent w) { String metadata = box.getText(); if (!isUnique(metadata)) { Window.alert( Constants.INSTANCE.ThatColumnNameIsAlreadyInUsePleasePickAnother()); return; } MetadataCol52 met = new MetadataCol52(); met.setHideColumn(true); met.setMetadata(metadata); dtable.addColumn(met); refreshAttributeWidget(); pop.hide(); } private boolean isUnique(String metadata) { for (MetadataCol52 mc : guidedDecisionTable.getMetadataCols()) { if (metadata.equals(mc.getMetadata())) { return false; } } return true; } }); DirtyableHorizontalPane horiz = new DirtyableHorizontalPane(); horiz.add(box); horiz.add(addbutton); pop.addAttribute(Constants.INSTANCE.Metadata1(), horiz); pop.addAttribute(Constants.INSTANCE.Attribute(), list); pop.show(); } private void showConditionSimple() { final ConditionCol52 column = makeNewConditionColumn(); ConditionPopup dialog = new ConditionPopup(getSCE(), guidedDecisionTable, new ConditionColumnCommand() { public void execute(Pattern52 pattern, ConditionCol52 column) { //Update UI dtable.addColumn(pattern, column); refreshConditionsWidget(); } }, column, true, isReadOnly); dialog.show(); } private void showConditionBRLFragment() { final BRLConditionColumn column = makeNewConditionBRLFragment(); switch (guidedDecisionTable.getTableFormat()) { case EXTENDED_ENTRY: BRLConditionColumnViewImpl popup = new BRLConditionColumnViewImpl(sce, guidedDecisionTable, true, asset, column, clientFactory, eventBus); popup.setPresenter(BRL_CONDITION_PRESENTER); popup.show(); break; case LIMITED_ENTRY: LimitedEntryBRLConditionColumnViewImpl limtedEntryPopup = new LimitedEntryBRLConditionColumnViewImpl( sce, guidedDecisionTable, true, asset, (LimitedEntryBRLConditionColumn) column, clientFactory, eventBus); limtedEntryPopup.setPresenter(LIMITED_ENTRY_BRL_CONDITION_PRESENTER); limtedEntryPopup.show(); break; } } private void showActionInsert() { final ActionInsertFactCol52 afc = makeNewActionInsertColumn(); ActionInsertFactPopup ins = new ActionInsertFactPopup(getSCE(), guidedDecisionTable, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, afc, true, isReadOnly); ins.show(); } private void showActionSet() { final ActionSetFieldCol52 afc = makeNewActionSetColumn(); ActionSetFieldPopup set = new ActionSetFieldPopup(getSCE(), guidedDecisionTable, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, afc, true, isReadOnly); set.show(); } private void showActionRetract() { final ActionRetractFactCol52 arf = makeNewActionRetractFact(); ActionRetractFactPopup popup = new ActionRetractFactPopup(guidedDecisionTable, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, arf, true, isReadOnly); popup.show(); } private void showActionWorkItemAction() { final ActionWorkItemCol52 awi = makeNewActionWorkItem(); ActionWorkItemPopup popup = new ActionWorkItemPopup(clientFactory, packageUUID, guidedDecisionTable, GuidedDecisionTableWidget.this, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, awi, true, isReadOnly); popup.show(); } private void showActionWorkItemActionSet() { final ActionWorkItemSetFieldCol52 awisf = makeNewActionWorkItemSetField(); ActionWorkItemSetFieldPopup popup = new ActionWorkItemSetFieldPopup(getSCE(), guidedDecisionTable, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, awisf, true, isReadOnly); popup.show(); } private void showActionWorkItemActionInsert() { final ActionWorkItemInsertFactCol52 awiif = makeNewActionWorkItemInsertFact(); ActionWorkItemInsertFactPopup popup = new ActionWorkItemInsertFactPopup(getSCE(), guidedDecisionTable, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, awiif, true, isReadOnly); popup.show(); } private void showActionBRLFragment() { final BRLActionColumn column = makeNewActionBRLFragment(); switch (guidedDecisionTable.getTableFormat()) { case EXTENDED_ENTRY: BRLActionColumnViewImpl popup = new BRLActionColumnViewImpl(sce, guidedDecisionTable, true, asset, column, clientFactory, eventBus); popup.setPresenter(BRL_ACTION_PRESENTER); popup.show(); break; case LIMITED_ENTRY: LimitedEntryBRLActionColumnViewImpl limtedEntryPopup = new LimitedEntryBRLActionColumnViewImpl( sce, guidedDecisionTable, true, asset, (LimitedEntryBRLActionColumn) column, clientFactory, eventBus); limtedEntryPopup.setPresenter(LIMITED_ENTRY_BRL_ACTION_PRESENTER); limtedEntryPopup.show(); break; } } private void newActionAdded(ActionCol52 column) { dtable.addColumn(column); refreshActionsWidget(); } }); //If a separator is clicked disable OK button choice.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { int itemIndex = choice.getSelectedIndex(); if (itemIndex < 0) { return; } ok.setEnabled(!choice.getValue(itemIndex).equals(SECTION_SEPARATOR)); } }); pop.setTitle(Constants.INSTANCE.AddNewColumn()); pop.addAttribute(Constants.INSTANCE.TypeOfColumn(), choice); pop.addAttribute("", chkIncludeAdvancedOptions); pop.addAttribute("", ok); pop.show(); } private ConditionCol52 makeNewConditionColumn() { switch (guidedDecisionTable.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryConditionCol52(); default: return new ConditionCol52(); } } private ActionInsertFactCol52 makeNewActionInsertColumn() { switch (guidedDecisionTable.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryActionInsertFactCol52(); default: return new ActionInsertFactCol52(); } } private ActionSetFieldCol52 makeNewActionSetColumn() { switch (guidedDecisionTable.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryActionSetFieldCol52(); default: return new ActionSetFieldCol52(); } } private ActionRetractFactCol52 makeNewActionRetractFact() { switch (guidedDecisionTable.getTableFormat()) { case LIMITED_ENTRY: LimitedEntryActionRetractFactCol52 ler = new LimitedEntryActionRetractFactCol52(); ler.setValue(new DTCellValue52("")); return ler; default: return new ActionRetractFactCol52(); } } private ActionWorkItemCol52 makeNewActionWorkItem() { //WorkItems are defined within the column and always boolean (i.e. Limited Entry) in the table return new ActionWorkItemCol52(); } private ActionWorkItemSetFieldCol52 makeNewActionWorkItemSetField() { //Actions setting Field Values from Work Item Result Parameters are always boolean (i.e. Limited Entry) in the table return new ActionWorkItemSetFieldCol52(); } private ActionWorkItemInsertFactCol52 makeNewActionWorkItemInsertFact() { //Actions setting Field Values from Work Item Result Parameters are always boolean (i.e. Limited Entry) in the table return new ActionWorkItemInsertFactCol52(); } private BRLActionColumn makeNewActionBRLFragment() { switch (guidedDecisionTable.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryBRLActionColumn(); default: return new BRLActionColumn(); } } private BRLConditionColumn makeNewConditionBRLFragment() { switch (guidedDecisionTable.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryBRLConditionColumn(); default: return new BRLConditionColumn(); } } }); return addButton; }
From source file:org.drools.workbench.screens.guided.dtable.client.widget.GuidedDecisionTableWidget.java
License:Apache License
private Widget newColumn() { AddButton addButton = new AddButton(); addButton.setText(GuidedDecisionTableConstants.INSTANCE.NewColumn()); addButton.setTitle(GuidedDecisionTableConstants.INSTANCE.AddNewColumn()); addButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent w) { final FormStylePopup pop = new FormStylePopup(GuidedDecisionTableConstants.INSTANCE.AddNewColumn()); //List of basic column types final ListBox choice = new ListBox(); choice.setVisibleItemCount(NewColumnTypes.values().length); choice.setWidth((Window.getClientWidth() * 0.25) + "px"); choice.addItem(GuidedDecisionTableConstants.INSTANCE.AddNewMetadataOrAttributeColumn(), NewColumnTypes.METADATA_ATTRIBUTE.name()); choice.addItem(SECTION_SEPARATOR); choice.addItem(GuidedDecisionTableConstants.INSTANCE.AddNewConditionSimpleColumn(), NewColumnTypes.CONDITION_SIMPLE.name()); choice.addItem(SECTION_SEPARATOR); choice.addItem(GuidedDecisionTableConstants.INSTANCE.SetTheValueOfAField(), NewColumnTypes.ACTION_UPDATE_FACT_FIELD.name()); choice.addItem(GuidedDecisionTableConstants.INSTANCE.SetTheValueOfAFieldOnANewFact(), NewColumnTypes.ACTION_INSERT_FACT_FIELD.name()); choice.addItem(GuidedDecisionTableConstants.INSTANCE.DeleteAnExistingFact(), NewColumnTypes.ACTION_RETRACT_FACT.name()); //Checkbox to include Advanced Action types final CheckBox chkIncludeAdvancedOptions = new CheckBox( SafeHtmlUtils.fromString(GuidedDecisionTableConstants.INSTANCE.IncludeAdvancedOptions())); chkIncludeAdvancedOptions.setValue(false); chkIncludeAdvancedOptions.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { if (chkIncludeAdvancedOptions.getValue()) { addItem(3, GuidedDecisionTableConstants.INSTANCE.AddNewConditionBRLFragment(), NewColumnTypes.CONDITION_BRL_FRAGMENT.name()); addItem(GuidedDecisionTableConstants.INSTANCE.WorkItemAction(), NewColumnTypes.ACTION_WORKITEM.name()); addItem(GuidedDecisionTableConstants.INSTANCE.WorkItemActionSetField(), NewColumnTypes.ACTION_WORKITEM_UPDATE_FACT_FIELD.name()); addItem(GuidedDecisionTableConstants.INSTANCE.WorkItemActionInsertFact(), NewColumnTypes.ACTION_WORKITEM_INSERT_FACT_FIELD.name()); addItem(GuidedDecisionTableConstants.INSTANCE.AddNewActionBRLFragment(), NewColumnTypes.ACTION_BRL_FRAGMENT.name()); } else { removeItem(NewColumnTypes.CONDITION_BRL_FRAGMENT.name()); removeItem(NewColumnTypes.ACTION_WORKITEM.name()); removeItem(NewColumnTypes.ACTION_WORKITEM_UPDATE_FACT_FIELD.name()); removeItem(NewColumnTypes.ACTION_WORKITEM_INSERT_FACT_FIELD.name()); removeItem(NewColumnTypes.ACTION_BRL_FRAGMENT.name()); }/*www .j a v a 2 s . co m*/ } private void addItem(int index, String item, String value) { for (int itemIndex = 0; itemIndex < choice.getItemCount(); itemIndex++) { if (choice.getValue(itemIndex).equals(value)) { return; } } choice.insertItem(item, value, index); } private void addItem(String item, String value) { for (int itemIndex = 0; itemIndex < choice.getItemCount(); itemIndex++) { if (choice.getValue(itemIndex).equals(value)) { return; } } choice.addItem(item, value); } private void removeItem(String value) { for (int itemIndex = 0; itemIndex < choice.getItemCount(); itemIndex++) { if (choice.getValue(itemIndex).equals(value)) { choice.removeItem(itemIndex); break; } } } }); //OK button to create column final ModalFooterOKCancelButtons footer = new ModalFooterOKCancelButtons(new Command() { @Override public void execute() { String s = choice.getValue(choice.getSelectedIndex()); if (s.equals(NewColumnTypes.METADATA_ATTRIBUTE.name())) { showMetaDataAndAttribute(); } else if (s.equals(NewColumnTypes.CONDITION_SIMPLE.name())) { showConditionSimple(); } else if (s.equals(NewColumnTypes.CONDITION_BRL_FRAGMENT.name())) { showConditionBRLFragment(); } else if (s.equals(NewColumnTypes.ACTION_UPDATE_FACT_FIELD.name())) { showActionSet(); } else if (s.equals(NewColumnTypes.ACTION_INSERT_FACT_FIELD.name())) { showActionInsert(); } else if (s.equals(NewColumnTypes.ACTION_RETRACT_FACT.name())) { showActionRetract(); } else if (s.equals(NewColumnTypes.ACTION_WORKITEM.name())) { showActionWorkItemAction(); } else if (s.equals(NewColumnTypes.ACTION_WORKITEM_UPDATE_FACT_FIELD.name())) { showActionWorkItemActionSet(); } else if (s.equals(NewColumnTypes.ACTION_WORKITEM_INSERT_FACT_FIELD.name())) { showActionWorkItemActionInsert(); } else if (s.equals(NewColumnTypes.ACTION_BRL_FRAGMENT.name())) { showActionBRLFragment(); } pop.hide(); } private void showMetaDataAndAttribute() { // show choice of attributes final Image image = GuidedDecisionTableImageResources508.INSTANCE.Config(); final FormStylePopup pop = new FormStylePopup(image, GuidedDecisionTableConstants.INSTANCE.AddAnOptionToTheRule()); final ListBox list = RuleAttributeWidget.getAttributeList(); //This attribute is only used for Decision Tables list.addItem(GuidedDecisionTable52.NEGATE_RULE_ATTR); // Remove any attributes already added for (AttributeCol52 col : model.getAttributeCols()) { for (int iItem = 0; iItem < list.getItemCount(); iItem++) { if (list.getItemText(iItem).equals(col.getAttribute())) { list.removeItem(iItem); break; } } } final Image addbutton = GuidedDecisionTableImageResources508.INSTANCE.NewItem(); final TextBox box = new TextBox(); box.setVisibleLength(15); list.setSelectedIndex(0); list.addChangeHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { AttributeCol52 attr = new AttributeCol52(); attr.setAttribute(list.getItemText(list.getSelectedIndex())); dtable.addColumn(attr); refreshAttributeWidget(); pop.hide(); } }); addbutton.setTitle(GuidedDecisionTableConstants.INSTANCE.AddMetadataToTheRule()); addbutton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent w) { String metadata = box.getText(); if (!isUnique(metadata)) { Window.alert(GuidedDecisionTableConstants.INSTANCE .ThatColumnNameIsAlreadyInUsePleasePickAnother()); return; } MetadataCol52 met = new MetadataCol52(); met.setHideColumn(true); met.setMetadata(metadata); dtable.addColumn(met); refreshAttributeWidget(); pop.hide(); } private boolean isUnique(String metadata) { for (MetadataCol52 mc : model.getMetadataCols()) { if (metadata.equals(mc.getMetadata())) { return false; } } return true; } }); DirtyableHorizontalPane horiz = new DirtyableHorizontalPane(); horiz.add(box); horiz.add(addbutton); pop.addAttribute(new StringBuilder(GuidedDecisionTableConstants.INSTANCE.Metadata1()) .append(GuidedDecisionTableConstants.COLON).toString(), horiz); pop.addAttribute(GuidedDecisionTableConstants.INSTANCE.Attribute(), list); pop.show(); } private void showConditionSimple() { final ConditionCol52 column = makeNewConditionColumn(); ConditionPopup dialog = new ConditionPopup(model, oracle, new ConditionColumnCommand() { public void execute(Pattern52 pattern, ConditionCol52 column) { //Update UI dtable.addColumn(pattern, column); refreshConditionsWidget(); } }, column, true, isReadOnly); dialog.show(); } private void showConditionBRLFragment() { final BRLConditionColumn column = makeNewConditionBRLFragment(); switch (model.getTableFormat()) { case EXTENDED_ENTRY: BRLConditionColumnViewImpl popup = new BRLConditionColumnViewImpl(path, model, oracle, ruleNameService, column, eventBus, true, isReadOnly); popup.setPresenter(BRL_CONDITION_PRESENTER); popup.show(); break; case LIMITED_ENTRY: LimitedEntryBRLConditionColumnViewImpl limtedEntryPopup = new LimitedEntryBRLConditionColumnViewImpl( path, model, oracle, ruleNameService, (LimitedEntryBRLConditionColumn) column, eventBus, true, isReadOnly); limtedEntryPopup.setPresenter(LIMITED_ENTRY_BRL_CONDITION_PRESENTER); limtedEntryPopup.show(); break; } } private void showActionInsert() { final ActionInsertFactCol52 afc = makeNewActionInsertColumn(); ActionInsertFactPopup ins = new ActionInsertFactPopup(model, oracle, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, afc, true, isReadOnly); ins.show(); } private void showActionSet() { final ActionSetFieldCol52 afc = makeNewActionSetColumn(); ActionSetFieldPopup set = new ActionSetFieldPopup(model, oracle, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, afc, true, isReadOnly); set.show(); } private void showActionRetract() { final ActionRetractFactCol52 arf = makeNewActionRetractFact(); ActionRetractFactPopup popup = new ActionRetractFactPopup(model, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, arf, true, isReadOnly); popup.show(); } private void showActionWorkItemAction() { final ActionWorkItemCol52 awi = makeNewActionWorkItem(); ActionWorkItemPopup popup = new ActionWorkItemPopup(path, model, GuidedDecisionTableWidget.this, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, awi, workItemDefinitions, true, isReadOnly); popup.show(); } private void showActionWorkItemActionSet() { final ActionWorkItemSetFieldCol52 awisf = makeNewActionWorkItemSetField(); ActionWorkItemSetFieldPopup popup = new ActionWorkItemSetFieldPopup(model, oracle, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, awisf, true, isReadOnly); popup.show(); } private void showActionWorkItemActionInsert() { final ActionWorkItemInsertFactCol52 awiif = makeNewActionWorkItemInsertFact(); ActionWorkItemInsertFactPopup popup = new ActionWorkItemInsertFactPopup(model, oracle, new GenericColumnCommand() { public void execute(DTColumnConfig52 column) { newActionAdded((ActionCol52) column); } }, awiif, true, isReadOnly); popup.show(); } private void showActionBRLFragment() { final BRLActionColumn column = makeNewActionBRLFragment(); switch (model.getTableFormat()) { case EXTENDED_ENTRY: BRLActionColumnViewImpl popup = new BRLActionColumnViewImpl(path, model, oracle, ruleNameService, column, eventBus, true, isReadOnly); popup.setPresenter(BRL_ACTION_PRESENTER); popup.show(); break; case LIMITED_ENTRY: LimitedEntryBRLActionColumnViewImpl limtedEntryPopup = new LimitedEntryBRLActionColumnViewImpl( path, model, oracle, ruleNameService, (LimitedEntryBRLActionColumn) column, eventBus, true, isReadOnly); limtedEntryPopup.setPresenter(LIMITED_ENTRY_BRL_ACTION_PRESENTER); limtedEntryPopup.show(); break; } } private void newActionAdded(ActionCol52 column) { dtable.addColumn(column); refreshActionsWidget(); } }, new Command() { @Override public void execute() { pop.hide(); } }); //If a separator is clicked disable OK button choice.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { int itemIndex = choice.getSelectedIndex(); if (itemIndex < 0) { return; } footer.enableOkButton(!choice.getValue(itemIndex).equals(SECTION_SEPARATOR)); } }); pop.setTitle(GuidedDecisionTableConstants.INSTANCE.AddNewColumn()); pop.addAttribute(GuidedDecisionTableConstants.INSTANCE.TypeOfColumn(), choice); pop.addAttribute("", chkIncludeAdvancedOptions); pop.add(footer); pop.show(); } private ConditionCol52 makeNewConditionColumn() { switch (model.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryConditionCol52(); default: return new ConditionCol52(); } } private ActionInsertFactCol52 makeNewActionInsertColumn() { switch (model.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryActionInsertFactCol52(); default: return new ActionInsertFactCol52(); } } private ActionSetFieldCol52 makeNewActionSetColumn() { switch (model.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryActionSetFieldCol52(); default: return new ActionSetFieldCol52(); } } private ActionRetractFactCol52 makeNewActionRetractFact() { switch (model.getTableFormat()) { case LIMITED_ENTRY: LimitedEntryActionRetractFactCol52 ler = new LimitedEntryActionRetractFactCol52(); ler.setValue(new DTCellValue52("")); return ler; default: return new ActionRetractFactCol52(); } } private ActionWorkItemCol52 makeNewActionWorkItem() { //WorkItems are defined within the column and always boolean (i.e. Limited Entry) in the table return new ActionWorkItemCol52(); } private ActionWorkItemSetFieldCol52 makeNewActionWorkItemSetField() { //Actions setting Field Values from Work Item Result Parameters are always boolean (i.e. Limited Entry) in the table return new ActionWorkItemSetFieldCol52(); } private ActionWorkItemInsertFactCol52 makeNewActionWorkItemInsertFact() { //Actions setting Field Values from Work Item Result Parameters are always boolean (i.e. Limited Entry) in the table return new ActionWorkItemInsertFactCol52(); } private BRLActionColumn makeNewActionBRLFragment() { switch (model.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryBRLActionColumn(); default: return new BRLActionColumn(); } } private BRLConditionColumn makeNewConditionBRLFragment() { switch (model.getTableFormat()) { case LIMITED_ENTRY: return new LimitedEntryBRLConditionColumn(); default: return new BRLConditionColumn(); } } }); return addButton; }
From source file:org.eclipse.che.ide.ext.datasource.client.editdatasource.celllist.DatasourceCell.java
License:Open Source License
@Override public void render(final Context context, final DatabaseConfigurationDTO value, final SafeHtmlBuilder sb) { if (value == null) { return;// w w w . j a v a 2s .c o m } final SafeHtml id = SafeHtmlUtils.fromString(value.getDatasourceId()); final String connectorId = value.getConfigurationConnectorId(); // for old datasources, the connector id was not recorded NewDatasourceConnector connector = this.connectorAgent.getConnector(connectorId); String dbType; if (connector != null) { dbType = connector.getTitle(); } else { dbType = value.getDatabaseType().toString(); } final SafeHtml type = SafeHtmlUtils.fromString(dbType); sb.append(this.template.datasourceItem(id, this.style.datasourceIdStyle(), type, this.style.datasourceTypeStyle(), this.style.datasourceIdCellStyle(), this.style.datasourceTypeCellStyle())); }
From source file:org.eclipse.che.ide.ext.github.client.importer.page.GithubImporterPageViewImpl.java
License:Open Source License
/** * Creates table what contains list of available repositories. * * @param resources//from ww w.jav a 2s. c o m */ private void createRepositoriesTable(final Resources resources, GitHubLocalizationConstant locale) { repositories = new CellTable<>(15, resources); Column<ProjectData, ImageResource> iconColumn = new Column<ProjectData, ImageResource>( new ImageResourceCell()) { @Override public ImageResource getValue(ProjectData item) { return null; } }; Column<ProjectData, SafeHtml> repositoryColumn = new Column<ProjectData, SafeHtml>(new SafeHtmlCell()) { @Override public SafeHtml getValue(final ProjectData item) { return SafeHtmlUtils.fromString(item.getName()); } }; Column<ProjectData, SafeHtml> descriptionColumn = new Column<ProjectData, SafeHtml>(new SafeHtmlCell()) { @Override public SafeHtml getValue(final ProjectData item) { return new SafeHtmlBuilder().appendHtmlConstant("<span>").appendEscaped(item.getDescription()) .appendHtmlConstant("</span>").toSafeHtml(); } }; repositories.addColumn(iconColumn, SafeHtmlUtils.fromSafeConstant("<br/>")); repositories.setColumnWidth(iconColumn, 28, Style.Unit.PX); repositories.addColumn(repositoryColumn, locale.samplesListRepositoryColumn()); repositories.addColumn(descriptionColumn, locale.samplesListDescriptionColumn()); // don't show loading indicator repositories.setLoadingIndicator(null); final SingleSelectionModel<ProjectData> selectionModel = new SingleSelectionModel<>(); selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { @Override public void onSelectionChange(SelectionChangeEvent event) { ProjectData selectedObject = selectionModel.getSelectedObject(); delegate.onRepositorySelected(selectedObject); } }); repositories.setSelectionModel(selectionModel); }
From source file:org.eclipse.che.plugin.tour.client.html.CustomImage.java
License:Open Source License
/** * Add the markdown images from the given text * @param text the text to parse// w w w .j ava 2s. c om * @return the string with images added inside */ public String addImages(String text) { RegExp REGEXP_IMAGES = RegExp.compile("!\\[(.*?)\\]\\((.+?)\\)", "g"); RegExp REGEXP_IMAGE_DETAIL = RegExp.compile("(.*?)\\s*=\\s*(\\d+)x(\\d*)", "g"); //Image format :  MatchResult matchResult = REGEXP_IMAGES.exec(text); if (matchResult != null && matchResult.getGroupCount() == 3) { String alt = matchResult.getGroup(1); String uri = matchResult.getGroup(2); int width = -1; int height = -1; MatchResult imgDetails = REGEXP_IMAGE_DETAIL.exec(uri); if (imgDetails != null && imgDetails.getGroupCount() == 4) { uri = imgDetails.getGroup(1); width = Integer.parseInt(imgDetails.getGroup(2)); String valHeight = imgDetails.getGroup(3); if (!valHeight.isEmpty()) { height = Integer.parseInt(imgDetails.getGroup(3)); } } StringBuilder imageData = new StringBuilder(); imageData.append("<img src='"); imageData.append(UriUtils.sanitizeUri(uri)); imageData.append("' alt='"); imageData.append(SafeHtmlUtils.fromString(alt).asString()); imageData.append("'"); if (width != -1) { imageData.append(" width='"); imageData.append(width); imageData.append("'"); } if (height != -1) { imageData.append(" height='"); imageData.append(height); imageData.append("'"); } imageData.append(" />"); return text.replace(matchResult.getGroup(0), imageData.toString()); } return text; }
From source file:org.eclipse.emf.edit.ui.EditorEntryPoint.java
License:Open Source License
public void onModuleLoad() { ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(); composedAdapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory()); configureItemProviderAdapterFactories(composedAdapterFactory); composedAdapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); final BasicCommandStack commandStack = new BasicCommandStack(); final AdapterFactoryEditingDomain editingDomain = new AdapterFactoryEditingDomain(composedAdapterFactory, commandStack);// w w w . j a v a 2 s .c om final ResourceSet resourceSet = editingDomain.getResourceSet(); resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap() .put(Resource.Factory.Registry.DEFAULT_EXTENSION, new ResourceFactoryImpl() { @Override public Resource createResource(URI uri) { return new BinaryResourceImpl(uri); } }); final URIServiceAsync uriService = GWT.create(URIService.class); URIServiceCallback uriServiceCallback = new URIServiceCallback(uriService); resourceSet.getURIConverter().getURIHandlers().add(uriServiceCallback); final List<Resource> originalResources = new ArrayList<Resource>(); Resource listingResource = resourceSet.getResource(URI.createURI("datastore:/"), new Callback<Resource>() { public void onFailure(Throwable caught) { System.err.println("Failed"); caught.printStackTrace(); } public void onSuccess(Resource result) { EAnnotation eAnnotation = (EAnnotation) result.getContents().get(0); for (Map.Entry<String, String> entry : eAnnotation.getDetails()) { resourceSet.createResource(URI.createURI(entry.getKey())); } originalResources.clear(); originalResources.addAll(resourceSet.getResources()); } }); resourceSet.getResources().remove(listingResource); registerPackages(resourceSet.getPackageRegistry()); final AdapterFactoryItemDelegator itemDelegator = new AdapterFactoryItemDelegator(composedAdapterFactory); DockLayoutPanel mainPanel = new DockLayoutPanel(Unit.PX); mainPanel.setStyleName("Main", true); mainPanel.setHeight("100%"); FlowPanel headerPanel = new FlowPanel(); headerPanel.setStyleName("Header", true); final Label header = new Label(getApplicationTitle()); header.setStyleName("HeaderLabel", true); headerPanel.add(header); mainPanel.addNorth(headerPanel, 56.0); DockLayoutPanel bodyPanel = new DockLayoutPanel(Unit.PX); bodyPanel.setStyleName("Body", true); bodyPanel.setHeight("100%"); mainPanel.add(bodyPanel); FlowPanel toolBar = new FlowPanel(); toolBar.setStyleName("ToolBar", true); SplitLayoutPanel contentPanel = new SplitLayoutPanel(); contentPanel.setStyleName("Content", true); DockLayoutPanel propertiesPanel = new DockLayoutPanel(Unit.PX); propertiesPanel.setStyleName("Properties", true); propertiesPanel.setHeight("100%"); FlowPanel propertiesTitlePanel = new FlowPanel(); propertiesTitlePanel.setStyleName("PropertiesTitle", true); final Label title = new Label("Properties"); title.setStyleName("PropertiesTitleLabel", true); propertiesTitlePanel.add(title); propertiesPanel.addNorth(propertiesTitlePanel, 28.0); final Grid properties = new Grid(); properties.setWidth("100%"); ScrollPanel propertiesScrollPanel = new ScrollPanel(); propertiesScrollPanel.add(properties); propertiesPanel.add(propertiesScrollPanel); final Button createButton = new Button(); createButton.setText("Create..."); createButton.setStyleName("ToolBarButtonLeftMargin"); toolBar.add(createButton); final Button deleteButton = new Button(); deleteButton.setText("Delete"); final CommandHandler deleteCommandHandler = new CommandHandler(editingDomain, deleteButton) { @Override public Command createCommand(Object value) { if (value instanceof Resource) { final Resource resource = (Resource) value; final Command deleteContentsCommand = DeleteCommand.create(editingDomain, resource.getContents()); final RemoveCommand removeResourceCommand = new RemoveCommand(editingDomain, resourceSet.getResources(), resource); return new CompoundCommand() { @Override protected boolean prepare() { return true; } @Override public void execute() { appendAndExecute(deleteContentsCommand); appendAndExecute(removeResourceCommand); } }; } else { return DeleteCommand.create(editingDomain, value); } } }; deleteButton.setStyleName("ToolBarButton"); toolBar.add(deleteButton); final Button validateButton = new Button(); validateButton.setText("Validate"); validateButton.setStyleName("ToolBarButtonLeftMargin"); toolBar.add(validateButton); final Button saveButton = new Button(); saveButton.setText("Save"); saveButton.setStyleName("ToolBarButton"); toolBar.add(saveButton); final Button undoButton = new Button(); undoButton.setText("Undo"); undoButton.setStyleName("ToolBarButtonLeftMargin"); toolBar.add(undoButton); final Button redoButton = new Button(); redoButton.setText("Redo"); redoButton.setStyleName("ToolBarButton"); toolBar.add(redoButton); final Button cutButton = new Button(); cutButton.setText("Cut"); final CommandHandler cutCommandHandler = new CommandHandler(editingDomain, cutButton) { @Override public Command createCommand(Object value) { return CutToClipboardCommand.create(editingDomain, value); } }; cutButton.setStyleName("ToolBarButtonLeftMargin"); toolBar.add(cutButton); final Button copyButton = new Button(); copyButton.setText("Copy"); final CommandHandler copyCommandHandler = new CommandHandler(editingDomain, copyButton) { @Override public Command createCommand(Object value) { return value instanceof EObject ? CopyToClipboardCommand.create(editingDomain, value) : UnexecutableCommand.INSTANCE; } }; copyButton.setStyleName("ToolBarButton"); toolBar.add(copyButton); final Button pasteButton = new Button(); pasteButton.setText("Paste"); final CommandHandler pasteCommandHandler = new CommandHandler(editingDomain, pasteButton) { @Override public Command createCommand(Object value) { return PasteFromClipboardCommand.create(editingDomain, value, null); } }; pasteButton.setStyleName("ToolBarButton"); toolBar.add(pasteButton); final Button upButton = new Button(); upButton.setText("Up ^"); final CommandHandler upCommandHandler = new CommandHandler(editingDomain, upButton) { @Override public Command createCommand(Object value) { Object owner = editingDomain.getParent(value); if (owner != null) { List<?> children = new ArrayList<Object>(editingDomain.getChildren(owner)); int index = children.indexOf(value); if (index != -1) { return MoveCommand.create(editingDomain, owner, null, value, index - 1); } } return UnexecutableCommand.INSTANCE; } }; upButton.setStyleName("ToolBarButtonLeftMargin"); toolBar.add(upButton); final Button downButton = new Button(); downButton.setText("Down v"); final CommandHandler downCommandHandler = new CommandHandler(editingDomain, downButton) { @Override public Command createCommand(Object value) { Object owner = editingDomain.getParent(value); if (owner != null) { List<?> children = new ArrayList<Object>(editingDomain.getChildren(owner)); int index = children.indexOf(value); if (index != -1) { return MoveCommand.create(editingDomain, owner, null, value, index + 1); } } return UnexecutableCommand.INSTANCE; } }; downButton.setStyleName("ToolBarButton"); toolBar.add(downButton); final Button navigateButton = new Button(); navigateButton.setText("Navigate"); navigateButton.setEnabled(false); navigateButton.setStyleName("ToolBarButtonLeftMargin"); toolBar.add(navigateButton); final SingleSelectionModel<Object> treeSelection = new SingleSelectionModel<Object>(); final Collection<Runnable> propertyUpdater = new HashSet<Runnable>(); TreeViewModel treeViewModel = new TreeViewModel() { public <T> NodeInfo<?> getNodeInfo(final T value) { final ListDataProvider<Object> abstractListViewAdapter = new ListDataProvider<Object>() { int size; class NodeAdapter extends AdapterImpl implements INotifyChangedListener { Set<Object> children = new HashSet<Object>(); @Override public void notifyChanged(Notification msg) { if (msg.getEventType() != Notification.REMOVING_ADAPTER) { update(); if (!(msg.getNotifier() instanceof EObject)) { for (Runnable runnable : propertyUpdater) { runnable.run(); } } } } public void listenTo(Object target) { if (target instanceof Notifier) { ((Notifier) target).eAdapters().add(this); } else if (target instanceof IChangeNotifier) { ((IChangeNotifier) target).addListener(this); } } public void stopListeningTo(Object target) { if (target instanceof Notifier) { ((Notifier) target).eAdapters().remove(this); } else if (target instanceof IChangeNotifier) { ((IChangeNotifier) target).removeListener(this); } } public void listenTo(List<Object> children) { // TODO // I don't know how to update just one child. :-( boolean isListeningToValue = !this.children.isEmpty(); Set<Object> oldChildren = new HashSet<Object>(this.children); for (Object child : children) { if (this.children.contains(child)) { oldChildren.remove(child); } else { this.children.add(child); listenTo(child); } } for (Object child : oldChildren) { stopListeningTo(child); this.children.remove(child); } if (isListeningToValue) { if (children.isEmpty()) { stopListeningTo(value); } } else if (!children.isEmpty()) { listenTo(value); } } } protected NodeAdapter nodeAdapter = new NodeAdapter(); @Override protected void onRangeChanged(HasData<Object> display) { if (value instanceof Resource) { Resource resource = (Resource) value; if (!resource.isLoaded()) { try { resource.load(resourceSet.getLoadOptions()); } catch (IOException e) { // Ignore. } } } update(); } protected void update() { Collection<?> children = itemDelegator.getChildren(value); ArrayList<Object> childrenList = new ArrayList<Object>(children); nodeAdapter.listenTo(childrenList); int size = children.size(); if (this.size < size) { updateRowCount(size, true); this.size = size; } else { // Pad with dummy objects. for (int i = size; i < this.size; ++i) { childrenList.add(new Object()); } } updateRowData(0, childrenList); if (this.size > size) { updateRowCount(size, true); this.size = size; } } }; Cell<Object> cell = new AbstractCell<Object>() { @Override public void render(Context context, Object value, SafeHtmlBuilder safeHtmlBuilder) { StringBuilder sb = new StringBuilder(); Object image = itemDelegator.getImage(value); if (image instanceof ImageResource) { ImageResource imageResource = (ImageResource) image; sb.append("<div style='position:relative;padding-left:"); sb.append(imageResource.getWidth() + 6); sb.append("px;'>"); sb.append("<div style=\"position:absolute;left:0px;top:0px;height:100%;"); sb.append("width:").append(imageResource.getWidth()).append("px;"); sb.append("background:url('").append(imageResource.getSafeUri()).append("') "); sb.append("no-repeat scroll center center transparent;"); sb.append("\"></div>"); sb.append(itemDelegator.getText(value)); sb.append("</div>"); } else if (image instanceof ComposedImage) { ComposedImage composedImage = (ComposedImage) image; List<ComposedImage.Size> sizes = new ArrayList<ComposedImage.Size>(); List<Object> images = new ArrayList<Object>(composedImage.getImages()); List<ImageData> nestedImagesData = new ArrayList<ImageData>(); for (Object nestedImage : images) { ImageData nestedImageData = getImageData(nestedImage); ComposedImage.Size size = new ComposedImage.Size(); size.height = nestedImageData.height; size.width = nestedImageData.width; sizes.add(size); nestedImagesData.add(nestedImageData); } ComposedImage.Size size = composedImage.getSize(sizes); sb.append("<div style='position:relative;padding-left:"); sb.append(size.width + 6); sb.append("px;'>"); List<ComposedImage.Point> drawPoints = composedImage.getDrawPoints(size); int i = 0; for (ComposedImage.Point drawPoint : drawPoints) { ImageResource nestedImage = (ImageResource) images.get(i++); sb.append("<div style=\"position:absolute;left:").append(drawPoint.x) .append("px;top:").append(drawPoint.y).append("px;height:100%;"); sb.append("width:").append(nestedImage.getWidth()).append("px;"); sb.append("background:url('").append(nestedImage.getSafeUri()).append("') "); sb.append("no-repeat scroll center center transparent;"); sb.append("\"></div>"); } sb.append(itemDelegator.getText(value)); sb.append("</div>"); } else { sb.append(itemDelegator.getText(value)); } safeHtmlBuilder.appendHtmlConstant(sb.toString()); } }; return new DefaultNodeInfo<Object>(abstractListViewAdapter, cell, treeSelection, null); } public boolean isLeaf(Object value) { return !itemDelegator.hasChildren(value); } }; treeSelection.setSelected(resourceSet, true); final MyCellTree cellTree = new MyCellTree(treeViewModel, new ItemProvider(Collections.singleton(resourceSet))); ScrollPanel treeScrollPanel = new ScrollPanel(); treeScrollPanel.add(cellTree); class NavigationListener { Object selection; { navigateButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { final Object oldSelection = treeSelection.getSelectedObject(); Object newSelection = selection; cellTree.expand(editingDomain.getTreePath(editingDomain.getParent(newSelection))); treeSelection.setSelected(newSelection, true); Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() { public void execute() { setSelection(oldSelection); } }); } }); } public void listenTo(final ListBox listBox, final List<?> values) { listBox.addFocusHandler(new FocusHandler() { protected HandlerRegistration changeHandlerRegistration; { listBox.addBlurHandler(new BlurHandler() { public void onBlur(BlurEvent event) { if (changeHandlerRegistration != null) { changeHandlerRegistration.removeHandler(); changeHandlerRegistration = null; } } }); } public void onFocus(FocusEvent event) { updateSelection(); changeHandlerRegistration = listBox.addChangeHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { updateSelection(); } }); } void updateSelection() { int selectedIndex = listBox.getSelectedIndex(); setSelection(selectedIndex == -1 || selectedIndex >= values.size() ? null : values.get(selectedIndex)); } }); } protected void setSelection(Object object) { if (object != selection) { selection = object; navigateButton.setEnabled(selection != null); } } } final NavigationListener navigationListener = new NavigationListener(); treeSelection.addSelectionChangeHandler(new SelectionChangeEvent.Handler() { protected Object oldSelection; public void onSelectionChange(SelectionChangeEvent event) { final Object object = treeSelection.getSelectedObject(); deleteCommandHandler.setSelection(object); cutCommandHandler.setSelection(object); pasteCommandHandler.setSelection(object); copyCommandHandler.setSelection(object); upCommandHandler.setSelection(object); downCommandHandler.setSelection(object); createButton.setEnabled(object instanceof Resource || object instanceof ResourceSet || !editingDomain.getNewChildDescriptors(object, null).isEmpty()); if (oldSelection == object) { for (Runnable runnable : propertyUpdater) { runnable.run(); } } else { navigationListener.setSelection(null); oldSelection = object; List<IItemPropertyDescriptor> propertyDescriptors = itemDelegator .getPropertyDescriptors(object); if (propertyDescriptors != null) { properties.clear(); propertyUpdater.clear(); int size = propertyDescriptors.size(); properties.resize(size, 2); properties.getColumnFormatter().setWidth(0, "10%"); properties.getColumnFormatter().setWidth(1, "90%"); for (int i = 0; i < size; ++i) { final IItemPropertyDescriptor propertyDescriptor = propertyDescriptors.get(i); properties.setText(i, 0, propertyDescriptor.getDisplayName(object)); Widget widget = null; final IItemLabelProvider itemLabelProvider = propertyDescriptor .getLabelProvider(object); final Object feature = propertyDescriptor.getFeature(object); if (feature instanceof EReference[]) { final ItemPropertyDescriptorFeatureEditor dialog = new ItemPropertyDescriptorFeatureEditor( object, true, propertyDescriptor) { @Override protected void hook(ListBox listBox, List<?> values) { navigationListener.listenTo(listBox, values); } }; dialog.update(); widget = dialog; propertyUpdater.add(new Runnable() { public void run() { dialog.update(); } }); } else if (feature instanceof EStructuralFeature) { final EStructuralFeature eStructureFeature = (EStructuralFeature) feature; final EClassifier eType = eStructureFeature.getEType(); final Collection<?> choiceOfValues = propertyDescriptor.getChoiceOfValues(object); if (choiceOfValues != null) { final List<?> listOfValues = new ArrayList<Object>( propertyDescriptor.getChoiceOfValues(object)); if (propertyDescriptor.isMany(object)) { boolean valid = true; for (Object choice : choiceOfValues) { if (!eType.isInstance(choice)) { valid = false; break; } } if (valid) { final ItemPropertyDescriptorFeatureEditor dialog = new ItemPropertyDescriptorFeatureEditor( object, true, propertyDescriptor) { @Override protected void hook(ListBox listBox, List<?> values) { navigationListener.listenTo(listBox, values); } }; dialog.update(); widget = dialog; propertyUpdater.add(new Runnable() { public void run() { dialog.update(); } }); } } if (widget == null) { final ListBox listBox = new ListBox(); widget = listBox; listBox.setVisibleItemCount(1); Runnable runnable = new Runnable() { public void run() { listBox.clear(); navigationListener.listenTo(listBox, listOfValues); Object propertyValue = itemDelegator.getEditableValue( propertyDescriptor.getPropertyValue(object)); for (Object value : choiceOfValues) { listBox.addItem(itemLabelProvider.getText(value)); if (value == null ? propertyValue == null : value.equals(propertyValue)) { listBox.setSelectedIndex(listBox.getItemCount() - 1); } } } }; listBox.addChangeHandler(new ChangeHandler() { public void onChange(ChangeEvent event) { Object value = listOfValues.get(listBox.getSelectedIndex()); propertyDescriptor.setPropertyValue(object, value); } }); runnable.run(); propertyUpdater.add(runnable); } } else if (eType instanceof EDataType) { final EDataType eDataType = (EDataType) eType; if (eDataType.isSerializable()) { if (propertyDescriptor.isMany(object)) { final ItemPropertyDescriptorFeatureEditor dialog = new ItemPropertyDescriptorFeatureEditor( object, propertyDescriptor) { @Override protected void hook(ListBox listBox, List<?> values) { navigationListener.listenTo(listBox, values); } }; dialog.update(); widget = dialog; propertyUpdater.add(new Runnable() { public void run() { dialog.update(); } }); } else { if (eDataType.getInstanceClass() == Date.class) { final DateBox dateBox = new DateBox(); widget = dateBox; Runnable runnable = new Runnable() { public void run() { Object propertyValue = itemDelegator.getEditableValue( propertyDescriptor.getPropertyValue(object)); dateBox.setValue((Date) propertyValue); } }; dateBox.addValueChangeHandler(new ValueChangeHandler<Date>() { public void onValueChange(ValueChangeEvent<Date> event) { propertyDescriptor.setPropertyValue(object, event.getValue()); } }); runnable.run(); propertyUpdater.add(runnable); } else if (eDataType.getInstanceClass() == Boolean.class || eDataType.getInstanceClass() == boolean.class) { final CheckBox checkBox = new CheckBox(); widget = checkBox; Runnable runnable = new Runnable() { public void run() { Object propertyValue = itemDelegator.getEditableValue( propertyDescriptor.getPropertyValue(object)); checkBox.setValue(Boolean.TRUE.equals(propertyValue)); } }; checkBox.addValueChangeHandler(new ValueChangeHandler<Boolean>() { public void onValueChange(ValueChangeEvent<Boolean> event) { propertyDescriptor.setPropertyValue(object, event.getValue()); } }); runnable.run(); propertyUpdater.add(runnable); } else if (propertyDescriptor.isMultiLine(object)) { final TextArea textArea = new TextArea(); widget = textArea; Runnable runnable = new Runnable() { public void run() { Object propertyValue = itemDelegator.getEditableValue( propertyDescriptor.getPropertyValue(object)); textArea.setText(EcoreUtil.convertToString(eDataType, propertyValue)); } }; textArea.addValueChangeHandler(new ValueChangeHandler<String>() { public void onValueChange(ValueChangeEvent<String> event) { propertyDescriptor.setPropertyValue(object, EcoreUtil .createFromString(eDataType, event.getValue())); } }); runnable.run(); propertyUpdater.add(runnable); } else { final TextBox textBox = new TextBox(); widget = textBox; textBox.addValueChangeHandler(new ValueChangeHandler<String>() { public void onValueChange(ValueChangeEvent<String> event) { String value = event.getValue(); propertyDescriptor.setPropertyValue(object, EcoreUtil.createFromString(eDataType, value)); // TOD0 // commandStack.execute(SetCommand.create(editingDomain, object, feature, EcoreUtil.createFromString(eDataType, value))); } }); Runnable runnable = new Runnable() { public void run() { Object propertyValue = itemDelegator.getEditableValue( propertyDescriptor.getPropertyValue(object)); String stringValue = EcoreUtil.convertToString(eDataType, propertyValue); if (!textBox.getText().equals(stringValue)) { textBox.setText(stringValue); } } }; runnable.run(); propertyUpdater.add(runnable); } } } } } else { final TextBox textBox = new TextBox(); widget = textBox; textBox.addValueChangeHandler(new ValueChangeHandler<String>() { public void onValueChange(ValueChangeEvent<String> event) { String value = event.getValue(); propertyDescriptor.setPropertyValue(object, value); } }); Runnable runnable = new Runnable() { public void run() { Object propertyValue = itemDelegator .getEditableValue(propertyDescriptor.getPropertyValue(object)); String stringValue = propertyValue == null ? null : propertyDescriptor.getLabelProvider(object) .getText(propertyValue); if (!textBox.getText().equals(stringValue)) { textBox.setText(stringValue); } } }; runnable.run(); propertyUpdater.add(runnable); } if (widget != null) { widget.setWidth("95%"); properties.setWidget(i, 1, widget); if (!propertyDescriptor.canSetProperty(object) && widget instanceof FocusWidget) { ((FocusWidget) widget).setEnabled(false); } } } } } } }); contentPanel.addWest(treeScrollPanel, 400); contentPanel.add(propertiesPanel); bodyPanel.addNorth(toolBar, 28.0); bodyPanel.add(contentPanel); RootPanel.get("main").add(mainPanel); createButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { Object selection = treeSelection.getSelectedObject(); if (selection instanceof ResourceSet) { final DialogBox dialogBox = new DialogBox(); dialogBox.setText("Create Resource"); final Button okButton = new Button("OK"); final Button cancelButton = new Button("Cancel"); VerticalPanel verticalPanel = new VerticalPanel(); Grid grid = new Grid(); grid.setWidth("50em"); grid.resize(3, 2); grid.getColumnFormatter().setWidth(0, "15%"); grid.getColumnFormatter().setWidth(1, "85%"); Label uriLabel = new Label(); uriLabel.setText("URI"); final TextBox uriText = new TextBox(); uriText.setWidth("90%"); int count = 1; while (resourceSet.getResource(URI.createURI("datastore:/resource" + count), false) != null) { ++count; } uriText.setValue("datastore:/resource" + count); uriText.selectAll(); final Label message = new Label(); uriText.addValueChangeHandler(new ValueChangeHandler<String>() { public void onValueChange(ValueChangeEvent<String> event) { String value = event.getValue(); try { if (resourceSet.getResource(URI.createURI(value), false) != null) { message.setText("This URI a duplicate"); okButton.setEnabled(false); } else { message.setText(""); okButton.setEnabled(true); } } catch (RuntimeException exception) { message.setText("This URI is not a well formed"); okButton.setEnabled(false); } } }); grid.setWidget(0, 0, uriLabel); grid.setWidget(0, 1, uriText); verticalPanel.add(grid); grid.setWidget(1, 1, message); grid.setWidget(2, 0, okButton); grid.setWidget(2, 1, cancelButton); dialogBox.setWidget(verticalPanel); dialogBox.show(); uriText.setFocus(true); // dialogBox.setWidth("50em"); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { dialogBox.hide(); commandStack.execute(new AbstractCommand() { Collection<?> affectedObjects; Resource resource; @Override protected boolean prepare() { return true; } public void redo() { resourceSet.getResources().add(resource); affectedObjects = Collections.singleton(resource); } @Override public void undo() { resourceSet.getResources().remove(resource); affectedObjects = Collections.singleton(resourceSet); } public void execute() { resource = resourceSet.createResource(URI.createURI(uriText.getValue())); resource.getContents().clear(); affectedObjects = Collections.singleton(resource); } @Override public Collection<?> getAffectedObjects() { return affectedObjects; } }); } }); cancelButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { dialogBox.hide(); } }); } else if (selection instanceof Resource) { final Resource resource = (Resource) selection; final DialogBox dialogBox = new DialogBox(); dialogBox.setText("Create Object"); final ListBox listBox = new ListBox(); listBox.setVisibleItemCount(1); Registry packageRegistry = resourceSet.getPackageRegistry(); for (String nsURI : packageRegistry.keySet()) { EPackage ePackage = packageRegistry.getEPackage(nsURI); for (EClassifier eClassifier : ePackage.getEClassifiers()) { if (eClassifier instanceof EClass) { EClass eClass = (EClass) eClassifier; if (!eClass.isAbstract()) { EObject eObject = EcoreUtil.create(eClass); listBox.addItem("New " + itemDelegator.getText(eObject), EcoreUtil.getURI(eClass).toString()); } } } } final Button okButton = new Button("OK"); final Button cancelButton = new Button("Cancel"); VerticalPanel verticalPanel = new VerticalPanel(); Grid grid = new Grid(); grid.setWidth("50em"); grid.resize(2, 2); grid.getColumnFormatter().setWidth(0, "15%"); grid.getColumnFormatter().setWidth(1, "85%"); Label classLabel = new Label(); classLabel.setText("Class"); grid.setWidget(0, 0, classLabel); grid.setWidget(0, 1, listBox); verticalPanel.add(grid); // verticalPanel.add(okButton); grid.setWidget(1, 0, okButton); grid.setWidget(1, 1, cancelButton); dialogBox.setWidget(verticalPanel); dialogBox.show(); listBox.setFocus(true); // dialogBox.setWidth("50em"); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { dialogBox.hide(); commandStack.execute(new AbstractCommand() { EObject eObject; Collection<?> affectedObjects; @Override protected boolean prepare() { return true; } public void redo() { resource.getContents().add(eObject); affectedObjects = Collections.singleton(eObject); } @Override public void undo() { resource.getContents().remove(eObject); affectedObjects = Collections.singleton(resource); } public void execute() { eObject = EcoreUtil.create((EClass) resourceSet.getEObject( URI.createURI(listBox.getValue(listBox.getSelectedIndex())), false)); resource.getContents().add(eObject); affectedObjects = Collections.singleton(eObject); } @Override public Collection<?> getAffectedObjects() { return affectedObjects; } }); } }); cancelButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { dialogBox.hide(); } }); } else { Collection<?> newChildDescriptors = editingDomain.getNewChildDescriptors(selection, null); final DialogBox dialogBox = new DialogBox(); dialogBox.setText("Create Object"); final ListBox listBox = new ListBox(); final List<Command> commands = new ArrayList<Command>(); listBox.setVisibleItemCount(1); for (Object descriptor : newChildDescriptors) { Command command = CreateChildCommand.create(editingDomain, selection, descriptor, Collections.singleton(selection)); commands.add(command); listBox.addItem(command.getLabel()); } final Button okButton = new Button("OK"); final Button cancelButton = new Button("Cancel"); VerticalPanel verticalPanel = new VerticalPanel(); Grid grid = new Grid(); grid.setWidth("50em"); grid.resize(2, 2); grid.getColumnFormatter().setWidth(0, "15%"); grid.getColumnFormatter().setWidth(1, "85%"); Label classLabel = new Label(); classLabel.setText("Class"); grid.setWidget(0, 0, classLabel); grid.setWidget(0, 1, listBox); verticalPanel.add(grid); // verticalPanel.add(okButton); grid.setWidget(1, 0, okButton); grid.setWidget(1, 1, cancelButton); dialogBox.setWidget(verticalPanel); dialogBox.show(); listBox.setFocus(true); // dialogBox.setWidth("50em"); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { dialogBox.hide(); commandStack.execute(commands.get(listBox.getSelectedIndex())); } }); cancelButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { dialogBox.hide(); } }); } } }); saveButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { EList<Resource> resources = resourceSet.getResources(); for (Resource resource : resources) { try { if (resource.isLoaded()) { Map<String, Object> options = null; if (originalResources.contains(resource)) { options = new HashMap<String, Object>(); options.put(URIConverter.OPTION_UPDATE_ONLY_IF_TIME_STAMP_MATCHES, resource.getTimeStamp()); } resource.save(options, new Callback<Resource>() { public void onFailure(Throwable caught) { final DialogBox dialogBox = new DialogBox(); dialogBox.setText("Save conflict"); final Button okButton = new Button("OK"); final Tree tree = new Tree(); tree.addItem(SafeHtmlUtils.fromString(caught.getLocalizedMessage())); Grid grid = new Grid(); grid.setWidth("150em"); grid.resize(2, 1); grid.setWidget(0, 0, tree); grid.setWidget(1, 0, okButton); dialogBox.setWidget(grid); dialogBox.show(); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { dialogBox.hide(); } }); } public void onSuccess(Resource result) { // TODO Auto-generated method stub } }); } } catch (IOException exception) { EMFEditUIPlugin.INSTANCE.log(exception); } } for (Resource resource : originalResources) { if (!resources.contains(resource)) { Map<String, Object> options = null; if (resource.isLoaded()) { options = new HashMap<String, Object>(); options.put(URIConverter.OPTION_UPDATE_ONLY_IF_TIME_STAMP_MATCHES, resource.getTimeStamp()); } resourceSet.getURIConverter().delete(resource.getURI(), options, new Callback<Map<?, ?>>() { public void onFailure(Throwable caught) { final DialogBox dialogBox = new DialogBox(); dialogBox.setText("Delete conflict"); final Button okButton = new Button("OK"); final Tree tree = new Tree(); tree.addItem(SafeHtmlUtils.fromString(caught.getLocalizedMessage())); Grid grid = new Grid(); grid.setWidth("150em"); grid.resize(2, 1); grid.setWidget(0, 0, tree); grid.setWidget(1, 0, okButton); dialogBox.setWidget(grid); dialogBox.show(); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { dialogBox.hide(); } }); } public void onSuccess(Map<?, ?> result) { // TODO Auto-generated method stub } }); } } originalResources.clear(); originalResources.addAll(resources); commandStack.saveIsDone(); saveButton.setEnabled(false); } }); validateButton.addClickHandler(new ClickHandler() { protected TreeItem createTreeItems(Diagnostic diagnostic) { TreeItem treeItem = new TreeItem(SafeHtmlUtils.fromString(diagnostic.getMessage())); List<?> data = diagnostic.getData(); if (!data.isEmpty()) { treeItem.setUserObject(data.get(0)); } for (Diagnostic child : diagnostic.getChildren()) { treeItem.addItem(createTreeItems(child)); } return treeItem; } public void onClick(ClickEvent event) { Diagnostician diagnostician = new Diagnostician() { @Override public String getObjectLabel(EObject eObject) { return !eObject.eIsProxy() ? itemDelegator.getText(eObject) : super.getObjectLabel(eObject); } }; Map<Object, Object> context = diagnostician.createDefaultContext(); EList<Resource> resources = resourceSet.getResources(); BasicDiagnostic diagnostics = new BasicDiagnostic(); for (Resource resource : resources) { if (resource.isLoaded()) { for (EObject eObject : resource.getContents()) { diagnostician.validate(eObject, diagnostics, context); } } } final DialogBox dialogBox = new DialogBox(); dialogBox.setText("Problems"); final Button okButton = new Button("OK"); final Tree tree = new Tree(); if (diagnostics.getSeverity() == Diagnostic.OK) { tree.addItem(SafeHtmlUtils.fromString("No problems detected")); } else { for (Diagnostic child : diagnostics.getChildren()) { tree.addItem(createTreeItems(child)); } } Grid grid = new Grid(); grid.setWidth("150em"); grid.resize(2, 1); grid.setWidget(0, 0, tree); grid.setWidget(1, 0, okButton); dialogBox.setWidget(grid); dialogBox.show(); okButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { TreeItem treeItem = tree.getSelectedItem(); if (treeItem != null) { Object newSelection = treeItem.getUserObject(); if (newSelection != null) { cellTree.expand(editingDomain.getTreePath(editingDomain.getParent(newSelection))); treeSelection.setSelected(newSelection, true); } } dialogBox.hide(); } }); } }); saveButton.setEnabled(false); undoButton.setEnabled(false); redoButton.setEnabled(false); commandStack.addCommandStackListener(new CommandStackListener() { public void commandStackChanged(EventObject event) { saveButton.setEnabled(commandStack.isSaveNeeded()); undoButton.setEnabled(commandStack.canUndo()); redoButton.setEnabled(commandStack.canRedo()); Command mostRecentCommand = ((CommandStack) event.getSource()).getMostRecentCommand(); if (mostRecentCommand != null) { Collection<?> affectedObjects = mostRecentCommand.getAffectedObjects(); if (!affectedObjects.isEmpty()) { Object newSelection = affectedObjects.iterator().next(); cellTree.expand(editingDomain.getTreePath(editingDomain.getParent(newSelection))); if (treeSelection.getSelectedObject() == newSelection) { for (Runnable runnable : propertyUpdater) { runnable.run(); } } else { treeSelection.setSelected(newSelection, true); } } } } }); undoButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { commandStack.undo(); } }); redoButton.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { commandStack.redo(); } }); }
From source file:org.geomajas.gwt2.plugin.corewidget.example.client.sample.message.MessageBox.java
License:Open Source License
/** * Create a MessageBox./*from ww w . j a v a 2s . c om*/ * <p>You might want to use one of the static convenience methods instead of creating your own though. * @param title * @param messageText */ public MessageBox(String title, String messageText) { this(title, SafeHtmlUtils.fromString(messageText), null); }
From source file:org.geomajas.gwt2.plugin.corewidget.example.client.sample.message.MessageBox.java
License:Open Source License
/** * Create a MessageBox.//www .ja v a2 s. c o m * <p>You might want to use one of the static convenience methods instead of creating your own though. * @param title * @param messageText * @param onFinished */ public MessageBox(String title, String messageText, Callback<Boolean, Void> onFinished) { this(title, SafeHtmlUtils.fromString(messageText), onFinished); }