001// License: GPL. See LICENSE file for details.
002
003package org.openstreetmap.josm.gui;
004
005import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
006import static org.openstreetmap.josm.tools.I18n.marktr;
007
008import java.awt.Color;
009import java.awt.Graphics;
010import java.awt.geom.Rectangle2D;
011
012import javax.swing.JComponent;
013
014import org.openstreetmap.josm.Main;
015import org.openstreetmap.josm.gui.help.Helpful;
016
017public 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    @Override
049    public String helpTopic() {
050        return ht("/MapView/Scaler");
051    }
052}