List of usage examples for org.eclipse.jface.viewers TableViewer getTable
public Table getTable()
From source file:com.trivadis.loganalysis.ui.ChartCustomizationPanel.java
License:Open Source License
public ChartCustomizationPanel(final List<IValueProvider> valueProviders, final Composite section, final int style, final FormToolkit toolkit, final IChart chart) { super(section, style); this.valueProviders = valueProviders; this.setLayout(new GridLayout(2, false)); final Composite left = toolkit.createComposite(this, SWT.BORDER); left.setLayout(new GridLayout(1, false)); left.setLayoutData(new GridDataBuilder().heightHint(220).build()); new Label(left, SWT.BOLD).setText("Series:"); series = new WritableList(chart.getSeries(), Serie.class); final TableViewer tableViewer = tableSeries(left, toolkit); chart.addPropertyChangeListener(Chart.PROPERTY_SERIES, new PropertyChangeListener() { public void propertyChange(final PropertyChangeEvent evt) { tableViewer.refresh();/* ww w. j a va 2s.c om*/ } }); final Button chkShowOldCollections = new Button(left, SWT.CHECK); chkShowOldCollections.setSelection(false); chkShowOldCollections.setText("Old Collections"); final Button chkShowYoungCollections = new Button(left, SWT.CHECK); chkShowYoungCollections.setSelection(false); chkShowYoungCollections.setText("Young Collections"); bindCheckbox(chkShowYoungCollections, Chart.class, chart, "showYoungCollections"); bindCheckbox(chkShowOldCollections, Chart.class, chart, "showOldCollections"); new Label(left, SWT.NONE).setLayoutData(new GridDataBuilder().fillVertical().build()); tableViewer.getTable().setLayoutData(new GridDataBuilder().fillVertical().build()); final Composite right = toolkit.createComposite(this, SWT.BORDER); right.setLayoutData(new GridDataBuilder().heightHint(220).build()); right.setLayout(new GridLayout(2, false)); final Label lblTitleRight = new Label(right, SWT.BOLD); lblTitleRight.setText("Add Serie:"); lblTitleRight.setLayoutData(new GridDataBuilder().horizontalSpan(2).build()); new Label(right, SWT.NONE).setText("Label:"); txtLabel = new Text(right, SWT.BORDER); new Label(right, SWT.NONE).setText("X-Axis:"); final ComboViewer cboXAxis = comboAxisSelection(right, "X-Axis:"); new Label(right, SWT.NONE).setText("Y-Axis:"); final ComboViewer cboYAxis = comboAxisSelection(right, "Y-Axis:"); new Label(right, SWT.NONE).setText(""); final Composite pnlCheckboxes = composite(right, SWT.NONE, new FillLayoutBuilder().vertical()); final Button chkLine = new Button(pnlCheckboxes, SWT.CHECK); chkLine.setSelection(true); chkLine.setText("line"); button(chart, left, "Remove Serie", new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { final ISelection selection = tableViewer.getSelection(); if (selection instanceof StructuredSelection) { final Serie element = (Serie) ((StructuredSelection) selection).getFirstElement(); if (element != null) { series.remove(element); chart.removed(element); } } } }); new Label(right, SWT.NONE).setLayoutData(new GridDataBuilder().horizontalSpan(2).fill().build()); new Label(right, SWT.NONE); button(chart, right, "Add Serie", new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent e) { final IValueProvider xValue = getValue(cboXAxis); final IValueProvider yValue = getValue(cboYAxis); if (areAxisSelected(xValue, yValue) && isLabelNotEmpty() && hasSpace()) { final Serie serie = new Serie(txtLabel.getText(), new Axis(AxisType.X, "", new Color(255, 0, 0), xValue), new Axis(AxisType.Y, "", new Color(255, 255, 0), yValue)); serie.setDotted(!chkLine.getSelection()); series.add(serie); chart.added(serie); } } protected boolean hasSpace() { return series.size() < MAX_NUMBER_OF_SERIES; } protected boolean isLabelNotEmpty() { return txtLabel.getText() != null && !txtLabel.getText().equals(""); } protected boolean areAxisSelected(final IValueProvider xValue, final IValueProvider yValue) { return xValue != null && yValue != null; } private IValueProvider getValue(final ComboViewer cboXAxis) { IValueProvider retVal = null; final ISelection selection = cboXAxis.getSelection(); if (selection instanceof StructuredSelection) { final StructuredSelection ss = (StructuredSelection) selection; retVal = (IValueProvider) ss.getFirstElement(); } return retVal; } }); }
From source file:com.worldline.awltech.i18ntools.editor.ui.EditorDefaultMessageEditingSupport.java
License:Open Source License
public EditorDefaultMessageEditingSupport(TableViewer viewer) { super(viewer); this.viewer = viewer; this.cellEditor = new TextCellEditor(viewer.getTable()); }
From source file:com.worldline.awltech.i18ntools.editor.ui.EditorLocalizedMessageEditingSupport.java
License:Open Source License
public EditorLocalizedMessageEditingSupport(TableViewer viewer) { super(viewer); this.viewer = viewer; this.cellEditor = new TextCellEditor(viewer.getTable()); }
From source file:de.blizzy.backup.ErrorsDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite composite = (Composite) super.createDialogArea(parent); ((GridLayout) composite.getLayout()).numColumns = 1; TableViewer viewer = new TableViewer(composite, SWT.SINGLE | SWT.FULL_SELECTION | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL); viewer.setContentProvider(new ErrorsContentProvider()); viewer.setLabelProvider(new ErrorsLabelProvider(parent.getDisplay())); Table table = viewer.getTable(); TableLayout layout = new TableLayout(); table.setLayout(layout);/*w w w. ja va 2 s . c o m*/ table.setHeaderVisible(true); table.setLinesVisible(true); GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true); gd.widthHint = convertWidthInCharsToPixels(80); gd.heightHint = convertHeightInCharsToPixels(15); table.setLayoutData(gd); TableColumn col = new TableColumn(table, SWT.LEFT); col.setText(Messages.Title_Date); layout.addColumnData(new ColumnPixelData(convertWidthInCharsToPixels(16) + 20, true)); col = new TableColumn(table, SWT.LEFT); col.setText(Messages.Title_FileOrFolder); layout.addColumnData(new ColumnWeightData(40, true)); col = new TableColumn(table, SWT.LEFT); col.setText(Messages.Title_Error); layout.addColumnData(new ColumnWeightData(40, true)); viewer.setInput(errors); return composite; }
From source file:de.defmacro.dandelion.internal.ui.views.apropos.AproposView.java
License:Open Source License
private TableColumn makeColumn(final TableViewer viewer, final int style, final TSortBy sortBy) { TableColumn column = new TableColumn(viewer.getTable(), style); column.addSelectionListener(new ColumnSortListener(viewer, sortBy)); return column; }
From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.ContentListComposite.java
License:Creative Commons License
protected void addElementToTable(TableViewer tableViewer, EObject container, EStructuralFeature feature, Object newValue) {/* w ww . j av a2 s .com*/ Command cmd = AddCommand.create(editor.getEditingDomain(), container, feature, newValue); editor.getEditingDomain().getCommandStack().execute(cmd); Table table = tableViewer.getTable(); tableViewer.refresh(); tableViewer.setSelection(new StructuredSelection(tableViewer.getElementAt(table.getItemCount() - 1)), true); // hickhack if (newValue instanceof PhraseMapping) { ((PhraseMapping) newValue).setDescription(String.valueOf(table.getItemCount())); } }
From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.ContentListComposite.java
License:Creative Commons License
protected void moveUpSelectedElements(TableViewer tableViewer, EObject container, EStructuralFeature feature) { CompoundCommand subcommands = new CompoundCommand(); int[] selectedIndices = tableViewer.getTable().getSelectionIndices(); Arrays.sort(selectedIndices); if (selectedIndices[0] == 0) return;/*from w w w . j a va 2s . co m*/ for (int i = 0; i < selectedIndices.length; ++i) { int sourceIndex, targetIndex; if (feature instanceof EAttribute) { sourceIndex = selectedIndices[i]; targetIndex = selectedIndices[i] - 1; } else { sourceIndex = ((List<?>) container.eGet(feature)) .indexOf(tableViewer.getElementAt(selectedIndices[i])); targetIndex = ((List<?>) container.eGet(feature)) .indexOf(tableViewer.getElementAt(selectedIndices[i] - 1)); } subcommands.append( new MoveCommand(editor.getEditingDomain(), container, feature, sourceIndex, targetIndex)); } editor.getEditingDomain().getCommandStack().execute(subcommands.unwrap()); }
From source file:de.dfki.iui.mmds.sdk.editors.grammar_rules.ContentListComposite.java
License:Creative Commons License
protected void moveDownSelectedElements(TableViewer tableViewer, EObject container, EStructuralFeature feature) {//from ww w . ja v a 2s . c o m CompoundCommand subcommands = new CompoundCommand(); int[] selectedIndices = tableViewer.getTable().getSelectionIndices(); Arrays.sort(selectedIndices); ArrayUtils.reverse(selectedIndices); if (selectedIndices[0] == tableViewer.getTable().getItemCount() - 1) return; for (int i = 0; i < selectedIndices.length; ++i) { int sourceIndex, targetIndex; if (feature instanceof EAttribute) { sourceIndex = selectedIndices[i]; targetIndex = selectedIndices[i] + 1; } else { sourceIndex = ((List) container.eGet(feature)) .indexOf(tableViewer.getElementAt(selectedIndices[i])); targetIndex = ((List) container.eGet(feature)) .indexOf(tableViewer.getElementAt(selectedIndices[i] + 1)); } subcommands.append( new MoveCommand(editor.getEditingDomain(), container, feature, sourceIndex, targetIndex)); } editor.getEditingDomain().getCommandStack().execute(subcommands.unwrap()); }
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);/* www . j a v a2 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.SemanticMappingEditorPart.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 w w .j a v a 2s. com*/ formToolkit.paintBordersFor(sashForm); SashForm sashForm_2 = new SashForm(sashForm, SWT.VERTICAL); formToolkit.adapt(sashForm_2); formToolkit.paintBordersFor(sashForm_2); Section sctnNewSection = formToolkit.createSection(sashForm_2, Section.DESCRIPTION | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnNewSection); sctnNewSection.setText("Semantic Mappings Rules"); sctnNewSection.setExpanded(true); sctnNewSection.setDescription("Create or edit new Rules here"); rulesComposite = new ContentListComposite(sctnNewSection, SWT.NONE, Grammar_rulesPackage.eINSTANCE.getRuleset_Rules(), Grammar_rulesPackage.eINSTANCE.getSemanticMapping(), editor, cb); formToolkit.adapt(rulesComposite); sctnNewSection.setClient(rulesComposite); final TableViewer rulesTableViewer = rulesComposite.getTableViewer(); // the first column where the name of the Rule can be viewed and edited rulesComposite.addColumn(getString("_UI_Rule_name_feature"), COLUMN_TYPE.RULENAME); // the second column where the user can enable or disable the rule rulesComposite.addColumn(getString("_UI_Rule_enabled_feature"), COLUMN_TYPE.ENABLED); rulesTableViewer.setColumnProperties(new String[] { "0", "1" }); rulesTableViewer.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; 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) { TableItem item = (TableItem) element; Rule oldValue = (Rule) 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; } if (oldValue.getName() != null) { 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)); } } }); rulesTableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(rulesTableViewer.getTable()), new CheckboxCellEditor(rulesTableViewer.getTable()) }); rulesTableViewer.setInput(ruleset); rulesTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) rulesTableViewer.getSelection(); if (selection != null && selection.size() == 1) { setSelectedSemanticMapping((SemanticMapping) selection.getFirstElement()); editor.setCurrentViewer(rulesTableViewer); } else { setSelectedSemanticMapping(null); } } }); Section sctnSemanticMappingInterpretation = formToolkit.createSection(sashForm_2, Section.TWISTIE | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnSemanticMappingInterpretation); sctnSemanticMappingInterpretation.setText("Semantic Mapping Interpretation"); sctnSemanticMappingInterpretation.setExpanded(true); ruleTreeViewerComposite = new EObjectTreeViewerComposite(sctnSemanticMappingInterpretation, SWT.NONE, editor, rulesComposite); formToolkit.adapt(ruleTreeViewerComposite); formToolkit.paintBordersFor(ruleTreeViewerComposite); sctnSemanticMappingInterpretation.setClient(ruleTreeViewerComposite); SashForm sashForm_1 = new SashForm(sashForm, SWT.VERTICAL); formToolkit.adapt(sashForm_1); formToolkit.paintBordersFor(sashForm_1); SashForm sashForm_3 = new SashForm(sashForm_1, SWT.NONE); formToolkit.adapt(sashForm_3); formToolkit.paintBordersFor(sashForm_3); Section sctnPhraseMappings = formToolkit.createSection(sashForm_3, Section.TWISTIE | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnPhraseMappings); sctnPhraseMappings.setText("Phrase Mappings"); sctnPhraseMappings.setExpanded(true); phraseMappingComposite = new ContentListComposite(sctnPhraseMappings, SWT.NONE, Grammar_rulesPackage.eINSTANCE.getSemanticMapping_PhraseMappings(), Grammar_rulesPackage.eINSTANCE.getPhraseMapping(), editor, cb); final TableViewer phraseMappingTableViewer = phraseMappingComposite.getTableViewer(); formToolkit.adapt(phraseMappingComposite); sctnPhraseMappings.setClient(phraseMappingComposite); // name Column phraseMappingComposite.addColumn("Description", COLUMN_TYPE.RULENAME); phraseMappingTableViewer.setColumnProperties(new String[] { "0" }); phraseMappingTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { // This ensures that we handle selections correctly. // @Override public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection selection = (IStructuredSelection) phraseMappingTableViewer.getSelection(); if (selection != null && selection.size() == 1) { setSelectedPhraseMapping((PhraseMapping) selection.getFirstElement()); editor.setCurrentViewer(phraseMappingTableViewer); } else { setSelectedPhraseMapping(null); } } }); // cell modifier for changing the phrases in the table phraseMappingTableViewer.setCellModifier(new ICellModifier() { @Override public boolean canModify(Object element, String property) { return true; } @Override public Object getValue(Object element, String property) { Object result = null; PhraseMapping selectedPhraseM = (PhraseMapping) element; if (selectedPhraseM != null) { if (selectedPhraseM.getDescription() == null) { result = ""; } else { result = selectedPhraseM.getDescription() + ""; } } return result; } @Override public void modify(Object element, String property, Object value) { TableItem item = (TableItem) element; PhraseMapping oldPhraseM = (PhraseMapping) item.getData(); EAttribute feature = Grammar_rulesPackage.eINSTANCE.getPhraseMapping_Description(); if (oldPhraseM.getDescription() == null || !oldPhraseM.getDescription().equals(value)) { editor.getEditingDomain().getCommandStack() .execute(SetCommand.create(editor.getEditingDomain(), oldPhraseM, feature, value)); } } }); phraseMappingTableViewer .setCellEditors(new CellEditor[] { new TextCellEditor(phraseMappingTableViewer.getTable()) }); final Section sctnNewSection_1 = formToolkit.createSection(sashForm_3, Section.TWISTIE | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnNewSection_1); sctnNewSection_1.setText("Phrases"); sctnNewSection_1.setExpanded(true); phraseComposite = new ContentListComposite(sctnNewSection_1, SWT.NONE, Grammar_rulesPackage.eINSTANCE.getPhraseMapping_Phrases(), EcorePackage.eINSTANCE.getEString(), editor, cb); formToolkit.adapt(phraseComposite); sctnNewSection_1.setClient(phraseComposite); TableViewer phraseTableViewer = phraseComposite.getTableViewer(); // phrase Column phraseComposite.addColumn(getString("_UI_PhraseMapping_name_feature"), COLUMN_TYPE.RULENAME); phraseTableViewer.setColumnProperties(new String[] { "0" }); phraseTableViewer.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.getPhraseMapping_Phrases(); String newString = (String) value; if (oldValue == null || !oldValue.equals(newString)) { // execute a replace command where the oldPhrase is // updated with a new Phrase for (String phrase : selectedPhraseMapping.getPhrases()) { if (phrase.equals(newString)) { errorLabel.setText("Phrases must be unique"); sctnNewSection_1.layout(); return; } } ReplaceCommand cmd = new ReplaceCommand(editor.getEditingDomain(), selectedPhraseMapping, feature, oldValue, newString); editor.getEditingDomain().getCommandStack().execute(cmd); } } }); phraseTableViewer.setCellEditors(new CellEditor[] { new TextCellEditor(phraseTableViewer.getTable()) }); errorLabel = formToolkit.createLabel(sctnNewSection_1, "", SWT.NONE); sctnNewSection_1.setTextClient(errorLabel); errorLabel.setForeground( getEditorSite().getWorkbenchWindow().getWorkbench().getDisplay().getSystemColor(SWT.COLOR_RED)); sashForm_3.setWeights(new int[] { 124, 159 }); Section sctnNewSection_2 = formToolkit.createSection(sashForm_1, Section.TWISTIE | Section.TITLE_BAR); formToolkit.paintBordersFor(sctnNewSection_2); sctnNewSection_2.setText("Phrase Mapping Interpretation"); sctnNewSection_2.setExpanded(true); pmTreeViewerComposite = new EObjectTreeViewerComposite(sctnNewSection_2, SWT.NONE, editor, phraseMappingComposite); formToolkit.adapt(pmTreeViewerComposite); formToolkit.paintBordersFor(pmTreeViewerComposite); sctnNewSection_2.setClient(pmTreeViewerComposite); sashForm_1.setWeights(new int[] { 1, 1 }); sashForm.setWeights(new int[] { 1, 1 }); setSelectedSemanticMapping(null); }