001// License: GPL. For details, see LICENSE file. 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}