Class TLcdGXYViewLabelPainter

java.lang.Object
com.luciad.view.gxy.TLcdGXYViewLabelPainter
All Implemented Interfaces:
ILcdGXYViewLabelPainter, Serializable, Cloneable

@Deprecated public class TLcdGXYViewLabelPainter extends Object implements ILcdGXYViewLabelPainter
Deprecated.
ILcdGXYViewLabelPlacer offers more powerful and flexible decluttering functionality
A greedy view label painter based on the label locations provided by each label's label painter. It tries to place all labels one by one, and when a label cannot be placed without overlap, it is omitted. If a sublabel of a label is dropped, all the sublabels of that label are dropped.

The user can control the quality versus the labeling speed through the properties fineTuning, overLappingAllowed and allowedCluttering.

Note that this painter does not know of a layer's TLcdGXYLayer.setSelectionLabeled(boolean) property. See setSelectionLabeled(boolean) instead.

It is recommended to use an implementation of ILcdGXYViewLabelPlacer instead, because it offers better decluttering behavior, more algorithm choices, support for asynchronous label placement, and easier customization. In particular, TLcdGXYLabelPainterLocationLabelingAlgorithm has behavior equivalent to this view label painter.

See Also:
  • Field Details

  • Constructor Details

    • TLcdGXYViewLabelPainter

      public TLcdGXYViewLabelPainter()
      Deprecated.
    • TLcdGXYViewLabelPainter

      public TLcdGXYViewLabelPainter(TLcdGXYViewLabelPainter aGXYViewLabelPainter)
      Deprecated.
  • Method Details

    • getQuality

      public TLcdGXYViewLabelPainter.Quality getQuality()
      Deprecated.
      Returns the quality of the placement of the labels. Can be either LOW or HIGH.
      Returns:
      the quality of the placement of the labels. Can be either LOW or HIGH.
      See Also:
    • setQuality

      public void setQuality(TLcdGXYViewLabelPainter.Quality aQuality)
      Deprecated.
      Sets the quality of the algorithm to place the labels. Accepted values are LOW and HIGH. The HIGH quality algorithm will place more labels without overlapping, while the LOW quality algorithm is faster. The default value is LOW.
      Parameters:
      aQuality -
      See Also:
    • paintLabel

      public void paintLabel(Graphics aGraphics, ILcdGXYView aGXYView, int aViewLabelPainterMode)
      Deprecated.
      Description copied from interface: ILcdGXYViewLabelPainter
      The implementation of this method shall define how to paint the labels of all the objects in the various ILcdGXYLayer of the given ILcdGXYView, in the given mode. Here one can implement various smart algorithms to check whether or not to paint a label at a certain location.

      If any layer for which labels are painted is an ILcdGXYEditableLabelsLayer, this method should inform the ALcdLabelLocations associated with that layer which labels have been drawn and which haven't been.

      Specified by:
      paintLabel in interface ILcdGXYViewLabelPainter
      Parameters:
      aGraphics - The Graphics instance on which to paint the labels.
      aGXYView - The view for which to paint the labels. If labels are drawn for a layer that is an instance of ILcdGXYEditableLabelsLayer, its ALcdLabelLocations instance should be informed of which labels have been drawn and which haven't been.
      aViewLabelPainterMode - Determines which labels should be drawn. Should be one of ILcdGXYViewLabelPainter.ALL or ILcdGXYViewLabelPainter.SELECTION
      See Also:
    • paintLabel

      public void paintLabel(Graphics aGraphics, Enumeration aGXYLayerEnumeration, ILcdGXYView aGXYView, int aViewLabelPainterMode)
      Deprecated.
      Description copied from interface: ILcdGXYViewLabelPainter
      The implementation of this method shall define how to paint the labels of all the objects in the various ILcdGXYLayer of the given Enumeration, on the given ILcdGXYView, in the given mode. Here one can implement various smart algorithms to check whether or not to paint a label at a certain location.

      If any layer for which labels are painted is an ILcdGXYEditableLabelsLayer, this method should inform the ALcdLabelLocations associated with that layer which labels have been drawn and which haven't been.

      Specified by:
      paintLabel in interface ILcdGXYViewLabelPainter
      Parameters:
      aGraphics - The Graphics instance on which to paint the labels.
      aGXYLayerEnumeration - Only the labels for the layers contained in this Enumeration will be drawn.
      aGXYView - The ILcdGXYView instance for which to paint the layers.
      aViewLabelPainterMode - Determines which labels should be drawn. Should be one of ILcdGXYViewLabelPainter.ALL or ILcdGXYViewLabelPainter.SELECTION
      See Also:
    • isFineTuning

      public boolean isFineTuning()
      Deprecated.
      fineTuning determines whether to apply fine grain (thus more time consuming) label placement algorithms.
      Returns:
      true if fineTuning is true, else false is returned.
    • setFineTuning

      public void setFineTuning(boolean aFineTune)
      Deprecated.
      fineTuning determines whether to apply fine grain (thus more time consuming) label placement algorithms. Sets fineTuning to aFineTune.
    • isSomewhatOverlapping

      public boolean isSomewhatOverlapping()
      Deprecated.
      somewhatOverlapping determines whether the labels may overlap a bit, thus allowing for more labels to be placed. The amount of overlap depends on the width and the height of the label. It varies between a few percent to up to twenty percent of the surface of the label.
      Returns:
      true if somewhatOverlapping is true, else false is returned.
    • setSomewhatOverlapping

      public void setSomewhatOverlapping(boolean aOverlap)
      Deprecated.
      somewhatOverlapping determines whether the labels may overlap a bit, thus allowing for more labels to be placed. The amount of overlap depends on the width and the height of the label. It varies between a few percent to up to twenty percent of the surface of the label. Sets somewhatOverlapping to aOverlap.
    • getAllowedCluttering

      public double getAllowedCluttering()
      Deprecated.
      allowedCluttering defines the fraction (a double located between 0 and 1 ) of the area (pixels) that the labels may occupy. allowedCluttering equal to zero means no labels may be drawn. allowedCluttering equal to one allows the view to be filled by labels.
      Returns:
      allowedCluttering.
    • setAllowedCluttering

      public void setAllowedCluttering(double aCluttering)
      Deprecated.
      allowedCluttering defines the fraction (a double located between 0 and 1 ) of the area (pixels) that the labels may occupy. allowedCluttering equal to zero means no labels may be drawn. allowedCluttering equal to one allows the view to be filled by labels. Sets allowedCluttering to aCluttering.
    • setReusePreviousLocation

      @Deprecated public void setReusePreviousLocation(boolean aReusePreviousLocation)
      Deprecated.
      Use a layer implementing ILcdGXYEditableLabelsLayer instead. ALcdLabelLocations is more flexible and its default implementation automatically removes locations for removed objects.
      reusePreviousLocation determines whether the same relative location for a label should be used if there is one available. Note:previous locations are cached for objects, without reference to the objects model. Therefore if an object is removed from the model, the view label painter is not notified automatically. Use the method invalidate() to clear the cached positions of all objects.
      Parameters:
      aReusePreviousLocation - true to cache relative label position.
      See Also:
    • isReusePreviousLocation

      @Deprecated public boolean isReusePreviousLocation()
      Deprecated.
      Use a layer implementing ILcdGXYEditableLabelsLayer instead. ALcdLabelLocations is more flexible and its default implementation automatically removes locations for removed objects.
      Returns whether relative positions for labels were cached.
      Returns:
      true if relative positions for labels were cached.
      See Also:
    • setSelectionLabeled

      public void setSelectionLabeled(boolean aSelectionLabeled)
      Deprecated.
      Determines whether an object should be labeled regardless of whether the label was visible before. If false, labels of selected objects are put in the same location as when the object was not selected. As a result the label of a selected object will not be shown if the object was not displayed in default mode. If true, selected labels will always be visible, but they will not be declutted.
      Parameters:
      aSelectionLabeled - If false, an object will be labeled in selected mode only if it has a location in default mode. If true, a selected object will always be labeled even if this would cause overlap.
    • isSelectionLabeled

      public boolean isSelectionLabeled()
      Deprecated.
      See Also:
    • setLabelPriorityProvider

      public void setLabelPriorityProvider(ILcdGXYLabelPriorityProvider aLabelPriorityProvider)
      Deprecated.
      Sets the ILcdGXYLabelPriorityProvider to be used by this label painter. If null, no priorities will be used (default behavior).
      Parameters:
      aLabelPriorityProvider - the ILcdGXYLabelPriorityProvider to be used.
      See Also:
    • getLabelPriorityProvider

      public ILcdGXYLabelPriorityProvider getLabelPriorityProvider()
      Deprecated.
      Returns the ILcdGXYLabelPriorityProvider that is used by this label painter.
      Returns:
      the ILcdGXYLabelPriorityProvider that is used.
      See Also:
    • setForcedPaintingThresholdPriority

      public void setForcedPaintingThresholdPriority(int aPriority)
      Deprecated.
      Sets the threshold priority for forced label painting. The labels of objects with a priority value less than or equal to the threshold priority value will always be painted, even if the decluttering algorithm could not find any suitable place for the label. The default value is -1, in which case no forced painting is done.
      Parameters:
      aPriority - the threshold priority for forced label painting.
      See Also:
    • getForcedPaintingThresholdPriority

      public int getForcedPaintingThresholdPriority()
      Deprecated.
      Returns the threshold priority for forced label painting.
      Returns:
      the threshold priority for forced label painting.
      See Also:
    • invalidate

      public void invalidate()
      Deprecated.
      Invalidate any stored information about label locations in order to recalculate the label positions. To be used in cooperation with the property reusePreviousLocation if it is true.
    • clone

      public Object clone()
      Deprecated.
      Description copied from interface: ILcdGXYViewLabelPainter
      Redefines Object.clone to make it public.
      Specified by:
      clone in interface ILcdGXYViewLabelPainter
      Overrides:
      clone in class Object