source: josm/trunk/src/org/openstreetmap/josm/actions/mapmode/MapMode.java@ 1180

Last change on this file since 1180 was 1180, checked in by stoecker, 15 years ago

fixed bug #1871, removed all deprecations

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1// License: GPL. See LICENSE file for details.
2package org.openstreetmap.josm.actions.mapmode;
3
4import java.awt.Cursor;
5import java.awt.event.ActionEvent;
6import java.awt.event.MouseEvent;
7import java.awt.event.MouseListener;
8import java.awt.event.MouseMotionListener;
9
10import org.openstreetmap.josm.Main;
11import org.openstreetmap.josm.actions.JosmAction;
12import org.openstreetmap.josm.gui.MapFrame;
13import org.openstreetmap.josm.tools.ImageProvider;
14import org.openstreetmap.josm.tools.Shortcut;
15
16/**
17 * A class implementing MapMode is able to be selected as an mode for map editing.
18 * As example scrolling the map is a MapMode, connecting Nodes to new Ways
19 * is another.
20 *
21 * MapModes should register/deregister all necessary listeners on the map's view
22 * control.
23 */
24abstract public class MapMode extends JosmAction implements MouseListener, MouseMotionListener {
25 private final Cursor cursor;
26 private Cursor oldCursor;
27
28 /**
29 * Constructor for mapmodes without an menu
30 */
31 public MapMode(String name, String iconName, String tooltip, Shortcut shortcut, MapFrame mapFrame, Cursor cursor) {
32 super(name, "mapmode/"+iconName, tooltip, shortcut, false);
33 this.cursor = cursor;
34 putValue("active", false);
35 }
36
37 /**
38 * Constructor for mapmodes with an menu (no shortcut will be registered)
39 */
40 public MapMode(String name, String iconName, String tooltip, MapFrame mapFrame, Cursor cursor) {
41 putValue(NAME, name);
42 putValue(SMALL_ICON, ImageProvider.get("mapmode", iconName));
43 putValue(SHORT_DESCRIPTION, tooltip);
44 this.cursor = cursor;
45 }
46
47 public void enterMode() {
48 putValue("active", true);
49 oldCursor = Main.map.mapView.getCursor();
50 Main.map.mapView.setCursor(cursor);
51 updateStatusLine();
52 }
53 public void exitMode() {
54 putValue("active", false);
55 Main.map.mapView.setCursor(oldCursor);
56 }
57
58 protected void updateStatusLine() {
59 Main.map.statusLine.setHelpText(getModeHelpText());
60 Main.map.statusLine.repaint();
61 }
62
63 public String getModeHelpText() {
64 return "";
65 }
66 /**
67 * Call selectMapMode(this) on the parent mapFrame.
68 */
69 public void actionPerformed(ActionEvent e) {
70 if (Main.map != null)
71 Main.map.selectMapMode(this);
72 }
73
74 public void mouseReleased(MouseEvent e) {}
75 public void mouseExited(MouseEvent e) {}
76 public void mousePressed(MouseEvent e) {}
77 public void mouseClicked(MouseEvent e) {}
78 public void mouseEntered(MouseEvent e) {}
79 public void mouseMoved(MouseEvent e) {}
80 public void mouseDragged(MouseEvent e) {}
81}
Note: See TracBrowser for help on using the repository browser.