public class TLcdGXYMultiFontLabelPainter extends TLcdGXYStampLabelPainter
TLcdGXYMultiFontLabelPainter
is an implementation of ILcdGXYLabelPainter2
that paints textual labels using multiple fonts or colors. The appearance
of this text, such as the font, the color, framing etc., can be configured with the appropriate
methods.
Like its parent class, TLcdGXYStampLabelPainter
, this label painter supports
discrete placement of the labels as well as free placement. See TLcdGXYStampLabelPainter
for more information on how to configure these
placements.
The text of the labels to be drawn are given by the method retrieveLabels
.
This method can be redefined for specific needs (by default it returns an array of 1
String
containing Object.toString()
.
Each line of the label can be drawn with a different Font and Color. The fonts and
colors to be used are given by the methods retrieveFonts
and
retrieveForegroundColors
. These methods can be redefined
for specific needs.
For more flexible formatting, use TLcdGXYLabelPainter
in combination with HTML styling.
The label editing facilities provided by this class are the same as its parent class. Please refer to the documentation of the parent class for more information.
TLcdGXYLabelPainter
,
Serialized FormModifier and Type | Field and Description |
---|---|
static int |
CENTER
Integer code to place label at center.
|
static int |
EAST
Integer code to place label at east.
|
static int |
MAXIMUM_AVAILABLE_LOCATIONS
Maximum number of available locations.
|
static int |
NORTH
Integer code to place label at north.
|
static int |
NORTH_EAST
Integer code to place label at north east.
|
static int |
NORTH_WEST
Integer code to place label at north west.
|
static int |
SOUTH
Integer code to place label at south.
|
static int |
SOUTH_EAST
Integer code to place label at south east.
|
static int |
SOUTH_WEST
Integer code to place label at south west.
|
static int |
WEST
Integer code to place label at west.
|
BODY, CREATING, HANDLES, RESHAPING, SNAPS, TRANSLATING
DEFAULT, SELECTED
CREATING, END_CREATION, RESHAPED, START_CREATION, TRANSLATED
Constructor and Description |
---|
TLcdGXYMultiFontLabelPainter()
Creates a label painter with the default settings.
|
TLcdGXYMultiFontLabelPainter(TLcdGXYMultiFontLabelPainter aPainter)
Clone constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
acceptSnapTargetForLabel(Graphics aGraphics,
ILcdGXYContext aGXYContext)
Returns whether the label specified by
setObject , setLabelIndex and
setSubLabelIndex accepts the snap target in the given
ILcdGXYContext . |
protected void |
addComponentToGXYView(ILcdGXYView aGXYView,
Component aComponent)
Adds the specified interactive label to the user interface.
|
protected void |
anchorPointSFCT(Graphics aGraphics,
int aMode,
ILcdGXYContext aContext,
Point aPointSFCT)
Retrieves an anchor point that is used to determine where the pin
of the label (specified by
setObject , setLabelIndex and
setSubLabelIndex ) attaches to the object representation. |
protected int |
calculateMaxLabelWidth(String[] aLabelArray,
Font[] aFontArray,
Graphics aGraphics)
Calculates the maximum width for a label when painting the given String objects with the given
fonts on the given Graphics object.
|
protected int |
calculatLabelHeight(String[] aLabelArray,
Font[] aFontArray,
Graphics aGraphics)
Calculates the label height when painting the given String objects with the given
fonts on the given Graphics object.
|
protected boolean |
canAddComponentToGXYView(ILcdGXYView aGXYView)
Returns whether or not an interactive label can be added to the given view.
|
void |
cancelLabelInteraction()
Cancels the interactive label, if there is one.
|
boolean |
canStopLabelInteraction()
Returns whether or not the label interaction can be stopped.
|
void |
clearImageCache()
Clears the entire label image cache.
|
void |
clearImageCache(Object aObject)
Clears the label image cache for the given object.
|
Object |
clone()
Returns a new instance of this
ALcdGXYLabelPainter . |
boolean |
editLabel(Graphics aGraphics,
int aMode,
ILcdGXYContext aGXYContext)
Adapts the set
TLcdLabelLocation according to the information present in
aGXYContext. |
protected void |
firePropertyChangeEvent(PropertyChangeEvent aPropertyChangeEvent)
Notifies the registered
PropertyChangeListener s of the specified event. |
Color |
getBackgroundColor()
Gets the color of the label frames filling.
|
protected Component |
getComponentForGXYView(ILcdGXYView aGXYView)
Gets the component that represents the given
ILcdGXYView . |
Font |
getDefaultFont()
Returns the value of the property
defaultFont . |
Color |
getDefaultForegroundColor()
Returns the value of the property
defaultForegroundColor . |
String |
getDisplayName()
This default implementation returns the display name set with
setDisplayName , or toString() if this was set to null . |
Object |
getDomainObjectForInteractiveLabel()
Returns the domain object for the interactive label, or
null if there is no
interactive label. |
Font[] |
getFonts()
Returns the fonts that will be used to paint the successive lines of the label.
|
Color[] |
getForegroundColors()
Returns the foreground colors that will be used to paint the successive lines of the label.
|
ALcdGXYInteractiveLabelProvider |
getGXYInteractiveLabelProvider()
Returns the interactive label provider.
|
ILcdGXYLabelEditor |
getGXYLabelEditor(Object aObject)
Returns a valid
ILcdGXYLabelEditor for editing the labels of aObject. |
ILcdGXYLabelPainter |
getGXYLabelPainter(Object aObject)
Finds an
ILcdGXYLabelPainter that can be used to label the object passed. |
ALcdGXYLabelStamp |
getGXYLabelStamp()
Returns the
ALcdGXYLabelStamp that is used by this painter to paint the labels. |
TLcdHaloAlgorithm |
getHaloAlgorithm()
Returns the algorithm that is used for rendering halo's.
|
Color |
getHaloColor()
Returns the current halo color.
|
Color |
getHaloPinColor()
Returns the current halo pin color.
|
int |
getHaloThickness()
Returns the current halo thickness.
|
int |
getLabelCreationClickCount()
Returns the number of points required to initialize the label of the set
Object . |
Cursor |
getLabelCursor(Graphics aGraphics,
int aMode,
ILcdGXYContext aGXYContext)
Returns a
Cursor to indicate the type of editing aMode and
aGXYContext . |
int |
getPadding()
Returns the amount of padding used around the text.
|
Color |
getPinColor()
Returns the color in which the pin is drawn.
|
protected void |
getPinPointSFCT(Point aAnchorPoint,
String[] aLabelArray,
int aMaxLabelWidth,
Font[] aFonts,
Graphics aGraphics,
Point aPinLocationSFCT)
Calculates the position where the pin should start at the label side and and moves a point to that position,
when the label has an anchor point aAnchorPoint, taking into account the horizontal and vertical shifts,
position index, the label width and height.
|
String |
getPositionAsString(int aPosition)
Returns the string representation of the given position of the labels relative to the anchor point.
|
int[] |
getPositionList()
Returns the list of possible positions to place the labels.
|
String[] |
getPositionListAsString()
Gets the
String representations of the current position list. |
int |
getPossibleLocationCount(Graphics aGraphics)
Returns the number of possible locations to use (starting from the default position).
|
Color |
getSelectedPinColor()
Returns the color in which the pin should be drawn of the label of a selected object.
|
Color |
getSelectionColor()
Gets the color of the label of a selected object that this
TLcdGXYLabelPainter.ABOVE
draws labels for. |
int |
getShiftLabelPosition()
Returns how many pixels the label must be removed from the anchor point of the domain object.
|
protected void |
getUpperLeftPointSFCT(Point aAnchorPoint,
String[] aLabelArray,
int aMaxLabelWidth,
Font[] aFonts,
Graphics aGraphics,
Point aLocationPointSFCT)
Calculates the upper left corner of label and moves a point to that position, when the label has
an anchor point aAnchorPoint, taking into account the horizontal and vertical shifts set, the
position index and the fonts.
|
int |
getVerticalSpacing()
The value of the property VerticalSpacing represents the vertical distance
in pixels between successive features.
|
boolean |
isConsiderPinForBounds()
The property
considerPinForBounds determines whether the pin should be taken
into account for the bounds. |
boolean |
isFilled()
Labels can be drawn surrounded by a filled background, the filled property determines
whether to draw a filled rectangle behind the labels.
|
boolean |
isHaloEnabled()
Returns true if the halo effect is on for the labels, false otherwise.
|
boolean |
isHaloPinEnabled()
Returns true if the halo effect also includes the pin.
|
boolean |
isLabelTouched(Graphics aGraphics,
int aMode,
ILcdGXYContext aGXYContext)
Tests if the label specified by
setObject , setLabelIndex and
setSubLabelIndex is touched at view location (specified by
aGXYContext.getX() and aGXYContext.getY() ), considering the mode and the
ILcdGXYContext instance. |
boolean |
isMakeLabelsStickyOnEdit()
Returns whether the labels this editor edits are made sticky.
|
boolean |
isUseImageCache()
Returns
true when image caching for labels with a halo is enabled,
false otherwise. |
boolean |
isWithAnchorPoint()
Returns whether to draw an anchor point at
anchorPointSFCT . |
boolean |
isWithFrame()
Labels can be drawn surrounded by a frame, the frame property determines
whether to frame the labels.
|
boolean |
isWithPin()
Returns whether a pin is drawn from the object to the label.
|
void |
labelAnchorPointSFCT(Graphics aGraphics,
int aMode,
ILcdGXYContext aGXYContext,
Point aPointSFCT)
Sets
aPointSFCT to the anchor point of the label specified by
setObject , setLabelIndex and setSubLabelIndex . |
double |
labelBoundsSFCT(Graphics aGraphics,
int aMode,
ILcdGXYContext aGXYContext,
Rectangle aRectangleSFCT)
Implements the
ILcdGXYLabelPainter.labelBoundsSFCT . |
protected double |
labelPositionForLocationIndexSFCT(int aLocationIndex,
int aWidth,
int aHeight,
Point aAnchorPoint,
int aMode,
ILcdGXYContext aGXYContext,
Graphics aGraphics,
Point aPointSFCT)
Calculates the upper left corner of the label, using
getUpperLeftPointSFCT(java.awt.Point, java.lang.String[], int, java.awt.Font[], java.awt.Graphics, java.awt.Point) . |
Object |
labelSnapTarget(Graphics aGraphics,
ILcdGXYContext aGXYContext)
Returns an
Object that can be used as snapping target when graphically editing
another Object or label than the one this ILcdGXYLabelPainter2 represents. |
void |
paintLabel(Graphics aGraphics,
int aMode,
ILcdGXYContext aGXYContext)
Performs the label painting.
|
protected void |
paintPin(Graphics aGraphics,
int aMode,
int aStartPointX,
int aStartPointY,
int aEndPointX,
int aEndPointY)
Draws a label pin on the given graphics between the given lines.
|
protected boolean |
pinPointSFCT(Graphics aGraphics,
int aMode,
ILcdGXYContext aGXYContext,
Point aAnchorPoint,
Rectangle aLabelBounds,
double aRotation,
Point aPinPointSFCT)
Determines where the pin attaches to the label.
|
protected void |
removeComponentFromGXYView(ILcdGXYView aGXYView,
Component aComponent)
Removes the specified
java.awt.Component from the user interface. |
protected Font[] |
retrieveFonts(int aLabelSize,
int aMode,
ILcdGXYContext aGXYContext)
Retrieves the Fonts to be used for painting the successive lines of the label.
|
protected Color[] |
retrieveForegroundColors(int aLabelSize,
int aMode,
ILcdGXYContext aGXYContext)
Retrieves the foreground Colors to be used for painting the successive lines of the label.
|
protected String[] |
retrieveLabels(int aMode,
ILcdGXYContext aGXYContext)
Retrieves the labels to be painted for the set Object.
|
void |
setBackgroundColor(Color aBackgroundColor)
Sets the color of the label frames filling to
newBackground . |
static void |
setClassTraceOn(boolean aClassTraceOn)
Deprecated.
This method has been deprecated. It is recommended to use the
standard Java logging framework directly.
|
void |
setConsiderPinForBounds(boolean aConsiderPinForBounds)
The property
considerPinForBounds determines whether the pin should be taken
into account for the bounds. |
void |
setDefaultFont(Font aDefaultFont)
Sets the value of property
defaultFont to aDefaultFont. |
void |
setDefaultForegroundColor(Color aDefaultForegroundColor)
Sets the value of property
defaultForegroundColor to aDefaultForegroundColor. |
void |
setFilled(boolean aFilled)
Labels can be drawn surrounded by a filled background, the filled property determines
whether to draw a filled rectangle behind the labels.
|
void |
setFonts(Font[] aFonts)
Sets the array of Fonts that will be used to paint the successive lines of the label
to aFonts.
|
void |
setForegroundColors(Color[] aForegroundColors)
Sets the array of foreground colors that will be used to paint the successive lines of the label
to aForegroundColors.
|
void |
setGXYInteractiveLabelProvider(ALcdGXYInteractiveLabelProvider aGXYInteractiveLabelProvider)
Deprecated.
this is controller logic. Use
TLcdGXYInteractiveLabelsController instead. |
void |
setGXYLabelStamp(ALcdGXYLabelStamp aGXYLabelStamp)
Overridden to throw an
UnsupportedOperationException . |
void |
setHaloAlgorithm(TLcdHaloAlgorithm aHaloAlgorithm)
Sets the algorithm to be used for rendering halo's.
|
void |
setHaloColor(Color aColor)
Sets the color of the halo to be added around labels.
|
void |
setHaloEnabled(boolean aHaloEnabled)
Switches the halo effect for the labels on or off.
|
void |
setHaloPinColor(Color aColor)
Sets the color of the halo to be added around pins.
|
void |
setHaloPinEnabled(boolean aHaloPinEnabled)
Sets if the halo effect should be applied to the pin.
|
void |
setHaloThickness(int aThickness)
Sets the thickness (in pixels) of the halo to be added around labels.
|
void |
setLabelIndex(int aLabelIndex)
Sets the label.
|
void |
setMakeLabelsStickyOnEdit(boolean aMakeLabelsStickyOnEdit)
Sets whether or not this editor should set the label edit mode of the edited labels to include the sticky flag.
|
void |
setObject(Object aObject)
Sets the Object to be labeled by this ILcdGXYLabelPainter.
|
void |
setPadding(int aPadding)
Sets the amount of padding around the label text, in pixels.
|
void |
setPinColor(Color aPinColor)
Sets the color in which the pin should be drawn.
|
void |
setPositionList(int[] aPositionList)
Sets a new position list.
|
void |
setPositionListAsString(String[] aPositionList)
The labels can occupy various positions relative to the anchor point
(see description above).
|
void |
setProvideInteractiveLabelOnMouseOver(boolean aProvideInteractiveLabelOnMouseOver)
Deprecated.
this is controller logic. Use
TLcdGXYInteractiveLabelsController instead. |
void |
setSelectedPinColor(Color aSelectedPinColor)
Sets the color in which the pin of the label of a selected label should be drawn.
|
void |
setSelectionColor(Color aSelectionColor)
Sets the color of the label of a selected object that this
TLcdGXYLabelPainter.ABOVE
draws labels for, to aSelectionColor. |
void |
setShiftLabelPosition(int aShift)
Sets how many pixels the label must be removed from the anchor point of the domain object.
|
void |
setSubLabelIndex(int aSubLabelIndex)
Sets the sublabel index.
|
void |
setUseImageCache(boolean aUseCache)
Sets whether or not labels with halos should be cached as images.
|
void |
setVerticalSpacing(int aVerticalSpacing)
The value of the property VerticalSpacing represents the vertical distance
in pixels between successive features.
|
void |
setWithAnchorPoint(boolean aWithAnchorPoint)
Determines whether to draw an anchor point at
anchorPointSFCT . |
void |
setWithFrame(boolean aWithFrame)
Labels can be drawn surrounded by a frame, the frame property determines
whether to frame the labels.
|
void |
setWithPin(boolean aWithPin)
The property
withPin determines whether a pin should be drawn from the object to
the label. |
void |
startLabelInteraction(Object aDomainObject,
int aLabelIndex,
int aSubLabelIndex,
ILcdGXYContext aGXYContext)
Configure an interactive label for the specified label and show it in the GUI.
|
boolean |
stopLabelInteraction()
Stops the interactive label, if there is one.
|
addPropertyChangeListener, getLabelCount, getLabelIndex, getLabelLocation, getLocationIndex, getObject, getSubLabelCount, getSubLabelIndex, removePropertyChangeListener, setDisplayName, setLabelLocation, setLocationIndex, supportLabelSnap
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getLabelLocation, setLabelLocation, supportLabelSnap
getLabelCount, getLabelIndex, getSubLabelCount, getSubLabelIndex
getLocationIndex, getObject, setLocationIndex
getLabelCount, getLabelIndex, getLabelLocation, getObject, getSubLabelCount, getSubLabelIndex, setLabelLocation
addPropertyChangeListener, removePropertyChangeListener
public static final int SOUTH_EAST
public static final int NORTH_WEST
public static final int NORTH_EAST
public static final int SOUTH_WEST
public static final int EAST
public static final int WEST
public static final int NORTH
public static final int SOUTH
public static final int CENTER
public static int MAXIMUM_AVAILABLE_LOCATIONS
public TLcdGXYMultiFontLabelPainter()
public TLcdGXYMultiFontLabelPainter(TLcdGXYMultiFontLabelPainter aPainter)
aPainter
- the label painter to copy all properties from.public void setGXYLabelStamp(ALcdGXYLabelStamp aGXYLabelStamp)
UnsupportedOperationException
. This label painter installs
its own label stamp and relies on its presence for proper operation.aGXYLabelStamp
- Any label stamp.public Object clone()
ALcdGXYLabelPainter
ALcdGXYLabelPainter
. The label location
of the clone is a clone of the label location of the original. No other objects
are cloned.clone
in interface ILcdGXYLabelEditor
clone
in interface ILcdGXYLabelEditorProvider
clone
in interface ILcdGXYLabelPainter
clone
in interface ILcdGXYLabelPainter2
clone
in interface ILcdGXYLabelPainterProvider
ALcdGXYLabelPainter
of which the label location
is a deep clone.public void setObject(Object aObject)
ILcdGXYLabelPainter2
Setting the object should set the TLcdLabelLocation
to null
, to
ensure that older code which has not been adapted to this new interface keeps working.
setObject
in interface ILcdGXYLabelEditor
setObject
in interface ILcdGXYLabelPainter
setObject
in interface ILcdGXYLabelPainter2
setObject
in class ALcdGXYLabelPainter
aObject
- The object to be labeled.ILcdGXYLabelPainter.getObject()
public void setLabelIndex(int aLabelIndex)
ILcdGXYMultiLabelPainter
Sets the label. The results of any subsequent method calls to ILcdGXYLabelPainter.paintLabel(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext)
and ILcdGXYLabelPainter.labelBoundsSFCT(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext, java.awt.Rectangle)
etc. will apply to the label and sublabel indicated by this label index.
setLabelIndex
in interface ILcdGXYLabelEditor
setLabelIndex
in interface ILcdGXYMultiLabelPainter
setLabelIndex
in class ALcdGXYLabelPainter
aLabelIndex
- The label index. This should be larger than or equal to 0
and
less than the result ILcdGXYMultiLabelPainter.getLabelCount(java.awt.Graphics, com.luciad.view.gxy.ILcdGXYContext)
.ILcdGXYMultiLabelPainter.setSubLabelIndex(int)
public void setSubLabelIndex(int aSubLabelIndex)
ILcdGXYMultiLabelPainter
ILcdGXYLabelPainter.paintLabel(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext)
and
ILcdGXYLabelPainter.labelBoundsSFCT(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext, java.awt.Rectangle)
etc. will apply to the label and sublabel indicated by this sublabel
index.setSubLabelIndex
in interface ILcdGXYLabelEditor
setSubLabelIndex
in interface ILcdGXYMultiLabelPainter
setSubLabelIndex
in class ALcdGXYLabelPainter
aSubLabelIndex
- The sub label index. This should be larger than or equal to
0
and less than the result ILcdGXYMultiLabelPainter.getSubLabelCount(int)
.ILcdGXYMultiLabelPainter.setLabelIndex(int)
protected String[] retrieveLabels(int aMode, ILcdGXYContext aGXYContext)
String
containing aObject.toString()
.
Re-define this method in sub-classes for returning other labels.
Never modify the content of the returned array.aMode
- The label painting mode. This can be ILcdGXYLabelPainter.DEFAULT or
ILcdGXYLabelPainter.SELECTED.aGXYContext
- The ILcdGXYContext for painting.protected Font[] retrieveFonts(int aLabelSize, int aMode, ILcdGXYContext aGXYContext)
aLabelSize
- The minimum size of the array to return.aMode
- The painting mode. This can be ILcdGXYLabelPainter.DEFAULT or
ILcdGXYLabelPainter.SELECTED.aGXYContext
- The ILcdGXYContext for painting.setFonts(Font[])
,
setDefaultFont(Font)
protected Color[] retrieveForegroundColors(int aLabelSize, int aMode, ILcdGXYContext aGXYContext)
aLabelSize
- The minimum size of the array to return.aMode
- The painting mode. This can be ILcdGXYLabelPainter.DEFAULT or
ILcdGXYLabelPainter.SELECTED.aGXYContext
- The ILcdGXYContext for painting.setForegroundColors(Color[])
,
setDefaultForegroundColor(Color)
,
setSelectionColor(Color)
public void paintLabel(Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext)
paintLabel
in interface ILcdGXYLabelPainter
paintLabel
in interface ILcdGXYLabelPainter2
aGraphics
- the Graphics on which the label will be painted.aMode
- the mode for which the label should be painted. This can be either
ILcdGXYLabelPainter.DEFAULT or ILcdGXYLabelPainter.SELECTED.aGXYContext
- the context in which the label will be painted.ILcdGXYLabelPainter.DEFAULT
,
ILcdGXYLabelPainter.SELECTED
protected int calculateMaxLabelWidth(String[] aLabelArray, Font[] aFontArray, Graphics aGraphics)
aLabelArray
- the String objects to be painted for this label.aFontArray
- the fonts to use to draw the label lines.aGraphics
- the Graphics the label is painted on.protected int calculatLabelHeight(String[] aLabelArray, Font[] aFontArray, Graphics aGraphics)
aLabelArray
- the String objects to be painted for this label.aFontArray
- the fonts to use to draw the label lines.aGraphics
- the Graphics the label is painted on.protected final double labelPositionForLocationIndexSFCT(int aLocationIndex, int aWidth, int aHeight, Point aAnchorPoint, int aMode, ILcdGXYContext aGXYContext, Graphics aGraphics, Point aPointSFCT)
Calculates the upper left corner of the label, using getUpperLeftPointSFCT(java.awt.Point, java.lang.String[], int, java.awt.Font[], java.awt.Graphics, java.awt.Point)
.
The label is not rotated.
This method is only called when the labels are placed discretely, that is, the location index is not -1.
aLocationIndex
- the location index. This index is non-negative, thus representing a fixed label location.aWidth
- the width of the label.aHeight
- the height of the label.aAnchorPoint
- The anchor point, retrieved using #anchorPointSFCT.aMode
- the mode to consider.aGXYContext
- the context.aGraphics
- the Graphics.aPointSFCT
- This point should be moved to the upper left label corner.aPointSFCT
parameter as a side
effect.protected void getUpperLeftPointSFCT(Point aAnchorPoint, String[] aLabelArray, int aMaxLabelWidth, Font[] aFonts, Graphics aGraphics, Point aLocationPointSFCT)
aAnchorPoint
- the anchor point of the label.aLabelArray
- the String objects to be used as label.aMaxLabelWidth
- the maximum label width.aFonts
- the fonts used to paint this label.aGraphics
- the Graphics this label will be painted on.aLocationPointSFCT
- the point to be moved.getPositionIndex(int)
protected boolean pinPointSFCT(Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext, Point aAnchorPoint, Rectangle aLabelBounds, double aRotation, Point aPinPointSFCT)
aGraphics
- The Graphics
instance on which the pin will be painted.aMode
- The mode in which the pin will be painted. See paintLabel(java.awt.Graphics, int, ILcdGXYContext)
for more information.aGXYContext
- The instance containing the context in which the pin will be painted.aAnchorPoint
- The point in AWT coordinates where the pin attaches to the object representation (see #anchorPointSFCT)aLabelBounds
- The bounds of the label in AWT coordinates.aRotation
- The rotation of the label in radians, positive going from the x to the y axisaPinPointSFCT
- The point in AWT coordinates where the pin attaches to the labelanchorPointSFCT(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext, java.awt.Point)
,
setWithPin(boolean)
protected void getPinPointSFCT(Point aAnchorPoint, String[] aLabelArray, int aMaxLabelWidth, Font[] aFonts, Graphics aGraphics, Point aPinLocationSFCT)
aAnchorPoint
- the anchor point of the labelaLabelArray
- the String objects to be used as labelaMaxLabelWidth
- the maximum label widthaFonts
- the fonts to paint the label lines in.aGraphics
- the Graphics on which the label will be painted.aPinLocationSFCT
- the point to be moved.getPositionIndex(int)
public double labelBoundsSFCT(Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext, Rectangle aRectangleSFCT) throws TLcdNoBoundsException
Implements the ILcdGXYLabelPainter.labelBoundsSFCT
.
Calculates the bounds of the label rectangle that has to be drawn.
The bounds are stored in a rectangle, the angle is returned.
This painter does not allow the labels to be drawn at an angle.
The bounds will include the pin too if both properties isWithPin
and
isConsiderPinForBounds
return true
labelBoundsSFCT
in interface ILcdGXYLabelPainter
labelBoundsSFCT
in interface ILcdGXYLabelPainter2
aGraphics
- the Graphics on which the label bounds should be calculated.aMode
- the mode for which the label bounds should be calculated. This can be either
ILcdGXYLabelPainter.DEFAULT or ILcdGXYLabelPainter.SELECTED.aGXYContext
- the context in which the label will be painted.aRectangleSFCT
- the rectangle to transform to the labels bounds as a side effect.TLcdNoBoundsException
- if the Object doesn't have any valid anchor
point, e.g. if it is always invisible in the current projection.ILcdGXYViewLabelPainter
,
ILcdGXYLayerLabelPainter
,
ILcdGXYLabelPainter2.labelAnchorPointSFCT(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext, java.awt.Point)
public void setBackgroundColor(Color aBackgroundColor)
newBackground
.aBackgroundColor
- the color to be used for the label frames filling.getBackgroundColor()
public Color getBackgroundColor()
setBackgroundColor(java.awt.Color)
public void setSelectionColor(Color aSelectionColor)
TLcdGXYLabelPainter.ABOVE
draws labels for, to aSelectionColor.aSelectionColor
- the color to use to paint labels for selected objects.getSelectionColor()
public Color getSelectionColor()
TLcdGXYLabelPainter.ABOVE
draws labels for.setSelectionColor(java.awt.Color)
public void setWithFrame(boolean aWithFrame)
aFramed
.aWithFrame
- true to paint the labels in a frame.isWithFrame()
public boolean isWithFrame()
setWithFrame(boolean)
public void setFilled(boolean aFilled)
aFilled
.aFilled
- true to paint labels with a filled background.isFilled()
public boolean isFilled()
true
if filled holds true
,
else false
is returned.setFilled(boolean)
public void setPadding(int aPadding)
aPadding
- the new padding size, in pixelsgetPadding()
public int getPadding()
setPadding(int)
public void setVerticalSpacing(int aVerticalSpacing)
aVerticalSpacing
- the vertical distance to be used between lines of a label.getVerticalSpacing()
public int getVerticalSpacing()
setVerticalSpacing(int)
public void setConsiderPinForBounds(boolean aConsiderPinForBounds)
considerPinForBounds
determines whether the pin should be taken
into account for the bounds. This property is only useful in combination with
isWithPin
returning true
.aConsiderPinForBounds
- true
to incorporate the pin in the bounds calculations.isConsiderPinForBounds()
public boolean isConsiderPinForBounds()
The property considerPinForBounds
determines whether the pin should be taken
into account for the bounds. This property is only useful in combination with
isWithPin
returning true
.
The default value is false
, i.e. not to include the pin within the label bounds.
true
if considerPinForBounds
holds true
, else false
is returned.setConsiderPinForBounds(boolean)
public Font getDefaultFont()
defaultFont
.defaultFont
.setDefaultFont(java.awt.Font)
public void setDefaultFont(Font aDefaultFont)
defaultFont
to aDefaultFont.
The default font is used in case the method getFonts does not return
enough Fonts for the label.aDefaultFont
- The new default font to be set.getDefaultFont()
public Font[] getFonts()
setFonts(java.awt.Font[])
public void setFonts(Font[] aFonts)
aFonts
- The array of Fonts that will be used to paint the successive lines of the label.getFonts()
public Color getDefaultForegroundColor()
defaultForegroundColor
.defaultForegroundColor
.setDefaultForegroundColor(Color)
public void setDefaultForegroundColor(Color aDefaultForegroundColor)
defaultForegroundColor
to aDefaultForegroundColor.
The default foreground color is used in case the method getForegroundColors does not return
enough Colors for the label.
The defaultForegroundColor will also be used to paint the pin and the frame.aDefaultForegroundColor
- The new default foreground color to be set.getDefaultForegroundColor()
public Color[] getForegroundColors()
setForegroundColors(Color[])
public void setForegroundColors(Color[] aForegroundColors)
aForegroundColors
- The array of foreground colors that will be used to paint the successive lines of the label.getForegroundColors()
public int getPossibleLocationCount(Graphics aGraphics)
aGraphics
- the Graphics the label will be painted on. Not used in this implementation.ILcdGXYLabelPainter.setLocationIndex(int)
public void setPositionList(int[] aPositionList)
Sets a new position list. This list is only used when the labels are not placed freely.
By default, all supported positions are offered:
SOUTH_EAST, NORTH_WEST, NORTH_EAST, SOUTH_WEST, EAST, WEST, NORTH, SOUTH, and CENTER.
See setShiftLabelPosition(int)
for how these positions affect the label.
aPositionList
- the list of possible positions to place the labels.getPositionList()
,
ALcdGXYLabelPainter.setLabelLocation(TLcdLabelLocation)
,
setShiftLabelPosition(int)
public int[] getPositionList()
setPositionList(int[])
public void setPositionListAsString(String[] aPositionList)
String
objects are valid
(independent of the font case):
aPositionList
- the list of possible positions to place labels givens as Strings objects.getPositionListAsString()
public String[] getPositionListAsString()
String
representations of the current position list.String
representations of the current position list.setPositionListAsString(java.lang.String[])
public String getPositionAsString(int aPosition)
aPosition
- the integer code for a position. Can be any of SOUTH_EAST, SOUTH, SOUTH_WEST, WEST,
NORTH_WEST, NORTH, NORTH_EAST, EAST or CENTER.getPositionConstantFromString(java.lang.String)
public void setShiftLabelPosition(int aShift)
Sets how many pixels the label must be removed from the anchor point of the domain object. If
the position of the label is east
or west
, this shift is applied in
horizontal direction; if the position is north
or south
, this
shift is applied in vertical direction. In case of north east
, south east
, south west
or north west
, this
shift is applied in both directions. If the location of the label is center
,
the shift is ignored.
The default for this value is 8
pixels.
aShift
- the distance, expressed in pixels, that the label must be removed from the domain
object.getShiftLabelPosition()
public int getShiftLabelPosition()
setShiftLabelPosition(int)
@Deprecated public void setGXYInteractiveLabelProvider(ALcdGXYInteractiveLabelProvider aGXYInteractiveLabelProvider)
TLcdGXYInteractiveLabelsController
instead.Sets the interactive label provider. This method can be called at most once. If the interactive
label provider was previously set (with this method or in the constructor), calling this method
will throw and IllegalStateException
.
setProvideInteractiveLabelOnMouseOver
must be set to true
.aGXYInteractiveLabelProvider
- The interactive label provider that will be used to
configure and show a component that can, for instance, be
used to edit the properties of the labeled domain object.
This cannot be null
.IllegalStateException
- When the interactive label provider was already set.IllegalArgumentException
- When the interactive label provider was null
.setProvideInteractiveLabelOnMouseOver(boolean)
public ALcdGXYInteractiveLabelProvider getGXYInteractiveLabelProvider()
setGXYInteractiveLabelProvider(ALcdGXYInteractiveLabelProvider)
protected Component getComponentForGXYView(ILcdGXYView aGXYView)
Gets the component that represents the given ILcdGXYView
. By default this is
the view itself casted to java.awt.Component
. This information is used for
handling mouse events.
Override this method if your ILcdGXYView
implementation does not extend from
java.awt.Component
.
aGXYView
- The view for which a Component
must be retrieved.java.awt.Component
which corresponds to the given
ILcdGXYView
IllegalArgumentException
- By default when aGXYView
is not a
java.awt.Component
ALcdGXYInteractiveLabelProvider.dispatchMouseEvent(java.awt.event.MouseEvent,
java.awt.Component, java.awt.Component)
protected boolean canAddComponentToGXYView(ILcdGXYView aGXYView)
Returns whether or not an interactive label can be added to the given view. If this method
returns false
, addComponentToGXYView
must not be called. By default this method checks if the given
ILcdGXYView
is an instance of java.awt.Container
without a layout
set on it.
Override this method if your ILcdGXYView
implementation is not a
java.awt.Container
or if you add components to another container than the
specified ILcdGXYView
.
aGXYView
- The ILcdGXYView
for which to check if a component can be added.true
if a component can be added, false
otherwise.addComponentToGXYView(ILcdGXYView, java.awt.Component)
protected void addComponentToGXYView(ILcdGXYView aGXYView, Component aComponent)
Adds the specified interactive label to the user interface. By default this method casts the
given ILcdGXYView
to java.awt.Container
and adds the component to the
view.
Override this method if your implementation of ILcdGXYView
does not extend from
java.awt.Container
or if you want to add the interactive label to another
java.awt.Container
because, for instance, you already need to add other components
to the specified ILcdGXYView
.
If you override this method, you also need to override canAddComponentToGXYView
and removeComponentFromGXYView
as these methods are closely related to each other.
This method will not be called if canAddComponentToGXYView
returns false
.
aGXYView
- The view to which the interactive label should be added.aComponent
- The interactive label that should be added to the user interface.IllegalArgumentException
- By default if aGXYView
is not an instance of
java.awt.Container
or if the layout of
aGXYView
is not null.canAddComponentToGXYView(ILcdGXYView)
,
removeComponentFromGXYView(ILcdGXYView, java.awt.Component)
protected void removeComponentFromGXYView(ILcdGXYView aGXYView, Component aComponent)
Removes the specified java.awt.Component
from the user interface. By default
this method casts the specified ILcdGXYView
to java.awt.Container
and
removes the component from that container.
Override this method if you have overridden
addComponentToGXYView
.
aGXYView
- The view from which the interactive label should be removed.aComponent
- The interactive label that should be removed from the user interfaceIllegalArgumentException
- By default if the view does not extend from
java.awt.Container
public void startLabelInteraction(Object aDomainObject, int aLabelIndex, int aSubLabelIndex, ILcdGXYContext aGXYContext)
aDomainObject
- The domain object for which to display an interactive label.aLabelIndex
- The index of the label for which an interactive label should be
displayed.aSubLabelIndex
- The index of the sublabel for which an interactive label should be
displayed.aGXYContext
- An instance of ILcdGXYContext
containing the layer and the
view for which the label should be made interactivepublic boolean canStopLabelInteraction()
Returns whether or not the label interaction can be stopped. For instance, when the
interactive label contains invalid text, this method should return false
.
true
if the label interaction can be stopped, false
otherwise.public boolean stopLabelInteraction()
Stops the interactive label, if there is one. The interactive label will commit any outstanding changes.
true
if the interactive label could be stopped or if there was no
interactive label, false
otherwise.canStopLabelInteraction()
,
ALcdGXYInteractiveLabelProvider.stopInteraction()
public void cancelLabelInteraction()
public Object getDomainObjectForInteractiveLabel()
null
if there is no
interactive label.null
if there is no
interactive label.@Deprecated public void setProvideInteractiveLabelOnMouseOver(boolean aProvideInteractiveLabelOnMouseOver)
TLcdGXYInteractiveLabelsController
instead.Enables the ALcdGXYInteractiveLabelProvider
functionality, so that the interactive
label is present when the mouse hoovers over a label. This flag is typically enabled/disabled
whenever the interactive label functionality is desired/not wanted. For example, the interactive
labels could only be desired when a certain ILcdGXYController
is active.
aProvideInteractiveLabelOnMouseOver
- true
to activate the
ALcdGXYInteractiveLabelProvider
, false
otherwise.setGXYInteractiveLabelProvider
public boolean isLabelTouched(Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext)
ILcdGXYLabelPainter2
setObject
, setLabelIndex
and
setSubLabelIndex
is touched at view location (specified by
aGXYContext.getX()
and aGXYContext.getY()
), considering the mode and the
ILcdGXYContext
instance.
Before calling this method, the domain object, the label index, the sublabel index and the location of the label should be set using the respective methods.
isLabelTouched
in interface ILcdGXYLabelPainter2
aGraphics
- The Graphics
instance on which the label is painted.aMode
- the mode to consider. This is a bitwise combinations of several constants.
See ILcdGXYLabelPainter2.paintLabel(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext)
for more information.aGXYContext
- the ILcdGXYContext
to consider.ILcdGXYContext
public void labelAnchorPointSFCT(Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext, Point aPointSFCT) throws TLcdNoBoundsException
ILcdGXYLabelPainter2
Sets aPointSFCT
to the anchor point of the label specified by
setObject
, setLabelIndex
and setSubLabelIndex
.
If the location index is less than 0, the label anchor point is unambiguously determined by the
label location
. The actual label is to be painted somewhere around
this anchor point. This method is typically called to compare the result with
the label bounds, thus determining the exact relation between the label
and its location
.
Before calling this method, the domain object, the label index, the sublabel index and the location of the label should be set using the respective methods.
labelAnchorPointSFCT
in interface ILcdGXYLabelPainter2
aGraphics
- The Graphics
instance on which the label is painted.aMode
- The mode to consider. This can be a bitwise combination of several
constants. See ILcdGXYLabelPainter2.paintLabel(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext)
for more information.aGXYContext
- The ILcdGXYContext
that can be used to retrieve extra
information.aPointSFCT
- The point which will be updated to reflect the location of the anchor
point.TLcdNoBoundsException
- if the Object doesn't have any valid anchor point, e.g. if it is
always invisible in the current projection.ILcdGXYLabelPainter2.paintLabel(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext)
,
ILcdGXYLabelPainter2.getLabelLocation()
,
ILcdGXYLabelPainter2.labelBoundsSFCT(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext, java.awt.Rectangle)
public boolean editLabel(Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext)
ILcdGXYLabelEditor
Adapts the set TLcdLabelLocation
according to the information present in
aGXYContext. If the method returns true
, the TLcdLabelLocation
was
modified, if false
is returned, it wasn't changed.
The implementation of this method shall define how to edit the label specified by the set
domain Object
, label index and
sublabel index, considering the given mode and
aGXYContext
. These should all be set before calling this method. Note that
if aMode
is one of the creating modes, the (sub) label indices are irrelevant.
editLabel
in interface ILcdGXYLabelEditor
aGraphics
- The Graphics
on which the label is painted.aMode
- the mode to consider when editing aObject: aMode shall be a combination of
ILcdGXYLabelEditor.TRANSLATED
,ILcdGXYLabelEditor.RESHAPED
, ILcdGXYLabelEditor.START_CREATION
,ILcdGXYLabelEditor.CREATING
, ILcdGXYLabelEditor.END_CREATION
.aGXYContext
- contains the information to consider when editing the set Object.ILcdGXYContext
public Object labelSnapTarget(Graphics aGraphics, ILcdGXYContext aGXYContext)
ALcdGXYLabelPainter
Object
that can be used as snapping target when graphically editing
another Object
or label than the one this ILcdGXYLabelPainter2 represents. The
returned Object
can be the Object
this ILcdGXYLabelPainter2
represents or any other (e.g. an ILcdPoint
if getObject() is an
ILcdPointList
).
This default implementation always returns null
. Override this method if you want
to support snapping.
labelSnapTarget
in interface ILcdGXYLabelPainter2
labelSnapTarget
in class ALcdGXYLabelPainter
aGraphics
- the Graphics on which is worked.aGXYContext
- the ILcdGXYContext of the snapping.Object
that can be used as snapping target when graphically editing
another Object
or label than the one this ILcdGXYLabelPainter2 represents
(returned by getObject()). This object can be null
.public ILcdGXYLabelPainter getGXYLabelPainter(Object aObject)
ILcdGXYLabelPainterProvider
ILcdGXYLabelPainter
that can be used to label the object passed.
The label painter provider is responsible for setting the object to the label painter before returning the label painter. An implementation should therefore have the following structure:
public ILcdGXYLabelPainter getGXYLabelPainter(Object aObject) {
ILcdGXYLabelPainter labelPainter = ... // find the label painter for the object
if (labelPainter != null) {
labelPainter.setObject(aObject);
}
return labelPainter;
}
getGXYLabelPainter
in interface ILcdGXYLabelPainterProvider
aObject
- the object to find a label painter forpublic ILcdGXYLabelEditor getGXYLabelEditor(Object aObject)
ILcdGXYLabelEditorProvider
Returns a valid ILcdGXYLabelEditor
for editing the labels of aObject. The
returned ILcdGXYLabelEditor
must have aObject
set on it. The
TLcdLabelLocation must not yet be set on it.
getGXYLabelEditor
in interface ILcdGXYLabelEditorProvider
aObject
- the Object for which to obtain a ILcdGXYLabelEditor
.ILcdGXYLabelEditor
for editing the labels of aObject
with aObject
set on it.ILcdGXYLabelEditor.setObject(java.lang.Object)
public ALcdGXYLabelStamp getGXYLabelStamp()
ALcdGXYLabelStamp
that is used by this painter to paint the labels.ALcdGXYLabelStamp
that is used by this painter to paint the labels.setGXYLabelStamp(ALcdGXYLabelStamp)
protected void firePropertyChangeEvent(PropertyChangeEvent aPropertyChangeEvent)
ALcdGXYLabelPainter
PropertyChangeListener
s of the specified event.firePropertyChangeEvent
in class ALcdGXYLabelPainter
aPropertyChangeEvent
- The event describing the property change of which the registered
listeners should be notified.ALcdGXYLabelPainter.addPropertyChangeListener(java.beans.PropertyChangeListener)
public String getDisplayName()
ALcdGXYLabelPainter
setDisplayName
, or toString()
if this was set to null
.getDisplayName
in interface ILcdGXYLabelEditor
getDisplayName
in interface ILcdGXYLabelPainter2
getDisplayName
in class ALcdGXYLabelPainter
ILcdGXYLabelPainter2
public Cursor getLabelCursor(Graphics aGraphics, int aMode, ILcdGXYContext aGXYContext)
ALcdGXYLabelPainter
Cursor
to indicate the type of editing aMode
and
aGXYContext
.
This default implementation always returns null
. Override this method if you want
to display custom cursors.
getLabelCursor
in interface ILcdGXYLabelPainter2
getLabelCursor
in class ALcdGXYLabelPainter
aGraphics
- The Graphics
instance on which the label is painted.aMode
- The mode to consider. See ILcdGXYLabelPainter2.paintLabel(java.awt.Graphics, int,
ILcdGXYContext)
for more information.aGXYContext
- The ILcdGXYContext
containing extra information, such as the
layer, the view and the mouse position.Cursor
to indicate the type of editing aMode
and
aGXYContext
. Returns null
if no particular
Cursor
is required.public boolean acceptSnapTargetForLabel(Graphics aGraphics, ILcdGXYContext aGXYContext)
ILcdGXYLabelEditor
Returns whether the label specified by setObject
, setLabelIndex
and
setSubLabelIndex
accepts the snap target in the given
ILcdGXYContext
.
The snap target is the Object
returned by aGXYContext.getSnapTarget()
,
and is on the ILcdGXYLayer
returned by aGXYContext.getSnapTargetLayer()
.
acceptSnapTargetForLabel
in interface ILcdGXYLabelEditor
aGraphics
- The Graphics
on which the label is painted.aGXYContext
- The ILcdGXYContext
containing the snapping information.true
if the label accepts the snap target, false
otherwise.ILcdGXYContext.getSnapTarget()
,
ILcdGXYContext.getSnapTargetLayer()
protected void anchorPointSFCT(Graphics aGraphics, int aMode, ILcdGXYContext aContext, Point aPointSFCT) throws TLcdNoBoundsException
setObject
, setLabelIndex
and
setSubLabelIndex
) attaches to the object representation.
Implementations of this class can also use it to determine, for example, discrete positions
for a label.
By default, this anchor point is the result of the anchorPointSFCT
method of
the corresponding ILcdGXYPainter
for the Object to be painted
(see aGXYContext.getGXYLayer().getGXYPainter( aObject )
).
When the set TLcdLabelLocation
can retrieve an anchor point, this anchor
point should be returned.
Before calling this method, the domain object, the label index, the sublabel index and the location of the label should be set using the respective methods.
aGraphics
- the Graphics for which the labels anchor point should be calculated.aMode
- the mode for the which the label anchor point should be calculated. Can be
ILcdGXYLabelPainter.SELECTED or ILcdGXYLabelPainter.DEFAULT.aContext
- the context in which this label will be painted.aPointSFCT
- the point that will be moved to the computed anchor point.TLcdNoBoundsException
- if the Object doesn't have any valid anchor point, e.g. if it is always invisible in
the current projection.public void setMakeLabelsStickyOnEdit(boolean aMakeLabelsStickyOnEdit)
aMakeLabelsStickyOnEdit
- true
if you want the labels to be sticky after they are edited,
false
otherwise.TLcdLabelLocation.getLabelEditMode()
,
ILcdGXYViewLabelPainter
,
ILcdGXYLayerLabelPainter
public boolean isMakeLabelsStickyOnEdit()
true
if this editor sets the labels it edits to be sticky, false
otherwise. The
default value is false
.setMakeLabelsStickyOnEdit(boolean)
public int getLabelCreationClickCount()
ILcdGXYLabelEditor
Object
.getLabelCreationClickCount
in interface ILcdGXYLabelEditor
Object
or
-1 if this is undefined like for a polyline or a polygon. 0 means graphical creation
of labels is not supported.public Color getPinColor()
setPinColor(java.awt.Color)
public void setPinColor(Color aPinColor)
aPinColor
- The color in which the pin should be drawn.getPinColor()
,
setWithPin(boolean)
public Color getSelectedPinColor()
public void setSelectedPinColor(Color aSelectedPinColor)
aSelectedPinColor
- The color in which the pin of the label of a selected label should be drawn.setWithPin(boolean)
public boolean isHaloEnabled()
setHaloEnabled(boolean)
public void setHaloEnabled(boolean aHaloEnabled)
aHaloEnabled
- true if halos should be added, false otherwiseisHaloEnabled()
,
setHaloPinEnabled(boolean)
public boolean isHaloPinEnabled()
setHaloPinEnabled(boolean)
,
setHaloEnabled(boolean)
public void setHaloPinEnabled(boolean aHaloPinEnabled)
aHaloPinEnabled
- true if the halo effect includes the pin, false otherwiseisHaloPinEnabled()
,
setHaloEnabled(boolean)
,
setWithPin(boolean)
public int getHaloThickness()
setHaloThickness(int)
public void setHaloThickness(int aThickness)
aThickness
- the new halo thicknessTLcdGXYHaloLabelPainter.setHaloThickness(int)
,
setHaloEnabled(boolean)
public Color getHaloColor()
setHaloColor(java.awt.Color)
public void setHaloColor(Color aColor)
aColor
- the new halo colorTLcdGXYHaloLabelPainter.setHaloColor(java.awt.Color)
,
setHaloEnabled(boolean)
public void setHaloAlgorithm(TLcdHaloAlgorithm aHaloAlgorithm)
TLcdHaloAlgorithm
for more information on the available algorithms.aHaloAlgorithm
- the algorithm to be used for rendering halo's.TLcdHaloAlgorithm
,
getHaloAlgorithm()
,
setHaloEnabled(boolean)
public TLcdHaloAlgorithm getHaloAlgorithm()
TLcdHaloAlgorithm
,
setHaloAlgorithm(com.luciad.util.TLcdHaloAlgorithm)
public Color getHaloPinColor()
setHaloColor(java.awt.Color)
public void setHaloPinColor(Color aColor)
aColor
- the new halo colorgetHaloPinColor()
,
setHaloPinEnabled(boolean)
public boolean isUseImageCache()
true
when image caching for labels with a halo is enabled,
false
otherwise.true
when label image caching is enabled, false
otherwisesetUseImageCache(boolean)
public void setUseImageCache(boolean aUseCache)
aUseCache
- specifies whether image caching should be enabledTLcdGXYHaloLabelPainter.setUseImageCache(boolean)
,
setHaloEnabled(boolean)
,
setHaloPinEnabled(boolean)
,
isUseImageCache()
public void clearImageCache()
clearImageCache(Object)
.setUseImageCache(boolean)
public void clearImageCache(Object aObject)
clearImageCache()
.aObject
- the object for which the cache to be cleared.setUseImageCache(boolean)
protected void paintPin(Graphics aGraphics, int aMode, int aStartPointX, int aStartPointY, int aEndPointX, int aEndPointY)
aGraphics
- the graphics to paint the pin on.aMode
- the mode this objects label is painted in (e.g. ILcdGXYLabelPainter.SELECTED).aStartPointX
- the x coordinate of the start point of the pin.aStartPointY
- the y coordinate of the start point of the pin.aEndPointX
- the x coordinate of the end point of the pin.aEndPointY
- the y coordinate of the end point of the pin.setWithPin(boolean)
public void setWithPin(boolean aWithPin)
withPin
determines whether a pin should be drawn from the object to
the label. The pin is attached to the object at the anchor point
and to the label stamp at the pin point
.aWithPin
- true to paint a pin connecting the label and the object.isWithPin()
,
anchorPointSFCT(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext, java.awt.Point)
,
pinPointSFCT(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext, java.awt.Point, java.awt.Rectangle, double, java.awt.Point)
,
paintPin(java.awt.Graphics, int, int, int, int, int)
public boolean isWithPin()
true
if a pin is drawn from the object to the labelsetWithPin(boolean)
public void setWithAnchorPoint(boolean aWithAnchorPoint)
anchorPointSFCT
.aWithAnchorPoint
- true to paint an anchor pointisWithAnchorPoint()
,
anchorPointSFCT(java.awt.Graphics, int, com.luciad.view.gxy.ILcdGXYContext, java.awt.Point)
,
paintAnchorPoint(java.awt.Graphics, int, int, int)
public boolean isWithAnchorPoint()
anchorPointSFCT
.true
if an anchor point is painted, false
otherwisesetWithAnchorPoint(boolean)
public static void setClassTraceOn(boolean aClassTraceOn)
true
then all log messages are recorded, otherwise only
the informative, warning and error messages are recorded.aClassTraceOn
- if true then all log messages are recorded,
otherwise only the informative, warning and error messages are recorded.