Class AnnotationAttributes
- java.lang.Object
-
- gov.nasa.worldwind.render.AnnotationAttributes
-
- All Implemented Interfaces:
Restorable
public class AnnotationAttributes extends java.lang.Object implements Restorable
Annotation
attributes set. AllAbstractAnnotation
objects start life referencing a new instance of this object.This class also defines a static default attributes bundle containing default values for all attributes. New
AnnotationAttributes
refer this static bundle as their default values source when an attribute has not been set.New
AnnotationAttributes
set have all their attributes pointing to the default values until they are set by the application. Most attributes refer to the default value by using minus one (-1
) for numerics andnull
for objects.The default attributes set can be changed for a non static one under the application control. The process can be extended or cascaded to handle multiple levels of inheritance for default attributes.
- See Also:
AbstractAnnotation
,MultiLineTextRenderer
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
unresolved
-
Constructor Summary
Constructors Constructor Description AnnotationAttributes()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getAdjustWidthToText()
Get whether the callout width should adjust to follow the wrapped text bounding rectangle width, which may be smaller or larger then the preferred size depending on the text.protected int
getAntiAliasHint()
Get theGL
antialias hint used for rendering the callout border line.java.awt.Color
getBackgroundColor()
Get the callout backgroundColor
.WWTexture
getBackgroundTexture(DrawContext dc)
Get the background image as aWWTexture
for the specified draw context.java.awt.Color
getBorderColor()
Get the callout borderColor
.int
getBorderStippleFactor()
Get the stipple factor used for the callout border line.short
getBorderStipplePattern()
Get the stipple pattern used for the callout border line.double
getBorderWidth()
Get the callout border line width.int
getCornerRadius()
Get the callout shape rounded corners radius in pixels.double
getDistanceMaxScale()
Get the maximum scale that can be applied to an annotation when it gets closer to the eye than the view lookat point.double
getDistanceMinOpacity()
Get the minimum opacity an annotation can have when fading away from the eye (0 to 1).double
getDistanceMinScale()
Get the minimum scale that can be applied to an annotation when it gets farther away from the eye than the view lookat point.java.awt.Point
getDrawOffset()
Get the callout displacement offset in pixels from the globe Position or screen point at which it is associated.java.lang.String
getEffect()
Get the effect used to decorate the text.java.awt.Font
getFont()
Get theFont
used for text rendering.java.lang.String
getFrameShape()
Get the callout frame shape.double
getHighlightScale()
Get the scaling factor applied to highlightedAnnotations
.java.awt.Point
getImageOffset()
Get the background image offset in pixels (before background scaling).double
getImageOpacity()
Get the opacity of the background image (0 to 1).java.lang.String
getImageRepeat()
Get the repeat behavior or the background image.double
getImageScale()
Get the background image scaling factor.java.lang.Object
getImageSource()
Get the background image source.java.awt.Insets
getInsets()
Get the calloutInsets
dimensions in pixels.java.lang.String
getLeader()
Get the callout shape leader type.int
getLeaderGapWidth()
Get the callout shape leader gap width in pixels.double
getOpacity()
Get the opacity factor applied to the annotation.java.lang.String
getPath()
Get the path to the image used for background image.java.lang.String
getRestorableState()
Returns an XML state document String describing attributes that have been set by the application (attributes not pointing to their default value).double
getScale()
Get the scaling factor applied to the annotation.java.awt.Dimension
getSize()
Get the annotation callout preferred total dimension in pixels.java.lang.String
getTextAlign()
Get the text alignement.java.awt.Color
getTextColor()
Get the textColor
.boolean
isHighlighted()
Get whether theAnnotation
is highlighted and should be drawn bigger - see setHighlightScale().boolean
isUnresolved()
Indicates whether one or more members of this remain unresolved because they must be retrieved from an external source.boolean
isVisible()
Get whether the annotation is visible and should be rendered.void
restoreState(java.lang.String stateInXml)
Restores attribute values found in the specified XML state document String.void
setAdjustWidthToText(java.lang.String state)
Set whether the callout width should adjust to follow the wrapped text bounding rectangle width which may be smaller or larger then the preferred size depending on the text.protected void
setAntiAliasHint(int hint)
Set theGL
antialias hint used for rendering the callout border line.void
setBackgroundColor(java.awt.Color color)
Set the callout backgroundColor
.void
setBorderColor(java.awt.Color color)
Set the callout borderColor
.void
setBorderStippleFactor(int factor)
Set the stipple factor used for the callout border line.void
setBorderStipplePattern(short pattern)
Set the stipple pattern used for the callout border line.void
setBorderWidth(double width)
Set the callout border line width.void
setCornerRadius(int radius)
Set the callout shape rounded corners radius in pixels.void
setDefaults(AnnotationAttributes attr)
Set the fallback default attributes set.void
setDistanceMaxScale(double scale)
Set the maximum scale that can be applied to an annotation when it gets closer to the eye than the view lookat point.void
setDistanceMinOpacity(double opacity)
Set the minimum opacity an annotation can have when fading away from the eye (0 to 1).void
setDistanceMinScale(double scale)
Set the minimum scale that can be applied to an annotation when it gets farther away from the eye than the view lookat point.void
setDrawOffset(java.awt.Point offset)
Set the callout displacement offset in pixels from the globe Position or screen point at which it is associated.void
setEffect(java.lang.String effect)
Set the effect used to decorate the text.void
setFont(java.awt.Font font)
Set theFont
used for text rendering.void
setFrameShape(java.lang.String shape)
Set the callout frame shape.void
setHighlighted(boolean highlighted)
Set whether theAnnotation
is highlighted and should be drawn bigger - see setHighlightScale().void
setHighlightScale(double highlightScale)
Set the scaling factor applied to highlightedAnnotations
.void
setImageOffset(java.awt.Point offset)
Set the background image offset in pixels (before background scaling).void
setImageOpacity(double opacity)
Set the opacity of the background image (0 to 1).void
setImageRepeat(java.lang.String repeat)
Set the repeat behavior or the background image.void
setImageScale(double scale)
Set the background image scaling factor.void
setImageSource(java.lang.Object imageSource)
Set the background image source.void
setInsets(java.awt.Insets insets)
Set the calloutInsets
dimensions in pixels.void
setLeader(java.lang.String leader)
Set the callout shape leader type.void
setLeaderGapWidth(int width)
Set the callout shape leader gap width in pixels.void
setOpacity(double opacity)
Set the opacity factor to apply to the annotation.void
setScale(double scale)
Set the scaling factor to apply to the annotation.void
setSize(java.awt.Dimension size)
Set the annotation callout preferred total dimension in pixels.void
setTextAlign(java.lang.String align)
Set the text alignement.void
setTextColor(java.awt.Color color)
Set the textColor
.void
setUnresolved(boolean unresolved)
Specifies whether one or more fields of this remain unresolved because they must be retrieved from an external source.void
setVisible(boolean visible)
Set whether the annotation is visible and should be rendered.
-
-
-
Method Detail
-
setDefaults
public void setDefaults(AnnotationAttributes attr)
Set the fallback default attributes set.- Parameters:
attr
- the default attributes set.
-
getFrameShape
public java.lang.String getFrameShape()
Get the callout frame shape. Can be one ofAVKey.SHAPE_RECTANGLE
(default),AVKey.SHAPE_ELLIPSE
orAVKey.SHAPE_NONE
.- Returns:
- the callout frame shape.
-
setFrameShape
public void setFrameShape(java.lang.String shape)
Set the callout frame shape. Can be one ofAVKey.SHAPE_RECTANGLE
(default),AVKey.SHAPE_ELLIPSE
orAVKey.SHAPE_NONE
. Set tonull
to use the default shape.Note that
AVKey.SHAPE_ELLIPSE
draws an ellipse inside the callout bounding rectangle set by its size (see setSize()) or its text bounding rectangle (see setAdjustWidthToText() and setSize() with height set to zero). It is often necessary to have larger Insets dimensions (see setInsets()) to avoid having the text drawn outside the shape border.- Parameters:
shape
- the callout frame shape.
-
isHighlighted
public boolean isHighlighted()
Get whether theAnnotation
is highlighted and should be drawn bigger - see setHighlightScale().- Returns:
- true if highlighted.
-
setHighlighted
public void setHighlighted(boolean highlighted)
Set whether theAnnotation
is highlighted and should be drawn bigger - see setHighlightScale().- Parameters:
highlighted
- true if highlighted.
-
getHighlightScale
public double getHighlightScale()
Get the scaling factor applied to highlightedAnnotations
.- Returns:
- the scaling factor applied to highlighted
Annotations
.
-
setHighlightScale
public void setHighlightScale(double highlightScale)
Set the scaling factor applied to highlightedAnnotations
. Set to minus one (-1
) to use the default value.- Parameters:
highlightScale
- the scaling factor applied to highlightedAnnotations
.
-
getSize
public java.awt.Dimension getSize()
Get the annotation callout preferred total dimension in pixels.- Returns:
- the callout preferred total dimension in pixels.
-
setSize
public void setSize(java.awt.Dimension size)
Set the annotation callout preferred total dimension in pixels.If necessary, the text will be wrapped into several lines so as not to exceed the callout preferred
width
(minus theInsets
left
andright
dimensions - seesetInsets
). However, ifsetAdjustWidthToText
is set to AVKey.SIZE_FIT_TEXT, the final callout width will follow that of the final text bounding rectangle.If necessary, the text will also be truncated so as not to exceed the given
Set toheight
. Azero
value (default) will have the callout follow the final text bounding rectangle height (including theInsets
top
andbottom
).null
to use the default size.- Parameters:
size
- the callout preferred total dimension in pixels.
-
getScale
public double getScale()
Get the scaling factor applied to the annotation. Default is 1.- Returns:
- the scaling factor applied to the annotation
-
setScale
public void setScale(double scale)
Set the scaling factor to apply to the annotation. Default is 1. Set to minus one (-1
) to use the default value.- Parameters:
scale
- the scaling factor to apply to the annotation
-
getOpacity
public double getOpacity()
Get the opacity factor applied to the annotation. Default is 1.- Returns:
- the opacity factor applied to the annotation
-
setOpacity
public void setOpacity(double opacity)
Set the opacity factor to apply to the annotation. Default is 1. Set to minus one (-1
) to use the default value.- Parameters:
opacity
- the opacity factor to apply to the annotation
-
getLeader
public java.lang.String getLeader()
Get the callout shape leader type. Can be one ofAVKey.SHAPE_TRIANGLE
(default) orAVKey.SHAPE_NONE
.- Returns:
- the callout shape leader type.
-
setLeader
public void setLeader(java.lang.String leader)
Set the callout shape leader type. Can be one ofAVKey.SHAPE_TRIANGLE
(default) orAVKey.SHAPE_NONE
.- Parameters:
leader
- the callout shape leader type.
-
getLeaderGapWidth
public int getLeaderGapWidth()
Get the callout shape leader gap width in pixels. Default is 40.- Returns:
- the callout shape leader gap width.
-
setLeaderGapWidth
public void setLeaderGapWidth(int width)
Set the callout shape leader gap width in pixels. Set this attribute to minus one (-1
) to use the default value.- Parameters:
width
- the callout shape leader gap width in pixels.
-
getCornerRadius
public int getCornerRadius()
Get the callout shape rounded corners radius in pixels. A value ofzero
means no rounded corners.- Returns:
- the callout shape rounded corners radius in pixels.
-
setCornerRadius
public void setCornerRadius(int radius)
Set the callout shape rounded corners radius in pixels. A value ofzero
means no rounded corners. Set this attribute to minus one (-1
) to use the default value.- Parameters:
radius
- the callout shape rounded corners radius in pixels.
-
getAdjustWidthToText
public java.lang.String getAdjustWidthToText()
Get whether the callout width should adjust to follow the wrapped text bounding rectangle width, which may be smaller or larger then the preferred size depending on the text. Can be one ofAVKey.SIZE_FIXED
orAVKey.SIZE_FIT_TEXT
.- Returns:
- whether the callout width is adjusted to follow the text bounding rectangle width.
-
setAdjustWidthToText
public void setAdjustWidthToText(java.lang.String state)
Set whether the callout width should adjust to follow the wrapped text bounding rectangle width which may be smaller or larger then the preferred size depending on the text. Can be one ofAVKey.SIZE_FIXED
(default) orAVKey.SIZE_FIT_TEXT
. Setting this attribute toSIZE_FIT_TEXT
would have the callout drawn at its exact width (see setSize()).- Parameters:
state
- whether the callout width should adjust to follow the text bounding rectangle width.
-
getDrawOffset
public java.awt.Point getDrawOffset()
Get the callout displacement offset in pixels from the globe Position or screen point at which it is associated. When the callout has a leader (see setLeader(String leader)), it will lead to the original point. In the actual implementation, the callout is drawn above its associated point and the leader connects at the bottom of the frame, in the middle. Positive X increases toward the right and positive Y in the up direction.- Returns:
- the callout displacement offset in pixels
-
setDrawOffset
public void setDrawOffset(java.awt.Point offset)
Set the callout displacement offset in pixels from the globe Position or screen point at which it is associated. When the callout has a leader (see setLeader(String leader)), it will lead to the original point. In the actual implementation, the callout is drawn above its associated point and the leader connects at the bottom of the frame, in the middle. Positive X increases toward the right and positive Y in the up direction. Set tonull
to use the default offset.- Parameters:
offset
- the callout displacement offset in pixels
-
getInsets
public java.awt.Insets getInsets()
Get the calloutInsets
dimensions in pixels. The text is drawn inside the callout frame while keeping a distance from the callout border defined in the Insets.- Returns:
- the callout
Insets
dimensions in pixels.
-
setInsets
public void setInsets(java.awt.Insets insets)
Set the calloutInsets
dimensions in pixels. The text will be drawn inside the callout frame while keeping a distance from the callout border defined in the Insets. Set tonull
to use the default Insets.- Parameters:
insets
- the calloutInsets
dimensions in pixels.
-
getBorderWidth
public double getBorderWidth()
Get the callout border line width. A value ofzero
means no border is being drawn.- Returns:
- the callout border line width.
-
setBorderWidth
public void setBorderWidth(double width)
Set the callout border line width. A value ofzero
means no border will is drawn. Set to minus one (-1
) to use the default value.- Parameters:
width
- the callout border line width.
-
getBorderStippleFactor
public int getBorderStippleFactor()
Get the stipple factor used for the callout border line. A value ofzero
(default) means no pattern is applied.- Returns:
- the stipple factor used for the callout border line.
-
setBorderStippleFactor
public void setBorderStippleFactor(int factor)
Set the stipple factor used for the callout border line. A value ofzero
(default) means no pattern will be applied. Set to minus one (-1
) to use the default value.- Parameters:
factor
- the stipple factor used for the callout border line.
-
getBorderStipplePattern
public short getBorderStipplePattern()
Get the stipple pattern used for the callout border line.- Returns:
- the stipple pattern used for the callout border line.
-
setBorderStipplePattern
public void setBorderStipplePattern(short pattern)
Set the stipple pattern used for the callout border line. Set to0x0000
to use the default value.- Parameters:
pattern
- the stipple pattern used for the callout border line.
-
getAntiAliasHint
protected int getAntiAliasHint()
Get theGL
antialias hint used for rendering the callout border line. Can be one ofAnnotation
.ANTIALIAS_DONT_CARE, ANTIALIAS_FASTEST (default) or ANTIALIAS_NICEST.- Returns:
- the
GL
antialias hint used for rendering the callout border line.
-
setAntiAliasHint
protected void setAntiAliasHint(int hint)
Set theGL
antialias hint used for rendering the callout border line. Can be one ofAnnotation
.ANTIALIAS_DONT_CARE, ANTIALIAS_FASTEST (default) or ANTIALIAS_NICEST. Set to minus one (-1
) to use the default value.- Parameters:
hint
- theGL
antialias hint used for rendering the callout border line.
-
isVisible
public boolean isVisible()
Get whether the annotation is visible and should be rendered.- Returns:
- true if the annotation is visible and should be rendered.
-
setVisible
public void setVisible(boolean visible)
Set whether the annotation is visible and should be rendered.- Parameters:
visible
- true if the annotation is visible and should be rendered.
-
getFont
public java.awt.Font getFont()
Get theFont
used for text rendering.- Returns:
- the
Font
used for text rendering.
-
setFont
public void setFont(java.awt.Font font)
Set theFont
used for text rendering. Set tonull
to use the default value.- Parameters:
font
- theFont
used for text rendering.
-
getTextAlign
public java.lang.String getTextAlign()
- Returns:
- align the text alignement. Can be one of MultiLineTextRenderer.ALIGN_LEFT, ALIGN_CENTER or ALIGN_RIGHT.
-
setTextAlign
public void setTextAlign(java.lang.String align)
Set the text alignement. Can be one ofAVKey.LEFT
(default),AVKey.CENTER
orAVKey.RIGHT
. Set tonull
to use the default value.- Parameters:
align
- the text alignement.
-
getTextColor
public java.awt.Color getTextColor()
Get the textColor
.- Returns:
- the text
Color
.
-
setTextColor
public void setTextColor(java.awt.Color color)
Set the textColor
. Set tonull
to use the default value.- Parameters:
color
- the textColor
.
-
getBackgroundColor
public java.awt.Color getBackgroundColor()
Get the callout backgroundColor
.- Returns:
- the callout background
Color
.
-
setBackgroundColor
public void setBackgroundColor(java.awt.Color color)
Set the callout backgroundColor
. Set tonull
to use the default value.- Parameters:
color
- the callout backgroundColor
.
-
getBorderColor
public java.awt.Color getBorderColor()
Get the callout borderColor
.- Returns:
- the callout border
Color
.
-
setBorderColor
public void setBorderColor(java.awt.Color color)
Set the callout borderColor
. Set tonull
to use the default value.- Parameters:
color
- the callout borderColor
.
-
getImageSource
public java.lang.Object getImageSource()
Get the background image source. Can be aString
providing the path to a local image, aBufferedImage
ornull
.- Returns:
- the background image source.
-
setImageSource
public void setImageSource(java.lang.Object imageSource)
Set the background image source. Can be aString
providing the path to a local image or aBufferedImage
. Set to null for no background image rendering.- Parameters:
imageSource
- the background image source.
-
getBackgroundTexture
public WWTexture getBackgroundTexture(DrawContext dc)
Get the background image as aWWTexture
for the specified draw context. This returns null if the background image source returned bygetImageSource()
is null.- Parameters:
dc
- the current draw context.- Returns:
- the background image as a WWTexture, or null if this AnnotationAttributes has no background image source.
-
getImageScale
public double getImageScale()
Get the background image scaling factor.- Returns:
- the background image scaling factor.
-
setImageScale
public void setImageScale(double scale)
Set the background image scaling factor. Set to minus one (-1
) to use the default value.- Parameters:
scale
- the background image scaling factor.
-
getImageOffset
public java.awt.Point getImageOffset()
Get the background image offset in pixels (before background scaling).- Returns:
- the background image offset in pixels
-
setImageOffset
public void setImageOffset(java.awt.Point offset)
Set the background image offset in pixels (before background scaling). Set tonull
to use the default value.- Parameters:
offset
- the background image offset in pixels
-
getImageOpacity
public double getImageOpacity()
Get the opacity of the background image (0 to 1).- Returns:
- the opacity of the background image (0 to 1).
-
setImageOpacity
public void setImageOpacity(double opacity)
Set the opacity of the background image (0 to 1). Set to minus one (-1
) to use the default value.- Parameters:
opacity
- the opacity of the background image (0 to 1).
-
getImageRepeat
public java.lang.String getImageRepeat()
Get the repeat behavior or the background image. Can be one ofAnnotation
.IMAGE_REPEAT_X, IMAGE_REPEAT_Y, IMAGE_REPEAT_XY (default) or IMAGE_REPEAT_NONE.- Returns:
- the repeat behavior or the background image.
-
setImageRepeat
public void setImageRepeat(java.lang.String repeat)
Set the repeat behavior or the background image. Can be one ofAnnotation
.IMAGE_REPEAT_X, IMAGE_REPEAT_Y, IMAGE_REPEAT_XY (default) or IMAGE_REPEAT_NONE. Set tonull
to use the default value.- Parameters:
repeat
- the repeat behavior or the background image.
-
getPath
public java.lang.String getPath()
Get the path to the image used for background image. Returnsnull
if the image source is null or a memory BufferedImage.- Returns:
- the path to the image used for background image.
-
getDistanceMinScale
public double getDistanceMinScale()
Get the minimum scale that can be applied to an annotation when it gets farther away from the eye than the view lookat point.- Returns:
- the minimum scale that can be applied to an annotation when it gets away from the eye
-
setDistanceMinScale
public void setDistanceMinScale(double scale)
Set the minimum scale that can be applied to an annotation when it gets farther away from the eye than the view lookat point. Set to minus one (-1
) to use the default value.- Parameters:
scale
- the minimum scale that can be applied to an annotation when it gets away from the eye
-
getDistanceMaxScale
public double getDistanceMaxScale()
Get the maximum scale that can be applied to an annotation when it gets closer to the eye than the view lookat point.- Returns:
- the maximum scale that can be applied to an annotation when it gets closer to the eye
-
setDistanceMaxScale
public void setDistanceMaxScale(double scale)
Set the maximum scale that can be applied to an annotation when it gets closer to the eye than the view lookat point. Set to minus one (-1
) to use the default value.- Parameters:
scale
- the maximum scale that can be applied to an annotation when it gets closer to the eye
-
getDistanceMinOpacity
public double getDistanceMinOpacity()
Get the minimum opacity an annotation can have when fading away from the eye (0 to 1).- Returns:
- the minimum opacity an annotation can have when fading away from the eye.
-
setDistanceMinOpacity
public void setDistanceMinOpacity(double opacity)
Set the minimum opacity an annotation can have when fading away from the eye (0 to 1). Set to minus one (-1
) to use the default value.- Parameters:
opacity
- the minimum opacity an annotation can have when fading away from the eye.
-
getEffect
public java.lang.String getEffect()
Get the effect used to decorate the text. Can be one ofAVKey.TEXT_EFFECT_SHADOW
,AVKey.TEXT_EFFECT_OUTLINE
orAVKey.TEXT_EFFECT_NONE
(default).- Returns:
- the effect used for text rendering
-
setEffect
public void setEffect(java.lang.String effect)
Set the effect used to decorate the text. Can be one ofAVKey.TEXT_EFFECT_SHADOW
,AVKey.TEXT_EFFECT_OUTLINE
orAVKey.TEXT_EFFECT_NONE
(default). Set tonull
to use the default value.- Parameters:
effect
- the effect to use for text rendering
-
isUnresolved
public boolean isUnresolved()
Indicates whether one or more members of this remain unresolved because they must be retrieved from an external source.- Returns:
- true if there are unresolved fields, false if no fields remain unresolved.
-
setUnresolved
public void setUnresolved(boolean unresolved)
Specifies whether one or more fields of this remain unresolved because they must be retrieved from an external source.- Parameters:
unresolved
- true if there are unresolved fields, false if no fields remain unresolved.
-
getRestorableState
public java.lang.String getRestorableState()
Returns an XML state document String describing attributes that have been set by the application (attributes not pointing to their default value).- Specified by:
getRestorableState
in interfaceRestorable
- Returns:
- XML state document string describing this AnnotationAttributes.
-
restoreState
public void restoreState(java.lang.String stateInXml)
Restores attribute values found in the specified XML state document String. The document specified bystateInXml
must be a well formed XML document String, or this will throw an IllegalArgumentException. Unknown structures instateInXml
are benign, because they will simply be ignored.- Specified by:
restoreState
in interfaceRestorable
- Parameters:
stateInXml
- an XML document String describing an AnnotationAttributes.- Throws:
java.lang.IllegalArgumentException
- IfstateInXml
is null, or ifstateInXml
is not a well formed XML document String.
-
-