Changeset 99 in josm for src/org/openstreetmap/josm/gui/MapView.java
- Timestamp:
- 2006-04-27T01:29:55+02:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/gui/MapView.java
r98 r99 6 6 import java.awt.event.ComponentAdapter; 7 7 import java.awt.event.ComponentEvent; 8 import java.awt.event.MouseAdapter; 9 import java.awt.event.MouseEvent; 10 import java.beans.PropertyChangeEvent; 11 import java.beans.PropertyChangeListener; 8 12 import java.util.ArrayList; 9 13 import java.util.Collection; … … 12 16 13 17 import javax.swing.JOptionPane; 18 import javax.swing.JSlider; 19 import javax.swing.event.ChangeEvent; 20 import javax.swing.event.ChangeListener; 14 21 15 22 import org.openstreetmap.josm.Main; … … 76 83 private final AutoScaleAction autoScaleAction; 77 84 85 86 private final class Scaler extends JSlider implements PropertyChangeListener, ChangeListener { 87 boolean hovered = false; 88 public Scaler() { 89 super(0, 20); 90 addMouseListener(new MouseAdapter(){ 91 @Override public void mouseEntered(MouseEvent e) { 92 hovered = true; 93 } 94 @Override public void mouseExited(MouseEvent e) { 95 hovered = false; 96 } 97 }); 98 MapView.this.addPropertyChangeListener(this); 99 addChangeListener(this); 100 } 101 public void propertyChange(PropertyChangeEvent evt) { 102 if (evt.getPropertyName().equals("scale") && !getModel().getValueIsAdjusting()) 103 setValue(zoom()); 104 } 105 public void stateChanged(ChangeEvent e) { 106 if (!hovered) 107 return; 108 EastNorth pos = world; 109 for (int zoom = 0; zoom < getValue(); ++zoom) 110 pos = new EastNorth(pos.east()/2, pos.north()/2); 111 if (MapView.this.getWidth() < MapView.this.getHeight()) 112 zoomTo(center, pos.east()*2/(MapView.this.getWidth()-20)); 113 else 114 zoomTo(center, pos.north()*2/(MapView.this.getHeight()-20)); 115 } 116 } 117 78 118 public MapView(AutoScaleAction autoScaleAction) { 79 119 this.autoScaleAction = autoScaleAction; … … 91 131 } 92 132 }); 133 Scaler zoomScaler = new Scaler(); 134 zoomScaler.setOpaque(false); 135 add(zoomScaler); 136 zoomScaler.setBounds(0,0, 100, 30); 93 137 } 94 138 … … 182 226 if (x1 > 0 || y1 > 0 || x2 < getWidth() || y2 < getHeight()) 183 227 g.drawRect(x1, y1, x2-x1+1, y2-y1+1); 228 super.paint(g); 184 229 } 185 230
Note:
See TracChangeset
for help on using the changeset viewer.