Bug 558475 - Extend String Cell Editors to call
EMFFormsControlProcessorService if available
Change-Id: I1925ed63866f9341314aca9847b8e5b08c49c2ac
Signed-off-by: Eugen Neufeld <eneufeld@eclipsesource.com>
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditor.java
index dfddaf3..2a01c20 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/internal/swt/table/NumberCellEditor.java
@@ -181,38 +181,20 @@
super(parent, style | SWT.RIGHT);
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getValueProperty()
- */
@Override
public IValueProperty getValueProperty() {
return CellEditorProperties.control().value(WidgetProperties.text(SWT.FocusOut));
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#instantiate(org.eclipse.emf.ecore.EStructuralFeature,
- * org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
- */
@Override
public void instantiate(EStructuralFeature eStructuralFeature, ViewModelContext viewModelContext) {
+ super.instantiate(eStructuralFeature, viewModelContext);
this.eStructuralFeature = eStructuralFeature;
getControl().setData(CUSTOM_VARIANT, "org_eclipse_emf_ecp_edit_cellEditor_numberical"); //$NON-NLS-1$
localeService = viewModelContext.getService(ViewLocaleService.class);
localeProvider = viewModelContext.getService(EMFFormsLocaleProvider.class);
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getFormatedString(java.lang.Object)
- */
@Override
public String getFormatedString(Object value) {
if (value == null) {
@@ -241,34 +223,16 @@
return Locale.getDefault();
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getColumnWidthWeight()
- */
@Override
public int getColumnWidthWeight() {
return 50;
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)
- */
@Override
public UpdateValueStrategy getTargetToModelStrategy(final DataBindingContext databindingContext) {
return withPreSetValidation(eStructuralFeature, new TargetToModelStrategy(databindingContext));
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)
- */
@Override
public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {
return new EMFUpdateValueStrategy() {
@@ -292,11 +256,6 @@
return text;
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#setEditable(boolean)
- */
@Override
public void setEditable(boolean editable) {
if (getText() != null) {
@@ -304,21 +263,11 @@
}
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getImage(java.lang.Object)
- */
@Override
public Image getImage(Object value) {
return null;
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getMinWidth()
- */
@Override
public int getMinWidth() {
return 0;
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/MultiStringCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/MultiStringCellEditor.java
index 92aced7..eab15b3 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/MultiStringCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/MultiStringCellEditor.java
@@ -101,36 +101,18 @@
super(parent, style);
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getValueProperty()
- */
@SuppressWarnings({ "rawtypes", "unchecked" })
@Override
public IValueProperty getValueProperty() {
return CellEditorProperties.control().value(WidgetProperties.text(SWT.FocusOut));
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#instantiate(org.eclipse.emf.ecore.EStructuralFeature,
- * org.eclipse.emf.ecp.view.spi.context.ViewModelContext)
- */
@Override
public void instantiate(EStructuralFeature eStructuralFeature, ViewModelContext viewModelContext) {
+ super.instantiate(eStructuralFeature, viewModelContext);
this.eStructuralFeature = eStructuralFeature;
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getFormatedString(java.lang.Object)
- */
@Override
public String getFormatedString(Object value) {
if (value == null) {
@@ -154,34 +136,16 @@
return string;
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getColumnWidthWeight()
- */
@Override
public int getColumnWidthWeight() {
return 50;
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getTargetToModelStrategy(org.eclipse.core.databinding.DataBindingContext)
- */
@Override
public UpdateValueStrategy getTargetToModelStrategy(final DataBindingContext databindingContext) {
return withPreSetValidation(eStructuralFeature, new TargetToModelStrategy());
}
- /**
- *
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getModelToTargetStrategy(org.eclipse.core.databinding.DataBindingContext)
- */
@Override
public UpdateValueStrategy getModelToTargetStrategy(DataBindingContext databindingContext) {
return new EMFUpdateValueStrategy() {
@@ -201,11 +165,6 @@
return text;
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#setEditable(boolean)
- */
@Override
public void setEditable(boolean editable) {
if (getText() != null) {
@@ -213,21 +172,11 @@
}
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getImage(java.lang.Object)
- */
@Override
public Image getImage(Object value) {
return null;
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.emf.ecp.edit.spi.swt.table.ECPCellEditor#getMinWidth()
- */
@Override
public int getMinWidth() {
return 0;
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringBasedCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringBasedCellEditor.java
index 92f1401..5dc8128 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringBasedCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringBasedCellEditor.java
@@ -16,6 +16,8 @@
import org.eclipse.core.databinding.UpdateValueStrategy;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecp.edit.spi.swt.util.PreSetValidationStrategy;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsControlProcessorService;
import org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
@@ -58,11 +60,6 @@
super(parent, style);
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.jface.viewers.CellEditor#activate(org.eclipse.jface.viewers.ColumnViewerEditorActivationEvent)
- */
@Override
public void activate(ColumnViewerEditorActivationEvent event) {
initialValue = text.getText();
@@ -85,11 +82,6 @@
super.fireCancelEditor();
}
- /**
- * {@inheritDoc}
- *
- * @see org.eclipse.jface.viewers.TextCellEditor#doSetFocus()
- */
@Override
protected void doSetFocus() {
super.doSetFocus();
@@ -126,4 +118,11 @@
.toString()
.matches("[\\.:,;\\-_#\'+*~!?§$%&/()\\[\\]\\{\\}=\\\\\"]"); //$NON-NLS-1$
}
+
+ @Override
+ public void instantiate(EStructuralFeature feature, ViewModelContext viewModelContext) {
+ if (viewModelContext.hasService(EMFFormsControlProcessorService.class)) {
+ viewModelContext.getService(EMFFormsControlProcessorService.class).process(text, null, viewModelContext);
+ }
+ }
}
diff --git a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java
index 5372a11..a9c866e 100644
--- a/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java
+++ b/bundles/org.eclipse.emf.ecp.edit.swt/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor.java
@@ -69,6 +69,7 @@
@Override
public void instantiate(EStructuralFeature feature, ViewModelContext viewModelContext) {
+ super.instantiate(feature, viewModelContext);
eStructuralFeature = feature;
}
diff --git a/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor_PTest.java b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor_PTest.java
index aac8944..bc74ba3 100644
--- a/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor_PTest.java
+++ b/tests/org.eclipse.emf.ecp.edit.swt.test/src/org/eclipse/emf/ecp/edit/spi/swt/table/StringCellEditor_PTest.java
@@ -15,6 +15,8 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.emf.databinding.EMFDataBindingContext;
@@ -24,6 +26,8 @@
import org.eclipse.emf.ecp.edit.internal.model.testData.TestDataFactory;
import org.eclipse.emf.ecp.edit.internal.model.testData.TestDataPackage;
import org.eclipse.emf.ecp.test.common.DefaultRealm;
+import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsControlProcessorService;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.junit.After;
@@ -32,6 +36,7 @@
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
+import org.mockito.Mockito;
@SuppressWarnings({ "unchecked", "rawtypes" })
@RunWith(Parameterized.class)
@@ -71,6 +76,8 @@
private final boolean valid;
private final Object expectedValue;
+ private final ViewModelContext context = Mockito.mock(ViewModelContext.class);
+
public StringCellEditor_PTest(EStructuralFeature feature, EObject eObject, Object newValue, Object expectedValue,
boolean valid) {
this.feature = feature;
@@ -88,7 +95,7 @@
model = EMFProperties.value(feature).observe(realm, eObject);
final Shell shell = new Shell();
editor = new StringCellEditor(shell);
- editor.instantiate(feature, null);
+ editor.instantiate(feature, context);
target = editor.getValueProperty().observe(editor);
dbc.bindValue(target, model, editor.getTargetToModelStrategy(dbc), editor.getModelToTargetStrategy(dbc));
}
@@ -112,4 +119,13 @@
assertNull(model.getValue());
}
}
+
+ @Test
+ public void testProcessorCalled() {
+ final EMFFormsControlProcessorService dummyProcessor = mock(EMFFormsControlProcessorService.class);
+ when(context.getService(EMFFormsControlProcessorService.class)).thenReturn(dummyProcessor);
+ when(context.hasService(EMFFormsControlProcessorService.class)).thenReturn(Boolean.TRUE);
+ editor.instantiate(feature, context);
+ Mockito.verify(dummyProcessor).process(editor.getControl(), null, context);
+ }
}
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.launch b/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.launch
index 7fc5c3e..c35d1a9 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.launch
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/AllPluginTests core.swt.launch
@@ -32,8 +32,8 @@
<stringAttribute key="pde.version" value="3.3"/>
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
<booleanAttribute key="run_in_ui_thread" value="true"/>
-<stringAttribute key="selected_target_plugins" value="com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,org.apache.batik.constants*1.11.0.v20190515-0436@default:default,org.apache.batik.css*1.11.0.v20190515-0436@default:default,org.apache.batik.i18n*1.11.0.v20190515-0436@default:default,org.apache.batik.util*1.11.0.v20190515-0436@default:default,org.apache.commons.codec@default:default,org.apache.commons.jxpath@default:default,org.apache.commons.logging*1.1.1.v201101211721@default:default,org.apache.commons.logging*1.2.0.v20180409-1502@default:default,org.apache.felix.scr@1:true,org.apache.xmlgraphics@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@default:default,org.eclipse.core.databinding.beans@default:default,org.eclipse.core.databinding.observable@default:default,org.eclipse.core.databinding.property@default:default,org.eclipse.core.databinding@default:default,org.eclipse.core.expressions@default:default,org.eclipse.core.filesystem.linux.x86_64@default:false,org.eclipse.core.filesystem@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime@default:true,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common.ui@default:default,org.eclipse.emf.common@default:default,org.eclipse.emf.databinding.edit@default:default,org.eclipse.emf.databinding@default:default,org.eclipse.emf.ecore.change@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.edit.ui@default:default,org.eclipse.emf.edit@default:default,org.eclipse.emf.emfstore.client@default:default,org.eclipse.emf.emfstore.common.model@default:default,org.eclipse.emf.emfstore.common@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.emf.emfstore.migration@default:default,org.eclipse.emf.emfstore.server.model@default:default,org.eclipse.emf.emfstore.server@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.preferences@default:default,org.eclipse.equinox.registry@default:default,org.eclipse.equinox.util@default:default,org.eclipse.help@default:default,org.eclipse.jface.databinding@default:default,org.eclipse.jface.text@default:default,org.eclipse.jface@default:default,org.eclipse.net4j.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.osgi.util@default:default,org.eclipse.osgi@-1:true,org.eclipse.swt.gtk.linux.x86_64@default:false,org.eclipse.swt@default:default,org.eclipse.text@default:default,org.eclipse.ui.forms@default:default,org.eclipse.ui.views@default:default,org.eclipse.ui.workbench@default:default,org.eclipse.ui@default:default,org.hamcrest.core@default:default,org.junit@default:default,org.mockito.mockito-core-hamcrest-modified@default:default,org.objenesis@default:default,org.w3c.css.sac@default:default,org.w3c.dom.events@default:default,org.w3c.dom.smil*1.0.0.v200806040011@default:default,org.w3c.dom.smil*1.0.1.v200903091627@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common.ui@default:default,org.eclipse.emf.ecp.common@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit.swt@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.editor.e3@default:default,org.eclipse.emf.ecp.emfstore.core@default:default,org.eclipse.emf.ecp.explorereditorbridge@default:default,org.eclipse.emf.ecp.test.common@default:default,org.eclipse.emf.ecp.ui.view.swt@default:default,org.eclipse.emf.ecp.ui.view.test@default:default,org.eclipse.emf.ecp.ui.view@default:default,org.eclipse.emf.ecp.ui@default:default,org.eclipse.emf.ecp.view.context@default:default,org.eclipse.emf.ecp.view.core.swt.tests@default:false,org.eclipse.emf.ecp.view.core.swt@default:default,org.eclipse.emf.ecp.view.label.model@default:default,org.eclipse.emf.ecp.view.migrator@default:default,org.eclipse.emf.ecp.view.model.common.di@default:default,org.eclipse.emf.ecp.view.model.common@default:default,org.eclipse.emf.ecp.view.model.provider.generator@default:default,org.eclipse.emf.ecp.view.model.provider.xmi@default:default,org.eclipse.emf.ecp.view.model@default:default,org.eclipse.emf.ecp.view.swt.layout@default:default,org.eclipse.emf.ecp.view.table.model@default:default,org.eclipse.emf.ecp.view.template.model@default:default,org.eclipse.emf.ecp.view.template.service@default:default,org.eclipse.emf.ecp.view.test.common.swt@default:default,org.eclipse.emf.ecp.view.util.swt@default:default,org.eclipse.emf.ecp.view.vertical.model@default:default,org.eclipse.emfforms.common.prevalidation@default:default,org.eclipse.emfforms.common@default:default,org.eclipse.emfforms.core.bazaar@default:default,org.eclipse.emfforms.core.services.databinding.featurepath@default:default,org.eclipse.emfforms.core.services.domainexpander.default@default:default,org.eclipse.emfforms.core.services.editsupport@default:default,org.eclipse.emfforms.core.services.emf@default:default,org.eclipse.emfforms.core.services.emfspecificservice@default:default,org.eclipse.emfforms.core.services.legacy@default:default,org.eclipse.emfforms.core.services.locale.default@default:default,org.eclipse.emfforms.core.services.segments@default:default,org.eclipse.emfforms.core.services.structuralchange.default@default:default,org.eclipse.emfforms.core.services.structuralchange@default:default,org.eclipse.emfforms.core.services@default:default,org.eclipse.emfforms.localization@default:default,org.eclipse.emfforms.swt.common.test@default:default,org.eclipse.emfforms.swt.core.di@default:default,org.eclipse.emfforms.swt.core@default:default,org.eclipse.emfforms.view.annotation.model@default:default,org.eclipse.emfforms.view.model.localization@default:default,org.eclipse.emfforms.view.multisegment.model@default:default"/>
+<stringAttribute key="selected_target_plugins" value="com.ibm.icu,javax.annotation,javax.inject,org.apache.batik.constants*1.11.0.v20190515-0436,org.apache.batik.css*1.11.0.v20190515-0436,org.apache.batik.i18n*1.11.0.v20190515-0436,org.apache.batik.util*1.11.0.v20190515-0436,org.apache.commons.codec,org.apache.commons.jxpath,org.apache.commons.logging*1.1.1.v201101211721,org.apache.commons.logging*1.2.0.v20180409-1502,org.apache.felix.scr,org.apache.xmlgraphics,org.eclipse.core.commands,org.eclipse.core.contenttype,org.eclipse.core.databinding,org.eclipse.core.databinding.beans,org.eclipse.core.databinding.observable,org.eclipse.core.databinding.property,org.eclipse.core.expressions,org.eclipse.core.filesystem,org.eclipse.core.filesystem.linux.x86_64,org.eclipse.core.jobs,org.eclipse.core.resources,org.eclipse.core.runtime,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@default:default,org.eclipse.e4.core.di.annotations@default:default,org.eclipse.e4.core.di.extensions.supplier@default:default,org.eclipse.e4.core.di.extensions@default:default,org.eclipse.e4.core.di@default:default,org.eclipse.e4.core.services@default:default,org.eclipse.e4.emf.xpath@default:default,org.eclipse.e4.ui.bindings@default:default,org.eclipse.e4.ui.css.core@default:default,org.eclipse.e4.ui.css.swt.theme@default:default,org.eclipse.e4.ui.css.swt@default:default,org.eclipse.e4.ui.di@default:default,org.eclipse.e4.ui.dialogs@default:default,org.eclipse.e4.ui.model.workbench@default:default,org.eclipse.e4.ui.services@default:default,org.eclipse.e4.ui.widgets@default:default,org.eclipse.e4.ui.workbench.addons.swt@default:default,org.eclipse.e4.ui.workbench.renderers.swt@default:default,org.eclipse.e4.ui.workbench.swt@default:default,org.eclipse.e4.ui.workbench3@default:default,org.eclipse.e4.ui.workbench@default:default,org.eclipse.emf.common,org.eclipse.emf.common.ui,org.eclipse.emf.databinding,org.eclipse.emf.databinding.edit,org.eclipse.emf.ecore,org.eclipse.emf.ecore.change,org.eclipse.emf.ecore.xmi,org.eclipse.emf.edit,org.eclipse.emf.edit.ui,org.eclipse.emf.emfstore.client,org.eclipse.emf.emfstore.common,org.eclipse.emf.emfstore.common.model,org.eclipse.emf.emfstore.examplemodel,org.eclipse.emf.emfstore.examplemodel.edit,org.eclipse.emf.emfstore.migration,org.eclipse.emf.emfstore.server,org.eclipse.emf.emfstore.server.model,org.eclipse.equinox.app,org.eclipse.equinox.common,org.eclipse.equinox.ds,org.eclipse.equinox.event,org.eclipse.equinox.preferences,org.eclipse.equinox.registry,org.eclipse.equinox.util,org.eclipse.help,org.eclipse.jface,org.eclipse.jface.databinding,org.eclipse.jface.text,org.eclipse.net4j.util,org.eclipse.osgi,org.eclipse.osgi.services,org.eclipse.osgi.util,org.eclipse.swt,org.eclipse.swt.gtk.linux.x86_64,org.eclipse.text,org.eclipse.ui,org.eclipse.ui.forms,org.eclipse.ui.views,org.eclipse.ui.workbench,org.hamcrest.core,org.junit,org.mockito.mockito-core-hamcrest-modified,org.objenesis,org.w3c.css.sac,org.w3c.dom.events,org.w3c.dom.smil*1.0.0.v200806040011,org.w3c.dom.smil*1.0.1.v200903091627,org.w3c.dom.svg"/>
+<stringAttribute key="selected_workspace_plugins" value="org.eclipse.emf.ecp.common,org.eclipse.emf.ecp.common.ui,org.eclipse.emf.ecp.core,org.eclipse.emf.ecp.edit,org.eclipse.emf.ecp.edit.swt,org.eclipse.emf.ecp.editor.e3,org.eclipse.emf.ecp.emfstore.core,org.eclipse.emf.ecp.explorereditorbridge,org.eclipse.emf.ecp.test.common,org.eclipse.emf.ecp.ui,org.eclipse.emf.ecp.ui.view,org.eclipse.emf.ecp.ui.view.swt,org.eclipse.emf.ecp.ui.view.test,org.eclipse.emf.ecp.view.context,org.eclipse.emf.ecp.view.core.swt,org.eclipse.emf.ecp.view.core.swt.tests,org.eclipse.emf.ecp.view.label.model,org.eclipse.emf.ecp.view.migrator,org.eclipse.emf.ecp.view.model,org.eclipse.emf.ecp.view.model.common,org.eclipse.emf.ecp.view.model.common.di,org.eclipse.emf.ecp.view.model.provider.generator,org.eclipse.emf.ecp.view.model.provider.xmi,org.eclipse.emf.ecp.view.swt.layout,org.eclipse.emf.ecp.view.table.model,org.eclipse.emf.ecp.view.template.model,org.eclipse.emf.ecp.view.template.service,org.eclipse.emf.ecp.view.test.common.swt,org.eclipse.emf.ecp.view.util.swt,org.eclipse.emf.ecp.view.vertical.model,org.eclipse.emfforms.common,org.eclipse.emfforms.common.prevalidation,org.eclipse.emfforms.core.bazaar,org.eclipse.emfforms.core.services,org.eclipse.emfforms.core.services.databinding.featurepath,org.eclipse.emfforms.core.services.domainexpander.default,org.eclipse.emfforms.core.services.editsupport,org.eclipse.emfforms.core.services.emf,org.eclipse.emfforms.core.services.emfspecificservice,org.eclipse.emfforms.core.services.legacy,org.eclipse.emfforms.core.services.locale.default,org.eclipse.emfforms.core.services.segments,org.eclipse.emfforms.core.services.structuralchange,org.eclipse.emfforms.core.services.structuralchange.default,org.eclipse.emfforms.localization,org.eclipse.emfforms.swt.common.test,org.eclipse.emfforms.swt.core,org.eclipse.emfforms.swt.core.di,org.eclipse.emfforms.view.annotation.model,org.eclipse.emfforms.view.model.localization,org.eclipse.emfforms.view.multisegment.model"/>
<booleanAttribute key="show_selected_only" value="false"/>
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRenderer_PTest.java b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRenderer_PTest.java
index 90d9ecd..eb0cccf 100644
--- a/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRenderer_PTest.java
+++ b/tests/org.eclipse.emf.ecp.view.core.swt.tests/src/org/eclipse/emf/ecp/view/spi/core/swt/renderer/TextControlRenderer_PTest.java
@@ -43,6 +43,7 @@
import org.eclipse.emfforms.spi.core.services.editsupport.EMFFormsEditSupport;
import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
+import org.eclipse.emfforms.spi.swt.core.EMFFormsControlProcessorService;
import org.eclipse.emfforms.spi.swt.core.SWTDataElementIdHelper;
import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
import org.eclipse.emfforms.swt.common.test.AbstractControl_PTest;
@@ -280,4 +281,25 @@
getRenderer().finalizeRendering(getShell());
assertFalse(renderControl.isEnabled());
}
+
+ @Test
+ public void testProcessorCalled()
+ throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, NoLabelFoundException,
+ DatabindingFailedException {
+ final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, "", //$NON-NLS-1$
+ EcorePackage.eINSTANCE.getENamedElement_Name());
+ when(getLabelProvider().getDisplayName(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+ Observables.constantObservableValue("antiException")); //$NON-NLS-1$
+ when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
+ .thenReturn(mockedObservable, new ObservingWritableValue(mockedObservable));
+ when(getDatabindingService().getValueProperty(any(VDomainModelReference.class), any(EObject.class))).thenReturn(
+ Properties.selfValue(mockedObservable.getValueType()));
+
+ final EMFFormsControlProcessorService dummyProcessor = mock(EMFFormsControlProcessorService.class);
+ when(getContext().getService(EMFFormsControlProcessorService.class)).thenReturn(dummyProcessor);
+ when(getContext().hasService(EMFFormsControlProcessorService.class)).thenReturn(Boolean.TRUE);
+ final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
+ getRenderer().finalizeRendering(getShell());
+ Mockito.verify(dummyProcessor).process(renderControl, getvControl(), getContext());
+ }
}