Author: scabanovich
Date: 2008-07-04 08:19:57 -0400 (Fri, 04 Jul 2008)
New Revision: 9076
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/AddExceptionOnDiagramHandler.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/AddPageOnDiagramHandler.java
Log:
JBIDE-1189
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/AddExceptionOnDiagramHandler.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/AddExceptionOnDiagramHandler.java 2008-07-04
12:19:13 UTC (rev 9075)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/AddExceptionOnDiagramHandler.java 2008-07-04
12:19:57 UTC (rev 9076)
@@ -1,11 +1,17 @@
package org.jboss.tools.seam.ui.pages.editor.commands;
import java.util.Properties;
+import java.util.Random;
-import org.jboss.tools.common.meta.action.XActionInvoker;
+import org.jboss.tools.common.meta.XChild;
+import org.jboss.tools.common.meta.XModelEntity;
import org.jboss.tools.common.meta.action.impl.AbstractHandler;
import org.jboss.tools.common.model.XModelException;
import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.util.FindObjectHelper;
+import org.jboss.tools.common.model.util.XModelObjectLoaderUtil;
+import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+import org.jboss.tools.seam.pages.xml.model.handlers.AddExceptionHandler;
import org.jboss.tools.seam.ui.pages.editor.edit.PagesDiagramEditPart;
public class AddExceptionOnDiagramHandler extends AbstractHandler {
@@ -23,7 +29,45 @@
int y = Integer.parseInt(p.getProperty("mouse.y"));
System.out.println("x=" + x + " y=" + y + " part=" +
part);
+ String className = "/test" + (new Random()).nextInt(10000);
+ AddExceptionOnDiagramHandler.createException(object, className, p);
+
// XActionInvoker.invoke("CreateActions.AddExceptionWizard", object, p);
}
+ /**
+ *
+ * @param diagram Root object for diagram model
+ * @param viewId User input
+ * @param p Properties passed to handler that include mouse coordinates
+ */
+ public static void createException(XModelObject diagram, String className, Properties p)
{
+ XModelObject m =
diagram.getParent().getChildByPath(SeamPagesConstants.FOLDER_EXCEPTIONS);
+ String childEntity = m.getModelEntity().getChildren()[0].getName();
+ XModelObject e = m.getModel().createModelObject(childEntity, null);
+ e.setAttributeValue("class", className);
+ XModelObject c = XModelObjectLoaderUtil.createValidObject(diagram.getModel(),
getRedirectChildEntity(e.getModelEntity()), p);
+ c.setAttributeValue(SeamPagesConstants.ATTR_VIEW_ID, "");
+ e.addChild(c);
+ m.addChild(e);
+ m.setModified(true);
+ String pp = e.getPathPart();
+ XModelObject created = diagram.getChildByPath(pp);
+ String shape = AddExceptionHandler.getShape(p);
+ if(created != null && shape != null)
created.setAttributeValue("shape", shape);
+ if(created != null) {
+ FindObjectHelper.findModelObject(created, FindObjectHelper.IN_EDITOR_ONLY);
+ }
+ }
+
+ static String getRedirectChildEntity(XModelEntity exc) {
+ XChild[] cs = exc.getChildren();
+ for (int i = 0; i < cs.length; i++) {
+ if(cs[i].getName().startsWith("SeamPageRedirect")) {
+ return cs[i].getName();
+ }
+ }
+ return null;
+ }
+
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/AddPageOnDiagramHandler.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/AddPageOnDiagramHandler.java 2008-07-04
12:19:13 UTC (rev 9075)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/commands/AddPageOnDiagramHandler.java 2008-07-04
12:19:57 UTC (rev 9076)
@@ -1,11 +1,16 @@
package org.jboss.tools.seam.ui.pages.editor.commands;
import java.util.Properties;
+import java.util.Random;
-import org.jboss.tools.common.meta.action.XActionInvoker;
import org.jboss.tools.common.meta.action.impl.AbstractHandler;
import org.jboss.tools.common.model.XModelException;
import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.common.model.util.FindObjectHelper;
+import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+import org.jboss.tools.seam.pages.xml.model.handlers.AddExceptionHandler;
+import org.jboss.tools.seam.pages.xml.model.handlers.AddViewSupport;
+import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesDiagramHelper;
import org.jboss.tools.seam.ui.pages.editor.edit.PagesDiagramEditPart;
public class AddPageOnDiagramHandler extends AbstractHandler {
@@ -23,7 +28,31 @@
int y = Integer.parseInt(p.getProperty("mouse.y"));
System.out.println("x=" + x + " y=" + y + " part=" +
part);
+//
+ String viewId = "/test" + (new Random()).nextInt(10000);
+ AddPageOnDiagramHandler.createPage(object, viewId, p);
+
// XActionInvoker.invoke("CreateActions.AddPageWizard", object, p);
}
+ /**
+ *
+ * @param diagram Root object for diagram model
+ * @param viewId User input
+ * @param p Properties passed to handler that include mouse coordinates
+ */
+ public static void createPage(XModelObject diagram, String viewId, Properties p) {
+ XModelObject m = diagram.getParent().getChildByPath(SeamPagesConstants.FOLDER_PAGES);
+ String path = AddViewSupport.revalidatePath(viewId);
+ String pp = SeamPagesDiagramHelper.toNavigationRulePathPart(path);
+ XModelObject rule = AddViewSupport.addPage(m, path);
+ m.setModified(true);
+ XModelObject created = diagram.getChildByPath(pp);
+ String shape = AddExceptionHandler.getShape(p);
+ if(created != null && shape != null)
created.setAttributeValue("shape", shape);
+ if(created != null) {
+ FindObjectHelper.findModelObject(created, FindObjectHelper.IN_EDITOR_ONLY);
+ }
+ }
+
}
Show replies by date