KickJava   Java API By Example, From Geeks To Geeks.

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


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: 12.01.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.gef.tools.PanningSelectionTool;
13 import org.eclipse.swt.SWT;
14 import org.eclipse.swt.events.KeyEvent;
15
16 import com.nightlabs.editor2d.EditorStateManager;
17 import com.nightlabs.editor2d.request.EditorRequestConstants;
18
19
20 public class EditorSelectionTool
21 extends PanningSelectionTool
22 implements EditorRequestConstants
23 {
24   protected static final int STATE_ROTATE = PanningSelectionTool.MAX_STATE << 1;
25   protected static final int STATE_ROTATE_IN_PROGRESS = STATE_ROTATE << 1;
26   protected static final int MAX_STATE = STATE_ROTATE;
27   
28   public EditorSelectionTool() {
29     super();
30   }
31   
32   protected boolean handleDoubleClick(int button)
33   {
34     if (EditorStateManager.getCurrentState() == EditorStateManager.STATE_NORMAL_SELECTION)
35     {
36       List JavaDoc selectedParts = getCurrentViewer().getSelectedEditParts();
37       if (!selectedParts.isEmpty()) {
38         stateTransition(STATE_ROTATE, STATE_INITIAL);
39         EditorStateManager.setRotateMode(selectedParts);
40       }
41     }
42     else if (EditorStateManager.getCurrentState() == EditorStateManager.STATE_ROTATE)
43     {
44       List JavaDoc selectedParts = getCurrentViewer().getSelectedEditParts();
45       if (!selectedParts.isEmpty()) {
46         stateTransition(STATE_ROTATE, STATE_INITIAL);
47         EditorStateManager.setNormalSelectionMode(selectedParts);
48       }
49     }
50     return true;
51   }
52     
53   protected String JavaDoc getCommandName()
54   {
55     if (isInState(STATE_ROTATE) || isInState(STATE_ROTATE_IN_PROGRESS))
56       return REQ_ROTATE;
57   
58     return super.getCommandName();
59   }
60      
61   public void activate()
62   {
63     EditorStateManager.setCurrentState(EditorStateManager.STATE_NORMAL_SELECTION);
64     super.activate();
65   }
66     
67   protected boolean handleKeyDown(KeyEvent e)
68   {
69     if (e.character == SWT.ESC)
70     {
71       EditorStateManager.setCurrentState(EditorStateManager.STATE_NORMAL_SELECTION);
72       getCurrentViewer().deselectAll();
73     }
74       
75     return super.handleKeyDown(e);
76   }
77     
78 }
79
Popular Tags