Updated to worldwind release 20070817
[worldwind-tracker.git] / gov / nasa / worldwind / render / UserFacingIcon.java
blob2306d6cfe1d136345b8bb6ce36b6a04fe8b36a4e
1 /*
2 Copyright (C) 2001, 2006 United States Government
3 as represented by the Administrator of the
4 National Aeronautics and Space Administration.
5 All Rights Reserved.
6 */
7 package gov.nasa.worldwind.render;
9 import gov.nasa.worldwind.Movable;
10 import gov.nasa.worldwind.avlist.AVListImpl;
11 import gov.nasa.worldwind.geom.Position;
12 import gov.nasa.worldwind.util.Logging;
14 import java.awt.*;
16 /**
17 * @author tag
18 * @version $Id$
20 public class UserFacingIcon extends AVListImpl implements WWIcon, Movable
22 // private final String iconPath;
23 private Position iconPosition; // may be null because placement may be relative
24 private Dimension iconSize; // may be null to indicate "use native image size"
25 private boolean isHighlighted = false;
26 private boolean isVisible = true;
27 private double highlightScale = 1.2; // TODO: make configurable
28 private String toolTipText;
29 private Font toolTipFont;
30 private boolean showToolTip = false;
31 private java.awt.Color textColor;
32 private Object imageSource;
34 public UserFacingIcon(String iconPath, Position iconPosition)
36 if (iconPath == null)
38 String message = Logging.getMessage("nullValue.IconFilePath");
39 Logging.logger().severe(message);
40 throw new IllegalArgumentException(message);
43 this.imageSource = iconPath;
44 this.iconPosition = iconPosition;
47 public UserFacingIcon(Object imageSource, Position iconPosition)
49 if (imageSource == null)
51 String message = Logging.getMessage("nullValue.IconFilePath");
52 Logging.logger().severe(message);
53 throw new IllegalArgumentException(message);
56 this.imageSource = imageSource;
57 this.iconPosition = iconPosition;
60 public Object getImageSource()
62 return imageSource;
65 public void setImageSource(Object imageSource)
67 this.imageSource = imageSource;
70 public String getPath()
72 return this.imageSource instanceof String ? (String) this.imageSource : null;
75 public Position getPosition()
77 return this.iconPosition;
80 public void setPosition(Position iconPosition)
82 this.iconPosition = iconPosition;
85 public boolean isHighlighted()
87 return isHighlighted;
90 public void setHighlighted(boolean highlighted)
92 isHighlighted = highlighted;
95 public double getHighlightScale()
97 return highlightScale;
100 public void setHighlightScale(double highlightScale)
102 this.highlightScale = highlightScale;
105 public Dimension getSize()
107 return this.iconSize;
110 public void setSize(Dimension size)
112 this.iconSize = size;
115 public boolean isVisible()
117 return isVisible;
120 public void setVisible(boolean visible)
122 isVisible = visible;
125 public String getToolTipText()
127 return toolTipText;
130 public void setToolTipText(String toolTipText)
132 this.toolTipText = toolTipText;
135 public Font getToolTipFont()
137 return toolTipFont;
140 public void setToolTipFont(Font toolTipFont)
142 this.toolTipFont = toolTipFont;
145 public boolean isShowToolTip()
147 return showToolTip;
150 public void setShowToolTip(boolean showToolTip)
152 this.showToolTip = showToolTip;
155 public Color getToolTipTextColor()
157 return textColor;
160 public void setToolTipTextColor(Color textColor)
162 this.textColor = textColor;
165 public void move(Position position)
167 if (position == null)
169 String msg = Logging.getMessage("nullValue.PositionIsNull");
170 Logging.logger().severe(msg);
171 throw new IllegalArgumentException(msg);
174 this.iconPosition = this.iconPosition.add(position);
177 public void moveTo(Position position)
179 if (position == null)
181 String msg = Logging.getMessage("nullValue.PositionIsNull");
182 Logging.logger().severe(msg);
183 throw new IllegalArgumentException(msg);
186 this.iconPosition = position;
189 public Position getReferencePosition()
191 return this.iconPosition;
194 public String toString()
196 return this.imageSource != null ? this.imageSource.toString() : this.getClass().getName();