Changeset 29261 in osm for applications/editors/josm/plugins/imageryadjust/src
- Timestamp:
- 2013-02-18T18:01:31+01:00 (12 years ago)
- Location:
- applications/editors/josm/plugins/imageryadjust/src
- Files:
-
- 2 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified applications/editors/josm/plugins/imageryadjust/src/imageryadjust/ImageryAdjustMapMode.java ¶
r27852 r29261 21 21 import org.openstreetmap.josm.tools.ImageProvider; 22 22 import org.openstreetmap.josm.tools.Shortcut; 23 24 25 public class ImageryAdjustMapMode extends MapMode implements MouseListener, MouseMotionListener, AWTEventListener, MapFrame.MapModeChangeListener{ 23 import utils.TimedKeyReleaseListener; 24 25 26 public class ImageryAdjustMapMode extends MapMode implements MouseListener, MouseMotionListener, MapFrame.MapModeChangeListener{ 26 27 boolean mouseDown; 27 28 EastNorth prevEastNorth; … … 29 30 private MapMode oldMapMode; 30 31 31 private final TreeSet<Integer> set = new TreeSet<Integer>();32 private Timer timer;33 private KeyEvent releaseEvent;34 32 35 33 public ImageryAdjustMapMode(MapFrame mapFrame) { … … 58 56 59 57 60 58 TimedKeyReleaseListener listener; 59 61 60 @Override public void enterMode() { 62 61 super.enterMode(); … … 76 75 adjustingLayer.setVisible(true); 77 76 } 78 Main.map.mapView.addMouseListener(this); 77 Main.map.mapView.addMouseListener(this); 79 78 Main.map.mapView.addMouseMotionListener(this); 80 timer = new Timer(0, new ActionListener() {81 @Override 82 public void actionPerformed(ActionEvent ae) {83 timer.stop();84 if (set.remove(releaseEvent.getKeyCode())) {85 doKeyReleaseEvent(releaseEvent);86 79 listener = new TimedKeyReleaseListener() { 80 @Override 81 protected void doKeyReleaseEvent(KeyEvent evt) { 82 if (releaseEvent.getKeyCode() == getShortcut().getKeyStroke().getKeyCode()) { 83 if (oldMapMode!=null && !(oldMapMode instanceof ImageryAdjustMapMode)) 84 Main.map.selectMapMode(oldMapMode); 85 } 87 86 } 88 89 }); 90 91 try { 92 Toolkit.getDefaultToolkit().addAWTEventListener(this, 93 AWTEvent.KEY_EVENT_MASK); 94 } catch (SecurityException ex) { 95 } 96 97 87 }; 98 88 } 99 89 … … 103 93 Main.map.mapView.removeMouseMotionListener(this); 104 94 adjustingLayer = null; 105 try { 106 Toolkit.getDefaultToolkit().removeAWTEventListener(this); 107 } catch (SecurityException ex) { 108 } 95 listener.stop(); 109 96 } 110 97 … … 137 124 } 138 125 139 private void doKeyEvent(KeyEvent keyEvent) {140 }141 142 private void doKeyReleaseEvent(KeyEvent releaseEvent) {143 if (releaseEvent.getKeyCode() == getShortcut().getKeyStroke().getKeyCode()) {144 if (oldMapMode!=null && !(oldMapMode instanceof ImageryAdjustMapMode))145 Main.map.selectMapMode(oldMapMode);146 }147 }148 149 126 @Override public boolean layerIsSupported(Layer l) { 150 127 //return hasImageryLayersToAdjust(); … … 153 130 154 131 @Override 155 public void eventDispatched(AWTEvent event) {156 if (event instanceof KeyEvent) {157 KeyEvent e=(KeyEvent) event;158 159 if (event.getID() == KeyEvent.KEY_PRESSED) {160 if (timer.isRunning()) {161 timer.stop();162 } else {163 if (set.add((e.getKeyCode()))) doKeyEvent((KeyEvent) event);164 }165 }166 if (event.getID() == KeyEvent.KEY_RELEASED) {167 if (timer.isRunning()) {168 timer.stop();169 if (set.remove(e.getKeyCode())) doKeyReleaseEvent(e);170 } else {171 releaseEvent = e;172 timer.restart();173 }174 }175 }176 }177 178 @Override179 132 public void mapModeChange(MapMode oldMapMode, MapMode newMapMode) { 180 133 this.oldMapMode = oldMapMode; 181 134 } 182 183 135 184 136 /**
Note:
See TracChangeset
for help on using the changeset viewer.