/[schmitzm]/trunk/src/skrueger/geotools/XMapPaneTool.java
ViewVC logotype

Diff of /trunk/src/skrueger/geotools/XMapPaneTool.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 653 by alfonx, Mon Feb 1 15:09:18 2010 UTC revision 654 by alfonx, Mon Feb 1 18:13:14 2010 UTC
# Line 1  Line 1 
1  package skrueger.geotools;  package skrueger.geotools;
2    
3  import java.awt.Cursor;  import java.awt.Cursor;
4    import java.awt.event.InputEvent;
5  import java.awt.event.KeyEvent;  import java.awt.event.KeyEvent;
6  import java.util.HashMap;  import java.util.HashMap;
7  import java.util.Locale;  import java.util.Locale;
# Line 10  import javax.swing.Icon; Line 11  import javax.swing.Icon;
11  import javax.swing.ImageIcon;  import javax.swing.ImageIcon;
12  import javax.swing.KeyStroke;  import javax.swing.KeyStroke;
13    
 import com.sun.org.apache.bcel.internal.generic.NEW;  
   
14  import schmitzm.lang.LangUtil;  import schmitzm.lang.LangUtil;
15  import schmitzm.lang.ResourceProvider;  import schmitzm.lang.ResourceProvider;
16  import schmitzm.swing.SwingUtil;  import schmitzm.swing.SwingUtil;
# Line 23  import schmitzm.swing.event.MouseInputTy Line 22  import schmitzm.swing.event.MouseInputTy
22   */   */
23  public class XMapPaneTool {  public class XMapPaneTool {
24    
25            public XMapPaneTool() {
26                    addDefaultKeyboardAssignments(this);
27            }
28    
29          public static ResourceProvider RESOURCE = new ResourceProvider(LangUtil          public static ResourceProvider RESOURCE = new ResourceProvider(LangUtil
30                          .extendPackagePath(MapPaneToolBar.class,                          .extendPackagePath(MapPaneToolBar.class,
# Line 35  public class XMapPaneTool { Line 37  public class XMapPaneTool {
37          /** The cursor of the mouse if the tool is active **/          /** The cursor of the mouse if the tool is active **/
38          Cursor cursor = null;          Cursor cursor = null;
39    
40          /** A tool-tip for the tool , optinal **/          /** A tool-tip for the tool , optional **/
41          String toolTip = null;          String toolTip = null;
42    
43          /** The icon for the button **/          /** The icon for the button **/
# Line 84  public class XMapPaneTool { Line 86  public class XMapPaneTool {
86                  ZOOM_IN.mouseActions.put(MouseInputType.Wheel,                  ZOOM_IN.mouseActions.put(MouseInputType.Wheel,
87                                  XMapPaneAction_Zoom.ZOOM_IN);                                  XMapPaneAction_Zoom.ZOOM_IN);
88    
                 // + and - keys zoom too  
                 ZOOM_IN.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0),  
                                 XMapPaneAction_Zoom.ZOOM_IN);  
                 ZOOM_IN.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0),  
                                 XMapPaneAction_Zoom.ZOOM_OUT);  
89          }          }
90    
91          /** The configuration of the default ZOOM IN {@link XMapPaneTool} **/          /** The configuration of the default ZOOM IN {@link XMapPaneTool} **/
# Line 115  public class XMapPaneTool { Line 112  public class XMapPaneTool {
112                  ZOOM_OUT.mouseActions.put(MouseInputType.Wheel,                  ZOOM_OUT.mouseActions.put(MouseInputType.Wheel,
113                                  XMapPaneAction_Zoom.ZOOM_IN);                                  XMapPaneAction_Zoom.ZOOM_IN);
114    
                 // + and - keys zoom  
                 ZOOM_OUT.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0),  
                                 XMapPaneAction_Zoom.ZOOM_IN);  
                 ZOOM_OUT.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0),  
                                 XMapPaneAction_Zoom.ZOOM_OUT);  
