Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMélanie Bats2016-01-21 14:46:59 +0000
committerMélanie Bats2016-01-21 14:54:45 +0000
commitccc0132755ea6d00178e192c97f03b83045065ad (patch)
tree6b0ea74c0790c9b698971b5891685d0dbdc6186e /plugins
parent36387291432b92d8a7255be3927864d73a8d20e8 (diff)
downloadorg.eclipse.eef-ccc0132755ea6d00178e192c97f03b83045065ad.tar.gz
org.eclipse.eef-ccc0132755ea6d00178e192c97f03b83045065ad.tar.xz
org.eclipse.eef-ccc0132755ea6d00178e192c97f03b83045065ad.zip
Contribute Label widget
Change-Id: Ic9b0cac88dbcee02a6c5509652361c33eb16a758 Signed-off-by: Mélanie Bats <melanie.bats@obeo.fr>
Diffstat (limited to 'plugins')
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFControllersFactory.java17
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFLabelController.java38
-rw-r--r--plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFLabelControllerImpl.java99
-rw-r--r--plugins/org.eclipse.eef.edit/icons/full/obj16/EEFLabelDescription.gifbin0 -> 129 bytes
-rw-r--r--plugins/org.eclipse.eef.edit/plugin.properties1
-rw-r--r--plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFContainerDescriptionItemProvider.java3
-rw-r--r--plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFLabelDescriptionItemProvider.java105
-rw-r--r--plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EefItemProviderAdapterFactory.java26
-rw-r--r--plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFContainerLifecycleManager.java9
-rw-r--r--plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFLabelLifecycleManager.java135
-rw-r--r--plugins/org.eclipse.eef/model/eef.ecore1
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFLabelDescription.java21
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefFactory.java8
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EefPackage.java56
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFLabelDescriptionImpl.java43
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefFactoryImpl.java14
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EefPackageImpl.java24
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefAdapterFactory.java20
-rw-r--r--plugins/org.eclipse.eef/src-gen/org/eclipse/eef/util/EefSwitch.java27
19 files changed, 647 insertions, 0 deletions
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 040ace40c..3c2f95caa 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
@@ -10,7 +10,9 @@
*******************************************************************************/
package org.eclipse.eef.core.api.controllers;
+import org.eclipse.eef.EEFLabelDescription;
import org.eclipse.eef.EEFTextDescription;
+import org.eclipse.eef.core.internal.controllers.EEFLabelControllerImpl;
import org.eclipse.eef.core.internal.controllers.EEFTextControllerImpl;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.sirius.common.interpreter.api.IInterpreter;
@@ -39,4 +41,19 @@ public class EEFControllersFactory {
TransactionalEditingDomain editingDomain) {
return new EEFTextControllerImpl(description, variableManager, interpreter, editingDomain);
}
+
+ /**
+ * Creates a new label controller.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ * @return A label controller
+ */
+ public EEFLabelController createLabelController(EEFLabelDescription description, IVariableManager variableManager, IInterpreter interpreter) {
+ return new EEFLabelControllerImpl(description, variableManager, interpreter);
+ }
}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFLabelController.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFLabelController.java
new file mode 100644
index 000000000..b472eff76
--- /dev/null
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/api/controllers/EEFLabelController.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * 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.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.core.api.controllers;
+
+/**
+ * The EEFLabelController is responsible of supporting all the interactions with the widgets created for an
+ * EEFLabelDescription.
+ *
+ * @author mbats
+ */
+public interface EEFLabelController {
+ /**
+ * Register a consumer which will be called with the new value of the label when it will change.
+ *
+ * @param consumer
+ * The consumer of the new value of the label
+ */
+ void onNewLabel(IConsumer<String> consumer);
+
+ /**
+ * Remove the consumer of the new value of the label.
+ */
+ void removeNewLabelConsumer();
+
+ /**
+ * Refresh the label.
+ */
+ void refresh();
+
+}
diff --git a/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFLabelControllerImpl.java b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFLabelControllerImpl.java
new file mode 100644
index 000000000..2b88a4336
--- /dev/null
+++ b/plugins/org.eclipse.eef.core/src/org/eclipse/eef/core/internal/controllers/EEFLabelControllerImpl.java
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * 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.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.core.internal.controllers;
+
+import org.eclipse.eef.EEFLabelDescription;
+import org.eclipse.eef.core.api.controllers.EEFLabelController;
+import org.eclipse.eef.core.api.controllers.IConsumer;
+import org.eclipse.sirius.common.interpreter.api.IEvaluationResult;
+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 label.
+ *
+ * @author mbats
+ */
+public class EEFLabelControllerImpl implements EEFLabelController {
+ /**
+ * The description.
+ */
+ private EEFLabelDescription description;
+
+ /**
+ * The variable manager.
+ */
+ private IVariableManager variableManager;
+
+ /**
+ * The interpreter.
+ */
+ private IInterpreter interpreter;
+
+ /**
+ * The consumer of a new value of the label.
+ */
+ private IConsumer<String> newLabelConsumer;
+
+ /**
+ * The constructor.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ */
+ public EEFLabelControllerImpl(EEFLabelDescription description, IVariableManager variableManager, IInterpreter interpreter) {
+ this.description = description;
+ this.variableManager = variableManager;
+ this.interpreter = interpreter;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.core.api.controllers.EEFLabelController#refresh()
+ */
+ @Override
+ public void refresh() {
+ String labelExpression = this.description.getLabelExpression();
+ if (labelExpression != null) {
+ IEvaluationResult evaluationResult = this.interpreter.evaluateExpression(this.variableManager.getVariables(), labelExpression);
+ Object value = evaluationResult.getValue();
+ if (value instanceof String && this.newLabelConsumer != null) {
+ this.newLabelConsumer.apply((String) value);
+ }
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.core.api.controllers.EEFLabelController#onNewLabel(org.eclipse.eef.core.api.controllers.IConsumer)
+ */
+ @Override
+ public void onNewLabel(IConsumer<String> consumer) {
+ this.newLabelConsumer = consumer;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.core.api.controllers.EEFLabelController#removeNewLabelConsumer()
+ */
+ @Override
+ public void removeNewLabelConsumer() {
+ this.newLabelConsumer = null;
+ }
+
+}
diff --git a/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFLabelDescription.gif b/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFLabelDescription.gif
new file mode 100644
index 000000000..98b351f1c
--- /dev/null
+++ b/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFLabelDescription.gif
Binary files differ
diff --git a/plugins/org.eclipse.eef.edit/plugin.properties b/plugins/org.eclipse.eef.edit/plugin.properties
index e6b86476a..5d816a0e9 100644
--- a/plugins/org.eclipse.eef.edit/plugin.properties
+++ b/plugins/org.eclipse.eef.edit/plugin.properties
@@ -42,3 +42,4 @@ _UI_EEFWidgetDescription_labelExpression_feature = Label Expression
_UI_EEFTextDescription_valueExpression_feature = Value Expression
_UI_EEFTextDescription_editExpression_feature = Edit Expression
_UI_Unknown_feature = Unspecified
+_UI_EEFLabelDescription_type = EEF Label Description
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 189e6dee5..1aee3f28b 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
@@ -174,6 +174,9 @@ ITreeItemContentProvider, IItemLabelProvider, IItemPropertySource {
newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_CONTAINER_DESCRIPTION__WIDGETS,
EefFactory.eINSTANCE.createEEFTextDescription()));
+
+ newChildDescriptors.add(createChildParameter(EefPackage.Literals.EEF_CONTAINER_DESCRIPTION__WIDGETS,
+ EefFactory.eINSTANCE.createEEFLabelDescription()));
}
/**
diff --git a/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFLabelDescriptionItemProvider.java b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFLabelDescriptionItemProvider.java
new file mode 100644
index 000000000..76b5f93d0
--- /dev/null
+++ b/plugins/org.eclipse.eef.edit/src-gen/org/eclipse/eef/provider/EEFLabelDescriptionItemProvider.java
@@ -0,0 +1,105 @@
+/**
+ * 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.EEFLabelDescription;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.eef.EEFLabelDescription} object. <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ *
+ * @generated
+ */
+public class EEFLabelDescriptionItemProvider extends EEFWidgetDescriptionItemProvider {
+ /**
+ * This constructs an instance from a factory and a notifier. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ public EEFLabelDescriptionItemProvider(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);
+
+ }
+ return itemPropertyDescriptors;
+ }
+
+ /**
+ * This returns EEFLabelDescription.gif. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Object getImage(Object object) {
+ return overlayImage(object, getResourceLocator().getImage("full/obj16/EEFLabelDescription")); //$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 = ((EEFLabelDescription) object).getIdentifier();
+ return label == null || label.length() == 0 ? getString("_UI_EEFLabelDescription_type") : //$NON-NLS-1$
+ getString("_UI_EEFLabelDescription_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);
+ 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 2a9fa696c..4b4494eaf 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
@@ -189,6 +189,29 @@ public class EefItemProviderAdapterFactory extends EefAdapterFactory implements
}
/**
+ * This keeps track of the one adapter used for all {@link org.eclipse.eef.EEFLabelDescription} instances. <!--
+ * begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EEFLabelDescriptionItemProvider eefLabelDescriptionItemProvider;
+
+ /**
+ * This creates an adapter for a {@link org.eclipse.eef.EEFLabelDescription}. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ public Adapter createEEFLabelDescriptionAdapter() {
+ if (eefLabelDescriptionItemProvider == null) {
+ eefLabelDescriptionItemProvider = new EEFLabelDescriptionItemProvider(this);
+ }
+
+ return eefLabelDescriptionItemProvider;
+ }
+
+ /**
* This returns the root adapter factory that contains this factory. <!-- begin-user-doc --> <!-- end-user-doc -->
*
* @generated
@@ -303,6 +326,9 @@ public class EefItemProviderAdapterFactory extends EefAdapterFactory implements
if (eefTextDescriptionItemProvider != null) {
eefTextDescriptionItemProvider.dispose();
}
+ if (eefLabelDescriptionItemProvider != null) {
+ eefLabelDescriptionItemProvider.dispose();
+ }
}
}
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 59b3ee806..b95edde89 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
@@ -14,6 +14,7 @@ import java.util.ArrayList;
import java.util.List;
import org.eclipse.eef.EEFContainerDescription;
+import org.eclipse.eef.EEFLabelDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFWidgetDescription;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
@@ -92,6 +93,14 @@ public class EEFContainerLifecycleManager implements ILifecycleManager {
eefTextLifecycleManager.createControl(parent, tabbedPropertySheetPage);
this.lifecycleManagers.add(eefTextLifecycleManager);
+ } else if (eefWidgetDescription instanceof EEFLabelDescription) {
+ EEFLabelDescription eefLabelDescription = (EEFLabelDescription) eefWidgetDescription;
+
+ EEFLabelLifecycleManager eefLabelLifecycleManager = new EEFLabelLifecycleManager(eefLabelDescription, variableManager.createChild(),
+ interpreter);
+ eefLabelLifecycleManager.createControl(parent, tabbedPropertySheetPage);
+
+ this.lifecycleManagers.add(eefLabelLifecycleManager);
}
}
}
diff --git a/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFLabelLifecycleManager.java b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFLabelLifecycleManager.java
new file mode 100644
index 000000000..c1ce7abc2
--- /dev/null
+++ b/plugins/org.eclipse.eef.ide.ui/src/org/eclipse/eef/ide/ui/internal/widgets/EEFLabelLifecycleManager.java
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * 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.html
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.eef.ide.ui.internal.widgets;
+
+import org.eclipse.eef.EEFLabelDescription;
+import org.eclipse.eef.core.api.controllers.EEFControllersFactory;
+import org.eclipse.eef.core.api.controllers.EEFLabelController;
+import org.eclipse.eef.core.api.controllers.IConsumer;
+import org.eclipse.sirius.common.interpreter.api.IInterpreter;
+import org.eclipse.sirius.common.interpreter.api.IVariableManager;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
+import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;
+
+/**
+ * This class will be used in order to manage the lifecycle of a label.
+ *
+ * @author mbats
+ */
+public class EEFLabelLifecycleManager implements ILifecycleManager {
+ /**
+ * The description.
+ */
+ private EEFLabelDescription description;
+
+ /**
+ * The variable manager.
+ */
+ private IVariableManager variableManager;
+
+ /**
+ * The interpreter.
+ */
+ private IInterpreter interpreter;
+
+ /**
+ * The label.
+ */
+ private Label label;
+
+ /**
+ * The controller.
+ */
+ private EEFLabelController controller;
+
+ /**
+ * The constructor.
+ *
+ * @param description
+ * The description
+ * @param variableManager
+ * The variable manager
+ * @param interpreter
+ * The interpreter
+ */
+ public EEFLabelLifecycleManager(EEFLabelDescription description, IVariableManager variableManager, IInterpreter interpreter) {
+ this.description = description;
+ this.variableManager = variableManager;
+ this.interpreter = interpreter;
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.ILifecycleManager#createControl(org.eclipse.swt.widgets.Composite,
+ * org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage)
+ */
+ @Override
+ public void createControl(Composite parent, TabbedPropertySheetPage tabbedPropertySheetPage) {
+ TabbedPropertySheetWidgetFactory widgetFactory = tabbedPropertySheetPage.getWidgetFactory();
+
+ this.label = widgetFactory.createLabel(parent, ""); //$NON-NLS-1$
+ widgetFactory.paintBordersFor(parent);
+ GridData nameData = new GridData(GridData.FILL_HORIZONTAL);
+ this.label.setLayoutData(nameData);
+ this.controller = new EEFControllersFactory().createLabelController(this.description, this.variableManager, this.interpreter);
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.ILifecycleManager#aboutToBeShown()
+ */
+ @Override
+ public void aboutToBeShown() {
+ this.controller.onNewLabel(new IConsumer<String>() {
+ @Override
+ public void apply(String value) {
+ if (!label.isDisposed() && !(label.getText() != null && label.getText().equals(value))) {
+ label.setText(value);
+ }
+ }
+ });
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.ILifecycleManager#refresh()
+ */
+ @Override
+ public void refresh() {
+ this.controller.refresh();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.ILifecycleManager#aboutToBeHidden()
+ */
+ @Override
+ public void aboutToBeHidden() {
+ this.controller.removeNewLabelConsumer();
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * @see org.eclipse.eef.ide.ui.internal.widgets.ILifecycleManager#dispose()
+ */
+ @Override
+ public void dispose() {
+ // do nothing
+ }
+}
diff --git a/plugins/org.eclipse.eef/model/eef.ecore b/plugins/org.eclipse.eef/model/eef.ecore
index 327513c8d..e383cb3a4 100644
--- a/plugins/org.eclipse.eef/model/eef.ecore
+++ b/plugins/org.eclipse.eef/model/eef.ecore
@@ -117,4 +117,5 @@
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
+ <eClassifiers xsi:type="ecore:EClass" name="EEFLabelDescription" eSuperTypes="#//EEFWidgetDescription"/>
</ecore:EPackage>
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFLabelDescription.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFLabelDescription.java
new file mode 100644
index 000000000..517f014a3
--- /dev/null
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/EEFLabelDescription.java
@@ -0,0 +1,21 @@
+/**
+ * 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 Label Description</b></em>'. <!--
+ * end-user-doc -->
+ *
+ *
+ * @see org.eclipse.eef.EefPackage#getEEFLabelDescription()
+ * @model
+ * @generated
+ */
+public interface EEFLabelDescription extends EEFWidgetDescription {
+} // EEFLabelDescription
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 e9fad9797..708560b45 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
@@ -66,6 +66,14 @@ public interface EefFactory extends EFactory {
EEFTextDescription createEEFTextDescription();
/**
+ * Returns a new object of class '<em>EEF Label Description</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return a new object of class '<em>EEF Label Description</em>'.
+ * @generated
+ */
+ EEFLabelDescription createEEFLabelDescription();
+
+ /**
* 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 d40f714f5..00ca0cec3 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
@@ -351,6 +351,42 @@ public interface EefPackage extends EPackage {
int EEF_TEXT_DESCRIPTION_FEATURE_COUNT = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 2;
/**
+ * The meta object id for the '{@link org.eclipse.eef.impl.EEFLabelDescriptionImpl <em>EEF Label Description</em>}'
+ * class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.eef.impl.EEFLabelDescriptionImpl
+ * @see org.eclipse.eef.impl.EefPackageImpl#getEEFLabelDescription()
+ * @generated
+ */
+ int EEF_LABEL_DESCRIPTION = 6;
+
+ /**
+ * The feature id for the '<em><b>Identifier</b></em>' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_LABEL_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_LABEL_DESCRIPTION__LABEL_EXPRESSION = EefPackage.EEF_WIDGET_DESCRIPTION__LABEL_EXPRESSION;
+
+ /**
+ * The number of structural features of the '<em>EEF Label Description</em>' class. <!-- begin-user-doc --> <!--
+ * end-user-doc -->
+ *
+ * @generated
+ * @ordered
+ */
+ int EEF_LABEL_DESCRIPTION_FEATURE_COUNT = EefPackage.EEF_WIDGET_DESCRIPTION_FEATURE_COUNT + 0;
+
+ /**
* Returns the meta object for class '{@link org.eclipse.eef.EEFViewDescription <em>EEF View Description</em>}'.
* <!-- begin-user-doc --> <!-- end-user-doc -->
*
@@ -623,6 +659,16 @@ public interface EefPackage extends EPackage {
EAttribute getEEFTextDescription_EditExpression();
/**
+ * Returns the meta object for class '{@link org.eclipse.eef.EEFLabelDescription <em>EEF Label Description</em>}'.
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @return the meta object for class '<em>EEF Label Description</em>'.
+ * @see org.eclipse.eef.EEFLabelDescription
+ * @generated
+ */
+ EClass getEEFLabelDescription();
+
+ /**
* 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.
@@ -855,6 +901,16 @@ public interface EefPackage extends EPackage {
*/
EAttribute EEF_TEXT_DESCRIPTION__EDIT_EXPRESSION = EefPackage.eINSTANCE.getEEFTextDescription_EditExpression();
+ /**
+ * The meta object literal for the '{@link org.eclipse.eef.impl.EEFLabelDescriptionImpl
+ * <em>EEF Label Description</em>}' class. <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @see org.eclipse.eef.impl.EEFLabelDescriptionImpl
+ * @see org.eclipse.eef.impl.EefPackageImpl#getEEFLabelDescription()
+ * @generated
+ */
+ EClass EEF_LABEL_DESCRIPTION = EefPackage.eINSTANCE.getEEFLabelDescription();
+
}
} // EefPackage
diff --git a/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFLabelDescriptionImpl.java b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFLabelDescriptionImpl.java
new file mode 100644
index 000000000..a6e1a6302
--- /dev/null
+++ b/plugins/org.eclipse.eef/src-gen/org/eclipse/eef/impl/EEFLabelDescriptionImpl.java
@@ -0,0 +1,43 @@
+/**
+ * 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.EEFLabelDescription;
+import org.eclipse.eef.EefPackage;
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc --> An implementation of the model object '<em><b>EEF Label Description</b></em>'. <!--
+ * end-user-doc -->
+ * <p>
+ * </p>
+ *
+ * @generated
+ */
+public class EEFLabelDescriptionImpl extends EEFWidgetDescriptionImpl implements EEFLabelDescription {
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ protected EEFLabelDescriptionImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return EefPackage.Literals.EEF_LABEL_DESCRIPTION;
+ }
+
+} // EEFLabelDescriptionImpl
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 39e6e6b51..0c5ea6ccf 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
@@ -10,6 +10,7 @@ package org.eclipse.eef.impl;
import org.eclipse.eef.EEFContainerDescription;
import org.eclipse.eef.EEFGroupDescription;
+import org.eclipse.eef.EEFLabelDescription;
import org.eclipse.eef.EEFPageDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFViewDescription;
@@ -71,6 +72,8 @@ public class EefFactoryImpl extends EFactoryImpl implements EefFactory {
return createEEFContainerDescription();
case EefPackage.EEF_TEXT_DESCRIPTION:
return createEEFTextDescription();
+ case EefPackage.EEF_LABEL_DESCRIPTION:
+ return createEEFLabelDescription();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
@@ -137,6 +140,17 @@ public class EefFactoryImpl extends EFactoryImpl implements EefFactory {
* @generated
*/
@Override
+ public EEFLabelDescription createEEFLabelDescription() {
+ EEFLabelDescriptionImpl eefLabelDescription = new EEFLabelDescriptionImpl();
+ return eefLabelDescription;
+ }
+
+ /**
+ * <!-- 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 94e9c991c..b3153abc8 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
@@ -10,6 +10,7 @@ package org.eclipse.eef.impl;
import org.eclipse.eef.EEFContainerDescription;
import org.eclipse.eef.EEFGroupDescription;
+import org.eclipse.eef.EEFLabelDescription;
import org.eclipse.eef.EEFPageDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFViewDescription;
@@ -72,6 +73,13 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
private EClass eefTextDescriptionEClass = null;
/**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ private EClass eefLabelDescriptionEClass = 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>
@@ -392,6 +400,16 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
* @generated
*/
@Override
+ public EClass getEEFLabelDescription() {
+ return eefLabelDescriptionEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc --> <!-- end-user-doc -->
+ *
+ * @generated
+ */
+ @Override
public EefFactory getEefFactory() {
return (EefFactory) getEFactoryInstance();
}
@@ -446,6 +464,8 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
eefTextDescriptionEClass = createEClass(EefPackage.EEF_TEXT_DESCRIPTION);
createEAttribute(eefTextDescriptionEClass, EefPackage.EEF_TEXT_DESCRIPTION__VALUE_EXPRESSION);
createEAttribute(eefTextDescriptionEClass, EefPackage.EEF_TEXT_DESCRIPTION__EDIT_EXPRESSION);
+
+ eefLabelDescriptionEClass = createEClass(EefPackage.EEF_LABEL_DESCRIPTION);
}
/**
@@ -481,6 +501,7 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
// Add supertypes to classes
eefTextDescriptionEClass.getESuperTypes().add(this.getEEFWidgetDescription());
+ eefLabelDescriptionEClass.getESuperTypes().add(this.getEEFWidgetDescription());
// Initialize classes and features; add operations and parameters
initEClass(eefViewDescriptionEClass, EEFViewDescription.class,
@@ -583,6 +604,9 @@ public class EefPackageImpl extends EPackageImpl implements EefPackage {
theEcorePackage.getEString(),
"editExpression", null, 0, 1, EEFTextDescription.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(eefLabelDescriptionEClass, EEFLabelDescription.class,
+ "EEFLabelDescription", !EPackageImpl.IS_ABSTRACT, !EPackageImpl.IS_INTERFACE, EPackageImpl.IS_GENERATED_INSTANCE_CLASS); //$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 3c9eb1ed0..8e75affb3 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
@@ -10,6 +10,7 @@ package org.eclipse.eef.util;
import org.eclipse.eef.EEFContainerDescription;
import org.eclipse.eef.EEFGroupDescription;
+import org.eclipse.eef.EEFLabelDescription;
import org.eclipse.eef.EEFPageDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFViewDescription;
@@ -102,6 +103,11 @@ public class EefAdapterFactory extends AdapterFactoryImpl {
}
@Override
+ public Adapter caseEEFLabelDescription(EEFLabelDescription object) {
+ return createEEFLabelDescriptionAdapter();
+ }
+
+ @Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
}
@@ -205,6 +211,20 @@ public class EefAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.eef.EEFLabelDescription
+ * <em>EEF Label 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.EEFLabelDescription
+ * @generated
+ */
+ public Adapter createEEFLabelDescriptionAdapter() {
+ 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 8607f222a..2f673f5f1 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
@@ -10,6 +10,7 @@ package org.eclipse.eef.util;
import org.eclipse.eef.EEFContainerDescription;
import org.eclipse.eef.EEFGroupDescription;
+import org.eclipse.eef.EEFLabelDescription;
import org.eclipse.eef.EEFPageDescription;
import org.eclipse.eef.EEFTextDescription;
import org.eclipse.eef.EEFViewDescription;
@@ -120,6 +121,17 @@ public class EefSwitch<T> extends Switch<T> {
}
return result;
}
+ case EefPackage.EEF_LABEL_DESCRIPTION: {
+ EEFLabelDescription eefLabelDescription = (EEFLabelDescription) theEObject;
+ T result = caseEEFLabelDescription(eefLabelDescription);
+ if (result == null) {
+ result = caseEEFWidgetDescription(eefLabelDescription);
+ }
+ if (result == null) {
+ result = defaultCase(theEObject);
+ }
+ return result;
+ }
default:
return defaultCase(theEObject);
}
@@ -216,6 +228,21 @@ public class EefSwitch<T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>EEF Label 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 Label Description</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEEFLabelDescription(EEFLabelDescription 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