[jbosstools-commits] JBoss Tools SVN: r9069 - in trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor: edit and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Fri Jul 4 05:57:04 EDT 2008


Author: scabanovich
Date: 2008-07-04 05:57:04 -0400 (Fri, 04 Jul 2008)
New Revision: 9069

Added:
   trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/SelectionUtil.java
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/PagesEditor.java
Log:
 	 JBIDE-1189

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-07-04 09:12:56 UTC (rev 9068)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesContextMenuProvider.java	2008-07-04 09:57:04 UTC (rev 9069)
@@ -24,12 +24,8 @@
 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;
-import org.jboss.tools.seam.ui.pages.editor.edit.ParamEditPart;
+import org.jboss.tools.seam.ui.pages.editor.edit.SelectionUtil;
 
 public class PagesContextMenuProvider	extends org.eclipse.gef.ContextMenuProvider {
 	private ActionRegistry actionRegistry;
@@ -68,7 +64,7 @@
 		ISelection s = getViewer().getSelection();
 		if(s.isEmpty() || !(s instanceof IStructuredSelection)) return;
 		IStructuredSelection ss = (IStructuredSelection)s;
-		XModelObject object = getTarget(ss.getFirstElement());
+		XModelObject object = SelectionUtil.getTarget(ss.getFirstElement());
 		if(object != null) {
 			Properties p = new Properties();
 			if(lastDownEvent != null) {
@@ -78,48 +74,11 @@
 				p.setProperty("mouse.y", "" + point.y);
 				lastDownEvent = null;
 			}
-			XModelObjectActionList list = new XModelObjectActionList(object.getModelEntity().getActionList(), object, getTargets(ss), new Object[]{object, p});
+			XModelObjectActionList list = new XModelObjectActionList(object.getModelEntity().getActionList(), object, SelectionUtil.getTargets(ss), new Object[]{object, p});
 			Menu menu = getMenu();
 			list.createMenu(menu);
 			list.removeLastSeparator(menu);
 		}
 	}
 	
-	private XModelObject[] getTargets(IStructuredSelection ss) {
-		if(ss.size() < 2) return null;
-		Iterator it = ss.iterator();
-		ArrayList<XModelObject> l = new ArrayList<XModelObject>();
-		while(it.hasNext()) {
-			XModelObject o = getTarget(it.next());
-			if(o != null) l.add(o);		
-		}
-		return l.toArray(new XModelObject[0]);
-	}
-	
-	private XModelObject getTarget(Object selected) {
-		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();
-			}
-		}
-		if(selected instanceof ParamEditPart) {
-			ParamEditPart part = (ParamEditPart)selected;
-			Object partModel = part.getParamModel().getPagesModel();
-			if(partModel instanceof PagesElement) {
-				return (XModelObject)((PagesElement)partModel).getData();
-			}
-		}
-
-		return null;
-	}
-
-}
\ No newline at end of file
+}

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-07-04 09:12:56 UTC (rev 9068)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/PagesEditor.java	2008-07-04 09:57:04 UTC (rev 9069)
@@ -28,24 +28,16 @@
 import org.eclipse.draw2d.ConnectionLayer;
 import org.eclipse.draw2d.FigureCanvas;
 import org.eclipse.draw2d.FreeformViewport;
-import org.eclipse.draw2d.Graphics;
-import org.eclipse.draw2d.IFigure;
 import org.eclipse.draw2d.PositionConstants;
-import org.eclipse.draw2d.PrinterGraphics;
-import org.eclipse.draw2d.SWTGraphics;
 import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.gef.ContextMenuProvider;
 import org.eclipse.gef.DefaultEditDomain;
 import org.eclipse.gef.EditPart;
-import org.eclipse.gef.GraphicalViewer;
 import org.eclipse.gef.KeyHandler;
-import org.eclipse.gef.LayerConstants;
 import org.eclipse.gef.SnapToGrid;
 import org.eclipse.gef.dnd.TemplateTransferDragSourceListener;
-import org.eclipse.gef.editparts.LayerManager;
 import org.eclipse.gef.editparts.ScalableFreeformRootEditPart;
 import org.eclipse.gef.editparts.ZoomListener;
 import org.eclipse.gef.editparts.ZoomManager;
@@ -60,7 +52,6 @@
 import org.eclipse.gef.palette.ToolEntry;
 import org.eclipse.gef.requests.SimpleFactory;
 import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.gef.ui.actions.WorkbenchPartAction;
 import org.eclipse.gef.ui.actions.ZoomInAction;
 import org.eclipse.gef.ui.actions.ZoomOutAction;
 import org.eclipse.gef.ui.palette.PaletteContextMenuProvider;
@@ -79,14 +70,8 @@
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
 import org.eclipse.jface.viewers.StructuredSelection;
-import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.KeyEvent;
 import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.printing.PrintDialog;
