1 27 28 package org.nightlabs.editor2d.handle; 29 30 import org.eclipse.draw2d.Cursors; 31 import org.eclipse.draw2d.LineBorder; 32 import org.eclipse.draw2d.geometry.Dimension; 33 import org.eclipse.draw2d.geometry.Rectangle; 34 import org.eclipse.gef.DragTracker; 35 import org.eclipse.gef.handles.SquareHandle; 36 import org.nightlabs.editor2d.edit.ShapeDrawComponentEditPart; 37 import org.nightlabs.editor2d.tools.ShapeEditTracker; 38 39 40 public class ShapeEditHandle 41 extends SquareHandle 42 { 43 protected ShapeDrawComponentEditPart owner; 44 protected int pathSegmentIndex; 45 46 public ShapeEditHandle(ShapeDrawComponentEditPart owner, int pathSegmentIndex) 47 { 48 super(owner, new ShapeHandleLocator(owner, pathSegmentIndex)); 49 this.owner = owner; 50 this.pathSegmentIndex = pathSegmentIndex; 51 initialize(); 52 } 54 55 58 protected DragTracker createDragTracker() { 59 return new ShapeEditTracker(owner, pathSegmentIndex); 60 } 61 62 public static final int DEFAULT_SIZE = 6; 63 64 68 protected void initialize() { 69 setOpaque(false); 70 setBorder(new LineBorder(1)); 71 setCursor(Cursors.CROSS); 72 setPreferredSize(new Dimension(DEFAULT_SIZE, DEFAULT_SIZE)); 73 setSize(DEFAULT_SIZE, DEFAULT_SIZE); 74 75 } 77 78 public void setBounds(Rectangle rect) 79 { 80 super.setBounds(new Rectangle(rect.x, rect.y, DEFAULT_SIZE, DEFAULT_SIZE)); 81 } 82 83 private boolean fixed = false; 84 85 89 protected boolean isFixed() { 90 return fixed; 91 } 92 93 97 public void setFixed(boolean fixed) 98 { 99 this.fixed = fixed; 100 if (fixed) 101 setCursor(Cursors.NO); 102 else 103 setCursor(Cursors.CROSS); 104 } 105 106 116 } 117 | Popular Tags |