List of usage examples for org.eclipse.jface.viewers CellEditor addListener
public void addListener(ICellEditorListener listener)
From source file:com.centurylink.mdw.plugin.designer.properties.editor.TableEditor.java
License:Apache License
private TableViewer createTableViewer(Table table) { TableViewer tableViewer = new TableViewer(table); tableViewer.setUseHashlookup(true);/* w w w. java 2s. c o m*/ tableViewer.setColumnProperties(columnProps); if (!isReadOnly()) { CellEditor[] cellEditors = new CellEditor[columnSpecs.size()]; for (int i = 0; i < columnSpecs.size(); i++) { ColumnSpec colSpec = columnSpecs.get(i); CellEditor cellEditor = null; if (!colSpec.hidden) { if (colSpec.type.equals(TYPE_TEXT)) { if (colSpec.style != 0) cellEditor = new TextCellEditor(table, colSpec.style); else cellEditor = new TextCellEditor(table); } else if (colSpec.type.equals(TYPE_CHECKBOX)) { cellEditor = new CheckboxCellEditor(table); } else if (colSpec.type.equals(TYPE_COMBO)) { int style = SWT.None; if (colSpec.readOnly) style = style | SWT.READ_ONLY; cellEditor = new ComboBoxCellEditor(table, colSpec.options, style); if (!colSpec.readOnly) cellEditor.addListener( new EditableComboCellEditorListener((ComboBoxCellEditor) cellEditor, i)); } else if (colSpec.type.equals(WorkflowAssetEditor.TYPE_ASSET)) { int style = SWT.None; if (colSpec.readOnly) style = style | SWT.READ_ONLY; cellEditor = new TreeComboCellEditor(table, style) { @Override protected void doSetValue(Object value) { Object val = getValue(); if (val instanceof CTreeComboItem) { CTreeComboItem selItem = (CTreeComboItem) getValue(); if (selItem != null) { super.doSetValue(selItem.getText()); return; } } if (value instanceof String) { String strVal = (String) value; if (strVal.indexOf('/') > 0) { super.doSetValue(strVal.substring(strVal.indexOf('/') + 1)); return; } } super.doSetValue(value); } }; ((TreeComboCellEditor) cellEditor).setSelectionModifier(new SelectionModifier() { public String modify(CTreeComboItem selection) { if (selection.getParentItem() != null) { WorkflowPackage pkg = getProject() .getPackage(selection.getParentItem().getText()); if (pkg == null || pkg.isDefaultPackage()) return selection.getText(); else return pkg.getName() + "/" + selection.getText(); } else { // ignore packages return null; } } }); // populate the treecombo if (colSpec.source.equals("Process")) { List<WorkflowPackage> packages = getProject().getTopLevelUserVisiblePackages(); for (WorkflowPackage pkg : packages) { CTreeComboItem packageItem = ((TreeComboCellEditor) cellEditor) .addItem(pkg.getName()); packageItem.setText(pkg.getName()); packageItem.setImage(pkg.getIconImage()); for (WorkflowProcess process : pkg.getProcesses()) { CTreeComboItem processItem = new CTreeComboItem(packageItem, SWT.NONE); processItem.setText(process.getLabel()); processItem.setImage(process.getIconImage()); } } } else { List<WorkflowAsset> assets = getProject() .getAssetList(Arrays.asList(colSpec.assetTypes)); Map<String, CTreeComboItem> packageItems = new HashMap<String, CTreeComboItem>(); for (WorkflowAsset asset : assets) { String pkgName = asset.getPackage().getName(); CTreeComboItem packageItem = packageItems.get(pkgName); if (packageItem == null) { packageItem = ((TreeComboCellEditor) cellEditor).addItem(pkgName); packageItem.setImage(asset.getPackage().getIconImage()); packageItems.put(pkgName, packageItem); } CTreeComboItem assetItem = new CTreeComboItem(packageItem, SWT.NONE); assetItem.setText(asset.getLabel()); assetItem.setImage(asset.getIconImage()); } } } if (colSpec.listener != null) cellEditor.addListener(colSpec.listener); cellEditors[i] = cellEditor; } } tableViewer.setCellEditors(cellEditors); tableViewer.setCellModifier(cellModifier); } return tableViewer; }
From source file:com.centurylink.mdw.plugin.designer.properties.PackageConfigurationSection.java
License:Apache License
private TableViewer createTableViewer(Table table) { TableViewer tableViewer = new TableViewer(table); tableViewer.setUseHashlookup(true);//from w ww. j a v a 2 s .c o m String[] columnProps = new String[columnSpecs.size()]; for (int i = 0; i < columnSpecs.size(); i++) columnProps[i] = columnSpecs.get(i).property; tableViewer.setColumnProperties(columnProps); CellEditor[] cellEditors = new CellEditor[columnSpecs.size()]; for (int i = 0; i < columnSpecs.size(); i++) { ColumnSpec colSpec = columnSpecs.get(i); CellEditor cellEditor = null; if (colSpec.style != 0) cellEditor = new TextCellEditor(table, colSpec.style); else cellEditor = new TextCellEditor(table); if (colSpec.listener != null) cellEditor.addListener(colSpec.listener); cellEditors[i] = cellEditor; tableViewer.setCellEditors(cellEditors); tableViewer.setCellModifier(new PackageConfigCellModifier()); } return tableViewer; }
From source file:com.mentor.nucleus.bp.model.compare.contentmergeviewer.ElementEditingSupport.java
License:Open Source License
@Override protected CellEditor getCellEditor(Object element) { if (element instanceof ObjectElementComparable) { ObjectElement objEle = (ObjectElement) ((ObjectElementComparable) element).getRealElement(); CellEditor editor = null; if (((NonRootModelElement) objEle.getParent()).getModelRoot() instanceof Ooaofooa) { editor = CellModifierProvider.getCellEditor((NonRootModelElement) objEle.getParent(), viewer.getTree(), objEle); } else {/*from w ww .j av a 2s. c om*/ editor = com.mentor.nucleus.bp.ui.canvas.cells.CellModifierProvider .getCellEditor((NonRootModelElement) objEle.getParent(), viewer.getTree(), objEle); } final CellEditor finalEditor = editor; editor.addListener(new ICellEditorListener() { @Override public void editorValueChanged(boolean oldValidState, boolean newValidState) { if (!newValidState) { viewer.setErrorMessage(finalEditor.getErrorMessage()); } else { viewer.setErrorMessage(""); } } @Override public void cancelEditor() { viewer.setErrorMessage(""); } @Override public void applyEditorValue() { viewer.setErrorMessage(""); } }); return editor; } return null; }
From source file:com.rcpcompany.uibindings.internal.cellEditors.SimpleCellEditorFactory.java
License:Open Source License
@Override public CellEditor create(ICellEditorFactoryContext factoryContext) { final IValueBindingCell cell = factoryContext.getCell(); final IValueBinding labelBinding = cell.getLabelBinding(); final IBindingContext context = labelBinding.getContext(); final IObservableValue value = cell.getObjectValue(); String preferredCellEditor = labelBinding.getArgument(Constants.ARG_PREFERRED_CELL_EDITOR, String.class, InternalConstants.CELL_EDITOR_TYPE_CONTROL); /*// w w w. j a v a 2s. c o m * The original value of the cell - used it the edit is canceled. */ final Object originalValue = value.getValue(); /* * The simple case: the boolean editor. This case does not have a visible editor... */ if (InternalConstants.CELL_EDITOR_TYPE_BUTTON.equals(preferredCellEditor)) { final Class<?> valueType = labelBinding.getDataType().getDataType(); if (valueType == Boolean.class || valueType == Boolean.TYPE) return new ImmediateCellEditor(new Runnable() { @Override public void run() { final Boolean v = (Boolean) originalValue; value.setValue(v ? false : true); } }); LogUtils.error(labelBinding, "modelType '" + value.getValueType() + "' specifies illegal cell editor type: '" + preferredCellEditor + "'. Assumes " + InternalConstants.CELL_EDITOR_TYPE_TEXT); preferredCellEditor = InternalConstants.CELL_EDITOR_TYPE_TEXT; } /* * The general case: the widget-based editors */ CellEditor ce; final Composite parent = factoryContext.getParent(); if (InternalConstants.CELL_EDITOR_TYPE_STYLED_TEXT.equals(preferredCellEditor)) { ce = new MyStyledTextCellEditor(parent, context); } else if (InternalConstants.CELL_EDITOR_TYPE_DIALOG.equals(preferredCellEditor)) { ce = new DialogControlCellEditor(parent, cell); } else { ce = new ControlCellEditor(parent, cell); } /* * The binding for the text while editing */ final IValueBinding editorBinding = context.addBinding().ui(ce.getControl()).model(value); if (labelBinding.hasArguments()) { editorBinding.getExtraArgumentProviders().add(labelBinding); } if (labelBinding.eIsSet(IUIBindingsPackage.Literals.BINDING__EXTRA_ARGUMENT_PROVIDERS)) { editorBinding.getExtraArgumentProviders().addAll(labelBinding.getExtraArgumentProviders()); } editorBinding.setCell(cell); /* * Check if a special type has been specified for the cell editor */ final String cellEditorType = labelBinding.getArgument(Constants.ARG_CELL_EDITOR_TYPE, String.class, null); if (cellEditorType != null) { editorBinding.type(cellEditorType); } if (ce instanceof ControlCellEditor) { ((ControlCellEditor) ce).setEditorBinding(editorBinding); } else if (ce instanceof DialogControlCellEditor) { ((DialogControlCellEditor) ce).setEditorBinding(editorBinding); } /* * We added a new binding to call finish as well... */ context.finish(); /* * And force an update */ editorBinding.updateUI(); ce.addListener(new ICellEditorListener() { @Override public void editorValueChanged(boolean oldValidState, boolean newValidState) { } @Override public void cancelEditor() { value.setValue(originalValue); editorBinding.updateUI(); editorBinding.dispose(); } @Override public void applyEditorValue() { if (editorBinding.getUIObservable() instanceof IUpdatableObservable) { final IUpdatableObservable u = (IUpdatableObservable) editorBinding.getUIObservable(); u.forceUpdateValue(); } editorBinding.updateUI(); editorBinding.dispose(); } }); return ce; }
From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.EntityEditorPart.java
License:Creative Commons License
@Override public void createPartControl(Composite parent) { super.createPartControl(parent); // sash form is used to split the main form into two parts SashForm sashForm = new SashForm(frmNewForm.getBody(), SWT.NONE); formToolkit.adapt(sashForm);/*from w ww . j a v a 2 s.c o m*/ formToolkit.paintBordersFor(sashForm); Section sctnNewSection = formToolkit.createSection(sashForm, Section.DESCRIPTION | Section.TITLE_BAR); sctnNewSection.setText("Entity Rules"); sctnNewSection.setExpanded(true); sctnNewSection.setDescription("Create or edit new Rules here"); entitiesComposite = new ContentListComposite(sctnNewSection, SWT.NONE, Grammar_rulesPackage.eINSTANCE.getRuleset_Rules(), Grammar_rulesPackage.eINSTANCE.getEntity(), editor, cb); formToolkit.adapt(entitiesComposite); sctnNewSection.setClient(entitiesComposite); final TableViewer entityTableViewer = entitiesComposite.getTableViewer(); // the first column where the name of the Rule can be viewed and edited entitiesComposite.addColumn(getString("_UI_Rule_name_feature"), COLUMN_TYPE.RULENAME); // the second column where the user can enable or disable the rule entitiesComposite.addColumn(getString("_UI_Rule_enabled_feature"), COLUMN_TYPE.ENABLED); // the third column where the type is set entitiesComposite.addColumn(getString("_UI_EntityRule_type_feature"), COLUMN_TYPE.TYPE); entityTableViewer.setColumnProperties(new String[] { "0", "1", "2" }); entityTableViewer.setCellModifier(new ICellModifier() { @Override public boolean canModify(Object element, String property) { return true; } @Override public Object getValue(Object element, String property) { Object result = null; Entity rule = (Entity) element; switch (property) { case "0": if (rule.getName() == null) { result = ""; } else { result = rule.getName() + ""; } break; case "1": result = new Boolean(rule.isEnabled()); break; case "2": result = true; if (rule.getType().equals(EntityType.DYNAMIC)) { result = false; } break; } return result; } @Override public void modify(Object element, String property, Object value) { TableItem item = (TableItem) element; Entity oldValue = (Entity) item.getData(); EAttribute feature = null; switch (property) { case "0": feature = Grammar_rulesPackage.eINSTANCE.getRule_Name(); break; case "1": feature = Grammar_rulesPackage.eINSTANCE.getRule_Enabled(); break; case "2": feature = Grammar_rulesPackage.eINSTANCE.getEntity_Type(); if ((Boolean) value) { value = "static"; } else { value = "dynamic"; } break; } if (oldValue.getName() != null) { if ((property.equals("0") && !oldValue.getName().equals(value)) || property.equals("1") || property.equals("2")) { if (value.equals("static")) { editor.getEditingDomain().getCommandStack().execute(SetCommand .create(editor.getEditingDomain(), item.getData(), feature, EntityType.STATIC)); } else if (value.equals("dynamic")) { editor.getEditingDomain().getCommandStack().execute(SetCommand.create( editor.getEditingDomain(), item.getData(), feature, EntityType.DYNAMIC)); } else { editor.getEditingDomain().getCommandStack().execute( SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value)); } } } else { editor.getEditingDomain().getCommandStack() .execute(SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value)); } } }); entityTableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(entityTableViewer.getTable()), new CheckboxCellEditor(entityTableViewer.getTable()), new CheckboxCellEditor(entityTableViewer.getTable()) }); entityTableViewer.setInput(ruleset); entityTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { // This ensures that we handle selections correctly, i.e. for each // selected entity rule a corresponding PhraseValue Pair is // shown in the detail view @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) entityTableViewer.getSelection(); if (selection != null && selection.size() == 1) { setSelectedRule((Rule) selection.getFirstElement()); if (selectedRule != null) { editor.setCurrentViewer(entityTableViewer); } } else { setSelectedRule(null); } } }); Composite rightSide = new Composite(sashForm, SWT.NONE); formToolkit.adapt(rightSide); formToolkit.paintBordersFor(rightSide); rightSide.setLayout(new FillLayout(SWT.HORIZONTAL)); SashForm sashForm_1 = new SashForm(rightSide, SWT.VERTICAL); formToolkit.adapt(sashForm_1); formToolkit.paintBordersFor(sashForm_1); final Section sctnNewSection_1 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnNewSection_1); sctnNewSection_1.setText("Phrase Value Pairs"); sctnNewSection_1.setExpanded(true); phraseMappingComposite = new ContentListComposite(sctnNewSection_1, SWT.NONE, Grammar_rulesPackage.eINSTANCE.getEntity_Entries(), Grammar_rulesPackage.eINSTANCE.getPhraseValuePair(), editor, cb); formToolkit.adapt(phraseMappingComposite); sctnNewSection_1.setClient(phraseMappingComposite); // phrase Column phraseMappingComposite.addColumn(getString("_UI_PhraseMapping_name_feature"), COLUMN_TYPE.RULENAME); // value Column phraseMappingComposite.addColumn(getString("_UI_PhraseValue_name_feature"), COLUMN_TYPE.RULENAME); phraseMappingComposite.getTableViewer().setColumnProperties(new String[] { "0", "1" }); phraseMappingComposite.getTableViewer().setCellModifier(new ICellModifier() { @Override public boolean canModify(Object element, String property) { return true; } @Override public Object getValue(Object element, String property) { String result = ""; PhraseValuePair pv = (PhraseValuePair) element; switch (property) { case "0": if (pv.getPhrase() == null) { result = ""; } else { result = pv.getPhrase(); } break; case "1": if (pv.getValue() == null) { result = ""; } else { result = pv.getValue(); } break; } return result; } @Override public void modify(Object element, String property, Object value) { TableItem item = (TableItem) element; PhraseValuePair pvOld = (PhraseValuePair) item.getData(); EAttribute feature = null; String newString = (String) value; switch (property) { case "0": feature = Grammar_rulesPackage.eINSTANCE.getPhraseValuePair_Phrase(); break; case "1": feature = Grammar_rulesPackage.eINSTANCE.getPhraseValuePair_Value(); break; } if (!newString.equals(pvOld)) { editor.getEditingDomain().getCommandStack() .execute(SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value)); } } }); phraseMappingComposite.getTableViewer().setCellEditors( new CellEditor[] { new TextCellEditor(phraseMappingComposite.getTableViewer().getTable()), new TextCellEditor(phraseMappingComposite.getTableViewer().getTable()) }); phraseMappingComposite.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() { // This ensures that we handle selections correctly, i.e. // for each // selected entity rule a corresponding PhraseValue Pair is // shown in // the detail view // @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) entityTableViewer.getSelection(); if (selection != null) { editor.setCurrentViewer(phraseMappingComposite.getTableViewer()); } } }); final Label errorLabel = formToolkit.createLabel(sctnNewSection_1, "", SWT.NONE); sctnNewSection_1.setTextClient(errorLabel); errorLabel.setForeground( getEditorSite().getWorkbenchWindow().getWorkbench().getDisplay().getSystemColor(SWT.COLOR_RED)); CellEditor[] test = phraseMappingComposite.getTableViewer().getCellEditors(); final CellEditor e = test[0]; if (e instanceof TextCellEditor) { e.setValidator(new ABNFValidator()); e.addListener(new ICellEditorListener() { @Override public void applyEditorValue() { setErrorMessage(null); } @Override public void cancelEditor() { setErrorMessage(null); } @Override public void editorValueChanged(boolean oldValidState, boolean newValidState) { setErrorMessage(e.getErrorMessage()); } private void setErrorMessage(String errorMessage) { if (errorMessage != null) { System.out.println(errorMessage); errorLabel.setText(errorMessage); sctnNewSection_1.layout(); } else { errorLabel.setText(""); sctnNewSection_1.layout(); } } }); } Section sctnNewSection_2 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnNewSection_2); sctnNewSection_2.setText("Interpretation"); sctnNewSection_2.setExpanded(true); treeViewerComposite = new EObjectTreeViewerComposite(sctnNewSection_2, SWT.NONE, editor, entitiesComposite); formToolkit.adapt(treeViewerComposite); formToolkit.paintBordersFor(treeViewerComposite); sctnNewSection_2.setClient(treeViewerComposite); sashForm_1.setWeights(new int[] { 1, 1 }); sashForm.setWeights(new int[] { 1, 1 }); setSelectedRule(null); }
From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.UtteranceEditorPart.java
License:Creative Commons License
/** * @param parent//from w ww. j a v a 2 s . c om * This class is called from the init() method. Here all the SWT * and JFace components in the form are drawn. */ @Override public void createPartControl(Composite parent) { super.createPartControl(parent); // sash form is used to split the main form into two parts SashForm sashForm = new SashForm(frmNewForm.getBody(), SWT.NONE); formToolkit.adapt(sashForm); formToolkit.paintBordersFor(sashForm); Section sctnNewSection = formToolkit.createSection(sashForm, Section.DESCRIPTION | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnNewSection); sctnNewSection.setText("Utterance Rules"); sctnNewSection.setExpanded(true); sctnNewSection.setDescription("Create or edit new Rules here"); utteranceListComposite = new ContentListComposite(sctnNewSection, SWT.NONE, Grammar_rulesPackage.eINSTANCE.getRuleset_Rules(), Grammar_rulesPackage.eINSTANCE.getUtterance(), editor, cb); formToolkit.adapt(utteranceListComposite); sctnNewSection.setClient(utteranceListComposite); final TableViewer utterancesTableViewer = utteranceListComposite.getTableViewer(); // the first column where the name of the Rule can be viewed and edited utteranceListComposite.addColumn(getString("_UI_Rule_name_feature"), COLUMN_TYPE.RULENAME); // the second column where the user can enable or disable the rule utteranceListComposite.addColumn(getString("_UI_Rule_enabled_feature"), COLUMN_TYPE.ENABLED); utterancesTableViewer.setColumnProperties(new String[] { "0", "1" }); // setting a cell modifier so the rules can be edited in the TableViewer // directly utterancesTableViewer.setCellModifier(new ICellModifier() { @Override public boolean canModify(Object element, String property) { return true; } @Override public Object getValue(Object element, String property) { Object result = null; Rule rule = (Rule) element; // checking to see which property should be shown, name or // isEnabled and what is going to be shown in the table switch (property) { case "0": if (rule.getName() == null) { result = ""; } else { result = rule.getName() + ""; } break; case "1": result = new Boolean(rule.isEnabled()); break; } return result; } @Override public void modify(Object element, String property, Object value) { // getting the selected element TableItem item = (TableItem) element; // getting the selected rule Rule oldValue = (Rule) item.getData(); EAttribute feature = null; // depending on which property should be edited a different // feature is set for the setCommand switch (property) { case "0": feature = Grammar_rulesPackage.eINSTANCE.getRule_Name(); break; case "1": feature = Grammar_rulesPackage.eINSTANCE.getRule_Enabled(); break; } if (oldValue.getName() != null) { // if the name has not changed do nothing if ((property.equals("0") && !oldValue.getName().equals(value)) || property.equals("1")) { editor.getEditingDomain().getCommandStack().execute( SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value)); } } else { editor.getEditingDomain().getCommandStack() .execute(SetCommand.create(editor.getEditingDomain(), item.getData(), feature, value)); } } }); // setting a cell editor for both properties of the Utterance Rules that // need to be edited utterancesTableViewer .setCellEditors(new CellEditor[] { new TextCellEditor(utterancesTableViewer.getTable()), new CheckboxCellEditor(utterancesTableViewer.getTable()) }); utterancesTableViewer.setInput(ruleset); // on selection changed update the details view (the PhraseMapping Table // Viewer and the Interpretation TreeViewer utterancesTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { // This ensures that we handle selections correctly. // @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) utterancesTableViewer.getSelection(); if (selection != null && selection.size() == 1) { setSelectedUtterance((Utterance) selection.getFirstElement()); editor.setCurrentViewer(utterancesTableViewer); } else { setSelectedUtterance(null); } } }); Composite rightSide = new Composite(sashForm, SWT.NONE); formToolkit.adapt(rightSide); formToolkit.paintBordersFor(rightSide); rightSide.setLayout(new FillLayout(SWT.HORIZONTAL)); SashForm sashForm_1 = new SashForm(rightSide, SWT.VERTICAL); formToolkit.adapt(sashForm_1); formToolkit.paintBordersFor(sashForm_1); final Section sctnNewSection_1 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnNewSection_1); sctnNewSection_1.setText("Phrases"); sctnNewSection_1.setExpanded(true); phraseMappingComposite = new ContentListComposite(sctnNewSection_1, SWT.NONE, Grammar_rulesPackage.eINSTANCE.getUtterance_Phrases(), EcorePackage.eINSTANCE.getEString(), editor, cb); formToolkit.adapt(phraseMappingComposite); sctnNewSection_1.setClient(phraseMappingComposite); // phrase Column phraseMappingComposite.addColumn(getString("_UI_PhraseMapping_name_feature"), COLUMN_TYPE.RULENAME); phraseMappingComposite.getTableViewer().setColumnProperties(new String[] { "0" }); // cell modifier for changing the phrases in the table phraseMappingComposite.getTableViewer().setCellModifier(new ICellModifier() { @Override public boolean canModify(Object element, String property) { return true; } @Override public Object getValue(Object element, String property) { return element; } @Override public void modify(Object element, String property, Object value) { TableItem item = (TableItem) element; String oldValue = (String) item.getData(); EAttribute feature = Grammar_rulesPackage.eINSTANCE.getUtterance_Phrases(); String newString = (String) value; if (oldValue == null || !oldValue.equals(newString)) { // execute a replace comand where the oldPhrase is // updated with a new Phrase for (String phrase : selectedUtterance.getPhrases()) { if (phrase.equals(newString)) { errorLabel.setText("Phrases must be unique"); sctnNewSection_1.layout(); return; } } ReplaceCommand cmd = new ReplaceCommand(editor.getEditingDomain(), selectedUtterance, feature, oldValue, newString); editor.getEditingDomain().getCommandStack().execute(cmd); } } }); phraseMappingComposite.getTableViewer().setCellEditors( new CellEditor[] { new TextCellEditor(phraseMappingComposite.getTableViewer().getTable()) }); // this label is used to show the error that is given with a wrong // Phrase input errorLabel = formToolkit.createLabel(sctnNewSection_1, "", SWT.NONE); sctnNewSection_1.setTextClient(errorLabel); errorLabel.setForeground( getEditorSite().getWorkbenchWindow().getWorkbench().getDisplay().getSystemColor(SWT.COLOR_RED)); // to set a validation of the phrases a listener is added to the cell // editor of the phrase mapping table. CellEditor[] test = phraseMappingComposite.getTableViewer().getCellEditors(); for (final CellEditor e : test) { if (e instanceof TextCellEditor) { // the validator is set to a class designed previously, called // ABNF validator e.setValidator(new ABNFValidator()); e.addListener(new ICellEditorListener() { @Override public void applyEditorValue() { setErrorMessage(null); } @Override public void cancelEditor() { setErrorMessage(null); } // here the error message is set @Override public void editorValueChanged(boolean oldValidState, boolean newValidState) { setErrorMessage(e.getErrorMessage()); } // here the error message is set to the a label private void setErrorMessage(String errorMessage) { if (errorMessage != null) { errorLabel.setText(errorMessage); sctnNewSection_1.layout(); } else { errorLabel.setText(""); sctnNewSection_1.layout(); } } }); } } Section sctnNewSection_2 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnNewSection_2); sctnNewSection_2.setText("Interpretation"); sctnNewSection_2.setExpanded(true); treeViewerComposite = new EObjectTreeViewerComposite(sctnNewSection_2, SWT.NONE, editor, utteranceListComposite); formToolkit.adapt(treeViewerComposite); formToolkit.paintBordersFor(treeViewerComposite); sctnNewSection_2.setClient(treeViewerComposite); sashForm_1.setWeights(new int[] { 1, 1 }); sashForm.setWeights(new int[] { 1, 1 }); setSelectedUtterance(null); }
From source file:de.ovgu.featureide.fm.ui.editors.featuremodel.commands.renaming.FeatureLabelEditManager.java
License:Open Source License
@Override protected void initCellEditor() { final CellEditor cellEditor = getCellEditor(); final Control control = cellEditor.getControl(); final String oldValue = ((FeatureEditPart) getEditPart()).getFeature().getName(); control.setFont(DEFAULT_FONT);/* w w w .j a va 2 s. c o m*/ cellEditor.setValue(oldValue); cellEditor.addListener(new ICellEditorListener() { private ToolTip tooltip; public void editorValueChanged(boolean oldValidState, boolean newValidState) { boolean notvalid; closeTooltip(); String value = (String) cellEditor.getValue(); if (!value.equals(oldValue)) { if (value.equalsIgnoreCase(oldValue)) createTooltip( "It is not recommended to change upper and lower case. You currently try to rename " + oldValue + " to " + value + ".", SWT.ICON_WARNING); // TODO #455 wrong usage of extension else if ((notvalid = !featureModel.isValidFeatureName(value)) && !featureModel.isFeatureModelingComposer()) createTooltip("The name need to be a valid Java identifier.", SWT.ICON_ERROR); else if (notvalid) createTooltip("The following Characaters are not allowed \", (, )", SWT.ICON_ERROR); else if (featureModel.getFeatureNames().contains(value)) createTooltip("This name is already used for another feature.", SWT.ICON_ERROR); } } public void cancelEditor() { closeTooltip(); } public void applyEditorValue() { closeTooltip(); } private void createTooltip(String message, int icon) { tooltip = new ToolTip(control.getShell(), SWT.BALLOON | icon); tooltip.setAutoHide(false); tooltip.setLocation(control.toDisplay(control.getSize().x / 2, control.getSize().y + 5)); tooltip.setText("Invalid Name"); tooltip.setMessage(message); tooltip.setVisible(true); } private void closeTooltip() { if (tooltip != null) { tooltip.setVisible(false); tooltip = null; } } }); }
From source file:featureide.fm.ui.editors.featuremodel.commands.renaming.FeatureLabelEditManager.java
License:Open Source License
@Override protected void initCellEditor() { final CellEditor cellEditor = getCellEditor(); final Control control = cellEditor.getControl(); final String oldValue = ((FeatureEditPart) getEditPart()).getFeatureModel().getName(); control.setFont(DEFAULT_FONT);//from w ww. ja v a 2 s. c om cellEditor.setValue(oldValue); cellEditor.addListener(new ICellEditorListener() { private ToolTip tooltip; @Override public void editorValueChanged(boolean oldValidState, boolean newValidState) { closeTooltip(); String value = (String) cellEditor.getValue(); if (!value.equals(oldValue)) { if (value.equalsIgnoreCase(oldValue)) createTooltip( "It is not recommended to change upper and lower case. You currently try to rename " + oldValue + " to " + value + ".", SWT.ICON_WARNING); else if (!FeatureRenamingCommand.isValidJavaIdentifier(value)) createTooltip("The name need to be a valid Java identifier.", SWT.ICON_ERROR); else if (featureModel.getFeatureNames().contains(value)) createTooltip("This name is already used for another feature.", SWT.ICON_ERROR); } } @Override public void cancelEditor() { closeTooltip(); } @Override public void applyEditorValue() { closeTooltip(); } private void createTooltip(String message, int icon) { tooltip = new ToolTip(control.getShell(), SWT.BALLOON | icon); tooltip.setAutoHide(false); tooltip.setLocation(control.toDisplay(control.getSize().x / 2, control.getSize().y + 5)); tooltip.setText("Invalid Name"); tooltip.setMessage(message); tooltip.setVisible(true); } private void closeTooltip() { if (tooltip != null) { tooltip.setVisible(false); tooltip = null; } } }); }
From source file:gov.nasa.ensemble.common.ui.treetable.TreeTableViewer.java
License:Open Source License
private void activateCellEditor(TreeItem item, Object element, Object facet, int columnIndex, ITreeTableColumn column) {/*from w w w.ja v a 2s. c o m*/ trace.debug("activateCellEditor : " + facet); boolean edited = column.editOnActivate(facet, model.getUndoContext(), item, columnIndex); if (edited) { return; } CellEditor cellEditor = column.getCellEditor(getTree(), facet); if (cellEditorActionHandler != null) { cellEditorActionHandler.addCellEditor(cellEditor); } if (cellEditor == null) { return; // no editor } if (currentCellEditorHelper != null) { currentCellEditorHelper.applyEditorValue(); currentCellEditorHelper = null; } CellEditorHelper helper = new CellEditorHelper(facet, column, cellEditor, element); cellEditor.addListener(helper); @SuppressWarnings("unchecked") Font font = column.getFont(facet); if (font == null) { font = getTreeTableLabelProvider().getFont(element); } cellEditor.activate(); LayoutData layoutData = cellEditor.getLayoutData(); treeEditor.grabHorizontal = layoutData.grabHorizontal; treeEditor.horizontalAlignment = layoutData.horizontalAlignment; treeEditor.minimumWidth = layoutData.minimumWidth; Control control = cellEditor.getControl(); if (control != null) { control.setFont(font); control.addFocusListener(helper); control.forceFocus(); int[] order = getTree().getColumnOrder(); int editorIndex = order[columnIndex]; treeEditor.setEditor(control, item, editorIndex); } cellEditor.setFocus(); currentCellEditorHelper = helper; }
From source file:hydrograph.ui.propertywindow.widgets.listeners.grid.GridChangeListener.java
License:Apache License
/** * Attach cell change listener./*w w w .j av a 2s. com*/ */ public void attachCellChangeListener() { for (CellEditor cellEditor : cellEditors) { if (cellEditor instanceof TextCellEditor) cellEditor.addListener(new GridCellEditorListener(propertyDialogButtonBar)); else if (cellEditor instanceof CustomComboBoxCellEditor) { attachComboChangeListener(cellEditor); } } }