1 27 28 package org.nightlabs.editor2d.tools; 29 30 import org.apache.log4j.Logger; 31 import org.eclipse.draw2d.FigureCanvas; 32 import org.eclipse.draw2d.Viewport; 33 import org.eclipse.draw2d.geometry.Point; 34 import org.eclipse.gef.EditPartViewer; 35 import org.eclipse.gef.Request; 36 import org.eclipse.gef.SnapToHelper; 37 import org.eclipse.gef.requests.CreationFactory; 38 import org.eclipse.gef.tools.CreationTool; 39 import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer; 40 41 import org.nightlabs.editor2d.request.EditorCreateRequest; 42 import org.nightlabs.editor2d.request.EditorRequestConstants; 43 44 45 public abstract class EditorCreationTool 46 extends CreationTool 47 implements EditorRequestConstants 49 { 50 protected SnapToHelper helper; 51 52 public static final Logger LOGGER = Logger.getLogger(EditorCreationTool.class); 53 54 57 public EditorCreationTool(CreationFactory aFactory) { 58 super(aFactory); 59 } 60 61 65 protected Request createTargetRequest() 66 { 67 EditorCreateRequest request = new EditorCreateRequest(); 68 request.setFactory(getFactory()); 69 return request; 70 } 71 72 protected Point getRealLocation() 73 { 74 Point p = getLocation(); 75 Point realLocation; 76 77 EditPartViewer view = getCurrentViewer(); 78 if (view instanceof ScrollingGraphicalViewer) 79 { 80 ScrollingGraphicalViewer viewer = (ScrollingGraphicalViewer) view; 81 FigureCanvas canvas = (FigureCanvas) viewer.getControl(); 82 Viewport viewport = canvas.getViewport(); 83 Point viewLocation = viewport.getViewLocation(); 84 realLocation = p.getTranslated(viewLocation); 85 return realLocation; 86 } 87 return p; 88 } 89 90 protected EditorCreateRequest getEditorCreateRequest() { 91 return (EditorCreateRequest)getTargetRequest(); 92 } 93 94 97 protected String getDebugName() { 98 return "EditorCreation Tool"; } 100 } 101 102 103 | Popular Tags |