Author: bbrodt
Date: 2011-01-07 11:02:36 -0500 (Fri, 07 Jan 2011)
New Revision: 27983
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/util/BPELUtil.java
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/helpers/ModelQueryImpl.java
Log:
https://issues.jboss.org/browse/JBIDE-8044
Modified:
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/util/BPELUtil.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/util/BPELUtil.java 2011-01-07
15:59:12 UTC (rev 27982)
+++
trunk/bpel/plugins/org.eclipse.bpel.ui/src/org/eclipse/bpel/ui/util/BPELUtil.java 2011-01-07
16:02:36 UTC (rev 27983)
@@ -1394,11 +1394,13 @@
}
return true;
}
- });
- returnObjects.remove(0); //remove the scope containing the compensate
+ });
+ //
https://issues.jboss.org/browse/JBIDE-8044
+ if (!returnObjects.isEmpty())
+ returnObjects.remove(0); //remove the scope containing the compensate
return returnObjects;
- }
- throw new IllegalArgumentException();
+ }
+ throw new IllegalArgumentException();
}
public static Object resolveXSDObject(Object xsdObject) {
@@ -1721,13 +1723,14 @@
public static void openEditor(EObject modelObject, BPELEditor editor) {
try {
+ //
https://issues.jboss.org/browse/JBIDE-8044
+ Assert.isNotNull(modelObject);
+ Assert.isNotNull(modelObject.eResource());
//
https://jira.jboss.org/browse/JBIDE-7351
// try to resolve proxies here, otherwise we don't know editor input
if (modelObject.eIsProxy()) {
modelObject = EmfModelQuery.resolveProxy(editor.getProcess(), modelObject);
}
- Assert.isNotNull(modelObject);
- Assert.isNotNull(modelObject.eResource());
IFile file = BPELUtil.getFileFromURI(modelObject.eResource().getURI());
IDE.openEditor(editor.getSite().getWorkbenchWindow().getActivePage(), file);
} catch (PartInitException ex) {
Modified:
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/helpers/ModelQueryImpl.java
===================================================================
---
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/helpers/ModelQueryImpl.java 2011-01-07
15:59:12 UTC (rev 27982)
+++
trunk/bpel/plugins/org.eclipse.bpel.validator/src/org/eclipse/bpel/validator/helpers/ModelQueryImpl.java 2011-01-07
16:02:36 UTC (rev 27983)
@@ -27,6 +27,7 @@
import org.eclipse.bpel.validator.model.IModelQuery;
import org.eclipse.bpel.validator.model.INode;
import org.eclipse.bpel.validator.model.NodeAttributeValueFilter;
+import org.eclipse.bpel.validator.model.NodeNameFilter;
import org.eclipse.bpel.validator.model.Selector;
import org.eclipse.bpel.validator.model.UndefinedNode;
import org.eclipse.bpel.validator.model.XNotImplemented;
@@ -216,17 +217,35 @@
IFilter<INode> aFilterByName = new NodeAttributeValueFilter(IConstants.AT_NAME,
name );
IFilter<INode> aFilterByFaultVariable = new
NodeAttributeValueFilter(IConstants.AT_FAULT_VARIABLE, name );
-
+ IFilter<INode> aFilterByVariable = new
NodeAttributeValueFilter(IConstants.AT_VARIABLE, name );
+ IFilter<INode> aFilterByCounterName = new
NodeAttributeValueFilter(IConstants.AT_COUNTER_NAME, name );
+ IFilter<INode> nFilterForEach = new NodeNameFilter(IConstants.ND_FOR_EACH);
+
while (context != null) {
if (Filters.SCOPE_OR_PROCESS.select (context) ) {
+ // select variables defined in a scope or process
INode var =
mSelector.selectNode(context,IConstants.ND_VARIABLES,IConstants.ND_VARIABLE,aFilterByName);
if (var != null) {
return var;
}
+ // select catch name defined in faultHandlers
var =
mSelector.selectNode(context,IConstants.ND_FAULT_HANDLERS,IConstants.ND_CATCH,aFilterByFaultVariable);
if (var != null) {
return var;
}
+ //
https://issues.jboss.org/browse/JBIDE-8044
+ // select variable defined in onEvent of eventHandlers
+ var =
mSelector.selectNode(context,IConstants.ND_EVENT_HANDLERS,IConstants.ND_ON_EVENT,aFilterByVariable);
+ if (var != null) {
+ return var;
+ }
+ // select counterName defined in forEach
+ INode parent = mSelector.selectParent(context,nFilterForEach);
+ if (parent != null) {
+ if (aFilterByCounterName.select(parent)) {
+ return parent;
+ }
+ }
}
context = context.parentNode();
}