115          }          }
116            
117          /** The configuration of the PAN {@link XMapPaneTool} **/          /** The configuration of the PAN {@link XMapPaneTool} **/
118          public static final XMapPaneTool PAN = new XMapPaneTool();          public static final XMapPaneTool PAN = new XMapPaneTool();
119          static {          static {
# Line 131  public class XMapPaneTool { Line 123  public class XMapPaneTool {
123                  PAN.cursor = SwingUtil.PAN_CURSOR;                  PAN.cursor = SwingUtil.PAN_CURSOR;
124    
125                  // Left mouse click & drag zoom in                  // Left mouse click & drag zoom in
126                  PAN.mouseActions.put(MouseInputType.LClick,                  PAN.mouseActions.put(MouseInputType.LClick, XMapPaneAction.PAN);
127                                  XMapPaneAction.PAN);                  PAN.mouseActions.put(MouseInputType.LDrag, XMapPaneAction.PAN);
                 PAN.mouseActions.put(MouseInputType.LDrag,  
                                 XMapPaneAction.PAN);  
128    
129                  // Right mouse click & drag zoom out                  // Right mouse click & drag zoom out
130                  PAN.mouseActions.put(MouseInputType.RClick,                  PAN.mouseActions.put(MouseInputType.RClick, XMapPaneAction.PAN);
131                                  XMapPaneAction.PAN);                  PAN.mouseActions.put(MouseInputType.RDrag, XMapPaneAction.PAN);
                 PAN.mouseActions.put(MouseInputType.RDrag,  
                                 XMapPaneAction.PAN);  
132    
133                  // Mousewheel can zoom                  // Mousewheel can zoom
134                  PAN.mouseActions.put(MouseInputType.Wheel,                  PAN.mouseActions.put(MouseInputType.Wheel, XMapPaneAction_Zoom.ZOOM_IN);
                                 XMapPaneAction_Zoom.ZOOM_IN);  
135    
                 // + and - keys zoom  
                 PAN.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0),  
                                 XMapPaneAction_Zoom.ZOOM_IN);  
                 PAN.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0),  
                                 XMapPaneAction_Zoom.ZOOM_OUT);  
136          }          }
           
137    
138          /** The configuration of the INFO {@link XMapPaneTool} **/          /** The configuration of the INFO {@link XMapPaneTool} **/
139          public static final XMapPaneTool INFO = new XMapPaneTool();          public static final XMapPaneTool INFO = new XMapPaneTool();
140    
141          static {          static {
142                  INFO.icon = new ImageIcon(MapView.class                  INFO.icon = new ImageIcon(MapView.class
143                                  .getResource("resource/icons/info.png"));                                  .getResource("resource/icons/info.png"));
# Line 165  public class XMapPaneTool { Line 147  public class XMapPaneTool {
147                  // Left mouse click & drag zoom in                  // Left mouse click & drag zoom in
148                  INFO.mouseActions.put(MouseInputType.LClick,                  INFO.mouseActions.put(MouseInputType.LClick,
149                                  XMapPaneAction.SELECT_ONE_FROM_TOP);                                  XMapPaneAction.SELECT_ONE_FROM_TOP);
150  //              INFO.mouseActions.put(MouseInputType.LDrag,                  // INFO.mouseActions.put(MouseInputType.LDrag,
151  //                              XMapPaneAction.SELECT_ONE_FROM_TOP);                  // XMapPaneAction.SELECT_ONE_FROM_TOP);
152    
153                    INFO.mouseActions.put(MouseInputType.RDrag, XMapPaneAction.PAN);
154    
155                    // Mousewheel can zoom
156                    INFO.mouseActions
157                                    .put(MouseInputType.Wheel, XMapPaneAction_Zoom.ZOOM_IN);
158    
159            }
160    
161                  INFO.mouseActions.put(MouseInputType.RDrag,          public static final XMapPaneTool SELECTION_ADD = new XMapPaneTool();
162            static {
163                    SELECTION_ADD.icon = new ImageIcon(MapView.class
164                                    .getResource("resource/icons/selection_add.png"));
165                    SELECTION_ADD.toolTip = R("MapPaneButtons.Selection.AddSelection.TT"); // TODO
166                    // move
167                    // to
168                    // schmitzm
169    
170                    SELECTION_ADD.cursor = SwingUtil.SELECTION_ADD_CURSOR;
171    
172                    // Left mouse click & drag zoom in
173                    SELECTION_ADD.mouseActions.put(MouseInputType.LClick,
174                                    XMapPaneAction.SELECT_ALL);
175                    SELECTION_ADD.mouseActions.put(MouseInputType.LDrag,
176                                    XMapPaneAction.SELECT_ALL);
177    
178                    SELECTION_ADD.mouseActions
179                                    .put(MouseInputType.RDrag, XMapPaneAction.PAN);
180    
181                    // Mousewheel can zoom
182                    SELECTION_ADD.mouseActions.put(MouseInputType.Wheel,
183                                    XMapPaneAction_Zoom.ZOOM_IN);
184    
185                    // TODO Strg-A shoud select all
186            }
187    
188            public static final XMapPaneTool SELECTION_REMOVE = new XMapPaneTool();
189            static {
190                    SELECTION_REMOVE.icon = new ImageIcon(MapView.class
191                                    .getResource("resource/icons/selection_remove.png"));
192                    SELECTION_REMOVE.toolTip = R("MapPaneButtons.Selection.RemoveSelection.TT"); // TODO
193                    // move
194                    // to
195                    // schmitzm
196    
197                    SELECTION_REMOVE.cursor = SwingUtil.SELECTION_REMOVE_CURSOR;
198    
199                    // Left mouse click & drag zoom in
200                    SELECTION_REMOVE.mouseActions.put(MouseInputType.LClick,
201                                    XMapPaneAction.SELECT_ALL);
202                    SELECTION_REMOVE.mouseActions.put(MouseInputType.LDrag,
203                                    XMapPaneAction.SELECT_ALL);
204    
205                    SELECTION_REMOVE.mouseActions.put(MouseInputType.RDrag,
206                                  XMapPaneAction.PAN);                                  XMapPaneAction.PAN);
207    
208                  // Mousewheel can zoom                  // Mousewheel can zoom
209                  INFO.mouseActions.put(MouseInputType.Wheel,                  SELECTION_REMOVE.mouseActions.put(MouseInputType.Wheel,
210                                    XMapPaneAction_Zoom.ZOOM_IN);
211    
212                    // TODO Strg-A shoud select all
213            }
214    
215            public static final XMapPaneTool SELECTION_SET = new XMapPaneTool();
216            static {
217                    SELECTION_SET.icon = new ImageIcon(MapView.class
218                                    .getResource("resource/icons/selection_set.png"));
219                    SELECTION_SET.toolTip = R("MapPaneButtons.Selection.SetSelection.TT"); // TODO
220                    // move
221                    // to
222                    // schmitzm
223    
224                    SELECTION_SET.cursor = SwingUtil.SELECTION_SET_CURSOR;
225    
226                    // Left mouse click & drag zoom in
227                    SELECTION_SET.mouseActions.put(MouseInputType.LClick,
228                                    XMapPaneAction.SELECT_ALL);
229                    SELECTION_SET.mouseActions.put(MouseInputType.LDrag,
230                                    XMapPaneAction.SELECT_ALL);
231    
232                    SELECTION_SET.mouseActions
233                                    .put(MouseInputType.RDrag, XMapPaneAction.PAN);
234    
235                    // Mousewheel can zoom
236                    SELECTION_SET.mouseActions.put(MouseInputType.Wheel,
237                                  XMapPaneAction_Zoom.ZOOM_IN);                                  XMapPaneAction_Zoom.ZOOM_IN);
238    
239                    // TODO Strg-A shoud select all
240            }
241    
242            /**
243             * Adds default Keyboard actions to a given {@link XMapPaneTool}
244             */
245            public static void addDefaultKeyboardAssignments(XMapPaneTool tool) {
246    
247                  // + and - keys zoom                  // + and - keys zoom
248                  INFO.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0),                  tool.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_PLUS, 0),
249                                  XMapPaneAction_Zoom.ZOOM_IN);                                  XMapPaneAction_Zoom.ZOOM_IN);
250                  INFO.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0),                  tool.keyAction.put(KeyStroke.getKeyStroke(KeyEvent.VK_MINUS, 0),
251                                  XMapPaneAction_Zoom.ZOOM_OUT);                                  XMapPaneAction_Zoom.ZOOM_OUT);
                   
         }  
