package org.jboss.tools.seam.pages.xml.model.handlers; import java.util.Properties; import org.jboss.tools.common.meta.action.impl.handlers.DefaultCreateHandler; import org.jboss.tools.common.model.XModelException; import org.jboss.tools.common.model.XModelObject; 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.helpers.SeamPagesDiagramStructureHelper; public class AddExceptionHandler extends DefaultCreateHandler { public AddExceptionHandler() {} public void executeHandler(XModelObject object, Properties prop) throws XModelException { super.executeHandler(object, prop); if(prop == null) return; XModelObject created = (XModelObject)prop.get("created"); if(created == null) return; String path = created.getPathPart(); XModelObject item = SeamPagesDiagramStructureHelper.getInstance().getDiagram(object).getChildByPath(path); String shape = getShape(prop); if(item != null && shape != null) { item.setAttributeValue("shape", shape); } } protected XModelObject modifyCreatedObject(XModelObject o) { Properties p = extractProperties(data[0]); String viewId = p.getProperty(SeamPagesConstants.ATTR_VIEW_ID); viewId = AddViewSupport.revalidatePath(viewId); p.setProperty(SeamPagesConstants.ATTR_VIEW_ID, viewId); String childEntity = action.getProperty("childEntity"); XModelObject c = XModelObjectLoaderUtil.createValidObject(o.getModel(), childEntity, p); o.addChild(c); return o; } public static String getShape(Properties p) { String x = p.getProperty("mouse.x"); String y = p.getProperty("mouse.y"); return (x == null || y == null) ? null : x + "," + y + ",0,0"; } }