Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMélanie Bats2016-02-23 14:53:29 +0000
committerMélanie Bats2016-02-29 10:50:26 +0000
commit3e7b9a6332d379bb696da52d57abbd0cc5bd90e7 (patch)
treea4192e0223de56be0363d29f51474fa059fa9fc6
parent1a1ae66087ab481311a05681f180393db0e6179b (diff)
downloadorg.eclipse.eef-3e7b9a6332d379bb696da52d57abbd0cc5bd90e7.tar.gz
org.eclipse.eef-3e7b9a6332d379bb696da52d57abbd0cc5bd90e7.tar.xz
org.eclipse.eef-3e7b9a6332d379bb696da52d57abbd0cc5bd90e7.zip
Contribute single reference & multiple references widgets
Change-Id: Iecdb54192cc1854c77536dfe2212d5c4dff4ab26 Signed-off-by: Mélanie Bats <melanie.bats@obeo.fr>
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFExpressionUtils.java23
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFControllersFactory.java40
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/IEEFMultipleReferencesController.java76
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/IEEFSingleReferenceController.java59
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFMultipleReferencesController.java212
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFSingleReferenceController.java167
-rw-r--r--plugins/org.eclipse.eef.edit/icons/full/obj16/EEFMultipleReferencesDescription.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.eef.edit/icons/full/obj16/EEFSingleReferenceDescription.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.eef.edit/plugin.properties18
-rw-r--r--plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFContainerDescriptionItemProvider.java6
-rw-r--r--plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFDynamicMappingIfItemProvider.java6
-rw-r--r--plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFMultipleReferencesDescriptionItemProvider.java267
-rw-r--r--plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFSingleReferenceDescriptionItemProvider.java229
-rw-r--r--plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EefItemProviderAdapterFactory.java52
-rw-r--r--plugins/org.eclipse.eef.ide.ui/icons/full/create.gifbin0 -> 318 bytes
-rw-r--r--plugins/org.eclipse.eef.ide.ui/icons/full/down.gifbin0 -> 332 bytes
-rw-r--r--plugins/org.eclipse.eef.ide.ui/icons/full/search.gifbin0 -> 124 bytes
-rw-r--r--plugins/org.eclipse.eef.ide.ui/icons/full/unset.gifbin0 -> 351 bytes
-rw-r--r--plugins/org.eclipse.eef.ide.ui/icons/full/up.gifbin0 -> 323 bytes
-rw-r--r--plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/EEFIdeUiPlugin.java7
-rw-r--r--plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/Icons.java25
-rw-r--r--plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/AbstractEEFWidgetLifecycleManager.java4
-rw-r--r--plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java18
-rw-r--r--plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFMultipleReferencesLifecycleManager.java449
-rw-r--r--plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSingleReferenceLifecycleManager.java360
-rw-r--r--plugins/org.eclipse.eef/model/eef.ecore80
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFMultipleReferencesDescription.java226
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFSingleReferenceDescription.java176
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefFactory.java18
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefPackage.java520
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFMultipleReferencesDescriptionImpl.java586
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFSingleReferenceDescriptionImpl.java466
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefFactoryImpl.java28
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefPackageImpl.java258
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefAdapterFactory.java40
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefSwitch.java54
36 files changed, 4465 insertions, 5 deletions
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFExpressionUtils.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFExpressionUtils.java
index 6652dfd0e..546f3079f 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFExpressionUtils.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/EEFExpressionUtils.java
@@ -21,12 +21,12 @@ public final class EEFExpressionUtils {
* The self variable.
*/
public static final String SELF = "self"; //$NON-NLS-1$
-
+
/**
* The input variable.
*/
public static final String INPUT = "input"; //$NON-NLS-1$
-
+
/**
* The expression used to retrieve self.
*/
@@ -95,4 +95,23 @@ public final class EEFExpressionUtils {
// prevent instantiation
}
}
+
+ /**
+ * Utility class containing the constants related to the {@link org.eclipse.eef.core.api.EEFMultiReferences}.
+ *
+ * @author mbats
+ */
+ public final class EEFMultiReferences {
+ /**
+ * The name of the variable selection.
+ */
+ public static final String SELECTION = "selection"; //$NON-NLS-1$
+
+ /**
+ * The constructor.
+ */
+ private EEFMultiReferences() {
+ // prevent instantiation
+ }
+ }
}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFControllersFactory.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFControllersFactory.java
index 058e6850a..569b7c56a 100644
--- a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFControllersFactory.java
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFControllersFactory.java
@@ -14,15 +14,19 @@ import org.eclipse.eef.EEFButtonDescription;
import org.eclipse.eef.EEFCheckboxDescription;
import org.eclipse.eef.EEFGroupDescription;
import org.eclipse.eef.EEFLabelDescription;
+import org.eclipse.eef.EEFMultipleReferencesDescription;
import org.eclipse.eef.EEFRadioDescription;
import org.eclipse.eef.EEFSelectDescription;
+import org.eclipse.eef.EEFSingleReferenceDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.core.internal.controllers.EEFButtonController;
import org.eclipse.eef.core.internal.controllers.EEFCheckboxController;
import org.eclipse.eef.core.internal.controllers.EEFGroupController;
import org.eclipse.eef.core.internal.controllers.EEFLabelController;
+import org.eclipse.eef.core.internal.controllers.EEFMultipleReferencesController;
import org.eclipse.eef.core.internal.controllers.EEFRadioController;
import org.eclipse.eef.core.internal.controllers.EEFSelectController;
+import org.eclipse.eef.core.internal.controllers.EEFSingleReferenceController;
import org.eclipse.eef.core.internal.controllers.EEFTextController;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.sirius.common.interpreter.api.IInterpreter;
@@ -155,4 +159,40 @@ public class EEFControllersFactory {
TransactionalEditingDomain editingDomain) {
return new EEFRadioController(description, variableManager, interpreter, editingDomain);
}
+
+ /**
+ * Creates a new single reference controller.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ * @param editingDomain
+ * The editing domain
+ * @return A radio controller
+ */
+ public IEEFSingleReferenceController createSingleReferenceController(EEFSingleReferenceDescription description, IVariableManager variableManager,
+ IInterpreter interpreter, TransactionalEditingDomain editingDomain) {
+ return new EEFSingleReferenceController(description, variableManager, interpreter, editingDomain);
+ }
+
+ /**
+ * Creates a new multiple references controller.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ * @param editingDomain
+ * The editing domain
+ * @return A radio controller
+ */
+ public IEEFMultipleReferencesController createMultipleReferencesController(EEFMultipleReferencesDescription description,
+ IVariableManager variableManager, IInterpreter interpreter, TransactionalEditingDomain editingDomain) {
+ return new EEFMultipleReferencesController(description, variableManager, interpreter, editingDomain);
+ }
}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/IEEFMultipleReferencesController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/IEEFMultipleReferencesController.java
new file mode 100644
index 000000000..10c4b1101
--- /dev/null
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/IEEFMultipleReferencesController.java
@@ -0,0 +1,76 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.core.api.controllers;
+
+import java.util.List;
+
+/**
+ * The IEEFMultipleReferencesController is responsible of supporting all the interactions with the widgets created for a
+ * multiple references viewer.
+ *
+ * @author mbats
+ */
+public interface IEEFMultipleReferencesController extends IEEFWidgetController {
+ /**
+ * Register a consumer which will be called with the new value of the text when it will change.
+ *
+ * @param consumer
+ * The consumer of the new value of the text
+ */
+ void onNewValue(IConsumer<List<Object>> consumer);
+
+ /**
+ * Remove the consumer of the new value of the text.
+ */
+ void removeNewValueConsumer();
+
+ /**
+ * Invoked when the user pushes the create button.
+ */
+ void create();
+
+ /**
+ * Invoked when the user pushes the search button.
+ */
+ void search();
+
+ /**
+ * Invoked when the user pushes the unset button.
+ *
+ * @param elements
+ * Selected elements
+ */
+ void unset(List<Object> elements);
+
+ /**
+ * Invoked when the user pushes the up button.
+ *
+ * @param elements
+ * Selected elements
+ */
+ void up(List<Object> elements);
+
+ /**
+ * Invoked when the user pushes the down button.
+ *
+ * @param elements
+ * Selected elements
+ */
+ void down(List<Object> elements);
+
+ /**
+ * Invoked when the user double clicks on a reference.
+ *
+ * @param element
+ * Selected element
+ */
+ void onClick(Object element);
+}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/IEEFSingleReferenceController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/IEEFSingleReferenceController.java
new file mode 100644
index 000000000..a246adbd7
--- /dev/null
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/IEEFSingleReferenceController.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.core.api.controllers;
+
+/**
+ * The IEEFSingleReferenceController is responsible of supporting all the interactions with the widgets created for a
+ * single reference viewer.
+ *
+ * @author mbats
+ */
+public interface IEEFSingleReferenceController extends IEEFWidgetController {
+ /**
+ * Register a consumer which will be called with the new value of the text when it will change.
+ *
+ * @param consumer
+ * The consumer of the new value of the text
+ */
+ void onNewValue(IConsumer<Object> consumer);
+
+ /**
+ * Remove the consumer of the new value of the text.
+ */
+ void removeNewValueConsumer();
+
+ /**
+ * Invoked when the user pushes the create button.
+ */
+ void create();
+
+ /**
+ * Invoked when the user pushes the search button.
+ */
+ void search();
+
+ /**
+ * Invoked when the user pushes the unset button.
+ *
+ * @param element
+ * Semantic element
+ */
+ void unset(Object element);
+
+ /**
+ * Invoked when the user clicks on an hyperlink.
+ *
+ * @param element
+ * Semantic element
+ */
+ void onClick(Object element);
+
+}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFMultipleReferencesController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFMultipleReferencesController.java
new file mode 100644
index 000000000..a16de067f
--- /dev/null
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFMultipleReferencesController.java
@@ -0,0 +1,212 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.core.internal.controllers;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.eef.EEFMultipleReferencesDescription;
+import org.eclipse.eef.EEFWidgetDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.eef.core.api.EEFExpressionUtils;
+import org.eclipse.eef.core.api.controllers.IConsumer;
+import org.eclipse.eef.core.api.controllers.IEEFMultipleReferencesController;
+import org.eclipse.eef.core.api.utils.Eval;
+import org.eclipse.eef.core.api.utils.ISuccessfulResultConsumer;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.sirius.common.interpreter.api.IInterpreter;
+import org.eclipse.sirius.common.interpreter.api.IVariableManager;
+
+/**
+ * This class will be used in order to manage the behavior of the multiple references widget.
+ *
+ * @author mbats
+ */
+public class EEFMultipleReferencesController extends AbstractEEFWidgetController implements IEEFMultipleReferencesController {
+ /**
+ * The description.
+ */
+ private EEFMultipleReferencesDescription description;
+
+ /**
+ * The editing domain.
+ */
+ private TransactionalEditingDomain editingDomain;
+
+ /**
+ * The consumer of a new value of the list.
+ */
+ private IConsumer<List<Object>> newValueConsumer;
+
+ /**
+ * The constructor.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ * @param editingDomain
+ * The editing domain
+ */
+ public EEFMultipleReferencesController(EEFMultipleReferencesDescription description, IVariableManager variableManager, IInterpreter interpreter,
+ TransactionalEditingDomain editingDomain) {
+ super(variableManager, interpreter);
+ this.description = description;
+ this.editingDomain = editingDomain;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.core.internal.controllers.AbstractEEFCustomWidgetController#refresh()
+ */
+ @Override
+ public void refresh() {
+ super.refresh();
+
+ String valueExpression = this.description.getValueExpression();
+ EAttribute valueExpressionEAttribute = EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION;
+
+ this.newEval().call(valueExpressionEAttribute, valueExpression, new ISuccessfulResultConsumer<Object>() {
+ @Override
+ public void apply(Object value) {
+ if (value instanceof Iterable<?>) {
+ List<Object> candidates = new ArrayList<Object>();
+ for (Object iterator : (Iterable<?>) value) {
+ candidates.add(iterator);
+ }
+ EEFMultipleReferencesController.this.newValueConsumer.apply(candidates);
+ }
+ }
+ });
+ }
+
+ @Override
+ public void onNewValue(IConsumer<List<Object>> consumer) {
+ this.newValueConsumer = consumer;
+ }
+
+ @Override
+ public void removeNewValueConsumer() {
+ this.newValueConsumer = null;
+ }
+
+ @Override
+ public void create() {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFMultipleReferencesController.this.description.getCreateExpression();
+ EAttribute attr = EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION;
+ EEFMultipleReferencesController.this.newEval().call(attr, expression);
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ public void search() {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFMultipleReferencesController.this.description.getSearchExpression();
+ EAttribute attr = EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION;
+ EEFMultipleReferencesController.this.newEval().call(attr, expression);
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ public void unset(final List<Object> elements) {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFMultipleReferencesController.this.description.getUnsetExpression();
+ EAttribute attr = EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION;
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.putAll(EEFMultipleReferencesController.this.variableManager.getVariables());
+ variables.put(EEFExpressionUtils.EEFMultiReferences.SELECTION, elements);
+
+ new Eval(EEFMultipleReferencesController.this.interpreter, variables).call(attr, expression);
+
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ public void up(final List<Object> elements) {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFMultipleReferencesController.this.description.getUpExpression();
+ EAttribute attr = EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION;
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.putAll(EEFMultipleReferencesController.this.variableManager.getVariables());
+ variables.put(EEFExpressionUtils.EEFMultiReferences.SELECTION, elements);
+
+ new Eval(EEFMultipleReferencesController.this.interpreter, variables).call(attr, expression);
+
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ public void down(final List<Object> elements) {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFMultipleReferencesController.this.description.getDownExpression();
+ EAttribute attr = EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION;
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.putAll(EEFMultipleReferencesController.this.variableManager.getVariables());
+ variables.put(EEFExpressionUtils.EEFMultiReferences.SELECTION, elements);
+
+ new Eval(EEFMultipleReferencesController.this.interpreter, variables).call(attr, expression);
+
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ public void onClick(final Object element) {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFMultipleReferencesController.this.description.getOnClickExpression();
+ EAttribute attr = EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION;
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.putAll(EEFMultipleReferencesController.this.variableManager.getVariables());
+ variables.put(EEFExpressionUtils.EEFMultiReferences.SELECTION, element);
+
+ new Eval(EEFMultipleReferencesController.this.interpreter, variables).call(attr, expression);
+
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ protected EEFWidgetDescription getDescription() {
+ return this.description;
+ }
+
+}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFSingleReferenceController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFSingleReferenceController.java
new file mode 100644
index 000000000..6d952def4
--- /dev/null
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFSingleReferenceController.java
@@ -0,0 +1,167 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.core.internal.controllers;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.eef.EEFSingleReferenceDescription;
+import org.eclipse.eef.EEFWidgetDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.eef.core.api.EEFExpressionUtils;
+import org.eclipse.eef.core.api.controllers.IConsumer;
+import org.eclipse.eef.core.api.controllers.IEEFSingleReferenceController;
+import org.eclipse.eef.core.api.utils.Eval;
+import org.eclipse.eef.core.api.utils.ISuccessfulResultConsumer;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.transaction.RecordingCommand;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.sirius.common.interpreter.api.IInterpreter;
+import org.eclipse.sirius.common.interpreter.api.IVariableManager;
+
+/**
+ * This class will be used in order to manage the behavior of the single reference widget.
+ *
+ * @author mbats
+ */
+public class EEFSingleReferenceController extends AbstractEEFWidgetController implements IEEFSingleReferenceController {
+ /**
+ * The description.
+ */
+ private EEFSingleReferenceDescription description;
+
+ /**
+ * The editing domain.
+ */
+ private TransactionalEditingDomain editingDomain;
+
+ /**
+ * The consumer of a new value of the text.
+ */
+ private IConsumer<Object> newValueConsumer;
+
+ /**
+ * The constructor.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ * @param editingDomain
+ * The editing domain
+ */
+ public EEFSingleReferenceController(EEFSingleReferenceDescription description, IVariableManager variableManager, IInterpreter interpreter,
+ TransactionalEditingDomain editingDomain) {
+ super(variableManager, interpreter);
+ this.description = description;
+ this.editingDomain = editingDomain;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.core.internal.controllers.AbstractEEFCustomWidgetController#refresh()
+ */
+ @Override
+ public void refresh() {
+ super.refresh();
+
+ String valueExpression = this.description.getValueExpression();
+ EAttribute eAttribute = EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION;
+
+ this.newEval().call(eAttribute, valueExpression, Object.class, new ISuccessfulResultConsumer<Object>() {
+ @Override
+ public void apply(Object value) {
+ EEFSingleReferenceController.this.newValueConsumer.apply(value);
+ }
+ });
+ }
+
+ @Override
+ public void onNewValue(IConsumer<Object> consumer) {
+ this.newValueConsumer = consumer;
+ }
+
+ @Override
+ public void removeNewValueConsumer() {
+ this.newValueConsumer = null;
+ }
+
+ @Override
+ public void create() {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFSingleReferenceController.this.description.getCreateExpression();
+ EAttribute attr = EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION;
+ EEFSingleReferenceController.this.newEval().call(attr, expression);
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ public void search() {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFSingleReferenceController.this.description.getSearchExpression();
+ EAttribute attr = EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION;
+ EEFSingleReferenceController.this.newEval().call(attr, expression);
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ public void unset(final Object element) {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFSingleReferenceController.this.description.getUnsetExpression();
+ EAttribute attr = EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION;
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.putAll(EEFSingleReferenceController.this.variableManager.getVariables());
+ variables.put(EEFExpressionUtils.EEFMultiReferences.SELECTION, element);
+
+ new Eval(EEFSingleReferenceController.this.interpreter, variables).call(attr, expression);
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ public void onClick(final Object element) {
+ final Command command = new RecordingCommand(this.editingDomain) {
+ @Override
+ protected void doExecute() {
+ String expression = EEFSingleReferenceController.this.description.getOnClickExpression();
+ EAttribute attr = EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION;
+
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.putAll(EEFSingleReferenceController.this.variableManager.getVariables());
+ variables.put(EEFExpressionUtils.EEFMultiReferences.SELECTION, element);
+
+ new Eval(EEFSingleReferenceController.this.interpreter, variables).call(attr, expression);
+ }
+ };
+ this.editingDomain.getCommandStack().execute(command);
+ }
+
+ @Override
+ protected EEFWidgetDescription getDescription() {
+ return this.description;
+ }
+
+}
diff --git a/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFMultipleReferencesDescription.gif b/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFMultipleReferencesDescription.gif
new file mode 100644
index 000000000..2b6925602
--- /dev/null
+++ b/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFMultipleReferencesDescription.gif
Binary files differ
diff --git a/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFSingleReferenceDescription.gif b/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFSingleReferenceDescription.gif
new file mode 100644
index 000000000..d3dc5a9ad
--- /dev/null
+++ b/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFSingleReferenceDescription.gif
Binary files differ
diff --git a/plugins/org.eclipse.eef.edit/plugin.properties b/plugins/org.eclipse.eef.edit/plugin.properties
index fff3496a1..b35fa673d 100644
--- a/plugins/org.eclipse.eef.edit/plugin.properties
+++ b/plugins/org.eclipse.eef.edit/plugin.properties
@@ -77,3 +77,21 @@ _UI_EEFLabelDescription_bodyExpression_feature = Body Expression
_UI_EEFWidgetDescription_helpExpression_feature = Help Expression
_UI_EEFPageDescription_domainClass_feature = Domain Class
_UI_EEFGroupDescription_domainClass_feature = Domain Class
+_UI_EEFSingleReferenceDescription_type = EEF Single Reference Description
+_UI_EEFSingleReferenceDescription_valueExpression_feature = Value Expression
+_UI_EEFSingleReferenceDescription_onClickExpression_feature = On Click Expression
+_UI_EEFSingleReferenceDescription_createExpression_feature = Create Expression
+_UI_EEFSingleReferenceDescription_searchExpression_feature = Search Expression
+_UI_EEFSingleReferenceDescription_unsetExpression_feature = Unset Expression
+_UI_EEFMultipleReferencesDescription_type = EEF Multiple References Description
+_UI_EEFMultipleReferencesDescription_valueExpression_feature = Value Expression
+_UI_EEFMultipleReferencesDescription_candidatesExpression_feature = Candidates Expression
+_UI_EEFMultipleReferencesDescription_candidateDisplayExpression_feature = Candidate Display Expression
+_UI_EEFMultipleReferencesDescription_onClickExpression_feature = On Click Expression
+_UI_EEFMultipleReferencesDescription_createExpression_feature = Create Expression
+_UI_EEFMultipleReferencesDescription_searchExpression_feature = Search Expression
+_UI_EEFMultipleReferencesDescription_unsetExpression_feature = Unset Expression
+_UI_EEFMultipleReferencesDescription_upExpression_feature = Up Expression
+_UI_EEFMultipleReferencesDescription_downExpression_feature = Down Expression
+_UI_EEFSingleReferenceDescription_displayExpression_feature = Display Expression
+_UI_EEFMultipleReferencesDescription_displayExpression_feature = Display Expression
diff --git a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFContainerDescriptionItemProvider.java b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFContainerDescriptionItemProvider.java
index 0a3b0bd40..02e774ec8 100644
--- a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFContainerDescriptionItemProvider.java
+++ b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFContainerDescriptionItemProvider.java
@@ -192,6 +192,12 @@ ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_CONTAINER_DESCRIPTION__WIDGETS,
EefFactory.eINSTANCE.createEEFRadioDescription()));
+ newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_CONTAINER_DESCRIPTION__WIDGETS,
+ EefFactory.eINSTANCE.createEEFSingleReferenceDescription()));
+
+ newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_CONTAINER_DESCRIPTION__WIDGETS,
+ EefFactory.eINSTANCE.createEEFMultipleReferencesDescription()));
+
newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_CONTAINER_DESCRIPTION__DYNAMIC_MAPPINGS,
EefFactory.eINSTANCE.createEEFDynamicMappingFor()));
}
diff --git a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFDynamicMappingIfItemProvider.java b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFDynamicMappingIfItemProvider.java
index d51f53ab3..816453695 100644
--- a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFDynamicMappingIfItemProvider.java
+++ b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFDynamicMappingIfItemProvider.java
@@ -190,6 +190,12 @@ ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_DYNAMIC_MAPPING_IF__WIDGET,
EefFactory.eINSTANCE.createEEFRadioDescription()));
+
+ newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_DYNAMIC_MAPPING_IF__WIDGET,
+ EefFactory.eINSTANCE.createEEFSingleReferenceDescription()));
+
+ newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_DYNAMIC_MAPPING_IF__WIDGET,
+ EefFactory.eINSTANCE.createEEFMultipleReferencesDescription()));
}
/**
diff --git a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFMultipleReferencesDescriptionItemProvider.java b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFMultipleReferencesDescriptionItemProvider.java
new file mode 100644
index 000000000..fd3e5d263
--- /dev/null
+++ b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFMultipleReferencesDescriptionItemProvider.java
@@ -0,0 +1,267 @@
+/**
+ * Copyright (c) 2015 Obeo.
+ * 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.htm
+ * Contributors: Obeo - initial API and implementation
+ */
+package org.eclipse.eef.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.eef.EEFMultipleReferencesDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.eef.EEFMultipleReferencesDescription} object. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class EEFMultipleReferencesDescriptionItemProvider extends EEFWidgetDescriptionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EEFMultipleReferencesDescriptionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValueExpressionPropertyDescriptor(object);
+ addDisplayExpressionPropertyDescriptor(object);
+ addOnClickExpressionPropertyDescriptor(object);
+ addCreateExpressionPropertyDescriptor(object);
+ addSearchExpressionPropertyDescriptor(object);
+ addUnsetExpressionPropertyDescriptor(object);
+ addUpExpressionPropertyDescriptor(object);
+ addDownExpressionPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addValueExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFMultipleReferencesDescription_valueExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFMultipleReferencesDescription_valueExpression_feature", "_UI_EEFMultipleReferencesDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Display Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addDisplayExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFMultipleReferencesDescription_displayExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFMultipleReferencesDescription_displayExpression_feature", "_UI_EEFMultipleReferencesDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the On Click Expression feature. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ */
+ protected void addOnClickExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFMultipleReferencesDescription_onClickExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFMultipleReferencesDescription_onClickExpression_feature", "_UI_EEFMultipleReferencesDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Create Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addCreateExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFMultipleReferencesDescription_createExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFMultipleReferencesDescription_createExpression_feature", "_UI_EEFMultipleReferencesDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Search Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addSearchExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFMultipleReferencesDescription_searchExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFMultipleReferencesDescription_searchExpression_feature", "_UI_EEFMultipleReferencesDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Unset Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addUnsetExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFMultipleReferencesDescription_unsetExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFMultipleReferencesDescription_unsetExpression_feature", "_UI_EEFMultipleReferencesDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Up Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addUpExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFMultipleReferencesDescription_upExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFMultipleReferencesDescription_upExpression_feature", "_UI_EEFMultipleReferencesDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Down Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addDownExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFMultipleReferencesDescription_downExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFMultipleReferencesDescription_downExpression_feature", "_UI_EEFMultipleReferencesDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns EEFMultipleReferencesDescription.gif. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EEFMultipleReferencesDescription")); //$NON-NLS-1$
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((EEFMultipleReferencesDescription) object).getIdentifier();
+ return label == null || label.length() == 0 ? getString("_UI_EEFMultipleReferencesDescription_type") : //$NON-NLS-1$
+ getString("_UI_EEFMultipleReferencesDescription_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached children and by creating
+ * a viewer notification, which it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EEFMultipleReferencesDescription.class)) {
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION:
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION:
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION:
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION:
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION:
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION:
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION:
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children that can be created
+ * under this object. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFSingleReferenceDescriptionItemProvider.java b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFSingleReferenceDescriptionItemProvider.java
new file mode 100644
index 000000000..7648ac24d
--- /dev/null
+++ b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFSingleReferenceDescriptionItemProvider.java
@@ -0,0 +1,229 @@
+/**
+ * Copyright (c) 2015 Obeo.
+ * 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.htm
+ * Contributors: Obeo - initial API and implementation
+ */
+package org.eclipse.eef.provider;
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.eef.EEFSingleReferenceDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.eef.EEFSingleReferenceDescription} object. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class EEFSingleReferenceDescriptionItemProvider extends EEFWidgetDescriptionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EEFSingleReferenceDescriptionItemProvider(AdapterFactory adapterFactory) {
+ super(adapterFactory);
+ }
+
+ /**
+ * This returns the property descriptors for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+ if (itemPropertyDescriptors == null) {
+ super.getPropertyDescriptors(object);
+
+ addValueExpressionPropertyDescriptor(object);
+ addDisplayExpressionPropertyDescriptor(object);
+ addOnClickExpressionPropertyDescriptor(object);
+ addCreateExpressionPropertyDescriptor(object);
+ addSearchExpressionPropertyDescriptor(object);
+ addUnsetExpressionPropertyDescriptor(object);
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This adds a property descriptor for the Value Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addValueExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFSingleReferenceDescription_valueExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFSingleReferenceDescription_valueExpression_feature", "_UI_EEFSingleReferenceDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Display Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addDisplayExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFSingleReferenceDescription_displayExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFSingleReferenceDescription_displayExpression_feature", "_UI_EEFSingleReferenceDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the On Click Expression feature. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ */
+ protected void addOnClickExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFSingleReferenceDescription_onClickExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFSingleReferenceDescription_onClickExpression_feature", "_UI_EEFSingleReferenceDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Create Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addCreateExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFSingleReferenceDescription_createExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFSingleReferenceDescription_createExpression_feature", "_UI_EEFSingleReferenceDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Search Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addSearchExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFSingleReferenceDescription_searchExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFSingleReferenceDescription_searchExpression_feature", "_UI_EEFSingleReferenceDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This adds a property descriptor for the Unset Expression feature. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected void addUnsetExpressionPropertyDescriptor(Object object) {
+ itemPropertyDescriptors
+ .add(createItemPropertyDescriptor(
+ ((ComposeableAdapterFactory) adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_EEFSingleReferenceDescription_unsetExpression_feature"), //$NON-NLS-1$
+ getString(
+ "_UI_PropertyDescriptor_description", "_UI_EEFSingleReferenceDescription_unsetExpression_feature", "_UI_EEFSingleReferenceDescription_type"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION, true, false, false,
+ ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null));
+ }
+
+ /**
+ * This returns EEFSingleReferenceDescription.gif. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EEFSingleReferenceDescription")); //$NON-NLS-1$
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected boolean shouldComposeCreationImage() {
+ return true;
+ }
+
+ /**
+ * This returns the label text for the adapted class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getText(Object object) {
+ String label = ((EEFSingleReferenceDescription) object).getIdentifier();
+ return label == null || label.length() == 0 ? getString("_UI_EEFSingleReferenceDescription_type") : //$NON-NLS-1$
+ getString("_UI_EEFSingleReferenceDescription_type") + " " + label; //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ /**
+ * This handles model notifications by calling {@link #updateChildren} to update any cached children and by creating
+ * a viewer notification, which it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ */
+ @Override
+ public void notifyChanged(Notification notification) {
+ updateChildren(notification);
+
+ switch (notification.getFeatureID(EEFSingleReferenceDescription.class)) {
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION:
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION:
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION:
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION:
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION:
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION:
+ fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+ return;
+ }
+ super.notifyChanged(notification);
+ }
+
+ /**
+ * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children that can be created
+ * under this object. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+ super.collectNewChildDescriptors(newChildDescriptors, object);
+ }
+
+}
diff --git a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EefItemProviderAdapterFactory.java b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EefItemProviderAdapterFactory.java
index 350d1b2cb..0323acb74 100644
--- a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EefItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EefItemProviderAdapterFactory.java
@@ -350,6 +350,52 @@ public class EefItemProviderAdapterFactory extends EefAdapterFactory implements
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.eef.EEFSingleReferenceDescription} instances.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EEFSingleReferenceDescriptionItemProvider eefSingleReferenceDescriptionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.eef.EEFSingleReferenceDescription}. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createEEFSingleReferenceDescriptionAdapter() {
+ if (eefSingleReferenceDescriptionItemProvider == null) {
+ eefSingleReferenceDescriptionItemProvider = new EEFSingleReferenceDescriptionItemProvider(this);
+ }
+
+ return eefSingleReferenceDescriptionItemProvider;
+ }
+
+ /**
+ * This keeps track of the one adapter used for all {@link org.eclipse.eef.EEFMultipleReferencesDescription}
+ * instances. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EEFMultipleReferencesDescriptionItemProvider eefMultipleReferencesDescriptionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.eef.EEFMultipleReferencesDescription}. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createEEFMultipleReferencesDescriptionAdapter() {
+ if (eefMultipleReferencesDescriptionItemProvider == null) {
+ eefMultipleReferencesDescriptionItemProvider = new EEFMultipleReferencesDescriptionItemProvider(this);
+ }
+
+ return eefMultipleReferencesDescriptionItemProvider;
+ }
+
+ /**
* This returns the root adapter factory that contains this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
@@ -485,6 +531,12 @@ public class EefItemProviderAdapterFactory extends EefAdapterFactory implements
if (eefDynamicMappingIfItemProvider != null) {
eefDynamicMappingIfItemProvider.dispose();
}
+ if (eefSingleReferenceDescriptionItemProvider != null) {
+ eefSingleReferenceDescriptionItemProvider.dispose();
+ }
+ if (eefMultipleReferencesDescriptionItemProvider != null) {
+ eefMultipleReferencesDescriptionItemProvider.dispose();
+ }
}
}
diff --git a/plugins/org.eclipse.eef.ide.ui/icons/full/create.gif b/plugins/org.eclipse.eef.ide.ui/icons/full/create.gif
new file mode 100644
index 000000000..252d7ebcb
--- /dev/null
+++ b/plugins/org.eclipse.eef.ide.ui/icons/full/create.gif
Binary files differ
diff --git a/plugins/org.eclipse.eef.ide.ui/icons/full/down.gif b/plugins/org.eclipse.eef.ide.ui/icons/full/down.gif
new file mode 100644
index 000000000..072b18445
--- /dev/null
+++ b/plugins/org.eclipse.eef.ide.ui/icons/full/down.gif
Binary files differ
diff --git a/plugins/org.eclipse.eef.ide.ui/icons/full/search.gif b/plugins/org.eclipse.eef.ide.ui/icons/full/search.gif
new file mode 100644
index 000000000..cb415064e
--- /dev/null
+++ b/plugins/org.eclipse.eef.ide.ui/icons/full/search.gif
Binary files differ
diff --git a/plugins/org.eclipse.eef.ide.ui/icons/full/unset.gif b/plugins/org.eclipse.eef.ide.ui/icons/full/unset.gif
new file mode 100644
index 000000000..b6922ac11
--- /dev/null
+++ b/plugins/org.eclipse.eef.ide.ui/icons/full/unset.gif
Binary files differ
diff --git a/plugins/org.eclipse.eef.ide.ui/icons/full/up.gif b/plugins/org.eclipse.eef.ide.ui/icons/full/up.gif
new file mode 100644
index 000000000..07164754e
--- /dev/null
+++ b/plugins/org.eclipse.eef.ide.ui/icons/full/up.gif
Binary files differ
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/EEFIdeUiPlugin.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/EEFIdeUiPlugin.java
index f84876c12..374d87cf0 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/EEFIdeUiPlugin.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/EEFIdeUiPlugin.java
@@ -85,6 +85,11 @@ public class EEFIdeUiPlugin extends EMFPlugin {
EEFIdeUiPlugin.plugin = this;
this.imageRegistry = this.createImageRegistry();
this.imageRegistry.put(Icons.HELP, this.getImageDescriptor(Icons.HELP));
+ this.imageRegistry.put(Icons.CREATE, this.getImageDescriptor(Icons.CREATE));
+ this.imageRegistry.put(Icons.SEARCH, this.getImageDescriptor(Icons.SEARCH));
+ this.imageRegistry.put(Icons.UNSET, this.getImageDescriptor(Icons.UNSET));
+ this.imageRegistry.put(Icons.UP, this.getImageDescriptor(Icons.UP));
+ this.imageRegistry.put(Icons.DOWN, this.getImageDescriptor(Icons.DOWN));
}
/**
@@ -137,7 +142,7 @@ public class EEFIdeUiPlugin extends EMFPlugin {
/**
* Returns the image registry.
- *
+ *
* @return The image registry
*/
public ImageRegistry getImageRegistry() {
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/Icons.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/Icons.java
index a532cdc80..7c7a699b7 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/Icons.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/Icons.java
@@ -20,4 +20,29 @@ public interface Icons {
* Help.
*/
String HELP = "icons/full/help.gif"; //$NON-NLS-1$
+
+ /**
+ * Create.
+ */
+ String CREATE = "icons/full/create.gif"; //$NON-NLS-1$
+
+ /**
+ * Search.
+ */
+ String SEARCH = "icons/full/search.gif"; //$NON-NLS-1$
+
+ /**
+ * Unset.
+ */
+ String UNSET = "icons/full/unset.gif"; //$NON-NLS-1$
+
+ /**
+ * Up.
+ */
+ String UP = "icons/full/up.gif"; //$NON-NLS-1$
+
+ /**
+ * Down.
+ */
+ String DOWN = "icons/full/down.gif"; //$NON-NLS-1$
}
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/AbstractEEFWidgetLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/AbstractEEFWidgetLifecycleManager.java
index eceefe099..8d7d99f37 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/AbstractEEFWidgetLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/AbstractEEFWidgetLifecycleManager.java
@@ -140,13 +140,13 @@ public abstract class AbstractEEFWidgetLifecycleManager implements ILifecycleMan
FormData labelFormData = new FormData();
labelFormData.left = new FormAttachment(0, 0);
labelFormData.right = new FormAttachment(control, -HSPACE - gap);
- labelFormData.top = new FormAttachment(control, 0, SWT.TOP);
+ labelFormData.top = new FormAttachment(control, 0, SWT.CENTER);
this.label.setLayoutData(labelFormData);
if (hasHelp) {
this.help = widgetFactory.createCLabel(composite, ""); //$NON-NLS-1$
FormData helpFormData = new FormData();
- helpFormData.top = new FormAttachment(control, 0, SWT.TOP);
+ helpFormData.top = new FormAttachment(control, 0, SWT.CENTER);
helpFormData.left = new FormAttachment(this.label);
this.help.setLayoutData(helpFormData);
this.help.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.HELP));
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java
index 890d1d45d..31b9bd446 100644
--- a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java
@@ -21,8 +21,10 @@ import org.eclipse.eef.EEFContainerDescription;
import org.eclipse.eef.EEFDynamicMappingFor;
import org.eclipse.eef.EEFDynamicMappingIf;
import org.eclipse.eef.EEFLabelDescription;
+import org.eclipse.eef.EEFMultipleReferencesDescription;
import org.eclipse.eef.EEFRadioDescription;
import org.eclipse.eef.EEFSelectDescription;
+import org.eclipse.eef.EEFSingleReferenceDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFWidgetDescription;
import org.eclipse.eef.EefPackage;
@@ -170,6 +172,22 @@ public class EEFContainerLifecycleManager implements ILifecycleManager {
eefButtonLifecycleManager.createControl(parent, tabbedPropertySheetPage);
this.lifecycleManagers.add(eefButtonLifecycleManager);
+ } else if (eefWidgetDescription instanceof EEFSingleReferenceDescription) {
+ EEFSingleReferenceDescription eefSingleReferenceDescription = (EEFSingleReferenceDescription) eefWidgetDescription;
+
+ EEFSingleReferenceLifecycleManager eefSingleReferenceLifecycleManager = new EEFSingleReferenceLifecycleManager(
+ eefSingleReferenceDescription, childVariableManager, interpreter, editingDomain);
+ eefSingleReferenceLifecycleManager.createControl(parent, tabbedPropertySheetPage);
+
+ this.lifecycleManagers.add(eefSingleReferenceLifecycleManager);
+ } else if (eefWidgetDescription instanceof EEFMultipleReferencesDescription) {
+ EEFMultipleReferencesDescription eefMultipleReferencesDescription = (EEFMultipleReferencesDescription) eefWidgetDescription;
+
+ EEFMultipleReferencesLifecycleManager eefMultipleReferencesLifecycleManager = new EEFMultipleReferencesLifecycleManager(
+ eefMultipleReferencesDescription, childVariableManager, interpreter, editingDomain);
+ eefMultipleReferencesLifecycleManager.createControl(parent, tabbedPropertySheetPage);
+
+ this.lifecycleManagers.add(eefMultipleReferencesLifecycleManager);
}
}
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFMultipleReferencesLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFMultipleReferencesLifecycleManager.java
new file mode 100644
index 000000000..f1dd9b984
--- /dev/null
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFMultipleReferencesLifecycleManager.java
@@ -0,0 +1,449 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.ide.ui.internal.widgets;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.eef.EEFMultipleReferencesDescription;
+import org.eclipse.eef.EEFWidgetDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.eef.core.api.EEFExpressionUtils;
+import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
+import org.eclipse.eef.core.api.controllers.IConsumer;
+import org.eclipse.eef.core.api.controllers.IEEFMultipleReferencesController;
+import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
+import org.eclipse.eef.core.api.utils.Eval;
+import org.eclipse.eef.ide.ui.internal.EEFIdeUiPlugin;
+import org.eclipse.eef.ide.ui.internal.Icons;
+import org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetPage;
+import org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetWidgetFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.viewers.ArrayContentProvider;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StyledCellLabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.ViewerCell;
+import org.eclipse.sirius.common.interpreter.api.IInterpreter;
+import org.eclipse.sirius.common.interpreter.api.IVariableManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.ScrolledComposite;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+
+/**
+ * This class will be used in order to manager the lifecycle of a multiple references widget.
+ *
+ * @author mbats
+ */
+public class EEFMultipleReferencesLifecycleManager extends AbstractEEFWidgetLifecycleManager {
+
+ /**
+ * The description.
+ */
+ private EEFMultipleReferencesDescription description;
+
+ /**
+ * The combo viewer.
+ */
+ private TableViewer tableViewer;
+
+ /**
+ * The list.
+ */
+ private org.eclipse.swt.widgets.Table table;
+
+ /**
+ * The create button.
+ */
+ private Button createButton;
+
+ /**
+ * The search button.
+ */
+ private Button searchButton;
+
+ /**
+ * The unset button.
+ */
+ private Button unsetButton;
+ /**
+ * The up button.
+ */
+ private Button upButton;
+ /**
+ * The down button.
+ */
+ private Button downButton;
+
+ /**
+ * The main parent.
+ */
+ private Composite multipleReferences;
+
+ /**
+ * The buttons.
+ */
+ private Composite buttons;
+
+ /**
+ * The controller.
+ */
+ private IEEFMultipleReferencesController controller;
+
+ /**
+ * The listener on the create button.
+ */
+ private SelectionListener createSelectionListener;
+
+ /**
+ * The listener on the search button.
+ */
+ private SelectionListener searchSelectionListener;
+
+ /**
+ * The listener on the unset button.
+ */
+ private SelectionListener unsetSelectionListener;
+
+ /**
+ * The listener on the up button.
+ */
+ private SelectionListener upSelectionListener;
+
+ /**
+ * The listener on the down button.
+ */
+ private SelectionListener downSelectionListener;
+
+ /**
+ * The listeners on the cells.
+ */
+ private IDoubleClickListener doubleClickListener;
+
+ /**
+ * The widget factory.
+ */
+ private EEFTabbedPropertySheetWidgetFactory widgetFactory;
+
+ /**
+ * The constructor.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ * @param editingDomain
+ * The editing domain
+ */
+ public EEFMultipleReferencesLifecycleManager(EEFMultipleReferencesDescription description, IVariableManager variableManager,
+ IInterpreter interpreter, TransactionalEditingDomain editingDomain) {
+ super(variableManager, interpreter, editingDomain);
+ this.description = description;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#createMainControl(org.eclipse.swt.widgets.Composite,
+ * org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetPage)
+ */
+ @Override
+ protected void createMainControl(Composite parent, EEFTabbedPropertySheetPage tabbedPropertySheetPage) {
+ widgetFactory = tabbedPropertySheetPage.getWidgetFactory();
+
+ this.multipleReferences = widgetFactory.createFlatFormComposite(parent);
+ GridLayout layout = new GridLayout(2, false);
+ multipleReferences.setLayout(layout); // this is the parent composite
+
+ ScrolledComposite scrolledComposite = widgetFactory.createScrolledComposite(multipleReferences, SWT.NONE);
+ GridData gridData = new GridData();
+ gridData.grabExcessHorizontalSpace = true;
+ gridData.horizontalAlignment = SWT.FILL;
+ scrolledComposite.setLayoutData(gridData);
+
+ final int clientWidth = scrolledComposite.getClientArea().width;
+
+ this.tableViewer = new TableViewer(scrolledComposite, SWT.READ_ONLY | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER | SWT.MULTI);
+ this.table = tableViewer.getTable();
+ this.table.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
+ this.tableViewer.setContentProvider(ArrayContentProvider.getInstance());
+ this.tableViewer.setLabelProvider(new EEFMultipleReferencesLabelProvider());
+
+ this.buttons = widgetFactory.createFlatFormComposite(multipleReferences);
+ this.buttons.setLayout(new RowLayout(SWT.VERTICAL));
+ gridData = new GridData();
+ gridData.grabExcessHorizontalSpace = false;
+ buttons.setLayoutData(gridData);
+
+ // Create button is visible only if the create expression exists
+ if (this.description.getCreateExpression() != null) {
+ this.createButton = widgetFactory.createButton(this.buttons, "", SWT.NONE); //$NON-NLS-1$
+ this.createButton.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.CREATE));
+ }
+ this.searchButton = widgetFactory.createButton(this.buttons, "", SWT.NONE); //$NON-NLS-1$
+ this.searchButton.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.SEARCH));
+ this.unsetButton = widgetFactory.createButton(this.buttons, "", SWT.NONE); //$NON-NLS-1$
+ this.unsetButton.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.UNSET));
+ if (this.description.getUpExpression() != null) {
+ this.upButton = widgetFactory.createButton(this.buttons, "", SWT.NONE); //$NON-NLS-1$
+ this.upButton.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.UP));
+ }
+ if (this.description.getDownExpression() != null) {
+ this.downButton = widgetFactory.createButton(this.buttons, "", SWT.NONE); //$NON-NLS-1$
+ this.downButton.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.DOWN));
+ }
+
+ scrolledComposite.setContent(table);
+ int prefHeight = searchButton.computeSize(SWT.DEFAULT, SWT.DEFAULT).y * 6;
+ table.setSize(clientWidth, prefHeight);
+ scrolledComposite.setExpandHorizontal(true);
+ scrolledComposite.setAlwaysShowScrollBars(true);
+
+ widgetFactory.paintBordersFor(parent);
+
+ FormData formData = new FormData();
+ formData.left = new FormAttachment(0, LABEL_WIDTH);
+ formData.right = new FormAttachment(100, 0);
+ this.multipleReferences.setLayoutData(formData);
+
+ this.controller = new EEFControllersFactory().createMultipleReferencesController(this.description, this.variableManager, this.interpreter,
+ this.editingDomain);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#getController()
+ */
+ @Override
+ protected IEEFWidgetController getController() {
+ return this.controller;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.ILifecycleManager#aboutToBeShown()
+ */
+ @Override
+ public void aboutToBeShown() {
+ super.aboutToBeShown();
+
+ // Set table items
+ this.controller.onNewValue(new IConsumer<List<Object>>() {
+ @Override
+ public void apply(List<Object> value) {
+ if (!table.isDisposed()) {
+ final ISelection selection = new StructuredSelection(value);
+ tableViewer.setSelection(selection);
+ tableViewer.setInput(value.toArray());
+ if (!table.isEnabled()) {
+ table.setEnabled(true);
+ }
+ }
+ }
+ });
+
+ if (createButtonExists()) {
+ this.createSelectionListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ controller.create();
+ }
+ };
+
+ this.createButton.addSelectionListener(this.createSelectionListener);
+ }
+
+ if (upButtonExists()) {
+ this.upSelectionListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ IStructuredSelection selection = (IStructuredSelection) EEFMultipleReferencesLifecycleManager.this.tableViewer.getSelection();
+ @SuppressWarnings("unchecked")
+ List<Object> elements = selection.toList();
+ controller.up(elements);
+ }
+ };
+
+ this.upButton.addSelectionListener(this.upSelectionListener);
+ }
+
+ if (downButtonExists()) {
+ this.downSelectionListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ IStructuredSelection selection = (IStructuredSelection) EEFMultipleReferencesLifecycleManager.this.tableViewer.getSelection();
+ @SuppressWarnings("unchecked")
+ List<Object> elements = selection.toList();
+ controller.down(elements);
+ }
+ };
+
+ this.downButton.addSelectionListener(this.downSelectionListener);
+ }
+
+ this.searchSelectionListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ controller.search();
+ }
+ };
+ this.searchButton.addSelectionListener(this.searchSelectionListener);
+
+ this.unsetSelectionListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ IStructuredSelection selection = (IStructuredSelection) EEFMultipleReferencesLifecycleManager.this.tableViewer.getSelection();
+ @SuppressWarnings("unchecked")
+ List<Object> elements = selection.toList();
+ controller.unset(elements);
+ }
+ };
+ this.unsetButton.addSelectionListener(this.unsetSelectionListener);
+
+ this.doubleClickListener = new IDoubleClickListener() {
+
+ @Override
+ public void doubleClick(DoubleClickEvent e) {
+ IStructuredSelection selection = (IStructuredSelection) e.getSelection();
+ Object element = selection.getFirstElement();
+ controller.onClick(element);
+ }
+ };
+ this.tableViewer.addDoubleClickListener(doubleClickListener);
+ }
+
+ /**
+ * Check if the create button exists in the UI.
+ *
+ * @return True if exists otherwise false
+ */
+ private boolean createButtonExists() {
+ return this.createButton != null;
+ }
+
+ /**
+ * Check if the up button exists in the UI.
+ *
+ * @return True if exists otherwise false
+ */
+ private boolean upButtonExists() {
+ return this.upButton != null;
+ }
+
+ /**
+ * Check if the down button exists in the UI.
+ *
+ * @return True if exists otherwise false
+ */
+ private boolean downButtonExists() {
+ return this.downButton != null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#getValidationControl()
+ */
+ @Override
+ protected Control getValidationControl() {
+ return this.multipleReferences;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#aboutToBeHidden()
+ */
+ @Override
+ public void aboutToBeHidden() {
+ super.aboutToBeHidden();
+
+ if (createButtonExists() && !createButton.isDisposed()) {
+ this.createButton.removeSelectionListener(this.createSelectionListener);
+ }
+
+ if (upButtonExists() && !upButton.isDisposed()) {
+ this.upButton.removeSelectionListener(this.upSelectionListener);
+ }
+
+ if (downButtonExists() && !downButton.isDisposed()) {
+ this.downButton.removeSelectionListener(this.downSelectionListener);
+ }
+
+ if (!searchButton.isDisposed()) {
+ this.searchButton.removeSelectionListener(this.searchSelectionListener);
+ }
+
+ if (!unsetButton.isDisposed()) {
+ this.unsetButton.removeSelectionListener(this.unsetSelectionListener);
+ }
+
+ this.tableViewer.removeDoubleClickListener(doubleClickListener);
+ this.controller.removeNewValueConsumer();
+ }
+
+ /**
+ * Multiple references widget label provider.
+ *
+ * @author mbats
+ */
+ private final class EEFMultipleReferencesLabelProvider extends StyledCellLabelProvider {
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.jface.viewers.StyledCellLabelProvider#update(org.eclipse.jface.viewers.ViewerCell)
+ */
+ @Override
+ public void update(ViewerCell cell) {
+ Object element = cell.getElement();
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.putAll(EEFMultipleReferencesLifecycleManager.this.variableManager.getVariables());
+ variables.put(EEFExpressionUtils.SELF, element);
+
+ String expression = description.getDisplayExpression();
+ EAttribute eAttribute = EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION;
+ String text = new Eval(EEFMultipleReferencesLifecycleManager.this.interpreter, variables).get(eAttribute, expression, String.class);
+ cell.setText(text);
+ super.update(cell);
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#getWidgetDescription()
+ */
+ @Override
+ protected EEFWidgetDescription getWidgetDescription() {
+ return this.description;
+ }
+}
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSingleReferenceLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSingleReferenceLifecycleManager.java
new file mode 100644
index 000000000..37434f5e3
--- /dev/null
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFSingleReferenceLifecycleManager.java
@@ -0,0 +1,360 @@
+/*******************************************************************************
+ * Copyright (c) 2015, 2016 Obeo.
+ * 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:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.ide.ui.internal.widgets;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.eef.EEFSingleReferenceDescription;
+import org.eclipse.eef.EEFWidgetDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.eef.core.api.EEFExpressionUtils;
+import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
+import org.eclipse.eef.core.api.controllers.IConsumer;
+import org.eclipse.eef.core.api.controllers.IEEFSingleReferenceController;
+import org.eclipse.eef.core.api.controllers.IEEFWidgetController;
+import org.eclipse.eef.core.api.utils.Eval;
+import org.eclipse.eef.ide.ui.internal.EEFIdeUiPlugin;
+import org.eclipse.eef.ide.ui.internal.Icons;
+import org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetPage;
+import org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetWidgetFactory;
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.transaction.TransactionalEditingDomain;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.sirius.common.interpreter.api.IInterpreter;
+import org.eclipse.sirius.common.interpreter.api.IVariableManager;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.layout.RowLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.events.HyperlinkEvent;
+import org.eclipse.ui.forms.events.IHyperlinkListener;
+import org.eclipse.ui.forms.widgets.Hyperlink;
+
+/**
+ * This class will be used in order to manager the lifecycle of a single reference widget.
+ *
+ * @author mbats
+ */
+public class EEFSingleReferenceLifecycleManager extends AbstractEEFWidgetLifecycleManager {
+
+ /**
+ * The description.
+ */
+ private EEFSingleReferenceDescription description;
+
+ /**
+ * The text.
+ */
+ private Hyperlink hyperlink;
+
+ /**
+ * The text.
+ */
+ private Label text;
+
+ /**
+ * The create button.
+ */
+ private Button createButton;
+
+ /**
+ * The search button.
+ */
+ private Button searchButton;
+
+ /**
+ * The unset button.
+ */
+ private Button unsetButton;
+
+ /**
+ * The main parent.
+ */
+ private Composite singleReference;
+
+ /**
+ * The buttons.
+ */
+ private Composite buttons;
+
+ /**
+ * The controller.
+ */
+ private IEEFSingleReferenceController controller;
+
+ /**
+ * The listener on the text.
+ */
+ private IHyperlinkListener onClickListener;
+
+ /**
+ * The listener on the create button.
+ */
+ private SelectionListener createSelectionListener;
+
+ /**
+ * The listener on the search button.
+ */
+ private SelectionListener searchSelectionListener;
+
+ /**
+ * The listener on the unset button.
+ */
+ private SelectionListener unsetSelectionListener;
+
+ /**
+ * The constructor.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ * @param editingDomain
+ * The editing domain
+ */
+ public EEFSingleReferenceLifecycleManager(EEFSingleReferenceDescription description, IVariableManager variableManager, IInterpreter interpreter,
+ TransactionalEditingDomain editingDomain) {
+ super(variableManager, interpreter, editingDomain);
+ this.description = description;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#createMainControl(org.eclipse.swt.widgets.Composite,
+ * org.eclipse.eef.properties.ui.api.EEFTabbedPropertySheetPage)
+ */
+ @Override
+ protected void createMainControl(Composite parent, EEFTabbedPropertySheetPage tabbedPropertySheetPage) {
+ EEFTabbedPropertySheetWidgetFactory widgetFactory = tabbedPropertySheetPage.getWidgetFactory();
+ this.singleReference = widgetFactory.createFlatFormComposite(parent);
+ GridLayout layout = new GridLayout(2, false);
+ singleReference.setLayout(layout); // this is the parent composite
+
+ // Use hyperlink if the onclick expression exists
+ GridData gd = new GridData();
+ gd.grabExcessHorizontalSpace = true;
+ gd.horizontalAlignment = SWT.FILL;
+ if (this.description.getOnClickExpression() != null) {
+ this.hyperlink = widgetFactory.createHyperlink(this.singleReference, "", SWT.NONE); //$NON-NLS-1$
+ hyperlink.setLayoutData(gd);
+ } else {
+ this.text = widgetFactory.createLabel(this.singleReference, "", SWT.NONE); //$NON-NLS-1$
+ text.setLayoutData(gd);
+ }
+
+ this.buttons = widgetFactory.createFlatFormComposite(singleReference);
+ this.buttons.setLayout(new RowLayout(SWT.HORIZONTAL));
+ gd = new GridData();
+ gd.grabExcessHorizontalSpace = false;
+ this.buttons.setLayoutData(gd);
+
+ // Create button is visible only if the create expression exists
+ if (this.description.getCreateExpression() != null) {
+ this.createButton = widgetFactory.createButton(this.buttons, "", SWT.NONE); //$NON-NLS-1$
+ this.createButton.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.CREATE));
+ }
+ this.searchButton = widgetFactory.createButton(this.buttons, "", SWT.NONE); //$NON-NLS-1$
+ this.searchButton.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.SEARCH));
+ this.unsetButton = widgetFactory.createButton(this.buttons, "", SWT.NONE); //$NON-NLS-1$
+ this.unsetButton.setImage(EEFIdeUiPlugin.getPlugin().getImageRegistry().get(Icons.UNSET));
+ widgetFactory.paintBordersFor(parent);
+
+ FormData formData = new FormData();
+ formData.left = new FormAttachment(0, LABEL_WIDTH);
+ formData.right = new FormAttachment(100, 0);
+ this.singleReference.setLayoutData(formData);
+
+ this.controller = new EEFControllersFactory().createSingleReferenceController(this.description, this.variableManager, this.interpreter,
+ this.editingDomain);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#getController()
+ */
+ @Override
+ protected IEEFWidgetController getController() {
+ return this.controller;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.ILifecycleManager#aboutToBeShown()
+ */
+ @Override
+ public void aboutToBeShown() {
+ super.aboutToBeShown();
+ if (hyperlinkExists()) {
+ this.onClickListener = new IHyperlinkListener() {
+
+ @Override
+ public void linkExited(HyperlinkEvent e) {
+ // Nothing
+ }
+
+ @Override
+ public void linkEntered(HyperlinkEvent e) {
+ // Nothing
+ }
+
+ @Override
+ public void linkActivated(HyperlinkEvent e) {
+ IStructuredSelection selection = (IStructuredSelection) e.getHref();
+ if (selection != null) {
+ Object element = selection.getFirstElement();
+ controller.onClick(element);
+ }
+ }
+ };
+ this.hyperlink.addHyperlinkListener(this.onClickListener);
+ }
+
+ this.controller.onNewValue(new IConsumer<Object>() {
+ @Override
+ public void apply(Object value) {
+ String expression = description.getDisplayExpression();
+ EAttribute eAttribute = EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION;
+ Map<String, Object> variables = new HashMap<String, Object>();
+ variables.put(EEFExpressionUtils.SELF, value);
+ String display = new Eval(EEFSingleReferenceLifecycleManager.this.interpreter, variables).get(eAttribute, expression, String.class);
+ if (display != null) {
+ if (hyperlinkExists() && !hyperlink.isDisposed() && !(hyperlink.getText() != null && hyperlink.getText().equals(value))) {
+ hyperlink.setText(display);
+ hyperlink.setData(value);
+ if (!hyperlink.isEnabled()) {
+ hyperlink.setEnabled(true);
+ }
+ } else if (text != null && !text.isDisposed() && !(text.getText() != null && text.getText().equals(value))) {
+ text.setText(display);
+ text.setData(value);
+ if (!text.isEnabled()) {
+ text.setEnabled(true);
+ }
+ }
+ }
+ }
+ });
+
+ if (createButtonExists()) {
+ this.createSelectionListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ controller.create();
+ }
+ };
+
+ this.createButton.addSelectionListener(this.createSelectionListener);
+ }
+
+ this.searchSelectionListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ controller.search();
+ }
+ };
+ this.searchButton.addSelectionListener(this.searchSelectionListener);
+
+ this.unsetSelectionListener = new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ Object element = null;
+ if (hyperlinkExists()) {
+ element = EEFSingleReferenceLifecycleManager.this.hyperlink.getData();
+ } else {
+ element = EEFSingleReferenceLifecycleManager.this.text.getData();
+ }
+ controller.unset(element);
+ }
+ };
+ this.unsetButton.addSelectionListener(this.unsetSelectionListener);
+ }
+
+ /**
+ * Check if the create button exists in the UI.
+ *
+ * @return True if exists otherwise false
+ */
+ private boolean createButtonExists() {
+ return this.createButton != null;
+ }
+
+ /**
+ * Check if the hyperlink exists in the UI.
+ *
+ * @return True if exists otherwise false
+ */
+ private boolean hyperlinkExists() {
+ return this.hyperlink != null;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#getValidationControl()
+ */
+ @Override
+ protected Control getValidationControl() {
+ return this.singleReference;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#aboutToBeHidden()
+ */
+ @Override
+ public void aboutToBeHidden() {
+ super.aboutToBeHidden();
+
+ if (hyperlinkExists() && !hyperlink.isDisposed()) {
+ this.hyperlink.removeHyperlinkListener(this.onClickListener);
+ }
+
+ if (createButtonExists() && !createButton.isDisposed()) {
+ this.createButton.removeSelectionListener(this.createSelectionListener);
+ }
+
+ if (!searchButton.isDisposed()) {
+ this.searchButton.removeSelectionListener(this.searchSelectionListener);
+ }
+
+ if (!unsetButton.isDisposed()) {
+ this.unsetButton.removeSelectionListener(this.unsetSelectionListener);
+ }
+
+ this.controller.removeNewValueConsumer();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.AbstractEEFWidgetLifecycleManager#getWidgetDescription()
+ */
+ @Override
+ protected EEFWidgetDescription getWidgetDescription() {
+ return this.description;
+ }
+}
diff --git a/plugins/org.eclipse.eef/model/eef.ecore b/plugins/org.eclipse.eef/model/eef.ecore
index e67173813..63a23705d 100644
--- a/plugins/org.eclipse.eef/model/eef.ecore
+++ b/plugins/org.eclipse.eef/model/eef.ecore
@@ -277,4 +277,84 @@
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EEFSingleReferenceDescription" eSuperTypes="#//EEFWidgetDescription">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents a single reference in the user interface."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Provides the input value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates how to display the input value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="onClickExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the hyperlink."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the create button."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="searchExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the search button."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsetExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the unset button."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EEFMultipleReferencesDescription" eSuperTypes="#//EEFWidgetDescription">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Represents a single reference in the user interface."/>
+ </eAnnotations>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="valueExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates how to display the input value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Indicates how to display the input value."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="onClickExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the hyperlink."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="createExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the create button."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="searchExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the search button."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsetExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the unset button."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="upExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the up button."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ <eStructuralFeatures xsi:type="ecore:EAttribute" name="downExpression" eType="ecore:EDataType ../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+ <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+ <details key="documentation" value="Defines the behavior executed when the end-user clicks on the down button."/>
+ </eAnnotations>
+ </eStructuralFeatures>
+ </eClassifiers>
</ecore:EPackage>
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFMultipleReferencesDescription.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFMultipleReferencesDescription.java
new file mode 100644
index 000000000..34001c42e
--- /dev/null
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFMultipleReferencesDescription.java
@@ -0,0 +1,226 @@
+/**
+ * Copyright (c) 2015 Obeo.
+ * 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.htm
+ * Contributors: Obeo - initial API and implementation
+ */
+package org.eclipse.eef;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>EEF Multiple References Description</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc --> Represents a single reference in the user interface. <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.eef.EEFMultipleReferencesDescription#getValueExpression <em>Value Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFMultipleReferencesDescription#getDisplayExpression <em>Display Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFMultipleReferencesDescription#getOnClickExpression <em>On Click Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFMultipleReferencesDescription#getCreateExpression <em>Create Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFMultipleReferencesDescription#getSearchExpression <em>Search Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFMultipleReferencesDescription#getUnsetExpression <em>Unset Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFMultipleReferencesDescription#getUpExpression <em>Up Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFMultipleReferencesDescription#getDownExpression <em>Down Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription()
+ * @model
+ * @generated
+ */
+public interface EEFMultipleReferencesDescription extends EEFWidgetDescription {
+ /**
+ * Returns the value of the '<em><b>Value Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Indicates how to display the input value. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Value Expression</em>' attribute.
+ * @see #setValueExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription_ValueExpression()
+ * @model
+ * @generated
+ */
+ String getValueExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFMultipleReferencesDescription#getValueExpression
+ * <em>Value Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Value Expression</em>' attribute.
+ * @see #getValueExpression()
+ * @generated
+ */
+ void setValueExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Display Expression</b></em>' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc --> <!-- begin-model-doc --> Indicates how to display the input value. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Display Expression</em>' attribute.
+ * @see #setDisplayExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription_DisplayExpression()
+ * @model
+ * @generated
+ */
+ String getDisplayExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFMultipleReferencesDescription#getDisplayExpression
+ * <em>Display Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Display Expression</em>' attribute.
+ * @see #getDisplayExpression()
+ * @generated
+ */
+ void setDisplayExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>On Click Expression</b></em>' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the
+ * hyperlink. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>On Click Expression</em>' attribute.
+ * @see #setOnClickExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription_OnClickExpression()
+ * @model
+ * @generated
+ */
+ String getOnClickExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFMultipleReferencesDescription#getOnClickExpression
+ * <em>On Click Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>On Click Expression</em>' attribute.
+ * @see #getOnClickExpression()
+ * @generated
+ */
+ void setOnClickExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Create Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the create button. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Create Expression</em>' attribute.
+ * @see #setCreateExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription_CreateExpression()
+ * @model
+ * @generated
+ */
+ String getCreateExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFMultipleReferencesDescription#getCreateExpression
+ * <em>Create Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Create Expression</em>' attribute.
+ * @see #getCreateExpression()
+ * @generated
+ */
+ void setCreateExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Search Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the search button. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Search Expression</em>' attribute.
+ * @see #setSearchExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription_SearchExpression()
+ * @model
+ * @generated
+ */
+ String getSearchExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFMultipleReferencesDescription#getSearchExpression
+ * <em>Search Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Search Expression</em>' attribute.
+ * @see #getSearchExpression()
+ * @generated
+ */
+ void setSearchExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Unset Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the unset button. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Unset Expression</em>' attribute.
+ * @see #setUnsetExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription_UnsetExpression()
+ * @model
+ * @generated
+ */
+ String getUnsetExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFMultipleReferencesDescription#getUnsetExpression
+ * <em>Unset Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Unset Expression</em>' attribute.
+ * @see #getUnsetExpression()
+ * @generated
+ */
+ void setUnsetExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Up Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ * <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the up button. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Up Expression</em>' attribute.
+ * @see #setUpExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription_UpExpression()
+ * @model
+ * @generated
+ */
+ String getUpExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFMultipleReferencesDescription#getUpExpression
+ * <em>Up Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Up Expression</em>' attribute.
+ * @see #getUpExpression()
+ * @generated
+ */
+ void setUpExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Down Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the down button. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Down Expression</em>' attribute.
+ * @see #setDownExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFMultipleReferencesDescription_DownExpression()
+ * @model
+ * @generated
+ */
+ String getDownExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFMultipleReferencesDescription#getDownExpression
+ * <em>Down Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Down Expression</em>' attribute.
+ * @see #getDownExpression()
+ * @generated
+ */
+ void setDownExpression(String value);
+
+} // EEFMultipleReferencesDescription
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFSingleReferenceDescription.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFSingleReferenceDescription.java
new file mode 100644
index 000000000..b12d53190
--- /dev/null
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFSingleReferenceDescription.java
@@ -0,0 +1,176 @@
+/**
+ * Copyright (c) 2015 Obeo.
+ * 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.htm
+ * Contributors: Obeo - initial API and implementation
+ */
+package org.eclipse.eef;
+
+/**
+ * <!-- begin-user-doc --> A representation of the model object '<em><b>EEF Single Reference Description</b></em>'. <!--
+ * end-user-doc -->
+ *
+ * <!-- begin-model-doc --> Represents a single reference in the user interface. <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * <ul>
+ * <li>{@link org.eclipse.eef.EEFSingleReferenceDescription#getValueExpression <em>Value Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFSingleReferenceDescription#getDisplayExpression <em>Display Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFSingleReferenceDescription#getOnClickExpression <em>On Click Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFSingleReferenceDescription#getCreateExpression <em>Create Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFSingleReferenceDescription#getSearchExpression <em>Search Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.EEFSingleReferenceDescription#getUnsetExpression <em>Unset Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @see org.eclipse.eef.EefPackage#getEEFSingleReferenceDescription()
+ * @model
+ * @generated
+ */
+public interface EEFSingleReferenceDescription extends EEFWidgetDescription {
+ /**
+ * Returns the value of the '<em><b>Value Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Indicates how to display the input value. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Value Expression</em>' attribute.
+ * @see #setValueExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFSingleReferenceDescription_ValueExpression()
+ * @model
+ * @generated
+ */
+ String getValueExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFSingleReferenceDescription#getValueExpression
+ * <em>Value Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Value Expression</em>' attribute.
+ * @see #getValueExpression()
+ * @generated
+ */
+ void setValueExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Display Expression</b></em>' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc --> <!-- begin-model-doc --> Indicates how to display the input value. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>Display Expression</em>' attribute.
+ * @see #setDisplayExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFSingleReferenceDescription_DisplayExpression()
+ * @model
+ * @generated
+ */
+ String getDisplayExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFSingleReferenceDescription#getDisplayExpression
+ * <em>Display Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Display Expression</em>' attribute.
+ * @see #getDisplayExpression()
+ * @generated
+ */
+ void setDisplayExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>On Click Expression</b></em>' attribute. <!-- begin-user-doc --> <!--
+ * end-user-doc --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the
+ * hyperlink. <!-- end-model-doc -->
+ *
+ * @return the value of the '<em>On Click Expression</em>' attribute.
+ * @see #setOnClickExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFSingleReferenceDescription_OnClickExpression()
+ * @model
+ * @generated
+ */
+ String getOnClickExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFSingleReferenceDescription#getOnClickExpression
+ * <em>On Click Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>On Click Expression</em>' attribute.
+ * @see #getOnClickExpression()
+ * @generated
+ */
+ void setOnClickExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Create Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the create button. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Create Expression</em>' attribute.
+ * @see #setCreateExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFSingleReferenceDescription_CreateExpression()
+ * @model
+ * @generated
+ */
+ String getCreateExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFSingleReferenceDescription#getCreateExpression
+ * <em>Create Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Create Expression</em>' attribute.
+ * @see #getCreateExpression()
+ * @generated
+ */
+ void setCreateExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Search Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the search button. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Search Expression</em>' attribute.
+ * @see #setSearchExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFSingleReferenceDescription_SearchExpression()
+ * @model
+ * @generated
+ */
+ String getSearchExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFSingleReferenceDescription#getSearchExpression
+ * <em>Search Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Search Expression</em>' attribute.
+ * @see #getSearchExpression()
+ * @generated
+ */
+ void setSearchExpression(String value);
+
+ /**
+ * Returns the value of the '<em><b>Unset Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * --> <!-- begin-model-doc --> Defines the behavior executed when the end-user clicks on the unset button. <!--
+ * end-model-doc -->
+ *
+ * @return the value of the '<em>Unset Expression</em>' attribute.
+ * @see #setUnsetExpression(String)
+ * @see org.eclipse.eef.EefPackage#getEEFSingleReferenceDescription_UnsetExpression()
+ * @model
+ * @generated
+ */
+ String getUnsetExpression();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.eef.EEFSingleReferenceDescription#getUnsetExpression
+ * <em>Unset Expression</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @param value
+ * the new value of the '<em>Unset Expression</em>' attribute.
+ * @see #getUnsetExpression()
+ * @generated
+ */
+ void setUnsetExpression(String value);
+
+} // EEFSingleReferenceDescription
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefFactory.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefFactory.java
index 8cd314756..41acdeccc 100644
--- a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefFactory.java
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefFactory.java
@@ -122,6 +122,24 @@ public interface EefFactory extends EFactory {
EEFDynamicMappingIf createEEFDynamicMappingIf();
/**
+ * Returns a new object of class '<em>EEF Single Reference Description</em>'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return a new object of class '<em>EEF Single Reference Description</em>'.
+ * @generated
+ */
+ EEFSingleReferenceDescription createEEFSingleReferenceDescription();
+
+ /**
+ * Returns a new object of class '<em>EEF Multiple References Description</em>'. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @return a new object of class '<em>EEF Multiple References Description</em>'.
+ * @generated
+ */
+ EEFMultipleReferencesDescription createEEFMultipleReferencesDescription();
+
+ /**
* Returns the package supported by this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @return the package supported by this factory.
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefPackage.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefPackage.java
index 06ceba052..b80c08bd2 100644
--- a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefPackage.java
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefPackage.java
@@ -814,6 +814,202 @@ public interface EefPackage extends EPackage {
int EEF_DYNAMIC_MAPPING_IF_FEATURE_COUNT = 2;
/**
+ * The meta object id for the '{@link org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl
+ * <em>EEF Single Reference Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl
+ * @see org.eclipse.eef.impl.EefPackageImpl#getEEFSingleReferenceDescription()
+ * @generated
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION = 13;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION__IDENTIFIER = EefPackage.EEF_WIDGET_DESCRIPTION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Label Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION__LABEL_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION__LABEL_EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Value Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Display Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>On Click Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Create Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Search Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Unset Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>EEF Single Reference Description</em>' class. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_SINGLE_REFERENCE_DESCRIPTION_FEATURE_COUNT = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 6;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl
+ * <em>EEF Multiple References Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl
+ * @see org.eclipse.eef.impl.EefPackageImpl#getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION = 14;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__IDENTIFIER = EefPackage.EEF_WIDGET_DESCRIPTION__IDENTIFIER;
+
+ /**
+ * The feature id for the '<em><b>Label Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__LABEL_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION__LABEL_EXPRESSION;
+
+ /**
+ * The feature id for the '<em><b>Value Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Display Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>On Click Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Create Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Search Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Unset Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc
+ * -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Up Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Down Expression</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>EEF Multiple References Description</em>' class. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_MULTIPLE_REFERENCES_DESCRIPTION_FEATURE_COUNT = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 8;
+
+ /**
* Returns the meta object for class '{@link org.eclipse.eef.EEFViewDescription <em>EEF View Description</em>}'.
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
@@ -1412,6 +1608,194 @@ public interface EefPackage extends EPackage {
EReference getEEFDynamicMappingIf_Widget();
/**
+ * Returns the meta object for class '{@link org.eclipse.eef.EEFSingleReferenceDescription
+ * <em>EEF Single Reference Description</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>EEF Single Reference Description</em>'.
+ * @see org.eclipse.eef.EEFSingleReferenceDescription
+ * @generated
+ */
+ EClass getEEFSingleReferenceDescription();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFSingleReferenceDescription#getValueExpression <em>Value Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Value Expression</em>'.
+ * @see org.eclipse.eef.EEFSingleReferenceDescription#getValueExpression()
+ * @see #getEEFSingleReferenceDescription()
+ * @generated
+ */
+ EAttribute getEEFSingleReferenceDescription_ValueExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFSingleReferenceDescription#getDisplayExpression <em>Display Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Display Expression</em>'.
+ * @see org.eclipse.eef.EEFSingleReferenceDescription#getDisplayExpression()
+ * @see #getEEFSingleReferenceDescription()
+ * @generated
+ */
+ EAttribute getEEFSingleReferenceDescription_DisplayExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFSingleReferenceDescription#getOnClickExpression <em>On Click Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>On Click Expression</em>'.
+ * @see org.eclipse.eef.EEFSingleReferenceDescription#getOnClickExpression()
+ * @see #getEEFSingleReferenceDescription()
+ * @generated
+ */
+ EAttribute getEEFSingleReferenceDescription_OnClickExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFSingleReferenceDescription#getCreateExpression <em>Create Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Create Expression</em>'.
+ * @see org.eclipse.eef.EEFSingleReferenceDescription#getCreateExpression()
+ * @see #getEEFSingleReferenceDescription()
+ * @generated
+ */
+ EAttribute getEEFSingleReferenceDescription_CreateExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFSingleReferenceDescription#getSearchExpression <em>Search Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Search Expression</em>'.
+ * @see org.eclipse.eef.EEFSingleReferenceDescription#getSearchExpression()
+ * @see #getEEFSingleReferenceDescription()
+ * @generated
+ */
+ EAttribute getEEFSingleReferenceDescription_SearchExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFSingleReferenceDescription#getUnsetExpression <em>Unset Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Unset Expression</em>'.
+ * @see org.eclipse.eef.EEFSingleReferenceDescription#getUnsetExpression()
+ * @see #getEEFSingleReferenceDescription()
+ * @generated
+ */
+ EAttribute getEEFSingleReferenceDescription_UnsetExpression();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.eef.EEFMultipleReferencesDescription
+ * <em>EEF Multiple References Description</em>}'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>EEF Multiple References Description</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription
+ * @generated
+ */
+ EClass getEEFMultipleReferencesDescription();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFMultipleReferencesDescription#getValueExpression <em>Value Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Value Expression</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription#getValueExpression()
+ * @see #getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EAttribute getEEFMultipleReferencesDescription_ValueExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFMultipleReferencesDescription#getDisplayExpression <em>Display Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Display Expression</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription#getDisplayExpression()
+ * @see #getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EAttribute getEEFMultipleReferencesDescription_DisplayExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFMultipleReferencesDescription#getOnClickExpression <em>On Click Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>On Click Expression</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription#getOnClickExpression()
+ * @see #getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EAttribute getEEFMultipleReferencesDescription_OnClickExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFMultipleReferencesDescription#getCreateExpression <em>Create Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Create Expression</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription#getCreateExpression()
+ * @see #getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EAttribute getEEFMultipleReferencesDescription_CreateExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFMultipleReferencesDescription#getSearchExpression <em>Search Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Search Expression</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription#getSearchExpression()
+ * @see #getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EAttribute getEEFMultipleReferencesDescription_SearchExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFMultipleReferencesDescription#getUnsetExpression <em>Unset Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Unset Expression</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription#getUnsetExpression()
+ * @see #getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EAttribute getEEFMultipleReferencesDescription_UnsetExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFMultipleReferencesDescription#getUpExpression <em>Up Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Up Expression</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription#getUpExpression()
+ * @see #getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EAttribute getEEFMultipleReferencesDescription_UpExpression();
+
+ /**
+ * Returns the meta object for the attribute '
+ * {@link org.eclipse.eef.EEFMultipleReferencesDescription#getDownExpression <em>Down Expression</em>}'. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for the attribute '<em>Down Expression</em>'.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription#getDownExpression()
+ * @see #getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EAttribute getEEFMultipleReferencesDescription_DownExpression();
+
+ /**
* Returns the factory that creates the instances of the model. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @return the factory that creates the instances of the model.
@@ -1898,6 +2282,142 @@ public interface EefPackage extends EPackage {
*/
EReference EEF_DYNAMIC_MAPPING_IF__WIDGET = EefPackage.eINSTANCE.getEEFDynamicMappingIf_Widget();
+ /**
+ * The meta object literal for the '{@link org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl
+ * <em>EEF Single Reference Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl
+ * @see org.eclipse.eef.impl.EefPackageImpl#getEEFSingleReferenceDescription()
+ * @generated
+ */
+ EClass EEF_SINGLE_REFERENCE_DESCRIPTION = EefPackage.eINSTANCE.getEEFSingleReferenceDescription();
+
+ /**
+ * The meta object literal for the '<em><b>Value Expression</b></em>' attribute feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION = EefPackage.eINSTANCE.getEEFSingleReferenceDescription_ValueExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Display Expression</b></em>' attribute feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION = EefPackage.eINSTANCE.getEEFSingleReferenceDescription_DisplayExpression();
+
+ /**
+ * The meta object literal for the '<em><b>On Click Expression</b></em>' attribute feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION = EefPackage.eINSTANCE.getEEFSingleReferenceDescription_OnClickExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Create Expression</b></em>' attribute feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION = EefPackage.eINSTANCE.getEEFSingleReferenceDescription_CreateExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Search Expression</b></em>' attribute feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION = EefPackage.eINSTANCE.getEEFSingleReferenceDescription_SearchExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Unset Expression</b></em>' attribute feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION = EefPackage.eINSTANCE.getEEFSingleReferenceDescription_UnsetExpression();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl
+ * <em>EEF Multiple References Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl
+ * @see org.eclipse.eef.impl.EefPackageImpl#getEEFMultipleReferencesDescription()
+ * @generated
+ */
+ EClass EEF_MULTIPLE_REFERENCES_DESCRIPTION = EefPackage.eINSTANCE.getEEFMultipleReferencesDescription();
+
+ /**
+ * The meta object literal for the '<em><b>Value Expression</b></em>' attribute feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION = EefPackage.eINSTANCE.getEEFMultipleReferencesDescription_ValueExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Display Expression</b></em>' attribute feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION = EefPackage.eINSTANCE
+ .getEEFMultipleReferencesDescription_DisplayExpression();
+
+ /**
+ * The meta object literal for the '<em><b>On Click Expression</b></em>' attribute feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION = EefPackage.eINSTANCE
+ .getEEFMultipleReferencesDescription_OnClickExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Create Expression</b></em>' attribute feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION = EefPackage.eINSTANCE
+ .getEEFMultipleReferencesDescription_CreateExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Search Expression</b></em>' attribute feature. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION = EefPackage.eINSTANCE
+ .getEEFMultipleReferencesDescription_SearchExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Unset Expression</b></em>' attribute feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION = EefPackage.eINSTANCE.getEEFMultipleReferencesDescription_UnsetExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Up Expression</b></em>' attribute feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION = EefPackage.eINSTANCE.getEEFMultipleReferencesDescription_UpExpression();
+
+ /**
+ * The meta object literal for the '<em><b>Down Expression</b></em>' attribute feature. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ EAttribute EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION = EefPackage.eINSTANCE.getEEFMultipleReferencesDescription_DownExpression();
+
}
} // EefPackage
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFMultipleReferencesDescriptionImpl.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFMultipleReferencesDescriptionImpl.java
new file mode 100644
index 000000000..f833fd740
--- /dev/null
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFMultipleReferencesDescriptionImpl.java
@@ -0,0 +1,586 @@
+/**
+ * Copyright (c) 2015 Obeo.
+ * 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.htm
+ * Contributors: Obeo - initial API and implementation
+ */
+package org.eclipse.eef.impl;
+
+import org.eclipse.eef.EEFMultipleReferencesDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>EEF Multiple References Description</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl#getValueExpression <em>Value Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl#getDisplayExpression <em>Display Expression
+ * </em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl#getOnClickExpression <em>On Click Expression
+ * </em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl#getCreateExpression <em>Create Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl#getSearchExpression <em>Search Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl#getUnsetExpression <em>Unset Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl#getUpExpression <em>Up Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFMultipleReferencesDescriptionImpl#getDownExpression <em>Down Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EEFMultipleReferencesDescriptionImpl extends EEFWidgetDescriptionImpl implements EEFMultipleReferencesDescription {
+ /**
+ * The default value of the '{@link #getValueExpression() <em>Value Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getValueExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValueExpression() <em>Value Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getValueExpression()
+ * @generated
+ * @ordered
+ */
+ protected String valueExpression = EEFMultipleReferencesDescriptionImpl.VALUE_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDisplayExpression() <em>Display Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getDisplayExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String DISPLAY_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDisplayExpression() <em>Display Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getDisplayExpression()
+ * @generated
+ * @ordered
+ */
+ protected String displayExpression = EEFMultipleReferencesDescriptionImpl.DISPLAY_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOnClickExpression() <em>On Click Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getOnClickExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String ON_CLICK_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOnClickExpression() <em>On Click Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getOnClickExpression()
+ * @generated
+ * @ordered
+ */
+ protected String onClickExpression = EEFMultipleReferencesDescriptionImpl.ON_CLICK_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCreateExpression() <em>Create Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getCreateExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String CREATE_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreateExpression() <em>Create Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getCreateExpression()
+ * @generated
+ * @ordered
+ */
+ protected String createExpression = EEFMultipleReferencesDescriptionImpl.CREATE_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSearchExpression() <em>Search Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getSearchExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String SEARCH_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSearchExpression() <em>Search Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getSearchExpression()
+ * @generated
+ * @ordered
+ */
+ protected String searchExpression = EEFMultipleReferencesDescriptionImpl.SEARCH_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getUnsetExpression() <em>Unset Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getUnsetExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String UNSET_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUnsetExpression() <em>Unset Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getUnsetExpression()
+ * @generated
+ * @ordered
+ */
+ protected String unsetExpression = EEFMultipleReferencesDescriptionImpl.UNSET_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getUpExpression() <em>Up Expression</em>}' attribute. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getUpExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String UP_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUpExpression() <em>Up Expression</em>}' attribute. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @see #getUpExpression()
+ * @generated
+ * @ordered
+ */
+ protected String upExpression = EEFMultipleReferencesDescriptionImpl.UP_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDownExpression() <em>Down Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getDownExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String DOWN_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDownExpression() <em>Down Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getDownExpression()
+ * @generated
+ * @ordered
+ */
+ protected String downExpression = EEFMultipleReferencesDescriptionImpl.DOWN_EXPRESSION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EEFMultipleReferencesDescriptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EefPackage.Literals.EEF_MULTIPLE_REFERENCES_DESCRIPTION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getValueExpression() {
+ return valueExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setValueExpression(String newValueExpression) {
+ String oldValueExpression = valueExpression;
+ valueExpression = newValueExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION,
+ oldValueExpression, valueExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getDisplayExpression() {
+ return displayExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setDisplayExpression(String newDisplayExpression) {
+ String oldDisplayExpression = displayExpression;
+ displayExpression = newDisplayExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION,
+ oldDisplayExpression, displayExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getOnClickExpression() {
+ return onClickExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setOnClickExpression(String newOnClickExpression) {
+ String oldOnClickExpression = onClickExpression;
+ onClickExpression = newOnClickExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION,
+ oldOnClickExpression, onClickExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getCreateExpression() {
+ return createExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setCreateExpression(String newCreateExpression) {
+ String oldCreateExpression = createExpression;
+ createExpression = newCreateExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION,
+ oldCreateExpression, createExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getSearchExpression() {
+ return searchExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSearchExpression(String newSearchExpression) {
+ String oldSearchExpression = searchExpression;
+ searchExpression = newSearchExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION,
+ oldSearchExpression, searchExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getUnsetExpression() {
+ return unsetExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setUnsetExpression(String newUnsetExpression) {
+ String oldUnsetExpression = unsetExpression;
+ unsetExpression = newUnsetExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION,
+ oldUnsetExpression, unsetExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getUpExpression() {
+ return upExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setUpExpression(String newUpExpression) {
+ String oldUpExpression = upExpression;
+ upExpression = newUpExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION, oldUpExpression,
+ upExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getDownExpression() {
+ return downExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setDownExpression(String newDownExpression) {
+ String oldDownExpression = downExpression;
+ downExpression = newDownExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION, oldDownExpression,
+ downExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION:
+ return getValueExpression();
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION:
+ return getDisplayExpression();
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION:
+ return getOnClickExpression();
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION:
+ return getCreateExpression();
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION:
+ return getSearchExpression();
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION:
+ return getUnsetExpression();
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION:
+ return getUpExpression();
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION:
+ return getDownExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION:
+ setValueExpression((String) newValue);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION:
+ setDisplayExpression((String) newValue);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION:
+ setOnClickExpression((String) newValue);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION:
+ setCreateExpression((String) newValue);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION:
+ setSearchExpression((String) newValue);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION:
+ setUnsetExpression((String) newValue);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION:
+ setUpExpression((String) newValue);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION:
+ setDownExpression((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION:
+ setValueExpression(EEFMultipleReferencesDescriptionImpl.VALUE_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION:
+ setDisplayExpression(EEFMultipleReferencesDescriptionImpl.DISPLAY_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION:
+ setOnClickExpression(EEFMultipleReferencesDescriptionImpl.ON_CLICK_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION:
+ setCreateExpression(EEFMultipleReferencesDescriptionImpl.CREATE_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION:
+ setSearchExpression(EEFMultipleReferencesDescriptionImpl.SEARCH_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION:
+ setUnsetExpression(EEFMultipleReferencesDescriptionImpl.UNSET_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION:
+ setUpExpression(EEFMultipleReferencesDescriptionImpl.UP_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION:
+ setDownExpression(EEFMultipleReferencesDescriptionImpl.DOWN_EXPRESSION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION:
+ return EEFMultipleReferencesDescriptionImpl.VALUE_EXPRESSION_EDEFAULT == null ? valueExpression != null
+ : !EEFMultipleReferencesDescriptionImpl.VALUE_EXPRESSION_EDEFAULT.equals(valueExpression);
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION:
+ return EEFMultipleReferencesDescriptionImpl.DISPLAY_EXPRESSION_EDEFAULT == null ? displayExpression != null
+ : !EEFMultipleReferencesDescriptionImpl.DISPLAY_EXPRESSION_EDEFAULT.equals(displayExpression);
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION:
+ return EEFMultipleReferencesDescriptionImpl.ON_CLICK_EXPRESSION_EDEFAULT == null ? onClickExpression != null
+ : !EEFMultipleReferencesDescriptionImpl.ON_CLICK_EXPRESSION_EDEFAULT.equals(onClickExpression);
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION:
+ return EEFMultipleReferencesDescriptionImpl.CREATE_EXPRESSION_EDEFAULT == null ? createExpression != null
+ : !EEFMultipleReferencesDescriptionImpl.CREATE_EXPRESSION_EDEFAULT.equals(createExpression);
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION:
+ return EEFMultipleReferencesDescriptionImpl.SEARCH_EXPRESSION_EDEFAULT == null ? searchExpression != null
+ : !EEFMultipleReferencesDescriptionImpl.SEARCH_EXPRESSION_EDEFAULT.equals(searchExpression);
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION:
+ return EEFMultipleReferencesDescriptionImpl.UNSET_EXPRESSION_EDEFAULT == null ? unsetExpression != null
+ : !EEFMultipleReferencesDescriptionImpl.UNSET_EXPRESSION_EDEFAULT.equals(unsetExpression);
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION:
+ return EEFMultipleReferencesDescriptionImpl.UP_EXPRESSION_EDEFAULT == null ? upExpression != null
+ : !EEFMultipleReferencesDescriptionImpl.UP_EXPRESSION_EDEFAULT.equals(upExpression);
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION:
+ return EEFMultipleReferencesDescriptionImpl.DOWN_EXPRESSION_EDEFAULT == null ? downExpression != null
+ : !EEFMultipleReferencesDescriptionImpl.DOWN_EXPRESSION_EDEFAULT.equals(downExpression);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (valueExpression: "); //$NON-NLS-1$
+ result.append(valueExpression);
+ result.append(", displayExpression: "); //$NON-NLS-1$
+ result.append(displayExpression);
+ result.append(", onClickExpression: "); //$NON-NLS-1$
+ result.append(onClickExpression);
+ result.append(", createExpression: "); //$NON-NLS-1$
+ result.append(createExpression);
+ result.append(", searchExpression: "); //$NON-NLS-1$
+ result.append(searchExpression);
+ result.append(", unsetExpression: "); //$NON-NLS-1$
+ result.append(unsetExpression);
+ result.append(", upExpression: "); //$NON-NLS-1$
+ result.append(upExpression);
+ result.append(", downExpression: "); //$NON-NLS-1$
+ result.append(downExpression);
+ result.append(')');
+ return result.toString();
+ }
+
+} // EEFMultipleReferencesDescriptionImpl
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFSingleReferenceDescriptionImpl.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFSingleReferenceDescriptionImpl.java
new file mode 100644
index 000000000..f2fe59815
--- /dev/null
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFSingleReferenceDescriptionImpl.java
@@ -0,0 +1,466 @@
+/**
+ * Copyright (c) 2015 Obeo.
+ * 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.htm
+ * Contributors: Obeo - initial API and implementation
+ */
+package org.eclipse.eef.impl;
+
+import org.eclipse.eef.EEFSingleReferenceDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>EEF Single Reference Description</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * <ul>
+ * <li>{@link org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl#getValueExpression <em>Value Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl#getDisplayExpression <em>Display Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl#getOnClickExpression <em>On Click Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl#getCreateExpression <em>Create Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl#getSearchExpression <em>Search Expression</em>}</li>
+ * <li>{@link org.eclipse.eef.impl.EEFSingleReferenceDescriptionImpl#getUnsetExpression <em>Unset Expression</em>}</li>
+ * </ul>
+ * </p>
+ *
+ * @generated
+ */
+public class EEFSingleReferenceDescriptionImpl extends EEFWidgetDescriptionImpl implements EEFSingleReferenceDescription {
+ /**
+ * The default value of the '{@link #getValueExpression() <em>Value Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getValueExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String VALUE_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getValueExpression() <em>Value Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getValueExpression()
+ * @generated
+ * @ordered
+ */
+ protected String valueExpression = EEFSingleReferenceDescriptionImpl.VALUE_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDisplayExpression() <em>Display Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getDisplayExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String DISPLAY_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDisplayExpression() <em>Display Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getDisplayExpression()
+ * @generated
+ * @ordered
+ */
+ protected String displayExpression = EEFSingleReferenceDescriptionImpl.DISPLAY_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getOnClickExpression() <em>On Click Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getOnClickExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String ON_CLICK_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOnClickExpression() <em>On Click Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getOnClickExpression()
+ * @generated
+ * @ordered
+ */
+ protected String onClickExpression = EEFSingleReferenceDescriptionImpl.ON_CLICK_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCreateExpression() <em>Create Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getCreateExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String CREATE_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCreateExpression() <em>Create Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getCreateExpression()
+ * @generated
+ * @ordered
+ */
+ protected String createExpression = EEFSingleReferenceDescriptionImpl.CREATE_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSearchExpression() <em>Search Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getSearchExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String SEARCH_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSearchExpression() <em>Search Expression</em>}' attribute. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see #getSearchExpression()
+ * @generated
+ * @ordered
+ */
+ protected String searchExpression = EEFSingleReferenceDescriptionImpl.SEARCH_EXPRESSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getUnsetExpression() <em>Unset Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getUnsetExpression()
+ * @generated
+ * @ordered
+ */
+ protected static final String UNSET_EXPRESSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getUnsetExpression() <em>Unset Expression</em>}' attribute. <!-- begin-user-doc
+ * --> <!-- end-user-doc -->
+ *
+ * @see #getUnsetExpression()
+ * @generated
+ * @ordered
+ */
+ protected String unsetExpression = EEFSingleReferenceDescriptionImpl.UNSET_EXPRESSION_EDEFAULT;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EEFSingleReferenceDescriptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EefPackage.Literals.EEF_SINGLE_REFERENCE_DESCRIPTION;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getValueExpression() {
+ return valueExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setValueExpression(String newValueExpression) {
+ String oldValueExpression = valueExpression;
+ valueExpression = newValueExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION, oldValueExpression,
+ valueExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getDisplayExpression() {
+ return displayExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setDisplayExpression(String newDisplayExpression) {
+ String oldDisplayExpression = displayExpression;
+ displayExpression = newDisplayExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION,
+ oldDisplayExpression, displayExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getOnClickExpression() {
+ return onClickExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setOnClickExpression(String newOnClickExpression) {
+ String oldOnClickExpression = onClickExpression;
+ onClickExpression = newOnClickExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION,
+ oldOnClickExpression, onClickExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getCreateExpression() {
+ return createExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setCreateExpression(String newCreateExpression) {
+ String oldCreateExpression = createExpression;
+ createExpression = newCreateExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION,
+ oldCreateExpression, createExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getSearchExpression() {
+ return searchExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setSearchExpression(String newSearchExpression) {
+ String oldSearchExpression = searchExpression;
+ searchExpression = newSearchExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION,
+ oldSearchExpression, searchExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String getUnsetExpression() {
+ return unsetExpression;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void setUnsetExpression(String newUnsetExpression) {
+ String oldUnsetExpression = unsetExpression;
+ unsetExpression = newUnsetExpression;
+ if (eNotificationRequired()) {
+ eNotify(new ENotificationImpl(this, Notification.SET, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION, oldUnsetExpression,
+ unsetExpression));
+ }
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION:
+ return getValueExpression();
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION:
+ return getDisplayExpression();
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION:
+ return getOnClickExpression();
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION:
+ return getCreateExpression();
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION:
+ return getSearchExpression();
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION:
+ return getUnsetExpression();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION:
+ setValueExpression((String) newValue);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION:
+ setDisplayExpression((String) newValue);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION:
+ setOnClickExpression((String) newValue);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION:
+ setCreateExpression((String) newValue);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION:
+ setSearchExpression((String) newValue);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION:
+ setUnsetExpression((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION:
+ setValueExpression(EEFSingleReferenceDescriptionImpl.VALUE_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION:
+ setDisplayExpression(EEFSingleReferenceDescriptionImpl.DISPLAY_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION:
+ setOnClickExpression(EEFSingleReferenceDescriptionImpl.ON_CLICK_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION:
+ setCreateExpression(EEFSingleReferenceDescriptionImpl.CREATE_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION:
+ setSearchExpression(EEFSingleReferenceDescriptionImpl.SEARCH_EXPRESSION_EDEFAULT);
+ return;
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION:
+ setUnsetExpression(EEFSingleReferenceDescriptionImpl.UNSET_EXPRESSION_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION:
+ return EEFSingleReferenceDescriptionImpl.VALUE_EXPRESSION_EDEFAULT == null ? valueExpression != null
+ : !EEFSingleReferenceDescriptionImpl.VALUE_EXPRESSION_EDEFAULT.equals(valueExpression);
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION:
+ return EEFSingleReferenceDescriptionImpl.DISPLAY_EXPRESSION_EDEFAULT == null ? displayExpression != null
+ : !EEFSingleReferenceDescriptionImpl.DISPLAY_EXPRESSION_EDEFAULT.equals(displayExpression);
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION:
+ return EEFSingleReferenceDescriptionImpl.ON_CLICK_EXPRESSION_EDEFAULT == null ? onClickExpression != null
+ : !EEFSingleReferenceDescriptionImpl.ON_CLICK_EXPRESSION_EDEFAULT.equals(onClickExpression);
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION:
+ return EEFSingleReferenceDescriptionImpl.CREATE_EXPRESSION_EDEFAULT == null ? createExpression != null
+ : !EEFSingleReferenceDescriptionImpl.CREATE_EXPRESSION_EDEFAULT.equals(createExpression);
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION:
+ return EEFSingleReferenceDescriptionImpl.SEARCH_EXPRESSION_EDEFAULT == null ? searchExpression != null
+ : !EEFSingleReferenceDescriptionImpl.SEARCH_EXPRESSION_EDEFAULT.equals(searchExpression);
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION:
+ return EEFSingleReferenceDescriptionImpl.UNSET_EXPRESSION_EDEFAULT == null ? unsetExpression != null
+ : !EEFSingleReferenceDescriptionImpl.UNSET_EXPRESSION_EDEFAULT.equals(unsetExpression);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy()) {
+ return super.toString();
+ }
+
+ StringBuffer result = new StringBuffer(super.toString());
+ result.append(" (valueExpression: "); //$NON-NLS-1$
+ result.append(valueExpression);
+ result.append(", displayExpression: "); //$NON-NLS-1$
+ result.append(displayExpression);
+ result.append(", onClickExpression: "); //$NON-NLS-1$
+ result.append(onClickExpression);
+ result.append(", createExpression: "); //$NON-NLS-1$
+ result.append(createExpression);
+ result.append(", searchExpression: "); //$NON-NLS-1$
+ result.append(searchExpression);
+ result.append(", unsetExpression: "); //$NON-NLS-1$
+ result.append(unsetExpression);
+ result.append(')');
+ return result.toString();
+ }
+
+} // EEFSingleReferenceDescriptionImpl
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefFactoryImpl.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefFactoryImpl.java
index fd38cf281..eba249db8 100644
--- a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefFactoryImpl.java
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefFactoryImpl.java
@@ -15,9 +15,11 @@ import org.eclipse.eef.EEFDynamicMappingFor;
import org.eclipse.eef.EEFDynamicMappingIf;
import org.eclipse.eef.EEFGroupDescription;
import org.eclipse.eef.EEFLabelDescription;
+import org.eclipse.eef.EEFMultipleReferencesDescription;
import org.eclipse.eef.EEFPageDescription;
import org.eclipse.eef.EEFRadioDescription;
import org.eclipse.eef.EEFSelectDescription;
+import org.eclipse.eef.EEFSingleReferenceDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFViewDescription;
import org.eclipse.eef.EefFactory;
@@ -92,6 +94,10 @@ public class EefFactoryImpl extends EFactoryImpl implements EefFactory {
return createEEFDynamicMappingFor();
case EefPackage.EEF_DYNAMIC_MAPPING_IF:
return createEEFDynamicMappingIf();
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION:
+ return createEEFSingleReferenceDescription();
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION:
+ return createEEFMultipleReferencesDescription();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -235,6 +241,28 @@ public class EefFactoryImpl extends EFactoryImpl implements EefFactory {
* @generated
*/
@Override
+ public EEFSingleReferenceDescription createEEFSingleReferenceDescription() {
+ EEFSingleReferenceDescriptionImpl eefSingleReferenceDescription = new EEFSingleReferenceDescriptionImpl();
+ return eefSingleReferenceDescription;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EEFMultipleReferencesDescription createEEFMultipleReferencesDescription() {
+ EEFMultipleReferencesDescriptionImpl eefMultipleReferencesDescription = new EEFMultipleReferencesDescriptionImpl();
+ return eefMultipleReferencesDescription;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
public EefPackage getEefPackage() {
return (EefPackage) getEPackage();
}
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefPackageImpl.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefPackageImpl.java
index aaf5571e8..bbff80feb 100644
--- a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefPackageImpl.java
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefPackageImpl.java
@@ -15,9 +15,11 @@ import org.eclipse.eef.EEFDynamicMappingFor;
import org.eclipse.eef.EEFDynamicMappingIf;
import org.eclipse.eef.EEFGroupDescription;
import org.eclipse.eef.EEFLabelDescription;
+import org.eclipse.eef.EEFMultipleReferencesDescription;
import org.eclipse.eef.EEFPageDescription;
import org.eclipse.eef.EEFRadioDescription;
import org.eclipse.eef.EEFSelectDescription;
+import org.eclipse.eef.EEFSingleReferenceDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFViewDescription;
import org.eclipse.eef.EEFWidgetDescription;
@@ -128,6 +130,20 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
private EClass eefDynamicMappingIfEClass = null;
/**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass eefSingleReferenceDescriptionEClass = null;
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass eefMultipleReferencesDescriptionEClass = null;
+
+ /**
* Creates an instance of the model <b>Package</b>, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
* EPackage.Registry} by the package package URI value.
* <p>
@@ -748,6 +764,166 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
* @generated
*/
@Override
+ public EClass getEEFSingleReferenceDescription() {
+ return eefSingleReferenceDescriptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFSingleReferenceDescription_ValueExpression() {
+ return (EAttribute) eefSingleReferenceDescriptionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFSingleReferenceDescription_DisplayExpression() {
+ return (EAttribute) eefSingleReferenceDescriptionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFSingleReferenceDescription_OnClickExpression() {
+ return (EAttribute) eefSingleReferenceDescriptionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFSingleReferenceDescription_CreateExpression() {
+ return (EAttribute) eefSingleReferenceDescriptionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFSingleReferenceDescription_SearchExpression() {
+ return (EAttribute) eefSingleReferenceDescriptionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFSingleReferenceDescription_UnsetExpression() {
+ return (EAttribute) eefSingleReferenceDescriptionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EClass getEEFMultipleReferencesDescription() {
+ return eefMultipleReferencesDescriptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFMultipleReferencesDescription_ValueExpression() {
+ return (EAttribute) eefMultipleReferencesDescriptionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFMultipleReferencesDescription_DisplayExpression() {
+ return (EAttribute) eefMultipleReferencesDescriptionEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFMultipleReferencesDescription_OnClickExpression() {
+ return (EAttribute) eefMultipleReferencesDescriptionEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFMultipleReferencesDescription_CreateExpression() {
+ return (EAttribute) eefMultipleReferencesDescriptionEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFMultipleReferencesDescription_SearchExpression() {
+ return (EAttribute) eefMultipleReferencesDescriptionEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFMultipleReferencesDescription_UnsetExpression() {
+ return (EAttribute) eefMultipleReferencesDescriptionEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFMultipleReferencesDescription_UpExpression() {
+ return (EAttribute) eefMultipleReferencesDescriptionEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getEEFMultipleReferencesDescription_DownExpression() {
+ return (EAttribute) eefMultipleReferencesDescriptionEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
public EefFactory getEefFactory() {
return (EefFactory) getEFactoryInstance();
}
@@ -839,6 +1015,24 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
eefDynamicMappingIfEClass = createEClass(EefPackage.EEF_DYNAMIC_MAPPING_IF);
createEAttribute(eefDynamicMappingIfEClass, EefPackage.EEF_DYNAMIC_MAPPING_IF__PREDICATE_EXPRESSION);
createEReference(eefDynamicMappingIfEClass, EefPackage.EEF_DYNAMIC_MAPPING_IF__WIDGET);
+
+ eefSingleReferenceDescriptionEClass = createEClass(EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION);
+ createEAttribute(eefSingleReferenceDescriptionEClass, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__VALUE_EXPRESSION);
+ createEAttribute(eefSingleReferenceDescriptionEClass, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__DISPLAY_EXPRESSION);
+ createEAttribute(eefSingleReferenceDescriptionEClass, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__ON_CLICK_EXPRESSION);
+ createEAttribute(eefSingleReferenceDescriptionEClass, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__CREATE_EXPRESSION);
+ createEAttribute(eefSingleReferenceDescriptionEClass, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__SEARCH_EXPRESSION);
+ createEAttribute(eefSingleReferenceDescriptionEClass, EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION__UNSET_EXPRESSION);
+
+ eefMultipleReferencesDescriptionEClass = createEClass(EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION);
+ createEAttribute(eefMultipleReferencesDescriptionEClass, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__VALUE_EXPRESSION);
+ createEAttribute(eefMultipleReferencesDescriptionEClass, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DISPLAY_EXPRESSION);
+ createEAttribute(eefMultipleReferencesDescriptionEClass, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__ON_CLICK_EXPRESSION);
+ createEAttribute(eefMultipleReferencesDescriptionEClass, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__CREATE_EXPRESSION);
+ createEAttribute(eefMultipleReferencesDescriptionEClass, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__SEARCH_EXPRESSION);
+ createEAttribute(eefMultipleReferencesDescriptionEClass, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UNSET_EXPRESSION);
+ createEAttribute(eefMultipleReferencesDescriptionEClass, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__UP_EXPRESSION);
+ createEAttribute(eefMultipleReferencesDescriptionEClass, EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION__DOWN_EXPRESSION);
}
/**
@@ -879,6 +1073,8 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
eefCheckboxDescriptionEClass.getESuperTypes().add(this.getEEFWidgetDescription());
eefSelectDescriptionEClass.getESuperTypes().add(this.getEEFWidgetDescription());
eefRadioDescriptionEClass.getESuperTypes().add(this.getEEFWidgetDescription());
+ eefSingleReferenceDescriptionEClass.getESuperTypes().add(this.getEEFWidgetDescription());
+ eefMultipleReferencesDescriptionEClass.getESuperTypes().add(this.getEEFWidgetDescription());
// Initialize classes and features; add operations and parameters
initEClass(eefViewDescriptionEClass, EEFViewDescription.class,
@@ -1097,6 +1293,68 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
null,
"widget", null, 1, 1, EEFDynamicMappingIf.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, EPackageImpl.IS_COMPOSITE, EPackageImpl.IS_RESOLVE_PROXIES, !EPackageImpl.IS_UNSETTABLE, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEClass(eefSingleReferenceDescriptionEClass, EEFSingleReferenceDescription.class,
+ "EEFSingleReferenceDescription", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(
+ getEEFSingleReferenceDescription_ValueExpression(),
+ theEcorePackage.getEString(),
+ "valueExpression", null, 0, 1, EEFSingleReferenceDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFSingleReferenceDescription_DisplayExpression(),
+ theEcorePackage.getEString(),
+ "displayExpression", null, 0, 1, EEFSingleReferenceDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFSingleReferenceDescription_OnClickExpression(),
+ theEcorePackage.getEString(),
+ "onClickExpression", null, 0, 1, EEFSingleReferenceDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFSingleReferenceDescription_CreateExpression(),
+ theEcorePackage.getEString(),
+ "createExpression", null, 0, 1, EEFSingleReferenceDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFSingleReferenceDescription_SearchExpression(),
+ theEcorePackage.getEString(),
+ "searchExpression", null, 0, 1, EEFSingleReferenceDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFSingleReferenceDescription_UnsetExpression(),
+ theEcorePackage.getEString(),
+ "unsetExpression", null, 0, 1, EEFSingleReferenceDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+
+ initEClass(eefMultipleReferencesDescriptionEClass, EEFMultipleReferencesDescription.class,
+ "EEFMultipleReferencesDescription", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
+ initEAttribute(
+ getEEFMultipleReferencesDescription_ValueExpression(),
+ theEcorePackage.getEString(),
+ "valueExpression", null, 0, 1, EEFMultipleReferencesDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFMultipleReferencesDescription_DisplayExpression(),
+ theEcorePackage.getEString(),
+ "displayExpression", null, 0, 1, EEFMultipleReferencesDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFMultipleReferencesDescription_OnClickExpression(),
+ theEcorePackage.getEString(),
+ "onClickExpression", null, 0, 1, EEFMultipleReferencesDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFMultipleReferencesDescription_CreateExpression(),
+ theEcorePackage.getEString(),
+ "createExpression", null, 0, 1, EEFMultipleReferencesDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFMultipleReferencesDescription_SearchExpression(),
+ theEcorePackage.getEString(),
+ "searchExpression", null, 0, 1, EEFMultipleReferencesDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFMultipleReferencesDescription_UnsetExpression(),
+ theEcorePackage.getEString(),
+ "unsetExpression", null, 0, 1, EEFMultipleReferencesDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFMultipleReferencesDescription_UpExpression(),
+ theEcorePackage.getEString(),
+ "upExpression", null, 0, 1, EEFMultipleReferencesDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+ initEAttribute(
+ getEEFMultipleReferencesDescription_DownExpression(),
+ theEcorePackage.getEString(),
+ "downExpression", null, 0, 1, EEFMultipleReferencesDescription.class, !EPackageImpl.IS_TRANSIENT, !EPackageImpl.IS_VOLATILE, EPackageImpl.IS_CHANGEABLE, !EPackageImpl.IS_UNSETTABLE, !EPackageImpl.IS_ID, EPackageImpl.IS_UNIQUE, !EPackageImpl.IS_DERIVED, EPackageImpl.IS_ORDERED); //$NON-NLS-1$
+
// Create resource
createResource(EefPackage.eNS_URI);
}
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefAdapterFactory.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefAdapterFactory.java
index 892ad86f9..af3d27bfb 100644
--- a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefAdapterFactory.java
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefAdapterFactory.java
@@ -15,9 +15,11 @@ import org.eclipse.eef.EEFDynamicMappingFor;
import org.eclipse.eef.EEFDynamicMappingIf;
import org.eclipse.eef.EEFGroupDescription;
import org.eclipse.eef.EEFLabelDescription;
+import org.eclipse.eef.EEFMultipleReferencesDescription;
import org.eclipse.eef.EEFPageDescription;
import org.eclipse.eef.EEFRadioDescription;
import org.eclipse.eef.EEFSelectDescription;
+import org.eclipse.eef.EEFSingleReferenceDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFViewDescription;
import org.eclipse.eef.EEFWidgetDescription;
@@ -144,6 +146,16 @@ public class EefAdapterFactory extends AdapterFactoryImpl {
}
@Override
+ public Adapter caseEEFSingleReferenceDescription(EEFSingleReferenceDescription object) {
+ return createEEFSingleReferenceDescriptionAdapter();
+ }
+
+ @Override
+ public Adapter caseEEFMultipleReferencesDescription(EEFMultipleReferencesDescription object) {
+ return createEEFMultipleReferencesDescriptionAdapter();
+ }
+
+ @Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
}
@@ -345,6 +357,34 @@ public class EefAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.eef.EEFSingleReferenceDescription
+ * <em>EEF Single Reference Description</em>}'. <!-- begin-user-doc --> This default implementation returns null so
+ * that we can easily ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.eef.EEFSingleReferenceDescription
+ * @generated
+ */
+ public Adapter createEEFSingleReferenceDescriptionAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.eef.EEFMultipleReferencesDescription
+ * <em>EEF Multiple References Description</em>}'. <!-- begin-user-doc --> This default implementation returns null
+ * so that we can easily ignore cases; it's useful to ignore a case when inheritance will catch all the cases
+ * anyway. <!-- end-user-doc -->
+ *
+ * @return the new adapter.
+ * @see org.eclipse.eef.EEFMultipleReferencesDescription
+ * @generated
+ */
+ public Adapter createEEFMultipleReferencesDescriptionAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for the default case. <!-- begin-user-doc --> This default implementation returns null.
* <!-- end-user-doc -->
*
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefSwitch.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefSwitch.java
index 098ffcd71..5a65b7e1a 100644
--- a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefSwitch.java
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefSwitch.java
@@ -15,9 +15,11 @@ import org.eclipse.eef.EEFDynamicMappingFor;
import org.eclipse.eef.EEFDynamicMappingIf;
import org.eclipse.eef.EEFGroupDescription;
import org.eclipse.eef.EEFLabelDescription;
+import org.eclipse.eef.EEFMultipleReferencesDescription;
import org.eclipse.eef.EEFPageDescription;
import org.eclipse.eef.EEFRadioDescription;
import org.eclipse.eef.EEFSelectDescription;
+import org.eclipse.eef.EEFSingleReferenceDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFViewDescription;
import org.eclipse.eef.EEFWidgetDescription;
@@ -198,6 +200,28 @@ public class EefSwitch<T> extends Switch<T> {
}
return result;
}
+ case EefPackage.EEF_SINGLE_REFERENCE_DESCRIPTION: {
+ EEFSingleReferenceDescription eefSingleReferenceDescription = (EEFSingleReferenceDescription) theEObject;
+ T result = caseEEFSingleReferenceDescription(eefSingleReferenceDescription);
+ if (result == null) {
+ result = caseEEFWidgetDescription(eefSingleReferenceDescription);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
+ case EefPackage.EEF_MULTIPLE_REFERENCES_DESCRIPTION: {
+ EEFMultipleReferencesDescription eefMultipleReferencesDescription = (EEFMultipleReferencesDescription) theEObject;
+ T result = caseEEFMultipleReferencesDescription(eefMultipleReferencesDescription);
+ if (result == null) {
+ result = caseEEFWidgetDescription(eefMultipleReferencesDescription);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
default:
return defaultCase(theEObject);
}
@@ -399,6 +423,36 @@ public class EefSwitch<T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>EEF Single Reference Description</em>'. <!--
+ * begin-user-doc --> This implementation returns null; returning a non-null result will terminate the switch. <!--
+ * end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EEF Single Reference Description</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEEFSingleReferenceDescription(EEFSingleReferenceDescription object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '<em>EEF Multiple References Description</em>'.
+ * <!-- begin-user-doc --> This implementation returns null; returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>EEF Multiple References Description</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEEFMultipleReferencesDescription(EEFMultipleReferencesDescription object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>EObject</em>'. <!-- begin-user-doc --> This
* implementation returns null; returning a non-null result will terminate the switch, but this is the last case
* anyway. <!-- end-user-doc -->

Back to the top