Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcletavernie2011-11-09 16:03:00 +0000
committercletavernie2011-11-09 16:03:00 +0000
commitbe2557ad19fcc35afd6af6932cd0dece13d29c4b (patch)
tree47ea9f3670a71bb2af3b2edd3f93bcd417db2458 /plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement
parent7386d7af54782ebc5ce195f3210fd3d80d0c1add (diff)
downloadorg.eclipse.papyrus-be2557ad19fcc35afd6af6932cd0dece13d29c4b.tar.gz
org.eclipse.papyrus-be2557ad19fcc35afd6af6932cd0dece13d29c4b.tar.xz
org.eclipse.papyrus-be2557ad19fcc35afd6af6932cd0dece13d29c4b.zip
362162: [Architecture - Refactoring] The plug-ins should be renamed to match their layer's qualified name
https://bugs.eclipse.org/bugs/show_bug.cgi?id=362162
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement')
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java90
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GradientDataModelElement.java117
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/NotationModelElementFactory.java60
3 files changed, 267 insertions, 0 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java
new file mode 100644
index 00000000000..2ecfa0dc03e
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GMFModelElement.java
@@ -0,0 +1,90 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.properties.modelelement;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.core.databinding.observable.list.IObservableList;
+import org.eclipse.core.databinding.observable.value.IObservableValue;
+import org.eclipse.emf.databinding.EMFProperties;
+import org.eclipse.emf.databinding.FeaturePath;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.papyrus.infra.gmfdiag.properties.databinding.GradientObservableValue;
+import org.eclipse.papyrus.infra.gmfdiag.properties.providers.GMFLabelProvider;
+import org.eclipse.papyrus.uml.properties.databinding.PapyrusObservableList;
+import org.eclipse.papyrus.uml.properties.databinding.PapyrusObservableValue;
+import org.eclipse.papyrus.views.properties.modelelement.EMFModelElement;
+
+/**
+ * A ModelElement to represent an element of the GMF Notation metamodel
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class GMFModelElement extends EMFModelElement {
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param source
+ * The source element (from the Notation metamodel)
+ */
+ public GMFModelElement(EObject source) {
+ super(source);
+ }
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param source
+ * The source element (from the Notation metamodel)
+ * @param domain
+ * The editing domain on which the commands will be executed.
+ * May be null
+ */
+ public GMFModelElement(EObject source, EditingDomain domain) {
+ super(source, domain);
+ }
+
+ @Override
+ public IObservable doGetObservable(String propertyPath) {
+ FeaturePath featurePath = getFeaturePath(propertyPath);
+ EStructuralFeature feature = getFeature(propertyPath);
+
+ if(feature == null) {
+ return null;
+ }
+
+ if(feature.getEType() == NotationPackage.eINSTANCE.getGradientData()) {
+ return new GradientObservableValue(source, feature, domain);
+ }
+
+ if(feature.getUpperBound() != 1) {
+ IObservableList list = domain == null ? EMFProperties.list(featurePath).observe(source) : new PapyrusObservableList(EMFProperties.list(featurePath).observe(source), domain, getSource(featurePath), feature);
+ return list;
+ }
+
+ IObservableValue value = domain == null ? EMFProperties.value(featurePath).observe(source) : new PapyrusObservableValue(getSource(featurePath), feature, domain);
+ return value;
+ }
+
+ @Override
+ public ILabelProvider getLabelProvider(String propertyPath) {
+ return new GMFLabelProvider();
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GradientDataModelElement.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GradientDataModelElement.java
new file mode 100644
index 00000000000..c68abb5158f
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/GradientDataModelElement.java
@@ -0,0 +1,117 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.properties.modelelement;
+
+import org.eclipse.core.databinding.observable.IObservable;
+import org.eclipse.gmf.runtime.notation.datatype.GradientData;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.LabelProvider;
+import org.eclipse.papyrus.infra.gmfdiag.properties.Activator;
+import org.eclipse.papyrus.infra.gmfdiag.properties.databinding.GradientDataObservableValue;
+import org.eclipse.papyrus.infra.gmfdiag.properties.databinding.GradientDataObservableValue.GradientProperty;
+import org.eclipse.papyrus.infra.gmfdiag.properties.messages.Messages;
+import org.eclipse.papyrus.infra.widgets.providers.AbstractStaticContentProvider;
+import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
+import org.eclipse.papyrus.views.properties.modelelement.AbstractModelElement;
+
+/**
+ * A ModelElement for manipulating GradientData
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class GradientDataModelElement extends AbstractModelElement {
+
+ /**
+ * The source GradientData
+ */
+ protected GradientData sourceElement;
+
+ /**
+ *
+ * Constructor.
+ *
+ * @param sourceElement
+ * the soruce GradientData
+ */
+ public GradientDataModelElement(GradientData sourceElement) {
+ this.sourceElement = sourceElement;
+ }
+
+ @Override
+ public IObservable doGetObservable(String propertyPath) {
+ return new GradientDataObservableValue(sourceElement, propertyPath);
+ }
+
+ @Override
+ public boolean isMandatory(String propertyPath) {
+ return true;
+ }
+
+ @Override
+ public IStaticContentProvider getContentProvider(String propertyPath) {
+ if(propertyPath.equals("gradientStyle")) { //$NON-NLS-1$
+ return new AbstractStaticContentProvider() {
+
+ public Object[] getElements() {
+ return new Integer[]{ 0, 1 };
+ }
+
+ };
+ }
+
+ return null;
+ }
+
+ @Override
+ public ILabelProvider getLabelProvider(String propertyPath) {
+ if(propertyPath.equals("gradientStyle")) { //$NON-NLS-1$
+ return new LabelProvider() {
+
+ @Override
+ public String getText(Object element) {
+ if(element instanceof Integer) {
+ int value = (Integer)element;
+ if(value == 0) {
+ return Messages.GradientDataModelElement_Vertical;
+ } else {
+ return Messages.GradientDataModelElement_Horizontal;
+ }
+ }
+
+ return null;
+ }
+ };
+ }
+
+ return null;
+ }
+
+ @Override
+ public Object getDefaultValue(String propertyPath) {
+ GradientProperty property = GradientProperty.valueOf(propertyPath);
+ switch(property) {
+ case activate:
+ return false;
+ case gradientColor1:
+ return GradientData.getDefaultGradientData().getGradientColor1();
+ case gradientColor2:
+ return GradientData.getDefaultGradientData().getGradientColor2();
+ case gradientStyle:
+ return GradientData.getDefaultGradientData().getGradientStyle();
+ default:
+ Activator.log.warn("Cannot find a default value for property : " + propertyPath); //$NON-NLS-1$
+ return null;
+ }
+ }
+
+}
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/NotationModelElementFactory.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/NotationModelElementFactory.java
new file mode 100644
index 00000000000..9d54fd9a7fc
--- /dev/null
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.properties/src/org/eclipse/papyrus/infra/gmfdiag/properties/modelelement/NotationModelElementFactory.java
@@ -0,0 +1,60 @@
+/*****************************************************************************
+ * Copyright (c) 2011 CEA LIST.
+ *
+ * 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:
+ * Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.properties.modelelement;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.gef.EditPart;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.gmf.runtime.notation.datatype.GradientData;
+import org.eclipse.papyrus.views.properties.contexts.DataContextElement;
+import org.eclipse.papyrus.views.properties.modelelement.ModelElement;
+import org.eclipse.papyrus.views.properties.modelelement.ModelElementFactory;
+import org.eclipse.papyrus.views.properties.util.EMFHelper;
+
+/**
+ * A factory for handling the GMF Notation elements
+ *
+ * @author Camille Letavernier
+ */
+public class NotationModelElementFactory implements ModelElementFactory {
+
+ public ModelElement createFromSource(Object sourceElement, DataContextElement context) {
+
+ View view = null;
+
+ if(sourceElement instanceof EditPart) {
+ EditPart part = (EditPart)sourceElement;
+ Object model = part.getModel();
+
+ if(model instanceof View) {
+ view = (View)model;
+ }
+ } else if(sourceElement instanceof GradientData) {
+ return new GradientDataModelElement((GradientData)sourceElement);
+ } else {
+ EObject eObject = EMFHelper.getEObject(sourceElement);
+ if(eObject instanceof View) {
+ view = (View)eObject;
+ }
+ }
+
+ if(view != null) {
+ EditingDomain domain = AdapterFactoryEditingDomain.getEditingDomainFor(view);
+ return new GMFModelElement(view, domain);
+ }
+
+ return null;
+ }
+
+}

Back to the top