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 }