public class TLcdAIXM51LabelingAlgorithm extends Object implements ILcdGXYLabelingAlgorithm
TLcdAIXM51GXYPainterEditorProvider
.Constructor and Description |
---|
TLcdAIXM51LabelingAlgorithm() |
Modifier and Type | Method and Description |
---|---|
boolean |
canHandle(TLcdLabelIdentifier aLabel)
Returns if this algorithm can handle the given label.
|
Object |
clone()
Makes
Object.clone() public. |
TLcdCollectedLabelInfoList |
collectLabelInfo(List<TLcdLabelIdentifier> aLabelsToCollect,
Graphics aGraphics,
ILcdGXYView aGXYView)
This method returns a
TLcdCollectedLabelInfoList object based
on the given list of TLcdLabelIdentifier s. |
List<TLcdLabelPlacement> |
computeLabelPlacements(TLcdCollectedLabelInfoList aLabelInfoList,
ILcdLabelConflictChecker aLabelConflictChecker,
ILcdGXYView aView)
This method computes a list of
TLcdLabelPlacement s using the given
TLcdCollectedLabelInfoList . |
public TLcdCollectedLabelInfoList collectLabelInfo(List<TLcdLabelIdentifier> aLabelsToCollect, Graphics aGraphics, ILcdGXYView aGXYView)
ILcdGXYLabelingAlgorithm
TLcdCollectedLabelInfoList
object based
on the given list of TLcdLabelIdentifier
s. The returned
TLcdCollectedLabelInfoList
should contain a TLcdCollectedLabelInfo
object for each label that should be placed.
Each TLcdCollectedLabelInfo
should also contain all information needed by
computeLabelPlacements
to place the labels. In order to enable
correct asynchronous label placing, all calls to the layer and the (label) painters should be
done in this method. The results should then be stored in the info objects.
It is possible that the returned TLcdCollectedLabelInfoList
doesn't contain a
TLcdCollectedLabelInfo
object for every given TLcdLabelIdentifier
.
In that case the missing labels are not placed.
collectLabelInfo
in interface ILcdGXYLabelingAlgorithm
aLabelsToCollect
- the labels for which a TLcdCollectedLabelInfoList
should
be created.aGraphics
- the graphics.aGXYView
- the view.TLcdCollectedLabelInfoList
which contains all the information needed to
place the labels.public List<TLcdLabelPlacement> computeLabelPlacements(TLcdCollectedLabelInfoList aLabelInfoList, ILcdLabelConflictChecker aLabelConflictChecker, ILcdGXYView aView)
ILcdGXYLabelingAlgorithm
TLcdLabelPlacement
s using the given
TLcdCollectedLabelInfoList
. The returned label placements
should contain a valid TLcdLabelLocation
and label bounds. They should also point
to their corresponding TLcdCollectedLabelInfo
, which in turn should point to its
corresponding TLcdCollectedLabeledObjectInfo
.
The given TLcdCollectedLabelInfoList
should always be an object created or returned
by collectLabelInfo
.
The returned List
of TLcdLabelPlacement
s contains label placements
that are either visible or invisible. When a placement is present in the list, it means that
the location should be stored. When a placement in the list is marked as visible, it means that
its location should be marked as to-be-painted.
The labels should by preference be placed in the order in which the labels are returned by
TLcdCollectedLabelInfoList.getLabels()
.
computeLabelPlacements
in interface ILcdGXYLabelingAlgorithm
aLabelInfoList
- the info object that contains all information needed to place the labels.aLabelConflictChecker
- the bounds conflict checker that can be used to detect conflicts between labels.aView
- the view.public boolean canHandle(TLcdLabelIdentifier aLabel)
TLcdAIXM51GXYPainterEditorProvider
is used to provide a label painter for the layer of the
given label.aLabel
- the label to handlepublic Object clone()
ILcdCloneable
Makes Object.clone()
public.
java.lang.Object
, it can be implemented like this:
public Object clone() {
try {
return super.clone();
} catch ( CloneNotSupportedException e ) {
// Cannot happen: extends from Object and implements Cloneable (see also Object.clone)
throw new RuntimeException( e );
}
}
clone
in interface ILcdCloneable
clone
in class Object
Object.clone()