Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradaussy2011-09-21 07:39:04 +0000
committeradaussy2011-09-21 07:39:04 +0000
commit626f1162e5471e5c3c43c7b3b14c746d01543956 (patch)
tree4ecea74aa16b098952829fd552d801c12e0ac99a /plugins/developer
parent4dba556ce5c38db5571d3b9ea41a34f8abc83b7c (diff)
downloadorg.eclipse.papyrus-626f1162e5471e5c3c43c7b3b14c746d01543956.tar.gz
org.eclipse.papyrus-626f1162e5471e5c3c43c7b3b14c746d01543956.tar.xz
org.eclipse.papyrus-626f1162e5471e5c3c43c7b3b14c746d01543956.zip
NEW - bug 352555: [SysML Static Profile] Improvement of the AdapterFactories (used to get SysML ItemProviders) in oep.sysml.edit
https://bugs.eclipse.org/bugs/show_bug.cgi?id=352555 Now the ItemProviderAdapter with be able to get back the correct Property descriptor for a UML element stereotypes with a SysML profile. Example : -> A ViewPoint will return the property descriptors of a class and of a ViewPoint (language, concerns etc..)
Diffstat (limited to 'plugins/developer')
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/Messages.java4
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/SysMLOverUmlGenModelGenerator.java4
-rw-r--r--plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/templates/edit/ItemProvider.javajet62
3 files changed, 68 insertions, 2 deletions
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/Messages.java b/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/Messages.java
index 84e93646ae0..70921f44d2d 100644
--- a/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/Messages.java
+++ b/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/Messages.java
@@ -13,10 +13,12 @@
package org.eclipse.papyrus.sysml.sysmloveruml.codegen.core;
import org.eclipse.osgi.util.NLS;
+
/**
* Externalize messages.
+ *
* @author "Arthur Daussy <a href="mailto:arthur.daussy@atos.net">arthur.daussy@atos.net</a>"
- *
+ *
*/
public class Messages extends NLS {
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/SysMLOverUmlGenModelGenerator.java b/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/SysMLOverUmlGenModelGenerator.java
index c13bcf6417d..2b4d4c89d31 100644
--- a/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/SysMLOverUmlGenModelGenerator.java
+++ b/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/src/org/eclipse/papyrus/sysml/sysmloveruml/codegen/core/SysMLOverUmlGenModelGenerator.java
@@ -18,10 +18,12 @@ import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.Monitor;
import org.eclipse.papyrus.sysml.sysmloveruml.codegen.generationUtils.SysMLOverUMLHelper;
+
/**
* Generator for model elements.
+ *
* @author "Arthur Daussy <a href="mailto:arthur.daussy@atos.net">arthur.daussy@atos.net</a>"
- *
+ *
*/
public class SysMLOverUmlGenModelGenerator extends AbstractGeneratorAdaptor<GenModel> {
diff --git a/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/templates/edit/ItemProvider.javajet b/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/templates/edit/ItemProvider.javajet
index 275026502b5..d5a729290fc 100644
--- a/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/templates/edit/ItemProvider.javajet
+++ b/plugins/developer/org.eclipse.papyrus.sysml.sysmloveruml.codegen/templates/edit/ItemProvider.javajet
@@ -126,6 +126,7 @@ public class <%=genClass.getProviderClassName()%>
<%}%>
public <%=_List%> getPropertyDescriptors(Object object)
{
+ if(object instanceof <%=genClass.getName()%>) {
if (itemPropertyDescriptors == null)
{
super.getPropertyDescriptors(object);
@@ -134,6 +135,7 @@ public class <%=genClass.getProviderClassName()%>
add<%=genFeature.getCapName()%>PropertyDescriptor(object);
<%}%>
}
+ }
<%for(EClass basedClass : SysMLOverUMLHelper.getBasedElement(genClass.getEcoreClass())) {%>
@@ -141,11 +143,21 @@ public class <%=genClass.getProviderClassName()%>
* Handle <%=basedClass.getName()%> stereotyped by <%=genClass.getName()%>
*/
if ( object instanceof <%=SysMLOverUMLHelper.getUMLInterfaceName(basedClass)%> ){
+ <%=SysMLOverUMLHelper.getUMLInterfaceName(basedClass)%> element = (<%=SysMLOverUMLHelper.getUMLInterfaceName(basedClass)%>)object;
if ( <%=nameListDescriptorStore.get(basedClass)%> == null){
ItemProviderAdapter ite = ((IComposableAdapterFactory)adapterFactory).getIRootAdapterFactory().getItemProvider(UMLPackage.Literals.<%=SysMLOverUMLHelper.getClassifierCorrectLabel(basedClass)%>);
final List<IItemPropertyDescriptor> propertyDescriptors = ite.getPropertyDescriptors(this);
<%=nameListDescriptorStore.get(basedClass)%> = new ArrayList<IItemPropertyDescriptor>();
<%=nameListDescriptorStore.get(basedClass)%>.addAll(propertyDescriptors);
+ Stereotype ste = (element).getAppliedStereotype(SysmlResource.<%=SysMLOverUMLHelper.getClassifierCorrectLabel(genClass.getEcoreClass())%>_ID);
+ if(ste != null) {
+ EObject steApplication = (element).getStereotypeApplication(ste);
+ <%for (GenFeature genFeature : genClass.getPropertyFeatures()) { %>
+ <%for(EClass basedClass2 : SysMLOverUMLHelper.getBasedElement(genClass.getEcoreClass())) {%>
+ add<%=genFeature.getCapName()%>PropertyDescriptorFor<%=basedClass2.getName()%>(steApplication);
+ <%}%>
+ <%}%>
+ }
}
return <%=nameListDescriptorStore.get(basedClass)%>;
@@ -202,6 +214,56 @@ public class <%=genClass.getProviderClassName()%>
<%}%>
<%@ end %><%//ItemProvider/addPropertyDescriptor.override.javajetinc%>
}
+
+ <%for(EClass basedClass : SysMLOverUMLHelper.getBasedElement(genClass.getEcoreClass())) {%>
+ /**
+ * This adds a property descriptor for the <%=genFeature.getFormattedName()%> feature for the UML element <%=basedClass.getName()%>.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected void add<%=genFeature.getCapName()%>PropertyDescriptorFor<%=basedClass.getName()%>(Object object)
+ {<%@ include file="ItemProvider/addPropertyDescriptor.override.javajetinc" fail="alternative" %>
+ <%@ start %>
+ <%=nameListDescriptorStore.get(basedClass)%>.add
+ ( new ItemPropertyDescriptorDecorator(object, createItemPropertyDescriptor
+ (((<%=genModel.getImportedName("org.eclipse.emf.edit.provider.ComposeableAdapterFactory")%>)adapterFactory).getRootAdapterFactory(),
+ getResourceLocator(),
+ getString("_UI_<%=genFeature.getGenClass().getName()%>_<%=genFeature.getName()%>_feature"),<%=genModel.getNonNLS()%>
+ <%if (genFeature.getPropertyDescription() == null || genFeature.getPropertyDescription().length() == 0) {%>
+ getString("_UI_PropertyDescriptor_description", "_UI_<%=genFeature.getGenClass().getName()%>_<%=genFeature.getName()%>_feature", "_UI_<%=genFeature.getGenClass().getName()%>_type"),<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%><%=genModel.getNonNLS(3)%>
+ <%} else {%>
+ getString("_UI_<%=genFeature.getGenClass().getName()%>_<%=genFeature.getName()%>_description"),<%=genModel.getNonNLS()%>
+ <%}%>
+ <%=genFeature.getQualifiedFeatureAccessor()%>,
+ <%=genFeature.getProperty() == GenPropertyKind.EDITABLE_LITERAL ? "true" : "false"%>,
+ <%=genFeature.isPropertyMultiLine() ? "true" : "false"%>,
+ <%=genFeature.isPropertySortChoices() ? "true" : "false"%>,
+ <%if (genFeature.isReferenceType()) {%>
+ null,
+ <%} else {%>
+ <%=genModel.getImportedName("org.eclipse.emf.edit.provider.ItemPropertyDescriptor")%>.<%=genFeature.getPropertyImageName()%>,
+ <%}%>
+ <%if (genFeature.getPropertyCategory() == null || genFeature.getPropertyCategory().length() == 0) {%>
+ null,
+ <%} else {%>
+ getString("<%=genModel.getPropertyCategoryKey(genFeature.getPropertyCategory())%>"),<%=genModel.getNonNLS()%>
+ <%}%>
+ <%if (genFeature.getPropertyFilterFlags().isEmpty()) {%>
+ null)));
+ <%} else {%>
+ new String[] {
+ <%for (Iterator<String> j = genFeature.getPropertyFilterFlags().iterator(); j.hasNext();) { String filterFlag = j.next();%>
+ <%if (filterFlag != null && filterFlag.length() > 0) {%>
+ "<%=filterFlag%>"<%if (j.hasNext()) {%>,<%}%><%=genModel.getNonNLS()%>
+ <%}%>
+ <%}%>
+ })));
+ <%}%>
+<%@ end %><%//ItemProvider/addPropertyDescriptor.override.javajetinc%>
+ }
+ <%}%>
+
<%}%>
<%if (!genClass.getChildrenFeatures().isEmpty()) {%>

Back to the top