2 Copyright (C) 2001, 2006 United States Government
3 as represented by the Administrator of the
4 National Aeronautics and Space Administration.
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
;
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
)
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()
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()
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()
120 public void setVisible(boolean visible
)
125 public String
getToolTipText()
130 public void setToolTipText(String toolTipText
)
132 this.toolTipText
= toolTipText
;
135 public Font
getToolTipFont()
140 public void setToolTipFont(Font toolTipFont
)
142 this.toolTipFont
= toolTipFont
;
145 public boolean isShowToolTip()
150 public void setShowToolTip(boolean showToolTip
)
152 this.showToolTip
= showToolTip
;
155 public Color
getToolTipTextColor()
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();