diff options
author | Mélanie Bats | 2016-01-21 14:46:59 +0000 |
---|---|---|
committer | Mélanie Bats | 2016-01-21 14:54:45 +0000 |
commit | ccc0132755ea6d00178e192c97f03b83045065ad (patch) | |
tree | 6b0ea74c0790c9b698971b5891685d0dbdc6186e /plugins | |
parent | 36387291432b92d8a7255be3927864d73a8d20e8 (diff) | |
download | org.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')
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 Binary files differnew file mode 100644 index 000000000..98b351f1c --- /dev/null +++ b/plugins/org.eclipse.eef.edit/icons/full/obj16/EEFLabelDescription.gif 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 --> |