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 }