001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/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 13:32:12 +0100 (Do, 27 Dez 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 }