001// License: GPL. See LICENSE file for details.
002package org.openstreetmap.josm.gui;
003
004import static org.openstreetmap.josm.gui.help.HelpUtil.ht;
005import static org.openstreetmap.josm.tools.I18n.marktr;
006
007import java.awt.Color;
008import java.awt.Graphics;
009import java.awt.geom.Rectangle2D;
010
011import javax.swing.JComponent;
012
013import org.openstreetmap.josm.Main;
014import org.openstreetmap.josm.gui.help.Helpful;
015
016public class MapScaler extends JComponent implements Helpful {
017
018    private final NavigatableComponent mv;
019
020    private static final int PADDING_RIGHT = 100;
021
022    public MapScaler(NavigatableComponent mv) {
023        this.mv = mv;
024        setSize(100+PADDING_RIGHT,30);
025        setOpaque(false);
026    }
027
028    @Override
029    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    public static Color getColor() {
044        return Main.pref.getColor(marktr("scale"), Color.white);
045    }
046
047    @Override
048    public String helpTopic() {
049        return ht("/MapView/Scaler");
050    }
051}