001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/graphics/ScaleBar.java $
002: /*---------------- FILE HEADER ------------------------------------------
003:
004: This file is part of deegree.
005: Copyright (C) 2001-2008 by:
006: EXSE, Department of Geography, University of Bonn
007: http://www.giub.uni-bonn.de/deegree/
008: lat/lon GmbH
009: http://www.lat-lon.de
010:
011: This library is free software; you can redistribute it and/or
012: modify it under the terms of the GNU Lesser General Public
013: License as published by the Free Software Foundation; either
014: version 2.1 of the License, or (at your option) any later version.
015:
016: This library is distributed in the hope that it will be useful,
017: but WITHOUT ANY WARRANTY; without even the implied warranty of
018: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: Lesser General Public License for more details.
020:
021: You should have received a copy of the GNU Lesser General Public
022: License along with this library; if not, write to the Free Software
023: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024:
025: Contact:
026:
027: Andreas Poth
028: lat/lon GmbH
029: Aennchenstr. 19
030: 53115 Bonn
031: Germany
032: E-Mail: poth@lat-lon.de
033:
034: Prof. Dr. Klaus Greve
035: Department of Geography
036: University of Bonn
037: Meckenheimer Allee 166
038: 53115 Bonn
039: Germany
040: E-Mail: greve@giub.uni-bonn.de
041:
042:
043: ---------------------------------------------------------------------------*/
044: package org.deegree.graphics;
045:
046: import java.awt.Color;
047: import java.awt.Font;
048: import java.awt.Graphics;
049: import java.text.NumberFormat;
050:
051: /**
052: *
053: *
054: * @version $Revision: 9340 $
055: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
056: * @author last edited by: $Author: apoth $
057: *
058: * @version $Revision: 9340 $, $Date: 2007-12-27 04:32:12 -0800 (Thu, 27 Dec 2007) $
059: */
060: public interface ScaleBar {
061:
062: public static int L_NONE = -1;
063:
064: public static int L_SCALE = 0;
065:
066: public static int L_SCALEDENOMINATOR = 1;
067:
068: /**
069: * will paint the scale bar to the passed graphic context
070: *
071: * @param g
072: * graphic context
073: */
074: void paint(Graphics g);
075:
076: /**
077: * sets the type of the label above the scale bar
078: *
079: * @param labelType
080: * lable type
081: */
082: void setTopLabel(int labelType);
083:
084: /**
085: * sets the type of the label below the scale bar
086: *
087: * @param labelType
088: * lable type
089: */
090: void setBottomLabel(int labelType);
091:
092: /**
093: * sets the scale as defined in the OGC WMS 1.1.1 specification. Scale is defined as the
094: * diagonal size of a pixel in the center of a map measured in meter. The setting of the scale
095: * will affect the value of the scale denominator
096: *
097: * @param scale
098: * map scale
099: */
100: void setScale(double scale);
101:
102: /**
103: * sets the scale denominator for the scale bar. The scale denominator is the scale expression
104: * as we know it for printed maps (e.g. 1:10000 1:5000). The passed value is expressed in
105: * meters. The setting of the scale denominator will affect the value of the scale
106: *
107: * @param scaleDen
108: * scale denominator value
109: */
110: void setScaleDenominator(double scaleDen);
111:
112: /**
113: * sets the units the scale and the scale denominater will be expressed at. Settings other than
114: * meter will cause that the passed values for scale and scale denominater will be recalculated
115: * for painting. it depends on the implementation what units are supported.
116: *
117: * @param units
118: * name units (meter, miles, feet etc.)
119: */
120: void setUnits(String units);
121:
122: /**
123: * sets the front color of the scale bar
124: *
125: * @param color
126: */
127: void setBarColor(Color color);
128:
129: /**
130: * sets the label color of the scale bar
131: *
132: * @param color
133: */
134: void setLabelColor(Color color);
135:
136: /**
137: * sets the background color of the scale bar
138: *
139: * @param color
140: */
141: void setBackgroundColor(Color color);
142:
143: /**
144: * sets the style of the scale bar. default style is |--------| the list of known styles depends
145: * on the implementation
146: *
147: * @param style
148: * style name
149: */
150: void setStyle(String style);
151:
152: /**
153: * sets the font for label rendering
154: *
155: * @param font
156: * awt font object
157: */
158: void setFont(Font font);
159:
160: /**
161: * sets the format for scale/scaleDen
162: *
163: * @param numberFormat
164: * a NumberFormat object
165: */
166: void setNumberFormat(NumberFormat numberFormat);
167:
168: }
|