-import org.eclipse.swt.printing.Printer;
-import org.eclipse.swt.printing.PrinterData;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Display;
@@ -105,7 +90,7 @@
 import org.jboss.tools.common.gef.outline.xpl.DiagramContentOutlinePage;
 import org.jboss.tools.common.model.XModelObject;
 import org.jboss.tools.common.model.XModelTransferBuffer;
-import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+import org.jboss.tools.jst.web.model.ReferenceObject;
 import org.jboss.tools.seam.pages.xml.model.handlers.SelectOnDiagramHandler;
 import org.jboss.tools.seam.pages.xml.model.helpers.SeamPagesDiagramStructureHelper;
 import org.jboss.tools.seam.ui.pages.SeamUIPagesMessages;
@@ -113,15 +98,13 @@
 import org.jboss.tools.seam.ui.pages.editor.dnd.FileTransferDropTargetListener;
 import org.jboss.tools.seam.ui.pages.editor.dnd.PagesTemplateTransferDropTargetListener;
 import org.jboss.tools.seam.ui.pages.editor.dnd.XModelTransferDropTargetListener;
-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.ParamEditPart;
+import org.jboss.tools.seam.ui.pages.editor.edit.SelectionUtil;
 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;
@@ -559,6 +542,10 @@
 			if (viewer == null)
 				return null;
 			XModelObject o = getTarget(viewer.getSelection());
+			if(!(o instanceof ReferenceObject)) {
+				//Case of param object which does not have wrapper in diagram model.
+				return o;
+			}
 			XModelObject ref = SeamPagesDiagramStructureHelper.instance.getReference(o);
 			return ref;
 		}
@@ -639,34 +626,9 @@
 	private XModelObject getTarget(ISelection ss) {
 		if (ss.isEmpty() || !(ss instanceof StructuredSelection))
 			return null;
-		return getTarget(((StructuredSelection) ss).getFirstElement());
+		return SelectionUtil.getTarget(((StructuredSelection) ss).getFirstElement());
 	}
 
-	private XModelObject getTarget(Object selected) {
-		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();
-			}
-		}
-		if(selected instanceof ParamEditPart) {
-			ParamEditPart part = (ParamEditPart)selected;
-			Object partModel = part.getParamModel().getPagesModel();
-			if(partModel instanceof PagesElement) {
-				return (XModelObject)((PagesElement)partModel).getData();
-			}
-		}
-		return null;
-	}
-
 	protected void hookGraphicalViewer() {
 		getSelectionSynchronizer().addViewer(getGraphicalViewer());
 	}

Added: trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/SelectionUtil.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/SelectionUtil.java	                        (rev 0)
+++ trunk/seam/plugins/org.jboss.tools.seam.ui.pages/src/org/jboss/tools/seam/ui/pages/editor/edit/SelectionUtil.java	2008-07-04 09:57:04 UTC (rev 9069)
@@ -0,0 +1,92 @@
+/*******************************************************************************
+ * 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.edit;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.jboss.tools.common.model.XModelObject;
+import org.jboss.tools.jst.web.model.ReferenceObject;
+import org.jboss.tools.seam.pages.xml.model.SeamPagesConstants;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.Link;
+import org.jboss.tools.seam.ui.pages.editor.ecore.pages.PagesElement;
+
+/**
+ * 
+ * @author Viacheslav Kabanovich
+ *
+ */
+public class SelectionUtil {
+
+	/**
+	 * Returns array of XModelObject objects associated with selection 
+	 * containing PagesEditPart objects.
+	 * @param ss
+	 * @return
+	 */
+	public static XModelObject[] getTargets(IStructuredSelection ss) {
+		if(ss.size() < 2) return null;
+		Iterator it = ss.iterator();
+		ArrayList<XModelObject> l = new ArrayList<XModelObject>();
+		while(it.hasNext()) {
+			XModelObject o = getTarget(it.next());
+			if(o != null) l.add(o);		
+		}
+		return l.toArray(new XModelObject[0]);
+	}
+	
+	/**
+	 * Returns XModelObject associated with PagesEditPart
+	 * @param selected
+	 * @return
+	 */
+	public static XModelObject getTarget(Object selected) {
+		if(selected instanceof ParamEditPart) {
+			ParamEditPart part = (ParamEditPart)selected;
+			Object partModel = part.getParamModel().getParent();
+			if(partModel instanceof PagesElement) {
+				XModelObject o = (XModelObject)((PagesElement)partModel).getData();
+				if(o instanceof ReferenceObject) {
+					XModelObject p = ((ReferenceObject)o).getReference();
+					if(p != null) {
+						String name = part.getParamModel().getName();
+						XModelObject[] cs = p.getChildren();
+						for (int i = 0; i < cs.length; i++) {
+							if(name.equals(cs[i].getAttributeValue(SeamPagesConstants.ATTR_NAME))) {
+								return cs[i];
+							}
+						}
+						
+					}
+				}
+				return o;
+			}
+		}
+		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;
+	}
+
+}




More information about the jbosstools-commits mailing list