KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > editor2d > tools > ShearTracker


1 /**
2  * <p> Project: com.nightlabs.editor2d </p>
3  * <p> Copyright: Copyright (c) 2004 </p>
4  * <p> Company: NightLabs GmbH (Germany) </p>
5  * <p> Creation Date: 14.04.2005 </p>
6  * <p> Author: Daniel Mazurek </p>
7 **/

8 package com.nightlabs.editor2d.tools;
9
10 import java.util.List JavaDoc;
11
12 import org.eclipse.draw2d.PositionConstants;
13 import org.eclipse.gef.GraphicalEditPart;
14 import org.eclipse.gef.Request;
15 import org.eclipse.swt.graphics.Cursor;
16
17 import com.nightlabs.editor2d.custom.EditorCursors;
18 import com.nightlabs.editor2d.edit.AbstractDrawComponentEditPart;
19 import com.nightlabs.editor2d.request.EditorShearRequest;
20 import com.nightlabs.editor2d.util.J2DUtil;
21
22
23 public class ShearTracker
24 extends AbstractDragTracker
25 {
26   protected int direction;
27   
28   /**
29    * @param owner
30    */

31   public ShearTracker(GraphicalEditPart owner, int direction) {
32     super(owner);
33     this.direction = direction;
34   }
35
36   /* (non-Javadoc)
37    * @see org.eclipse.gef.tools.SimpleDragTracker#createSourceRequest()
38    */

39   protected Request createSourceRequest()
40   {
41     EditorShearRequest request = new EditorShearRequest();
42     request.setType(REQ_SHEAR);
43     request.setLocation(getLocation());
44     request.setDirection(direction);
45     List JavaDoc selectedParts = getCurrentViewer().getSelectedEditParts();
46     if (!selectedParts.isEmpty()) {
47       AbstractDrawComponentEditPart part = (AbstractDrawComponentEditPart) selectedParts.get(0);
48       request.setShearBounds(J2DUtil.toDraw2D(part.getDrawComponent().getBounds()));
49     }
50     request.setEditParts(selectedParts);
51     return request;
52   }
53
54   /* (non-Javadoc)
55    * @see org.eclipse.gef.tools.SimpleDragTracker#updateSourceRequest()
56    */

57   protected void updateSourceRequest()
58   {
59 // Point loq = getLocation().getCopy();
60
// loq.translate(getStartLocation());
61
// getEditorShearRequest().setLocation(loq);
62
getEditorShearRequest().setLocation(getLocation());
63   }
64  
65   protected EditorShearRequest getEditorShearRequest() {
66     return (EditorShearRequest) getSourceRequest();
67   }
68   
69   /* (non-Javadoc)
70    * @see org.eclipse.gef.tools.AbstractTool#getCommandName()
71    */

72   protected String JavaDoc getCommandName() {
73     return REQ_SHEAR;
74   }
75
76   /**
77    * @see org.eclipse.gef.tools.AbstractTool#getDefaultCursor()
78    */

79   protected Cursor getDefaultCursor()
80   {
81     switch(direction)
82     {
83         case(PositionConstants.NORTH):
84         case(PositionConstants.SOUTH):
85           return EditorCursors.SHEAR_HORIZONTAL;
86         case(PositionConstants.WEST):
87         case(PositionConstants.EAST):
88           return EditorCursors.SHEAR_VERTICAL;
89     }
90     return EditorCursors.NO;
91   }
92 }
93
Popular Tags