summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTorsten Sommer2013-07-14 09:42:03 -0400
committerTorsten Sommer2013-07-14 09:42:03 -0400
commitedb1f66f550526870b840a049f50b39d903fb1a7 (patch)
treea2c0fae9b1cfdc50cd32305ecaab17a2f65a6027
parent518be5dd52049801f1b95f8cf3761e91fe2f506c (diff)
downloadorg.eclipse.efxclipse-edb1f66f550526870b840a049f50b39d903fb1a7.zip
org.eclipse.efxclipse-edb1f66f550526870b840a049f50b39d903fb1a7.tar.gz
org.eclipse.efxclipse-edb1f66f550526870b840a049f50b39d903fb1a7.tar.xz
Dependency on ecp.edit removed.
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/META-INF/MANIFEST.MF4
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/plugin.xml5
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPApplicableTester.java43
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControlContext.java33
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPModelElementOpenerImpl.java74
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPStaticApplicableTester.java144
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/FXPropertyObservableValue.java49
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ModelElementEditor.java1
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CharacterField.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CheckBoxControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/DateControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ECPControlBase.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/EnumChoiceBox.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ReferenceControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/TextFieldControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AbstractEmbeddedControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AddEnumControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedCheckboxControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedEnumControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedNumberFieldControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedReferenceControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedTextFieldControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EnumAddControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/MultiControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/NumberFieldAddControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/ReferenceAddControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/TextFieldAddControl.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigDecimalSpinner.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigIntegerSpinner.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleField.java103
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleSpinner.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/FloatSpinner.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/IntegerSpinner.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/LongSpinner.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/NumberSpinner.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/ShortSpinner.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/DefaultModelElementForm.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/ModelElementForm.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryDescriptor.java2
-rw-r--r--bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryRegistryImpl.java4
-rw-r--r--demos/org.eclipse.fx.ecp.app.product/org.eclipse.fx.ecp.app.product.product.launch2
-rw-r--r--demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart.java2
-rw-r--r--demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart2.java2
44 files changed, 366 insertions, 162 deletions
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/META-INF/MANIFEST.MF b/bundles/runtime/org.eclipse.fx.ecp.ui/META-INF/MANIFEST.MF
index 6e5fb9b..f21b946 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/META-INF/MANIFEST.MF
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/META-INF/MANIFEST.MF
@@ -5,7 +5,6 @@ Bundle-SymbolicName: org.eclipse.fx.ecp.ui;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: org.eclipse.fx.ecp.ui.ECPUIPlugin
Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.emf.ecp.edit;bundle-version="1.0.0",
org.eclipse.e4.ui.model.workbench;bundle-version="0.10.1",
org.eclipse.e4.core.di;bundle-version="0.0.0",
org.eclipse.e4.core.contexts;bundle-version="0.0.0",
@@ -15,7 +14,8 @@ Require-Bundle: org.eclipse.core.runtime,
org.eclipse.fx.emf.databinding;bundle-version="0.8.1",
jidefx-common;bundle-version="0.9.1",
jidefx-decoration;bundle-version="0.9.1",
- jidefx-fields;bundle-version="0.9.1"
+ jidefx-fields;bundle-version="0.9.1",
+ org.eclipse.emf.edit;bundle-version="2.9.0"
Bundle-ActivationPolicy: lazy
Export-Package: org.eclipse.fx.ecp.ui,
org.eclipse.fx.ecp.ui.controls,
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/plugin.xml b/bundles/runtime/org.eclipse.fx.ecp.ui/plugin.xml
index c7fbf0e..6826bfb 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/plugin.xml
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/plugin.xml
@@ -211,6 +211,11 @@
supportedClassType="java.util.Date">
</staticTest>
</factory>
+ <factory
+ class="org.eclipse.fx.ecp.ui.controls.numeric.DoubleField$Factory"
+ id="org.eclipse.fx.ecp.ui.controls.doubleField"
+ showLabel="true">
+ </factory>
</extension>
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPApplicableTester.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPApplicableTester.java
new file mode 100644
index 0000000..1267d26
--- /dev/null
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPApplicableTester.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.fx.ecp.ui;
+
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This interface defines a {@link #isApplicable(IItemPropertyDescriptor, EObject)} method which is used to determine
+ * the priority of a control. The control with the highest priority for a combination of an {@link EObject} and a
+ * feature will be used.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public interface ECPApplicableTester {
+ /**
+ * Return this whenever the control should not be drawn for the tested feature.
+ */
+ int NOT_APPLICABLE = -1;
+
+ /**
+ * Returns the priority of the corresponding control for the combination of the {@link EObject} and the
+ * {@link IItemPropertyDescriptor}.
+ *
+ * @param itemPropertyDescriptor the {@link IItemPropertyDescriptor} to test
+ * @param eObject the {@link EObject} to test
+ * @return {@link #NOT_APPLICABLE} if the corresponding control should not be used, a positivie integer value
+ * otherwise. The control with the highest priority will be taken.
+ */
+ int isApplicable(IItemPropertyDescriptor itemPropertyDescriptor, EObject eObject);
+}
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControl.java
index 808d61f..ee38a62 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControl.java
@@ -3,8 +3,6 @@ package org.eclipse.fx.ecp.ui;
import java.util.Set;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
-import org.eclipse.emf.ecp.edit.util.ECPApplicableTester;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
import org.eclipse.fx.ecp.ui.impl.ControlFactoryRegistryImpl;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControlContext.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControlContext.java
new file mode 100644
index 0000000..6517c03
--- /dev/null
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPControlContext.java
@@ -0,0 +1,33 @@
+package org.eclipse.fx.ecp.ui;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.domain.EditingDomain;
+
+/**
+ * Context for a modelelement.
+ */
+public interface ECPControlContext {
+
+ /**
+ * Returns the editing domain.
+ *
+ * @return the editing domain
+ */
+ EditingDomain getEditingDomain();
+
+ /**
+ * Returns the {@link EObject} of this {@link ECPControlContext}.
+ *
+ * @return the {@link EObject} of this context
+ */
+ EObject getModelElement();
+
+ /**
+ * Opens an {@link EObject} in a new context.
+ *
+ * @param eObject
+ * the {@link EObject} to open in a new context
+ */
+ void openInNewContext(EObject eObject);
+
+}
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPModelElementOpenerImpl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPModelElementOpenerImpl.java
index 1d6f6ea..2002d8a 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPModelElementOpenerImpl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPModelElementOpenerImpl.java
@@ -1,18 +1,12 @@
package org.eclipse.fx.ecp.ui;
-import java.util.Locale;
-
import javax.inject.Inject;
-import org.eclipse.core.databinding.DataBindingContext;
import org.eclipse.e4.ui.model.application.MApplication;
import org.eclipse.e4.ui.model.application.ui.MUIElement;
import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.e4.ui.workbench.modeling.EModelService;
-import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
import org.eclipse.emf.edit.domain.EditingDomain;
@@ -20,14 +14,12 @@ public class ECPModelElementOpenerImpl implements ECPModelElementOpener {
final private MApplication application;
final private EModelService modelService;
- final private EPartService partService;
@Inject
- public ECPModelElementOpenerImpl(MApplication application, EModelService modelService, EPartService partService) {
+ public ECPModelElementOpenerImpl(MApplication application, EModelService modelService) {
super();
this.application = application;
this.modelService = modelService;
- this.partService = partService;
this.application.getContext().set(ECPModelElementOpener.class, this);
}
@@ -50,86 +42,22 @@ public class ECPModelElementOpenerImpl implements ECPModelElementOpener {
}
@Override
- public boolean isRunningAsWebApplication() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public EObject getNewElementFor(EReference eReference) {
- throw new UnsupportedOperationException();
- }
-
- @Override
public EObject getModelElement() {
return modelElement;
}
@Override
- public Locale getLocale() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public EObject getExistingElementFor(EReference eReference) {
- throw new UnsupportedOperationException();
- }
-
- @Override
public EditingDomain getEditingDomain() {
return AdapterFactoryEditingDomain.getEditingDomainFor(modelElement);
}
- @Override
- public DataBindingContext getDataBindingContext() {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void addModelElement(EObject eObject, EReference eReference) {
- throw new UnsupportedOperationException();
- }
};
- //new DummyControlContext(modelElement) {
-//
-// @Override
-// public void openInNewContext(EObject eObject) {
-// openModelElement(eObject);
-// }
-//
-// };
-
((ModelElementEditor) object).setInput(modelElementContext);
}
}
- // MPartStack stack = (MPartStack) modelService.find("org.eclipse.fx.ecp.app.partstacks.editors",
- // application);
- //
- // MInputPart part = MBasicFactory.INSTANCE.createInputPart();
- // part.setContributionURI("bundleclass://org.eclipse.fx.ecp.app/org.eclipse.fx.ecp.ModelEditorPart");
- //
- // // part.setIconURI("platform:/plugin/de.vogella.rcp.e4.todo/icons/sample.gif");
- // part.setCloseable(true);
- //
- // stack.getChildren().add(part);
- // partService.showPart(part, PartState.ACTIVATE);
- //
- // part.getContext().set(EObject.class, modelElement);
- //
- // ModelElementEditor editor = (ModelElementEditor) part.getObject();
- //
- // ECPControlContext modelElementContext = new DummyControlContext(modelElement) {
- //
- // @Override
- // public void openInNewContext(EObject eObject) {
- // openModelElement(eObject);
- // }
- //
- // };
- //
- // editor.setInput(modelElementContext);
}
}
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPStaticApplicableTester.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPStaticApplicableTester.java
new file mode 100644
index 0000000..26538f0
--- /dev/null
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ECPStaticApplicableTester.java
@@ -0,0 +1,144 @@
+/*******************************************************************************
+ * Copyright (c) 2011-2013 EclipseSource Muenchen GmbH and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Eugen Neufeld - initial API and implementation
+ *
+ *******************************************************************************/
+package org.eclipse.fx.ecp.ui;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * The implementation of the {@link ECPApplicableTester} for a static test, like defined in the staticTest element.
+ *
+ * @author Eugen Neufeld
+ *
+ */
+public final class ECPStaticApplicableTester implements ECPApplicableTester {
+
+ private final boolean singleValue;
+ private final int priority;
+ private final Class<?> supportedClassType;
+ private final Class<? extends EObject> supportedEObject;
+ private final String supportedFeature;
+
+ /**
+ * The constructor of the static tester.
+ *
+ * @param singleValue whether the corresponding control supports only single valued features
+ * @param priority the static priority
+ * @param supportedClassType the class of the supported type
+ * @param supportedEObject the eobject this tester allows
+ * @param supportedFeature the feature this tester allows
+ */
+ public ECPStaticApplicableTester(boolean singleValue, int priority, Class<?> supportedClassType,
+ Class<? extends EObject> supportedEObject, String supportedFeature) {
+ this.singleValue = singleValue;
+ this.priority = priority;
+ this.supportedClassType = supportedClassType;
+ this.supportedEObject = supportedEObject;
+ this.supportedFeature = supportedFeature;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public int isApplicable(IItemPropertyDescriptor itemPropertyDescriptor, EObject eObject) {
+ // if the feature is a multiValue and the description is a singlevalue continue
+ if (isSingleValue() == itemPropertyDescriptor.isMany(eObject)) {
+ return NOT_APPLICABLE;
+ }
+ EStructuralFeature feature = (EStructuralFeature) itemPropertyDescriptor.getFeature(eObject);
+ // if we have an attribute
+ if (EAttribute.class.isInstance(feature)) {
+ Class<?> instanceClass = ((EAttribute) feature).getEAttributeType().getInstanceClass();
+ if (instanceClass == null) {
+ return NOT_APPLICABLE;
+ }
+ // if the attribute class is an primitive test the primitive types
+ if (instanceClass.isPrimitive()) {
+ try {
+ Class<?> primitive = (Class<?>) getSupportedClassType().getField("TYPE").get(null); //$NON-NLS-1$
+ if (!primitive.equals(instanceClass)) {
+ return NOT_APPLICABLE;
+ }
+
+ } catch (IllegalArgumentException e) {
+ return NOT_APPLICABLE;
+ } catch (SecurityException e) {
+ return NOT_APPLICABLE;
+ } catch (IllegalAccessException e) {
+ return NOT_APPLICABLE;
+ } catch (NoSuchFieldException e) {
+ return NOT_APPLICABLE;
+ }
+ }
+ // otherwise test the classes itself
+ else if (!getSupportedClassType().isAssignableFrom(instanceClass)) {
+ return NOT_APPLICABLE;
+ }
+ }
+ // if we have an reference the the classes
+ else if (EReference.class.isInstance(feature)) {
+ Class<?> instanceClass = feature.getEType().getInstanceClass();
+ if (instanceClass == null) {
+ instanceClass = EObject.class;
+ }
+ if (!getSupportedClassType().isAssignableFrom(instanceClass)) {
+ return NOT_APPLICABLE;
+ }
+ }
+ // if the supported eobject is assignable from the current eobject and the supported feature is eitehr null or
+ // equals the current one
+ if (getSupportedEObject().isInstance(eObject)
+ && (getSupportedFeature() == null || feature.equals(eObject.eClass().getEStructuralFeature(getSupportedFeature())))) {
+ return getPriority();
+ }
+ return NOT_APPLICABLE;
+ }
+ /**
+ * Whether the corresponding control is allowed only for single values.
+ * @return true if only a single value is allows
+ */
+ public boolean isSingleValue() {
+ return singleValue;
+ }
+ /**
+ * The static priority of the corresponding control.
+ * @return the priority
+ */
+ public int getPriority() {
+ return priority;
+ }
+ /**
+ * The eobejct which is supported by the corresponding control.
+ * @return the class of the supported eobejct
+ */
+ public Class<? extends EObject> getSupportedEObject() {
+ return supportedEObject;
+ }
+ /**
+ * The name of the feature the corresponding control supports.
+ * @return the name of the supported feature
+ */
+ public String getSupportedFeature() {
+ return supportedFeature;
+ }
+ /**
+ * The class of the type the corresponding control supports.
+ * @return the class of the supported type
+ */
+ public Class<?> getSupportedClassType() {
+ return supportedClassType;
+ }
+}
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/FXPropertyObservableValue.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/FXPropertyObservableValue.java
deleted file mode 100644
index 1e5dd85..0000000
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/FXPropertyObservableValue.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.eclipse.fx.ecp.ui;
-
-import javafx.beans.property.Property;
-import javafx.beans.value.ChangeListener;
-import javafx.beans.value.ObservableValue;
-
-import org.eclipse.core.databinding.observable.value.AbstractObservableValue;
-import org.eclipse.core.databinding.observable.value.ValueDiff;
-
-
-public class FXPropertyObservableValue<T> extends AbstractObservableValue {
-
- Property<T> property;
-
- public FXPropertyObservableValue(Property<T> property) {
- this.property = property;
- property.addListener(new ChangeListener<T>() {
-
- @Override
- public void changed(ObservableValue<? extends T> observableValue, final T oldValue, final T newValue) {
- fireValueChange(new ValueDiff() {
-
- @Override
- public Object getOldValue() {
- return oldValue;
- }
-
- @Override
- public Object getNewValue() {
- return newValue;
- }
-
- });
- }
-
- });
- }
-
- @Override
- public Object getValueType() {
- return null;
- }
-
- @Override
- protected Object doGetValue() {
- return property.getValue();
- }
-
-}
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ModelElementEditor.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ModelElementEditor.java
index 01070d6..071829b 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ModelElementEditor.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/ModelElementEditor.java
@@ -1,6 +1,5 @@
package org.eclipse.fx.ecp.ui;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
public interface ModelElementEditor {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CharacterField.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CharacterField.java
index 03c4b48..bf22607 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CharacterField.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CharacterField.java
@@ -10,10 +10,10 @@ import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public class CharacterField extends ECPControlBase {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CheckBoxControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CheckBoxControl.java
index d40050f..94991d8 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CheckBoxControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/CheckBoxControl.java
@@ -5,9 +5,9 @@ import javafx.scene.control.CheckBox;
import javafx.scene.control.SkinBase;
import javafx.scene.layout.HBox;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.emf.databinding.edit.EMFEditFXProperties;
public class CheckBoxControl extends ECPControlBase {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/DateControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/DateControl.java
index f74372d..0e8daa6 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/DateControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/DateControl.java
@@ -10,10 +10,10 @@ import javafx.scene.layout.HBox;
import jidefx.scene.control.field.DateField;
import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public class DateControl extends ECPControlBase {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ECPControlBase.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ECPControlBase.java
index a5ee3d5..487c175 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ECPControlBase.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ECPControlBase.java
@@ -7,9 +7,9 @@ import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public abstract class ECPControlBase extends Control {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/EnumChoiceBox.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/EnumChoiceBox.java
index 5f2b751..6722a61 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/EnumChoiceBox.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/EnumChoiceBox.java
@@ -15,10 +15,10 @@ import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EEnumLiteral;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public class EnumChoiceBox extends ECPControlBase {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ReferenceControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ReferenceControl.java
index 23977b3..fbe9426 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ReferenceControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/ReferenceControl.java
@@ -19,10 +19,10 @@ import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
import org.eclipse.fx.emf.edit.ui.dnd.LocalTransfer;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/TextFieldControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/TextFieldControl.java
index a92d9bf..8dddd26 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/TextFieldControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/TextFieldControl.java
@@ -10,10 +10,10 @@ import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public class TextFieldControl extends ECPControlBase {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AbstractEmbeddedControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AbstractEmbeddedControl.java
index 5de6e7f..9ba7212 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AbstractEmbeddedControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AbstractEmbeddedControl.java
@@ -12,11 +12,11 @@ import javafx.scene.layout.HBox;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.command.CompoundCommand;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.MoveCommand;
import org.eclipse.emf.edit.command.RemoveCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AddEnumControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AddEnumControl.java
index ecf5dee..8e3788f 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AddEnumControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/AddEnumControl.java
@@ -12,7 +12,7 @@ import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EEnumLiteral;
import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public class AddEnumControl extends ChoiceBox<Enumerator> {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedCheckboxControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedCheckboxControl.java
index 4b1688f..7b36e6d 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedCheckboxControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedCheckboxControl.java
@@ -9,9 +9,9 @@ import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public class EmbeddedCheckboxControl extends AbstractEmbeddedControl {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedEnumControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedEnumControl.java
index 2f37c41..44a0e4c 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedEnumControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedEnumControl.java
@@ -13,9 +13,9 @@ import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EEnumLiteral;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public class EmbeddedEnumControl extends AbstractEmbeddedControl {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedNumberFieldControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedNumberFieldControl.java
index c43bdc8..0e3f68f 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedNumberFieldControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedNumberFieldControl.java
@@ -12,9 +12,9 @@ import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.AutoSelector;
public class EmbeddedNumberFieldControl extends AbstractEmbeddedControl {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedReferenceControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedReferenceControl.java
index 40c0655..fcb02e4 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedReferenceControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedReferenceControl.java
@@ -10,8 +10,8 @@ import javafx.scene.layout.Priority;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
public class EmbeddedReferenceControl extends AbstractEmbeddedControl {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedTextFieldControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedTextFieldControl.java
index 95e5db5..58f4be8 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedTextFieldControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EmbeddedTextFieldControl.java
@@ -16,9 +16,9 @@ import javafx.stage.Popup;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.AutoSelector;
public class EmbeddedTextFieldControl extends AbstractEmbeddedControl {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EnumAddControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EnumAddControl.java
index cc3da77..4a68dc4 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EnumAddControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/EnumAddControl.java
@@ -17,9 +17,9 @@ import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.emf.ecore.EClassifier;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EEnumLiteral;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/MultiControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/MultiControl.java
index 596769b..40c1e2c 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/MultiControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/MultiControl.java
@@ -30,13 +30,13 @@ import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.command.MoveCommand;
import org.eclipse.emf.edit.command.RemoveCommand;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUIPlugin;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
import org.eclipse.fx.ecp.ui.controls.ValidationMessage;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/NumberFieldAddControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/NumberFieldAddControl.java
index 25f6743..376366a 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/NumberFieldAddControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/NumberFieldAddControl.java
@@ -13,9 +13,9 @@ import javafx.scene.layout.Priority;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/ReferenceAddControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/ReferenceAddControl.java
index 8a34273..a2dbd3f 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/ReferenceAddControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/ReferenceAddControl.java
@@ -11,9 +11,9 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.util.EcoreUtil;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/TextFieldAddControl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/TextFieldAddControl.java
index 7549e4f..85c6c2d 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/TextFieldAddControl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/multi/TextFieldAddControl.java
@@ -14,9 +14,9 @@ import javafx.scene.layout.Priority;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.AddCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
import org.eclipse.fx.ecp.ui.controls.AutoSelector;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigDecimalSpinner.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigDecimalSpinner.java
index c705443..9f93bdd 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigDecimalSpinner.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigDecimalSpinner.java
@@ -2,9 +2,9 @@ package org.eclipse.fx.ecp.ui.controls.numeric;
import java.math.BigDecimal;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigIntegerSpinner.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigIntegerSpinner.java
index a98c9fb..5d61f58 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigIntegerSpinner.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/BigIntegerSpinner.java
@@ -2,9 +2,9 @@ package org.eclipse.fx.ecp.ui.controls.numeric;
import java.math.BigInteger;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
public class BigIntegerSpinner extends NumberSpinner {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleField.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleField.java
new file mode 100644
index 0000000..f8d9d4f
--- /dev/null
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleField.java
@@ -0,0 +1,103 @@
+package org.eclipse.fx.ecp.ui.controls.numeric;
+
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
+import java.util.Objects;
+
+import javafx.beans.value.ChangeListener;
+import javafx.beans.value.ObservableValue;
+import javafx.scene.control.SkinBase;
+import javafx.scene.layout.HBox;
+import jidefx.scene.control.field.NumberField;
+
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.edit.command.SetCommand;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
+import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
+
+public class DoubleField extends ECPControlBase implements ECPControl {
+
+ protected NumberField numberField;
+ protected boolean internalUpdate = false;
+
+ public class DoubleFieldSkin extends SkinBase<DoubleField> {
+
+ DoubleFieldSkin(DoubleField control) {
+
+ super(control);
+
+ HBox hBox = new HBox();
+ getChildren().add(hBox);
+ hBox.setFillHeight(true);
+
+ numberField = new NumberField() {
+
+ @Override
+ protected Number fromString(String arg0) {
+ return Double.parseDouble(arg0);
+// return super.fromString(arg0);
+ }
+
+ };
+
+ numberField.setDefaultValue(0.0);
+
+ numberField.setDecimalFormat(new DecimalFormat("f"));
+
+ hBox.getChildren().add(numberField);
+
+ numberField.valueProperty().addListener(new ChangeListener<Number>() {
+
+ @Override
+ public void changed(ObservableValue<? extends Number> arg0, Number oldValue, Number newValue) {
+ // only commit if the value has changed
+ if (!Objects.equals(oldValue, newValue) && !internalUpdate) {
+ Command command = SetCommand.create(editingDomain, modelElement, feature, newValue);
+ if (command.canExecute())
+ editingDomain.getCommandStack().execute(command);
+ }
+ }
+
+ });
+
+ update();
+ }
+
+ }
+
+ public DoubleField(IItemPropertyDescriptor propertyDescriptor, ECPControlContext context) {
+ super(propertyDescriptor, context);
+ setSkin(new DoubleFieldSkin(this));
+ getStyleClass().add("spinner");
+ }
+
+ @Override
+ protected String getUserAgentStylesheet() {
+ return getClass().getResource("../ECPControls.css").toExternalForm();
+ }
+
+ @Override
+ protected void update() {
+ Double value = (Double) modelElement.eGet(feature);
+ internalUpdate = true;
+ numberField.setValue(value);
+ internalUpdate = false;
+ }
+
+ @Override
+ public void dispose() {
+ modelElement.eAdapters().remove(modelElementAdapter);
+ }
+
+ public static class Factory implements ECPControl.Factory {
+
+ @Override
+ public ECPControlBase createControl(IItemPropertyDescriptor itemPropertyDescriptor, ECPControlContext context) {
+ return new DoubleField(itemPropertyDescriptor, context);
+ }
+
+ }
+
+}
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleSpinner.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleSpinner.java
index 54de904..fd4623e 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleSpinner.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/DoubleSpinner.java
@@ -1,8 +1,8 @@
package org.eclipse.fx.ecp.ui.controls.numeric;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
public class DoubleSpinner extends NumberSpinner {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/FloatSpinner.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/FloatSpinner.java
index 4894d3d..92be376 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/FloatSpinner.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/FloatSpinner.java
@@ -1,8 +1,8 @@
package org.eclipse.fx.ecp.ui.controls.numeric;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
public class FloatSpinner extends NumberSpinner {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/IntegerSpinner.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/IntegerSpinner.java
index 8ee8649..715c424 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/IntegerSpinner.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/IntegerSpinner.java
@@ -1,8 +1,8 @@
package org.eclipse.fx.ecp.ui.controls.numeric;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
public class IntegerSpinner extends NumberSpinner {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/LongSpinner.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/LongSpinner.java
index d5eac4d..873632a 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/LongSpinner.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/LongSpinner.java
@@ -1,8 +1,8 @@
package org.eclipse.fx.ecp.ui.controls.numeric;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
public class LongSpinner extends NumberSpinner {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/NumberSpinner.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/NumberSpinner.java
index 155d0b0..f291dcd 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/NumberSpinner.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/NumberSpinner.java
@@ -12,10 +12,10 @@ import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import org.eclipse.emf.common.command.Command;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.command.SetCommand;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
import org.eclipse.fx.ecp.ui.controls.AutoSelector;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/ShortSpinner.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/ShortSpinner.java
index ec7a6c5..b6ac1ea 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/ShortSpinner.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/controls/numeric/ShortSpinner.java
@@ -1,8 +1,8 @@
package org.eclipse.fx.ecp.ui.controls.numeric;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
public class ShortSpinner extends NumberSpinner {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/DefaultModelElementForm.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/DefaultModelElementForm.java
index d29eca8..7c0767e 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/DefaultModelElementForm.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/DefaultModelElementForm.java
@@ -33,11 +33,11 @@ import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.Diagnostician;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPControl.Factory.Registry;
import org.eclipse.fx.ecp.ui.controls.ControlDecoration;
import org.eclipse.fx.ecp.ui.controls.ECPControlBase;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/ModelElementForm.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/ModelElementForm.java
index b81f2d0..5a99848 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/ModelElementForm.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/form/ModelElementForm.java
@@ -3,7 +3,7 @@ package org.eclipse.fx.ecp.ui.form;
import javafx.scene.Node;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
public interface ModelElementForm {
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryDescriptor.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryDescriptor.java
index ed6b4be..1295171 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryDescriptor.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryDescriptor.java
@@ -2,7 +2,7 @@ package org.eclipse.fx.ecp.ui.impl;
import java.util.Set;
-import org.eclipse.emf.ecp.edit.util.ECPApplicableTester;
+import org.eclipse.fx.ecp.ui.ECPApplicableTester;
import org.eclipse.fx.ecp.ui.ECPControl;
import org.eclipse.fx.ecp.ui.ECPControl.Factory;
diff --git a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryRegistryImpl.java b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryRegistryImpl.java
index 09c9f43..7b61778 100644
--- a/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryRegistryImpl.java
+++ b/bundles/runtime/org.eclipse.fx.ecp.ui/src/org/eclipse/fx/ecp/ui/impl/ControlFactoryRegistryImpl.java
@@ -7,10 +7,10 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;
import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecp.edit.util.ECPApplicableTester;
-import org.eclipse.emf.ecp.edit.util.ECPStaticApplicableTester;
import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.fx.ecp.ui.ECPApplicableTester;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPStaticApplicableTester;
import org.eclipse.fx.ecp.ui.ECPControl.Factory;
import org.osgi.framework.Bundle;
diff --git a/demos/org.eclipse.fx.ecp.app.product/org.eclipse.fx.ecp.app.product.product.launch b/demos/org.eclipse.fx.ecp.app.product/org.eclipse.fx.ecp.app.product.product.launch
index 03bf60f..f72aa1d 100644
--- a/demos/org.eclipse.fx.ecp.app.product/org.eclipse.fx.ecp.app.product.product.launch
+++ b/demos/org.eclipse.fx.ecp.app.product/org.eclipse.fx.ecp.app.product.product.launch
@@ -29,7 +29,7 @@
<setEntry value="at.bestsolution.efxclipse.ecp.app.feature:default"/>
</setAttribute>
<stringAttribute key="selected_target_plugins" value="com.google.guava@default:default,com.google.inject.assistedinject@default:false,com.google.inject.multibindings@default:false,com.google.inject@default:default,com.ibm.icu@default:default,javax.annotation@default:default,javax.inject@default:default,javax.servlet@default:default,javax.xml@default:default,org.apache.ant@default:default,org.apache.batik.css@default:default,org.apache.batik.util.gui@default:default,org.apache.batik.util@default:default,org.apache.commons.logging@default:default,org.apache.log4j@default:default,org.eclipse.ant.core@default:default,org.eclipse.core.commands@default:default,org.eclipse.core.contenttype@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@default:default,org.eclipse.core.jobs@default:default,org.eclipse.core.resources@default:default,org.eclipse.core.runtime.compatibility.auth@default:default,org.eclipse.core.runtime.compatibility.registry@default:false,org.eclipse.core.runtime@default:true,org.eclipse.core.variables@default:default,org.eclipse.e4.core.commands@default:default,org.eclipse.e4.core.contexts@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.ui.css.core@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.workbench@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.edit@default:default,org.eclipse.emf.ecore.xmi@default:default,org.eclipse.emf.ecore@default:default,org.eclipse.emf.ecp.core@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.edit@default:default,org.eclipse.equinox.app@default:default,org.eclipse.equinox.common@2:true,org.eclipse.equinox.concurrent@default:default,org.eclipse.equinox.ds@1:true,org.eclipse.equinox.event@default:default,org.eclipse.equinox.launcher@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.net4j.util@default:default,org.eclipse.osgi.services@default:default,org.eclipse.xtext.logging@default:false,org.hamcrest.core@default:default,org.w3c.css.sac@default:default,org.w3c.dom.smil@default:default,org.w3c.dom.svg@default:default"/>
-<stringAttribute key="selected_workspace_plugins" value="jidefx-common@default:default,jidefx-decoration@default:default,jidefx-fields@default:default,org.eclipse.emf.ecp.edit@default:default,org.eclipse.emf.ecp.workspace.core@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.fx.core.databinding@default:default,org.eclipse.fx.core.guice@default:default,org.eclipse.fx.core.log4j@default:default,org.eclipse.fx.core@default:default,org.eclipse.fx.ecp.app@default:default,org.eclipse.fx.ecp.ui@default:default,org.eclipse.fx.emf.databinding@default:default,org.eclipse.fx.emf.edit.ui@default:default,org.eclipse.fx.javafx@default:default,org.eclipse.fx.osgi.util@default:default,org.eclipse.fx.osgi@default:false,org.eclipse.fx.ui.animation@default:default,org.eclipse.fx.ui.databinding@default:default,org.eclipse.fx.ui.di@default:default,org.eclipse.fx.ui.dialogs@default:default,org.eclipse.fx.ui.keybindings.e4@default:default,org.eclipse.fx.ui.keybindings.generic@default:default,org.eclipse.fx.ui.keybindings@default:default,org.eclipse.fx.ui.lifecycle@default:default,org.eclipse.fx.ui.panes@default:default,org.eclipse.fx.ui.services@default:default,org.eclipse.fx.ui.theme@default:default,org.eclipse.fx.ui.workbench.base@default:default,org.eclipse.fx.ui.workbench.fx.controls@default:default,org.eclipse.fx.ui.workbench.fx@default:default,org.eclipse.fx.ui.workbench.renderers.base@default:default,org.eclipse.fx.ui.workbench.renderers.fx@default:default,org.eclipse.osgi@-1:true"/>
+<stringAttribute key="selected_workspace_plugins" value="jidefx-common@default:default,jidefx-decoration@default:default,jidefx-fields@default:default,org.eclipse.emf.ecp.workspace.core@default:default,org.eclipse.emf.emfstore.examplemodel.edit@default:default,org.eclipse.emf.emfstore.examplemodel@default:default,org.eclipse.fx.core.databinding@default:default,org.eclipse.fx.core.guice@default:default,org.eclipse.fx.core.log4j@default:default,org.eclipse.fx.core@default:default,org.eclipse.fx.ecp.app@default:default,org.eclipse.fx.ecp.ui@default:default,org.eclipse.fx.emf.databinding@default:default,org.eclipse.fx.emf.edit.ui@default:default,org.eclipse.fx.javafx@default:default,org.eclipse.fx.osgi.util@default:default,org.eclipse.fx.osgi@default:false,org.eclipse.fx.ui.animation@default:default,org.eclipse.fx.ui.databinding@default:default,org.eclipse.fx.ui.di@default:default,org.eclipse.fx.ui.dialogs@default:default,org.eclipse.fx.ui.keybindings.e4@default:default,org.eclipse.fx.ui.keybindings.generic@default:default,org.eclipse.fx.ui.keybindings@default:default,org.eclipse.fx.ui.lifecycle@default:default,org.eclipse.fx.ui.panes@default:default,org.eclipse.fx.ui.services@default:default,org.eclipse.fx.ui.theme@default:default,org.eclipse.fx.ui.workbench.base@default:default,org.eclipse.fx.ui.workbench.fx.controls@default:default,org.eclipse.fx.ui.workbench.fx@default:default,org.eclipse.fx.ui.workbench.renderers.base@default:default,org.eclipse.fx.ui.workbench.renderers.fx@default:default,org.eclipse.osgi@-1:true"/>
<booleanAttribute key="show_selected_only" value="false"/>
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
diff --git a/demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart.java b/demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart.java
index 4017429..5e7bd4e 100644
--- a/demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart.java
+++ b/demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart.java
@@ -25,11 +25,11 @@ import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.impl.AdapterImpl;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
import org.eclipse.emf.edit.provider.AdapterFactoryItemDelegator;
import org.eclipse.emf.edit.provider.ComposedAdapterFactory;
import org.eclipse.emf.edit.provider.IItemLabelProvider;
import org.eclipse.fx.ecp.ui.ECPControl;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ModelElementEditor;
import org.eclipse.fx.ecp.ui.form.DefaultModelElementForm;
diff --git a/demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart2.java b/demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart2.java
index b4aed1f..0a888e0 100644
--- a/demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart2.java
+++ b/demos/org.eclipse.fx.ecp.app/src/org/eclipse/fx/ecp/ModelEditorPart2.java
@@ -39,7 +39,7 @@ import org.eclipse.e4.ui.model.application.ui.basic.MPart;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.util.Diagnostician;
-import org.eclipse.emf.ecp.edit.ECPControlContext;
+import org.eclipse.fx.ecp.ui.ECPControlContext;
import org.eclipse.fx.ecp.ui.ECPUtil;
import org.eclipse.fx.ecp.ui.ModelElementEditor;
import org.eclipse.fx.ecp.ui.controls.BreadcrumbBar;