Author: scabanovich
Date: 2008-05-29 08:47:49 -0400 (Thu, 29 May 2008)
New Revision: 8430
Added:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/SelectItemWizard.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/SelectItemWizardView.java
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/plugin.xml
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesContextMenuProvider.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesEditor.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/SeamPagesGuiEditor.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/PagesModel.java
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesModelImpl.java
Log:
JBIDE-1189
Modified: trunk/seam/plugins/org.jboss.tools.seam.ui.pages/plugin.xml
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui.pages/plugin.xml 2008-05-29 12:46:03 UTC
(rev 8429)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui.pages/plugin.xml 2008-05-29 12:47:49 UTC
(rev 8430)
@@ -19,5 +19,9 @@
</xmlEditor>
</extension>
+ <extension point="org.jboss.tools.common.model.classes">
+ <xclass id="org.jboss.tools.seam.ui.pages.editor.wizard.SelectItemWizard"
+ class="org.jboss.tools.seam.ui.pages.editor.wizard.SelectItemWizard"/>
+ </extension>
</plugin>
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesContextMenuProvider.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesContextMenuProvider.java 2008-05-29
12:46:03 UTC (rev 8429)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesContextMenuProvider.java 2008-05-29
12:47:49 UTC (rev 8430)
@@ -13,7 +13,7 @@
import java.util.*;
import org.eclipse.jface.action.*;
import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.events.*;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
@@ -24,6 +24,11 @@
import org.eclipse.gef.ui.actions.ActionRegistry;
import org.eclipse.gef.ui.actions.GEFActionConstants;
import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.Link;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesElement;
+import org.jboss.tools.seam.ui.pages.editor.edit.LinkEditPart;
+import org.jboss.tools.seam.ui.pages.editor.edit.PagesDiagramEditPart;
+import org.jboss.tools.seam.ui.pages.editor.edit.PagesEditPart;
public class PagesContextMenuProvider extends org.eclipse.gef.ContextMenuProvider {
private ActionRegistry actionRegistry;
@@ -53,34 +58,33 @@
}
protected void update(boolean force, boolean recursive) {
-// if(!isDirty() && !force) return;
-// if(!menuExist()) return;
-// MenuItem[] is = getMenu().getItems();
-// for (int i = 0; i < is.length; i++) {
-// if(!is[i].isDisposed()) is[i].dispose();
-// }
-// ISelection s = getViewer().getSelection();
-// if(s.isEmpty() || !(s instanceof StructuredSelection)) return;
-// StructuredSelection ss = (StructuredSelection)s;
-// XModelObject object = getTarget(ss.getFirstElement());
-// if(object != null) {
-// Properties p = new Properties();
-// if(lastDownEvent != null) {
-// Point point = new Point(lastDownEvent.x, lastDownEvent.y);
-//
-// ((JSFDiagramEditPart)getViewer().getRootEditPart().getChildren().get(0)).getFigure().translateToRelative(point);
-// p.setProperty("process.mouse.x", "" + point.x);
-// p.setProperty("process.mouse.y", "" + point.y);
-// lastDownEvent = null;
-// }
-// XModelObjectActionList list = new
XModelObjectActionList(object.getModelEntity().getActionList(), object, getTargets(ss),
new Object[]{object, p});
-// Menu menu = getMenu();
-// list.createMenu(menu);
-// list.removeLastSeparator(menu);
-// }
+ if(!isDirty() && !force) return;
+ if(!menuExist()) return;
+ MenuItem[] is = getMenu().getItems();
+ for (int i = 0; i < is.length; i++) {
+ if(!is[i].isDisposed()) is[i].dispose();
+ }
+ ISelection s = getViewer().getSelection();
+ if(s.isEmpty() || !(s instanceof IStructuredSelection)) return;
+ IStructuredSelection ss = (IStructuredSelection)s;
+ XModelObject object = getTarget(ss.getFirstElement());
+ if(object != null) {
+ Properties p = new Properties();
+ if(lastDownEvent != null) {
+ Point point = new Point(lastDownEvent.x, lastDownEvent.y);
+ ((PagesDiagramEditPart)getViewer().getRootEditPart().getChildren().get(0)).getFigure().translateToRelative(point);
+ p.setProperty("process.mouse.x", "" + point.x);
+ p.setProperty("process.mouse.y", "" + point.y);
+ lastDownEvent = null;
+ }
+ XModelObjectActionList list = new
XModelObjectActionList(object.getModelEntity().getActionList(), object, getTargets(ss),
new Object[]{object, p});
+ Menu menu = getMenu();
+ list.createMenu(menu);
+ list.removeLastSeparator(menu);
+ }
}
- private XModelObject[] getTargets(StructuredSelection ss) {
+ private XModelObject[] getTargets(IStructuredSelection ss) {
if(ss.size() < 2) return null;
Iterator it = ss.iterator();
ArrayList<XModelObject> l = new ArrayList<XModelObject>();
@@ -92,20 +96,20 @@
}
private XModelObject getTarget(Object selected) {
-// if(selected instanceof JSFEditPart) {
-// JSFEditPart part = (JSFEditPart)selected;
-// Object partModel = part.getModel();
-// if(partModel instanceof IJSFElement) {
-// return (XModelObject)((IJSFElement)partModel).getSource();
-// }
-// }
-// if(selected instanceof LinkEditPart) {
-// LinkEditPart part = (LinkEditPart)selected;
-// Object partModel = part.getModel();
-// if(partModel instanceof IJSFElement) {
-// return (XModelObject)((IJSFElement)partModel).getSource();
-// }
-// }
+ if(selected instanceof PagesEditPart) {
+ PagesEditPart part = (PagesEditPart)selected;
+ Object partModel = part.getModel();
+ if(partModel instanceof PagesElement) {
+ return (XModelObject)((PagesElement)partModel).getData();
+ }
+ }
+ if(selected instanceof LinkEditPart) {
+ LinkEditPart part = (LinkEditPart)selected;
+ Object partModel = part.getModel();
+ if(partModel instanceof Link) {
+// return (XModelObject)((Link)partModel).getData();
+ }
+ }
return null;
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesEditor.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesEditor.java 2008-05-29
12:46:03 UTC (rev 8429)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesEditor.java 2008-05-29
12:47:49 UTC (rev 8430)
@@ -50,7 +50,6 @@
import org.eclipse.gef.editparts.ScalableFreeformRootEditPart;
import org.eclipse.gef.editparts.ZoomListener;
import org.eclipse.gef.editparts.ZoomManager;
-import org.eclipse.gef.palette.CombinedTemplateCreationEntry;
import org.eclipse.gef.palette.MarqueeToolEntry;
import org.eclipse.gef.palette.PaletteContainer;
import org.eclipse.gef.palette.PaletteEntry;
@@ -104,16 +103,21 @@
import org.jboss.tools.common.gef.edit.GEFRootEditPart;
import org.jboss.tools.common.gef.editor.xpl.DefaultPaletteCustomizer;
import org.jboss.tools.common.gef.outline.xpl.DiagramContentOutlinePage;
-import org.jboss.tools.common.meta.key.WizardKeys;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.XModelTransferBuffer;
-import org.jboss.tools.common.reporting.ProblemReportingHelper;
+import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesProcessStructureHelper;
import org.jboss.tools.seam.ui.pages.SeamUIPagesMessages;
import org.jboss.tools.seam.ui.pages.SeamUiPagesPlugin;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.Link;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesElement;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesModel;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesModelListener;
import org.jboss.tools.seam.ui.pages.editor.edit.GraphicalPartFactory;
+import org.jboss.tools.seam.ui.pages.editor.edit.LinkEditPart;
+import org.jboss.tools.seam.ui.pages.editor.edit.PagesDiagramEditPart;
+import org.jboss.tools.seam.ui.pages.editor.edit.PagesEditPart;
import org.jboss.tools.seam.ui.pages.editor.edit.xpl.PagesConnectionRouter;
+import org.jboss.tools.seam.ui.pages.editor.figures.NodeFigure;
import org.jboss.tools.seam.ui.pages.editor.palette.PagesPaletteViewerPreferences;
public class PagesEditor extends GEFEditor implements PagesModelListener{
@@ -540,62 +544,60 @@
if (viewer == null)
return null;
XModelObject o = getTarget(viewer.getSelection());
- XModelObject ref = null;//JSFProcessStructureHelper.instance
- //.getReference(o);
+ XModelObject ref = SeamPagesProcessStructureHelper.instance.getReference(o);
return ref;
}
-// public void scroll(FreeformViewport vp, GroupFigure figure) {
-// int delta;
-// int SCROLL_MARGIN = 20;
-//
-// Point origin = vp.getViewLocation();
-//
-// if ((figure.getLocation().x - SCROLL_MARGIN) < origin.x) {
-// delta = origin.x - (figure.getLocation().x - SCROLL_MARGIN);
-// origin.x -= delta;
-// } else if ((figure.getLocation().x + figure.getSize().width + SCROLL_MARGIN) >
(origin.x + vp
-// .getSize().width)) {
-// delta = figure.getLocation().x + figure.getSize().width
-// + SCROLL_MARGIN - (origin.x + vp.getSize().width);
-// origin.x += delta;
-// }
-//
-// if ((figure.getLocation().y - SCROLL_MARGIN) < origin.y) {
-// delta = origin.y - (figure.getLocation().y - SCROLL_MARGIN);
-// origin.y -= delta;
-// } else if ((figure.getLocation().y + figure.getSize().height + SCROLL_MARGIN) >
(origin.y + vp
-// .getSize().height)) {
-// delta = figure.getLocation().y + figure.getSize().height
-// + SCROLL_MARGIN - (origin.y + vp.getSize().height);
-// origin.y += delta;
-// }
-// if (origin.x != vp.getViewLocation().x
-// || origin.y != vp.getViewLocation().y)
-// vp.setViewLocation(origin);
-// }
+ public void scroll(FreeformViewport vp, NodeFigure figure) {
+ int delta;
+ int SCROLL_MARGIN = 20;
+ Point origin = vp.getViewLocation();
+
+ if ((figure.getLocation().x - SCROLL_MARGIN) < origin.x) {
+ delta = origin.x - (figure.getLocation().x - SCROLL_MARGIN);
+ origin.x -= delta;
+ } else if ((figure.getLocation().x + figure.getSize().width + SCROLL_MARGIN) >
(origin.x + vp
+ .getSize().width)) {
+ delta = figure.getLocation().x + figure.getSize().width
+ + SCROLL_MARGIN - (origin.x + vp.getSize().width);
+ origin.x += delta;
+ }
+
+ if ((figure.getLocation().y - SCROLL_MARGIN) < origin.y) {
+ delta = origin.y - (figure.getLocation().y - SCROLL_MARGIN);
+ origin.y -= delta;
+ } else if ((figure.getLocation().y + figure.getSize().height + SCROLL_MARGIN) >
(origin.y + vp
+ .getSize().height)) {
+ delta = figure.getLocation().y + figure.getSize().height
+ + SCROLL_MARGIN - (origin.y + vp.getSize().height);
+ origin.y += delta;
+ }
+ if (origin.x != vp.getViewLocation().x
+ || origin.y != vp.getViewLocation().y)
+ vp.setViewLocation(origin);
+ }
+
protected void setSelectedModelObject(XModelObject object) {
-// IJSFElement element = getPagesModel().findElement(object.getPath());
-// if (element == null)
-// return;
-// EditPart part = (EditPart) viewer.getEditPartRegistry()
-// .get(element);
-// if (part != null) {
-// viewer.setSelection(new StructuredSelection(part));
-// JSFDiagramEditPart diagram = (JSFDiagramEditPart) getScrollingGraphicalViewer()
-// .getRootEditPart().getChildren().get(0);
-// FreeformViewport vp = diagram.getFreeformViewport();
-// if (vp != null && part instanceof GroupEditPart) {
-// GroupFigure fig = (GroupFigure) ((GroupEditPart) part)
-// .getFigure();
-// if (fig.getLocation().x == 0 && fig.getLocation().y == 0) {
-// fig.setLocation(((GroupEditPart) part).getGroupModel()
-// .getPosition());
-// }
-// scroll(vp, fig);
-// }
-// }
+ PagesElement element = getPagesModel().findElement(object);
+ if (element == null)
+ return;
+ EditPart part = (EditPart) viewer.getEditPartRegistry()
+ .get(element);
+ if (part != null) {
+ viewer.setSelection(new StructuredSelection(part));
+ PagesDiagramEditPart diagram = (PagesDiagramEditPart) getScrollingGraphicalViewer()
+ .getRootEditPart().getChildren().get(0);
+ FreeformViewport vp = diagram.getFreeformViewport();
+ if (vp != null && part instanceof PagesEditPart) {
+ PagesEditPart pagesPart = (PagesEditPart) part;
+ NodeFigure fig = (NodeFigure)pagesPart.getFigure();
+ if (fig.getLocation().x == 0 && fig.getLocation().y == 0) {
+ fig.setLocation( ((PagesElement)pagesPart.getModel()).getLocation());
+ }
+ scroll(vp, fig);
+ }
+ }
}
}
@@ -607,20 +609,21 @@
}
private XModelObject getTarget(Object selected) {
-// if (selected instanceof JSFEditPart) {
-// JSFEditPart part = (JSFEditPart) selected;
-// Object partModel = part.getModel();
-// if (partModel instanceof IJSFElement) {
-// return (XModelObject) ((IJSFElement) partModel).getSource();
-// }
-// }
-// if (selected instanceof LinkEditPart) {
-// LinkEditPart part = (LinkEditPart) selected;
-// Object partModel = part.getModel();
-// if (partModel instanceof IJSFElement) {
-// return (XModelObject) ((IJSFElement) partModel).getSource();
-// }
-// }
+ if (selected instanceof PagesEditPart) {
+ PagesEditPart part = (PagesEditPart) selected;
+ Object partModel = part.getModel();
+ if (partModel instanceof PagesElement) {
+ return (XModelObject) ((PagesElement) partModel).getData();
+ }
+ }
+ if (selected instanceof LinkEditPart) {
+ LinkEditPart part = (LinkEditPart) selected;
+ Object partModel = part.getModel();
+ if (partModel instanceof Link) {
+//TODO
+// return (XModelObject) ((Link) partModel).getSource();
+ }
+ }
return null;
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/SeamPagesGuiEditor.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/SeamPagesGuiEditor.java 2008-05-29
12:46:03 UTC (rev 8429)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/SeamPagesGuiEditor.java 2008-05-29
12:47:49 UTC (rev 8430)
@@ -139,73 +139,8 @@
private PagesModel createModel() {
PagesModel model = PagesFactory.eINSTANCE.createPagesModel();
- Map<XModelObject, PagesElement> elements = new HashMap<XModelObject,
PagesElement>();
- SeamPagesProcessStructureHelper h = SeamPagesProcessStructureHelper.getInstance();
- XModelObject[] is = h.getItems(installedProcess);
- for (int i = 0; i < is.length; i++) {
- String type = is[i].getAttributeValue(SeamPagesConstants.ATTR_TYPE);
- if(SeamPagesConstants.TYPE_PAGE.equals(type)) {
- Page page = PagesFactory.eINSTANCE.createPage();
- page.setName(h.getPageTitle(is[i]));
- int[] shape = h.asIntArray(is[i], "shape");
- if(shape != null && shape.length >= 2) {
- page.setLocation(new Point(shape[0],shape[1]));
- }
- if(shape != null && shape.length >= 4) {
- page.setSize(new Dimension(shape[2],shape[3]));
- }
- //TODO pass is[i] to page
- model.getChildren().add(page);
- elements.put(is[i], page);
- } else if(SeamPagesConstants.TYPE_EXCEPTION.equals(type)) {
- PgException exc = PagesFactory.eINSTANCE.createPgException();
- exc.setName(h.getPageTitle(is[i]));
- int[] shape = h.asIntArray(is[i], "shape");
- if(shape != null && shape.length >= 2) {
- exc.setLocation(new Point(shape[0],shape[1]));
- }
- if(shape != null && shape.length >= 4) {
- exc.setSize(new Dimension(shape[2],shape[3]));
- }
- //TODO pass is[i] to exc
- model.getChildren().add(exc);
- //maybe we need other map for exceptions?
- elements.put(is[i], exc);
- } else {
- //TODO
- }
- }
-
- for (int i = 0; i < is.length; i++) {
- String type = is[i].getAttributeValue(SeamPagesConstants.ATTR_TYPE);
- if(SeamPagesConstants.TYPE_PAGE.equals(type)
- || SeamPagesConstants.TYPE_EXCEPTION.equals(type)) {
- PagesElement from = elements.get(is[i]);
- if(from == null) {
- //TODO report failure
- continue;
- }
- XModelObject[] os = h.getOutputs(is[i]);
- for (int j = 0; j < os.length; j++) {
- XModelObject t = h.getItemOutputTarget(os[j]);
- if(t == null) {
- //TODO report failure
- continue;
- }
- PagesElement to = elements.get(t);
- if(to == null) {
- //TODO report failure
- continue;
- }
- Link link = PagesFactory.eINSTANCE.createLink();
- link.setFromElement(from);
- link.setToElement(to);
- link.setName(h.getItemOutputPresentation(os[j]));
- link.setShortcut(h.isShortcut(os[j]));
- }
- }
- }
-
+ model.setData(installedProcess);
+ model.load();
return model;
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/PagesModel.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/PagesModel.java 2008-05-29
12:46:03 UTC (rev 8429)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/PagesModel.java 2008-05-29
12:47:49 UTC (rev 8430)
@@ -8,5 +8,10 @@
*
* @model
*/
-public interface PagesModel extends PagesElement{
+public interface PagesModel extends PagesElement {
+
+ public PagesElement findElement(Object data);
+
+ public void load();
+
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesModelImpl.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesModelImpl.java 2008-05-29
12:46:03 UTC (rev 8429)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/ecore/pages/impl/PagesModelImpl.java 2008-05-29
12:47:49 UTC (rev 8430)
@@ -6,10 +6,23 @@
*/
package org.jboss.tools.seam.ui.pages.editor.ecore.pages.impl;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.draw2d.geometry.Dimension;
+import org.eclipse.draw2d.geometry.Point;
import org.eclipse.emf.ecore.EClass;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesProcessStructureHelper;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.Link;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.Page;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesElement;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesFactory;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesModel;
import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesPackage;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PgException;
/**
* <!-- begin-user-doc -->
@@ -21,9 +34,24 @@
* @generated
*/
public class PagesModelImpl extends PagesElementImpl implements PagesModel {
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @generated NOT
+ */
+ SeamPagesProcessStructureHelper h = SeamPagesProcessStructureHelper.getInstance();
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ Map<XModelObject, PagesElement> elements = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
* @generated
*/
protected PagesModelImpl() {
@@ -40,4 +68,95 @@
return PagesPackage.Literals.PAGES_MODEL;
}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+
+ public PagesElement findElement(Object data) {
+ if(data instanceof XModelObject) {
+ PagesElement result = elements.get(data);
+ //Check null and something else
+ return result;
+ }
+ return null;
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated NOT
+ */
+ public void load() {
+ XModelObject installedProcess = (XModelObject)getData();
+ if(installedProcess == null) return;
+
+ elements = new HashMap<XModelObject, PagesElement>();
+ XModelObject[] is = h.getItems(installedProcess);
+ for (int i = 0; i < is.length; i++) {
+ String type = is[i].getAttributeValue(SeamPagesConstants.ATTR_TYPE);
+ if(SeamPagesConstants.TYPE_PAGE.equals(type)) {
+ Page page = PagesFactory.eINSTANCE.createPage();
+ page.setName(h.getPageTitle(is[i]));
+ int[] shape = h.asIntArray(is[i], "shape");
+ if(shape != null && shape.length >= 2) {
+ page.setLocation(new Point(shape[0],shape[1]));
+ }
+ if(shape != null && shape.length >= 4) {
+ page.setSize(new Dimension(shape[2],shape[3]));
+ }
+ page.setData(is[i]);
+ getChildren().add(page);
+ elements.put(is[i], page);
+ } else if(SeamPagesConstants.TYPE_EXCEPTION.equals(type)) {
+ PgException exc = PagesFactory.eINSTANCE.createPgException();
+ exc.setName(is[i].getPresentationString());
+ int[] shape = h.asIntArray(is[i], "shape");
+ if(shape != null && shape.length >= 2) {
+ exc.setLocation(new Point(shape[0],shape[1]));
+ }
+ if(shape != null && shape.length >= 4) {
+ exc.setSize(new Dimension(shape[2],shape[3]));
+ }
+ exc.setData(is[i]);
+ getChildren().add(exc);
+ //maybe we need other map for exceptions?
+ elements.put(is[i], exc);
+ } else {
+ //TODO
+ }
+ }
+
+ for (int i = 0; i < is.length; i++) {
+ String type = is[i].getAttributeValue(SeamPagesConstants.ATTR_TYPE);
+ if(SeamPagesConstants.TYPE_PAGE.equals(type)
+ || SeamPagesConstants.TYPE_EXCEPTION.equals(type)) {
+ PagesElement from = elements.get(is[i]);
+ if(from == null) {
+ //TODO report failure
+ continue;
+ }
+ XModelObject[] os = h.getOutputs(is[i]);
+ for (int j = 0; j < os.length; j++) {
+ XModelObject t = h.getItemOutputTarget(os[j]);
+ if(t == null) {
+ //TODO report failure
+ continue;
+ }
+ PagesElement to = elements.get(t);
+ if(to == null) {
+ //TODO report failure
+ continue;
+ }
+ Link link = PagesFactory.eINSTANCE.createLink();
+ link.setFromElement(from);
+ link.setToElement(to);
+ link.setName(h.getItemOutputPresentation(os[j]));
+ link.setShortcut(h.isShortcut(os[j]));
+ }
+ }
+ }
+
+ }
+
} //PagesModelImpl
Added:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/SelectItemWizard.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/SelectItemWizard.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/SelectItemWizard.java 2008-05-29
12:47:49 UTC (rev 8430)
@@ -0,0 +1,21 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.seam.ui.pages.editor.wizard;
+
+import org.jboss.tools.common.model.ui.wizards.query.*;
+
+public class SelectItemWizard extends AbstractQueryWizard {
+
+ public SelectItemWizard() {
+ setView(new SelectItemWizardView());
+ }
+
+}
Added:
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/SelectItemWizardView.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/SelectItemWizardView.java
(rev 0)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/wizard/SelectItemWizardView.java 2008-05-29
12:47:49 UTC (rev 8430)
@@ -0,0 +1,31 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Exadel, Inc. and Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.seam.ui.pages.editor.wizard;
+
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.jst.web.ui.wizards.process.SelectWebProcessItemWizardView;
+import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+
+public class SelectItemWizardView extends SelectWebProcessItemWizardView {
+
+ protected String getItemEntity() {
+ return SeamPagesConstants.ENT_PROCESS_ITEM;
+ }
+
+ protected String getKey(XModelObject o) {
+ String entity = o.getModelEntity().getName();
+ if(entity.equals(SeamPagesConstants.ENT_PROCESS_ITEM))
+ return o.getAttributeValue(SeamPagesConstants.ATTR_PATH);
+ String key = o.getParent().getAttributeValue(SeamPagesConstants.ATTR_PATH) +
":" + o.getPresentationString();
+ return key;
+ }
+
+}