001    // License: GPL. See LICENSE file for details.
002    
003    package org.openstreetmap.josm.gui;
004    
005    import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
006    import static org.openstreetmap.josm.tools.I18n.marktr;
007    
008    import java.awt.Color;
009    import java.awt.Graphics;
010    import java.awt.geom.Rectangle2D;
011    
012    import javax.swing.JComponent;
013    
014    import org.openstreetmap.josm.Main;
015    import org.openstreetmap.josm.gui.help.Helpful;
016    
017    public class MapScaler extends JComponent implements Helpful {
018    
019        private final NavigatableComponent mv;
020    
021        private static int PADDING_RIGHT = 100;
022    
023        public MapScaler(NavigatableComponent mv) {
024            this.mv = mv;
025            setSize(100+PADDING_RIGHT,30);
026            setOpaque(false);
027        }
028    
029        @Override public void paint(Graphics g) {
030            String text = mv.getDist100PixelText();
031            Rectangle2D bound = g.getFontMetrics().getStringBounds(text, g);
032            g.setColor(getColor());
033            g.drawLine(0, 5, 99, 5);
034            g.drawLine(0, 0, 0, 10);
035            g.drawLine(99, 0, 99, 10);
036            g.drawLine(49, 3, 49, 7);
037            g.drawLine(24, 3, 24, 7);
038            g.drawLine(74, 3, 74, 7);
039            g.drawString(text, (int)(100-bound.getWidth()/2), 23);
040            g.drawString("0", 0, 23);
041        }
042    
043        static public Color getColor()
044        {
045            return Main.pref.getColor(marktr("scale"), Color.white);
046        }
047    
048        public String helpTopic() {
049            return ht("/MapView/Scaler");
050        }
051    }