Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBob Brodt2012-10-22 17:28:31 +0000
committerBob Brodt2012-10-22 17:28:31 +0000
commitfaa04380d4194a94eeff33954e745330789f403a (patch)
tree3d252f82e34419e85e1ffd3a515d59ed138f3a7b
parent092179721cd6c90459852a4605434fb6f7f6d61b (diff)
downloadorg.eclipse.bpmn2-modeler-0.1.0.Final-master.tar.gz
org.eclipse.bpmn2-modeler-0.1.0.Final-master.tar.xz
org.eclipse.bpmn2-modeler-0.1.0.Final-master.zip
Fix exceptions thrown in SchemaImportDialog and SchemaSelectionDialog. This is only a partial fix for the Interface.implementationRef selector.0.1.0.Final-master
-rw-r--r--org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java7
-rw-r--r--org.eclipse.bpmn2.modeler.ui/plugin.xml2
-rw-r--r--org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/InterfacePropertiesAdapter.java40
-rw-r--r--org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java8
-rw-r--r--org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaSelectionDialog.java10
-rw-r--r--org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/editors/SchemaObjectEditor.java6
-rw-r--r--org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/BPMN2DefinitionsTreeContentProvider.java4
-rw-r--r--org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/JavaTypeTreeNode.java18
8 files changed, 80 insertions, 15 deletions
diff --git a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java
index f32f76ca..c7a8535e 100644
--- a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java
+++ b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java
@@ -1030,9 +1030,14 @@ public class ModelUtil {
return null;
}
- public static boolean setValue(TransactionalEditingDomain domain, final EObject object, final EStructuralFeature feature, final Object value) {
+ public static boolean setValue(TransactionalEditingDomain domain, final EObject object, final EStructuralFeature feature, Object value) {
ExtendedPropertiesAdapter adapter = AdapterUtil.adapt(object, ExtendedPropertiesAdapter.class);
Object oldValue = adapter==null ? object.eGet(feature) : adapter.getFeatureDescriptor(feature).getValue();
+ if (isStringWrapper(oldValue)) {
+ oldValue = getStringWrapperValue(oldValue);
+ if (value instanceof String)
+ value = ModelUtil.createStringWrapper((String)value);
+ }
final Object newValue = (feature instanceof EReference && !(value instanceof EObject)) ? null : value;
boolean valueChanged = (newValue != oldValue);
diff --git a/org.eclipse.bpmn2.modeler.ui/plugin.xml b/org.eclipse.bpmn2.modeler.ui/plugin.xml
index 5f1781ef..49e5acae 100644
--- a/org.eclipse.bpmn2.modeler.ui/plugin.xml
+++ b/org.eclipse.bpmn2.modeler.ui/plugin.xml
@@ -422,6 +422,8 @@
<!-- process -->
<enable object="Process"/>
<enable object="SubProcess"/>
+ <enable object="Transaction"/>
+ <enable object="AdHocSubProcess"/>
<!-- gateways -->
<enable object="ExclusiveGateway"/>
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/InterfacePropertiesAdapter.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/InterfacePropertiesAdapter.java
index 1e91aa4f..54a8d12b 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/InterfacePropertiesAdapter.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/adapters/properties/InterfacePropertiesAdapter.java
@@ -13,17 +13,32 @@
package org.eclipse.bpmn2.modeler.ui.adapters.properties;
+import javax.xml.namespace.QName;
+
import org.eclipse.bpmn2.Bpmn2Package;
import org.eclipse.bpmn2.Interface;
+import org.eclipse.bpmn2.Process;
import org.eclipse.bpmn2.modeler.core.adapters.ExtendedPropertiesAdapter;
import org.eclipse.bpmn2.modeler.core.adapters.FeatureDescriptor;
import org.eclipse.bpmn2.modeler.core.adapters.ObjectDescriptor;
import org.eclipse.bpmn2.modeler.core.utils.ModelUtil;
+import org.eclipse.bpmn2.modeler.core.utils.NamespaceUtil;
import org.eclipse.emf.common.notify.AdapterFactory;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.wst.wsdl.Fault;
+import org.eclipse.wst.wsdl.Input;
+import org.eclipse.wst.wsdl.Message;
+import org.eclipse.wst.wsdl.Operation;
+import org.eclipse.wst.wsdl.Output;
+import org.eclipse.wst.wsdl.Part;
+import org.eclipse.wst.wsdl.PortType;
+import org.eclipse.xsd.XSDAttributeDeclaration;
+import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDSchema;
+import org.eclipse.xsd.XSDTypeDefinition;
/**
* @author Bob Brodt
@@ -66,12 +81,33 @@ public class InterfacePropertiesAdapter extends ExtendedPropertiesAdapter<Interf
@Override
public Object getValue(Object context) {
final Interface iface = adopt(context);
- return iface.getImplementationRef();
+ if (iface.getImplementationRef()!=null)
+ return iface.getImplementationRef();
+ return ModelUtil.createStringWrapper("");
}
@Override
public void setValue(Object context, Object value) {
- if (value instanceof String) {
+ Interface object = adopt(context);
+ Resource resource = ModelUtil.getResource(object);
+
+ if (value instanceof PortType) {
+ PortType portType = (PortType)value;
+ QName qname = portType.getQName();
+ String prefix = NamespaceUtil.getPrefixForNamespace(resource, qname.getNamespaceURI());
+ if (prefix==null)
+ prefix = NamespaceUtil.addNamespace(resource, qname.getNamespaceURI());
+ if (prefix!=null)
+ value = prefix + ":";
+ value += qname.getLocalPart();
+ }
+ else if (value instanceof Process) {
+ Process process = (Process)value;
+ if (process.getSupportedInterfaceRefs().size()>0)
+ value = process.getSupportedInterfaceRefs().get(0).getImplementationRef();
+ }
+
+ if (value instanceof String) {
value = ModelUtil.createStringWrapper((String)value);
}
else if (!ModelUtil.isStringWrapper(value)) {
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java
index 3434159b..47ecfafb 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java
@@ -1063,21 +1063,21 @@ public class SchemaImportDialog extends SelectionStatusDialog {
fTreeViewer.setContentProvider(fTreeContentProvider);
fResourceKind = "xml";
- String[] wsdl_FILTER_EXTENSIONS = {
+ String[] xml_FILTER_EXTENSIONS = {
"*.xml",
"*.xsd",
"*.wsdl",
"*.*"
};
- FILTER_EXTENSIONS = wsdl_FILTER_EXTENSIONS;
+ FILTER_EXTENSIONS = xml_FILTER_EXTENSIONS;
- String[] wsdl_FILTER_NAMES = {
+ String[] xml_FILTER_NAMES = {
"XML Files",
"XML Schema Files",
"WSDL Definition Files",
"All"
};
- FILTER_NAMES = wsdl_FILTER_NAMES;
+ FILTER_NAMES = xml_FILTER_NAMES;
resourceFilter = ".xml";
if (fResourceComposite!=null)
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaSelectionDialog.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaSelectionDialog.java
index 68b17760..bd6b8467 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaSelectionDialog.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaSelectionDialog.java
@@ -20,6 +20,7 @@ import org.eclipse.bpmn2.modeler.core.utils.ImportUtil;
import org.eclipse.bpmn2.modeler.core.utils.ModelUtil;
import org.eclipse.bpmn2.modeler.ui.Activator;
import org.eclipse.bpmn2.modeler.ui.editor.BPMN2Editor;
+import org.eclipse.bpmn2.modeler.ui.property.providers.BPMN2DefinitionsTreeContentProvider;
import org.eclipse.bpmn2.modeler.ui.property.providers.ModelTreeLabelProvider;
import org.eclipse.bpmn2.modeler.ui.property.providers.ServiceTreeContentProvider;
import org.eclipse.bpmn2.modeler.ui.property.providers.TreeNode;
@@ -224,12 +225,15 @@ public class SchemaSelectionDialog extends SelectionStatusDialog {
void attemptLoad() {
String path = null;
- if ("xsd".equals(importType)) {
+ if ("xsd".equals(importType) || "xml".equals(importType)) {
treeContentProvider = new VariableTypeTreeContentProvider(true, true);
path = importLocation;
} else if ("wsdl".equals(importType)) {
treeContentProvider = new ServiceTreeContentProvider(true);
path = importLocation;
+ } else if ("bpmn".equals(importType)) {
+ treeContentProvider = new BPMN2DefinitionsTreeContentProvider(true);
+ path = importLocation;
} else {
treeContentProvider = null;
input = null;
@@ -316,6 +320,7 @@ public class SchemaSelectionDialog extends SelectionStatusDialog {
tree.getVerticalBar().setSelection(0);
updateStatus(new Status(IStatus.OK, Activator.getDefault().PLUGIN_ID, 0,
"Loaded "+importLocation, null));
+ updateOK(false);
}
}
@@ -341,6 +346,9 @@ public class SchemaSelectionDialog extends SelectionStatusDialog {
return "wsdl";
if ("http://www.w3.org/2001/XMLSchema".equals(type))
return "xsd";
+ if ("http://www.omg.org/spec/BPMN/20100524/MODEL".equals(type))
+ return "bpmn";
+ return "xml";
}
return null;
}
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/editors/SchemaObjectEditor.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/editors/SchemaObjectEditor.java
index 6a0a5efc..a31d7b0d 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/editors/SchemaObjectEditor.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/editors/SchemaObjectEditor.java
@@ -15,7 +15,9 @@ package org.eclipse.bpmn2.modeler.ui.property.editors;
import javax.xml.namespace.QName;
+import org.eclipse.bpmn2.Definitions;
import org.eclipse.bpmn2.Import;
+import org.eclipse.bpmn2.Process;
import org.eclipse.bpmn2.modeler.core.merrimac.clad.AbstractDetailComposite;
import org.eclipse.bpmn2.modeler.core.merrimac.dialogs.TextAndButtonObjectEditor;
import org.eclipse.bpmn2.modeler.core.utils.NamespaceUtil;
@@ -173,6 +175,10 @@ public class SchemaObjectEditor extends TextAndButtonObjectEditor {
value = prefix + ":";
value += "schema";
}
+ if (result instanceof Process) {
+ Process process = (Process)result;
+ process.getSupportedInterfaceRefs();
+ }
if (value.isEmpty()) {
MessageDialog.openWarning(parent.getShell(), "Invalid Selection","The selection, "+
selectionType+" is not a valid type definition.");
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/BPMN2DefinitionsTreeContentProvider.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/BPMN2DefinitionsTreeContentProvider.java
index ccb1f851..8b5cb529 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/BPMN2DefinitionsTreeContentProvider.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/BPMN2DefinitionsTreeContentProvider.java
@@ -11,6 +11,7 @@
package org.eclipse.bpmn2.modeler.ui.property.providers;
import org.eclipse.bpmn2.Definitions;
+import org.eclipse.bpmn2.DocumentRoot;
import org.eclipse.bpmn2.Interface;
import org.eclipse.bpmn2.Process;
import org.eclipse.bpmn2.modeler.ui.util.ListMap;
@@ -47,6 +48,9 @@ public class BPMN2DefinitionsTreeContentProvider extends ModelTreeContentProvide
return new Object[] { result } ;
}
+ if (inputElement instanceof DocumentRoot) {
+ inputElement = ((DocumentRoot)inputElement).getDefinitions();
+ }
if (inputElement instanceof Definitions) {
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/JavaTypeTreeNode.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/JavaTypeTreeNode.java
index 0a5c5ec3..967f1efb 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/JavaTypeTreeNode.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/providers/JavaTypeTreeNode.java
@@ -60,14 +60,18 @@ public class JavaTypeTreeNode extends TreeNode {
@Override
public Object[] getChildren() {
List<JavaMemberTreeNode> kids = new ArrayList<JavaMemberTreeNode>();
- Class c = (Class)modelObject;
- for (Field f : c.getDeclaredFields()) {
- if ((Modifier.PUBLIC & f.getModifiers()) != 0)
- kids.add(new JavaMemberTreeNode(f,isCondensed));
+ try {
+ Class c = (Class)modelObject;
+ for (Field f : c.getDeclaredFields()) {
+ if ((Modifier.PUBLIC & f.getModifiers()) != 0)
+ kids.add(new JavaMemberTreeNode(f,isCondensed));
+ }
+ for (Method m : c.getDeclaredMethods()) {
+ if ((Modifier.PUBLIC & m.getModifiers()) != 0)
+ kids.add(new JavaMemberTreeNode(m,isCondensed));
+ }
}
- for (Method m : c.getDeclaredMethods()) {
- if ((Modifier.PUBLIC & m.getModifiers()) != 0)
- kids.add(new JavaMemberTreeNode(m,isCondensed));
+ catch (Exception e) {
}
return kids.toArray(new Object[kids.size()]);
}

Back to the top