Author: scabanovich
Date: 2008-06-09 05:55:05 -0400 (Mon, 09 Jun 2008)
New Revision: 8639
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/handlers/SelectOnDiagramHandler.java
Log:
JBIDE-2285
Modified:
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/handlers/SelectOnDiagramHandler.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/handlers/SelectOnDiagramHandler.java 2008-06-09
09:54:58 UTC (rev 8638)
+++
trunk/seam/plugins/org.jboss.tools.seam.pages.xml/src/org/jboss/tools/seam/pages/xml/model/handlers/SelectOnDiagramHandler.java 2008-06-09
09:55:05 UTC (rev 8639)
@@ -18,47 +18,67 @@
import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesDiagramStructureHelper;
+/**
+ *
+ * @author Viacheslav Kabanovich
+ *
+ */
public class SelectOnDiagramHandler extends AbstractHandler implements SeamPagesConstants
{
- public SelectOnDiagramHandler() {}
+ public SelectOnDiagramHandler() {}
- public boolean isEnabled(XModelObject object) {
- return (object != null && object.isActive());
- }
+ public boolean isEnabled(XModelObject object) {
+ return (object != null && object.isActive());
+ }
- public void executeHandler(XModelObject object, Properties p) throws XModelException
{
- if(object == null) return;
- String entity = object.getModelEntity().getName();
- if(entity.startsWith(SeamPagesConstants.ENT_NAVIGATION_RULE)
- || entity.startsWith(SeamPagesConstants.ENT_RULE)) {
- object = object.getChildByPath("target");
- }
- XModelObject item = getItemOnDiagram(object);
- if(item == null) return;
- FindObjectHelper.findModelObject(item, FindObjectHelper.IN_EDITOR_ONLY,
"Diagram");
- FindObjectHelper.findModelObject(object, FindObjectHelper.IN_EDITOR_ONLY);
- }
+ public void executeHandler(XModelObject object, Properties p) throws XModelException {
+ if(object == null) return;
+ XModelObject item = getItemOnDiagram(object);
+ if(item == null) return;
+ FindObjectHelper.findModelObject(item, FindObjectHelper.IN_EDITOR_ONLY,
"Diagram");
+ FindObjectHelper.findModelObject(object, FindObjectHelper.IN_EDITOR_ONLY);
+ }
- public static XModelObject getItemOnDiagram(XModelObject object) {
- if(object == null) return null;
- XModelObject diagram =
SeamPagesDiagramStructureHelper.instance.getProcess(object);
- return (diagram == null) ? null : getItemOnDiagram(diagram, object);
- }
+ /**
+ *
+ * @param object
+ * @return the best match in diagram XML for argument file XML object.
+ */
+ public static XModelObject getItemOnDiagram(XModelObject object) {
+ if(object == null) return null;
+ String entity = object.getModelEntity().getName();
+ if(entity.startsWith(SeamPagesConstants.ENT_NAVIGATION_RULE)
+ || entity.startsWith(SeamPagesConstants.ENT_RULE)) {
+ object = object.getChildByPath("target");
+ } else if(entity.startsWith(SeamPagesConstants.ENT_NAVIGATION)) {
+ XModelObject[] cs = object.getChildren();
+ if(cs.length != 1) {
+ object = object.getParent();
+ } else {
+ object = cs[0].getChildByPath("target");
+ }
+ if(object == null) return null;
+ } else if(entity.startsWith(SeamPagesConstants.ENT_PARAM)) {
+ //or should we return object itself, if params are displayed by diagram?
+ return getItemOnDiagram(object.getParent());
+ }
+ XModelObject diagram = SeamPagesDiagramStructureHelper.instance.getProcess(object);
+ return (diagram == null) ? null : getItemOnDiagram(diagram, object);
+ }
- public static XModelObject getItemOnDiagram(XModelObject diagramObject, XModelObject
object) {
- if(diagramObject instanceof ReferenceObject) {
- if(((ReferenceObject)diagramObject).getReference() == object) return
diagramObject;
- }
- return getItemOnDiagram(diagramObject.getChildren(), object);
- }
+ private static XModelObject getItemOnDiagram(XModelObject diagramObject, XModelObject
object) {
+ if(diagramObject instanceof ReferenceObject) {
+ if(((ReferenceObject)diagramObject).getReference() == object) return diagramObject;
+ }
+ return getItemOnDiagram(diagramObject.getChildren(), object);
+ }
- public static XModelObject getItemOnDiagram(XModelObject[] diagramObjects,
XModelObject object) {
- for (int i = 0; i < diagramObjects.length; i++) {
- XModelObject cr = getItemOnDiagram(diagramObjects[i], object);
- if(cr != null) return cr;
- }
- return null;
- }
+ private static XModelObject getItemOnDiagram(XModelObject[] diagramObjects, XModelObject
object) {
+ for (int i = 0; i < diagramObjects.length; i++) {
+ XModelObject cr = getItemOnDiagram(diagramObjects[i], object);
+ if(cr != null) return cr;
+ }
+ return null;
+ }
}
-
Show replies by date