1 8 package com.nightlabs.editor2d.tools; 9 10 import org.apache.log4j.Logger; 11 import org.eclipse.draw2d.FigureCanvas; 12 import org.eclipse.draw2d.Viewport; 13 import org.eclipse.draw2d.geometry.Point; 14 import org.eclipse.gef.EditPartViewer; 15 import org.eclipse.gef.Request; 16 import org.eclipse.gef.SnapToHelper; 17 import org.eclipse.gef.requests.CreationFactory; 18 import org.eclipse.gef.tools.CreationTool; 19 import org.eclipse.gef.ui.parts.ScrollingGraphicalViewer; 20 21 import com.nightlabs.editor2d.request.EditorCreateRequest; 22 import com.nightlabs.editor2d.request.EditorRequestConstants; 23 24 25 public abstract class EditorCreationTool 26 extends CreationTool 27 implements EditorRequestConstants 29 { 30 protected SnapToHelper helper; 31 32 public static final Logger LOGGER = Logger.getLogger(EditorCreationTool.class); 33 34 37 public EditorCreationTool(CreationFactory aFactory) { 38 super(aFactory); 39 } 40 41 45 protected Request createTargetRequest() 46 { 47 EditorCreateRequest request = new EditorCreateRequest(); 48 request.setFactory(getFactory()); 49 return request; 50 } 51 52 protected Point getRealLocation() 53 { 54 Point p = getLocation(); 55 Point realLocation; 56 57 EditPartViewer view = getCurrentViewer(); 58 if (view instanceof ScrollingGraphicalViewer) 59 { 60 ScrollingGraphicalViewer viewer = (ScrollingGraphicalViewer) view; 61 FigureCanvas canvas = (FigureCanvas) viewer.getControl(); 62 Viewport viewport = canvas.getViewport(); 63 Point viewLocation = viewport.getViewLocation(); 64 realLocation = p.getTranslated(viewLocation); 65 return realLocation; 66 } 67 return p; 68 } 69 70 protected EditorCreateRequest getEditorCreateRequest() { 71 return (EditorCreateRequest)getTargetRequest(); 72 } 73 74 77 protected String getDebugName() { 78 return "EditorCreation Tool"; } 80 } 81 82 83 | Popular Tags |