252    
253                    KeyStroke keyStroke;
254    
255                    for (int modifier : new int[] { InputEvent.ALT_DOWN_MASK,
256                                    InputEvent.ALT_GRAPH_DOWN_MASK, InputEvent.CTRL_DOWN_MASK,
257                                    InputEvent.SHIFT_DOWN_MASK, InputEvent.META_DOWN_MASK }) {
258    
259                            // RIGHT button pan
260                            keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, modifier);
261                            tool.keyAction.put(keyStroke, XMapPaneAction.PAN);
262                            tool.keyActionParams.put(keyStroke,
263                                            XMapPaneAction_Pan.Direction.RIGHT);
264    
265                            // LEFT button pan
266                            keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, modifier);
267                            tool.keyAction.put(keyStroke, XMapPaneAction.PAN);
268                            tool.keyActionParams.put(keyStroke,
269                                            XMapPaneAction_Pan.Direction.LEFT);
270    
271                            // UP button pan
272                            keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, modifier);
273                            tool.keyAction.put(keyStroke, XMapPaneAction.PAN);
274                            tool.keyActionParams
275                                            .put(keyStroke, XMapPaneAction_Pan.Direction.UP);
276    
277                            // DOWN button pan
278                            keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_UP, modifier);
279                            tool.keyAction.put(keyStroke, XMapPaneAction.PAN);
280                            tool.keyActionParams.put(keyStroke,
281                                            XMapPaneAction_Pan.Direction.DOWN);
282                    }
283    
284            }
285  }  }

Legend:
Removed from v.653  
changed lines
  Added in v.654

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26