Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Brodt2015-08-17 20:08:42 +0000
committerBob Brodt2015-08-17 20:08:42 +0000
commit6f8a1fb6ffc50763ff4383c1c2170c91b36f5416 (patch)
tree04c7145743e24b350230b20bb8f0759bbf4a60b6
parent358d43674e87d5d4b3c973fd1a9a49be3018a344 (diff)
downloadorg.eclipse.bpmn2-modeler-6f8a1fb6ffc50763ff4383c1c2170c91b36f5416.tar.gz
org.eclipse.bpmn2-modeler-6f8a1fb6ffc50763ff4383c1c2170c91b36f5416.tar.xz
org.eclipse.bpmn2-modeler-6f8a1fb6ffc50763ff4383c1c2170c91b36f5416.zip
merge changes from gerrit review into master
-rw-r--r--examples/plugins/org.eclipse.bpmn2.modeler.examples.customtask/src/org/eclipse/bpmn2/modeler/examples/customtask/MyTaskDetailComposite.java2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ExtendedPropertiesAdapter.java23
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/FeatureDescriptor.java2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerFactory.java2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelDecorator.java19
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelHandler.java3
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmActivityDetailComposite.java2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/util/JbpmModelUtil.java4
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java5
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/lane/CreateLaneFeature.java2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/participant/CreateParticipantFeature.java2
-rw-r--r--plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/ExtensionValueListComposite.java2
13 files changed, 55 insertions, 15 deletions
diff --git a/examples/plugins/org.eclipse.bpmn2.modeler.examples.customtask/src/org/eclipse/bpmn2/modeler/examples/customtask/MyTaskDetailComposite.java b/examples/plugins/org.eclipse.bpmn2.modeler.examples.customtask/src/org/eclipse/bpmn2/modeler/examples/customtask/MyTaskDetailComposite.java
index bd8de91c..7c4dc2ea 100644
--- a/examples/plugins/org.eclipse.bpmn2.modeler.examples.customtask/src/org/eclipse/bpmn2/modeler/examples/customtask/MyTaskDetailComposite.java
+++ b/examples/plugins/org.eclipse.bpmn2.modeler.examples.customtask/src/org/eclipse/bpmn2/modeler/examples/customtask/MyTaskDetailComposite.java
@@ -61,7 +61,7 @@ public class MyTaskDetailComposite extends DefaultDetailComposite {
// Add the newly constructed TaskConfig object to the Task's Extension Values list.
// Note that we will delay the actual insertion of the new object until some feature
// of the object changes (e.g. the Parameter.name)
- ModelDecorator.addExtensionAttributeValue(myTask, feature, taskConfig, true);
+ ModelDecorator.addExtensionAttributeValue(myTask.eResource(), myTask, feature, taskConfig, true);
}
else {
// Else reuse the existing TaskConfig object.
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ExtendedPropertiesAdapter.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ExtendedPropertiesAdapter.java
index 3a3c2478..93f8e4f3 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ExtendedPropertiesAdapter.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/ExtendedPropertiesAdapter.java
@@ -144,6 +144,23 @@ public class ExtendedPropertiesAdapter<T extends EObject> extends ObjectProperty
public static ExtendedPropertiesAdapter adapt(Object object) {
return adapt(object,null);
}
+
+ public static ExtendedPropertiesAdapter adapt(Resource resource, EClass eclass) {
+ if (resource!=null) {
+ ObjectPropertyProvider factoryAdapter = ObjectPropertyProvider.getAdapter(eclass.getEPackage().getEFactoryInstance());
+ if (factoryAdapter==null) {
+ ObjectPropertyProvider.adapt(eclass, resource);
+ }
+ else {
+ factoryAdapter.setResource(resource);
+ }
+ }
+ ExtendedPropertiesAdapter adapter = (ExtendedPropertiesAdapter) AdapterUtil.adapt(eclass, ExtendedPropertiesAdapter.class);
+ if (adapter==null) {
+ adapter = new ExtendedPropertiesAdapter(new AdapterFactoryImpl(), eclass);
+ }
+ return adapter;
+ }
/**
* Convenience method for creating and adapting a feature of a model object
@@ -220,9 +237,15 @@ public class ExtendedPropertiesAdapter<T extends EObject> extends ObjectProperty
public static EObject getDummyObject(EClass eclass) {
EObject object = dummyObjects.get(eclass);
if (object==null && eclass.eContainer() instanceof EPackage && !eclass.isAbstract()) {
+ Resource resource = null;
+ ObjectPropertyProvider factoryAdapter = ObjectPropertyProvider.getAdapter(eclass.getEPackage().getEFactoryInstance());
+ if (factoryAdapter!=null)
+ resource = factoryAdapter.getResource();
EPackage pkg = (EPackage)eclass.eContainer();
object = pkg.getEFactoryInstance().create(eclass);
dummyObjects.put(eclass, object);
+ if (factoryAdapter!=null && resource!=null)
+ factoryAdapter.setResource(resource);
}
return object;
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/FeatureDescriptor.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/FeatureDescriptor.java
index 9b673096..98c0bb80 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/FeatureDescriptor.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/adapters/FeatureDescriptor.java
@@ -589,7 +589,7 @@ public class FeatureDescriptor<T extends EObject> extends ObjectDescriptor<T> {
// FIXME: access to ExtensionAttributeValues MUST go through the ModelExtensionDescriptor's
// modelDecorator so that we can properly find, and optionally create and initialize
// the EPackage that contains the extensions
- ModelDecorator.addExtensionAttributeValue(object, feature, value, index, false);
+ ModelDecorator.addExtensionAttributeValue(getResource(), object, feature, value, index, false);
}
}
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java
index ebff5df9..fb893c93 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/features/AbstractBpmn2CreateFeature.java
@@ -136,7 +136,7 @@ public abstract class AbstractBpmn2CreateFeature<T extends BaseElement>
public T createBusinessObject(ICreateContext context) {
Resource resource = getResource(context);
EClass eclass = getBusinessObjectClass();
- ExtendedPropertiesAdapter adapter = ExtendedPropertiesAdapter.adapt(eclass);
+ ExtendedPropertiesAdapter adapter = ExtendedPropertiesAdapter.adapt(resource, eclass);
String id = (String)context.getProperty(GraphitiConstants.CUSTOM_ELEMENT_ID);
if (id!=null) {
adapter.setProperty(GraphitiConstants.CUSTOM_ELEMENT_ID, id);
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerFactory.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerFactory.java
index de989d48..90145cc4 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerFactory.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/Bpmn2ModelerFactory.java
@@ -221,7 +221,7 @@ public class Bpmn2ModelerFactory extends Bpmn2FactoryImpl {
ObjectPropertyProvider.adapt(eClass.getEPackage().getEFactoryInstance(), resource);
EObject newObject = null;
- ExtendedPropertiesAdapter adapter = ExtendedPropertiesAdapter.adapt(eClass);
+ ExtendedPropertiesAdapter adapter = ExtendedPropertiesAdapter.adapt(resource, eClass);
if (adapter!=null) {
newObject = adapter.getObjectDescriptor().createObject(resource, eClass);
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelDecorator.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelDecorator.java
index 8191e65f..6b546af3 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelDecorator.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelDecorator.java
@@ -58,6 +58,7 @@ import org.eclipse.emf.ecore.EcoreFactory;
import org.eclipse.emf.ecore.EcorePackage;
import org.eclipse.emf.ecore.impl.EAttributeImpl;
import org.eclipse.emf.ecore.impl.EEnumLiteralImpl;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.BasicFeatureMap;
@@ -1172,8 +1173,13 @@ public class ModelDecorator {
* @param feature - name of the new extension element.
* @param value - value assigned to the new element.
*/
+ public static void addExtensionAttributeValue(Resource resource, EObject object, EStructuralFeature feature, Object value) {
+ addExtensionAttributeValue(resource, object, feature, value, -1, false);
+ }
+
+ @Deprecated
public static void addExtensionAttributeValue(EObject object, EStructuralFeature feature, Object value) {
- addExtensionAttributeValue(object, feature, value, -1, false);
+ addExtensionAttributeValue(object.eResource(), object, feature, value, -1, false);
}
/**
@@ -1184,8 +1190,13 @@ public class ModelDecorator {
* @param value - value assigned to the new element.
* @param delay - if true, use an InsertionAdapter to set the feature value, otherwise set it immediately.
*/
+ public static void addExtensionAttributeValue(Resource resource, EObject object, EStructuralFeature feature, Object value, boolean delay) {
+ addExtensionAttributeValue(resource, object, feature, value, -1, delay);
+ }
+
+ @Deprecated
public static void addExtensionAttributeValue(EObject object, EStructuralFeature feature, Object value, boolean delay) {
- addExtensionAttributeValue(object, feature, value, -1, delay);
+ addExtensionAttributeValue(object.eResource(), object, feature, value, -1, delay);
}
/**
@@ -1198,7 +1209,7 @@ public class ModelDecorator {
* @param delay - if true, use an InsertionAdapter to set the feature value, otherwise set it immediately.
*/
@SuppressWarnings("unchecked")
- public static void addExtensionAttributeValue(EObject object, EStructuralFeature feature, Object value, int index, boolean delay) {
+ public static void addExtensionAttributeValue(Resource resource, EObject object, EStructuralFeature feature, Object value, int index, boolean delay) {
if (object instanceof ExtensionAttributeValue)
object = object.eContainer();
EStructuralFeature evf = object.eClass().getEStructuralFeature("extensionValues"); //$NON-NLS-1$
@@ -1209,7 +1220,7 @@ public class ModelDecorator {
EList<EObject> list = (EList<EObject>)object.eGet(evf);
if (list.size()==0) {
- ExtensionAttributeValue newItem = Bpmn2ModelerFactory.create(object.eResource(), ExtensionAttributeValue.class);
+ ExtensionAttributeValue newItem = Bpmn2ModelerFactory.create(resource, ExtensionAttributeValue.class);
ModelUtil.setID(newItem);
FeatureMap map = newItem.getValue();
map.add(feature, value);
diff --git a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelHandler.java b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelHandler.java
index e59970c7..37935002 100644
--- a/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelHandler.java
+++ b/plugins/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/model/ModelHandler.java
@@ -800,6 +800,9 @@ public class ModelHandler {
try {
Process process = create(Process.class);
bpmnDiagram.getPlane().setBpmnElement(process);
+ Definitions definitions = ModelUtil.getDefinitions(bpmnDiagram);
+ if (!definitions.getRootElements().contains(process))
+ definitions.getRootElements().add(process);
return process;
}
catch (IllegalStateException e) {
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmActivityDetailComposite.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmActivityDetailComposite.java
index ad577988..183d447d 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmActivityDetailComposite.java
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/property/JbpmActivityDetailComposite.java
@@ -110,7 +110,7 @@ public class JbpmActivityDetailComposite extends ActivityDetailComposite {
f = DroolsPackage.eINSTANCE.getDocumentRoot_OnEntryScript();
else
f = DroolsPackage.eINSTANCE.getDocumentRoot_OnExitScript();
- ModelDecorator.addExtensionAttributeValue(be, f, script, true);
+ ModelDecorator.addExtensionAttributeValue(be.eResource(), be, f, script, true);
result = script;
}
return result;
diff --git a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/util/JbpmModelUtil.java b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/util/JbpmModelUtil.java
index 4df081f8..95a56b21 100644
--- a/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/util/JbpmModelUtil.java
+++ b/plugins/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/util/JbpmModelUtil.java
@@ -212,7 +212,7 @@ public class JbpmModelUtil {
ImportHandler importer = new ImportHandler();
importer.setCreateVariables(createVariables);
- ModelDecorator.addExtensionAttributeValue(fProcess,
+ ModelDecorator.addExtensionAttributeValue(fProcess.eResource(), fProcess,
DroolsPackage.eINSTANCE.getDocumentRoot_ImportType(), newImport);
if (recursive) {
@@ -439,7 +439,7 @@ public class JbpmModelUtil {
}
if (processAnalysisData==null) {
processAnalysisData = BpsimFactory.eINSTANCE.createBPSimDataType();
- ModelDecorator.addExtensionAttributeValue(rel, BpsimPackage.eINSTANCE.getDocumentRoot_BPSimData(), processAnalysisData);
+ ModelDecorator.addExtensionAttributeValue(resource, rel, BpsimPackage.eINSTANCE.getDocumentRoot_BPSimData(), processAnalysisData);
}
if (processAnalysisData.getScenario().size()==0) {
diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java
index 95460606..33e170a1 100644
--- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/Bpmn2EditorItemProviderAdapterFactory.java
@@ -237,7 +237,10 @@ public class Bpmn2EditorItemProviderAdapterFactory extends Bpmn2ItemProviderAdap
// can handle this thing.
adapter = getTargetRuntimeAdapter(eclass);
if (adapter==null) {
- // if none is found, create a dummy EObject and cache it
+ // If none is found, create a dummy EObject and cache it.
+ //
+ // These are abstract types that are supported by {@see Bpmn2ModelerFactory#create(EClass)}
+ // Additional abstract types can be added here:
if (eclass.getInstanceClass()==CatchEvent.class) {
object = new CatchEventImpl() {};
adapter = new CatchEventPropertiesAdapter(adapterFactory, (CatchEvent)object);
diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/lane/CreateLaneFeature.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/lane/CreateLaneFeature.java
index 022af6e1..6ed5c355 100644
--- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/lane/CreateLaneFeature.java
+++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/lane/CreateLaneFeature.java
@@ -47,7 +47,7 @@ public class CreateLaneFeature extends AbstractBpmn2CreateFeature<Lane> {
if (context.getTargetContainer() instanceof Diagram) {
BPMNDiagram bpmnDiagram = BusinessObjectUtil.getFirstElementOfType(context.getTargetContainer(), BPMNDiagram.class);
BaseElement bpmnElement = bpmnDiagram.getPlane().getBpmnElement();
- if (bpmnElement instanceof Process)
+ if (bpmnElement instanceof Process || bpmnElement==null)
return true;
return false;
}
diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/participant/CreateParticipantFeature.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/participant/CreateParticipantFeature.java
index 997c300f..2dae3245 100644
--- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/participant/CreateParticipantFeature.java
+++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/features/participant/CreateParticipantFeature.java
@@ -39,7 +39,7 @@ public class CreateParticipantFeature extends AbstractBpmn2CreateFeature<Partici
if (context.getTargetContainer() instanceof Diagram) {
BPMNDiagram bpmnDiagram = BusinessObjectUtil.getFirstElementOfType(context.getTargetContainer(), BPMNDiagram.class);
BaseElement bpmnElement = bpmnDiagram.getPlane().getBpmnElement();
- if (bpmnElement instanceof Collaboration || bpmnElement instanceof Process)
+ if (bpmnElement instanceof Collaboration || bpmnElement instanceof Process || bpmnElement==null)
return true;
}
return false;
diff --git a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/ExtensionValueListComposite.java b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/ExtensionValueListComposite.java
index 609e0d68..7dacbe0d 100644
--- a/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/ExtensionValueListComposite.java
+++ b/plugins/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/ExtensionValueListComposite.java
@@ -65,7 +65,7 @@ public abstract class ExtensionValueListComposite extends DefaultListComposite {
@SuppressWarnings("unchecked")
protected void addExtensionValue(EObject value) {
- ModelDecorator.addExtensionAttributeValue(businessObject, extensionValueFeature, value);
+ ModelDecorator.addExtensionAttributeValue(businessObject.eResource(), businessObject, extensionValueFeature, value);
}
protected Object getListItem(EObject object, EStructuralFeature feature, int index) {

Back to the top