Class TLcdICAODefaultSymbolProvider

java.lang.Object
com.luciad.ais.symbology.icao.TLcdICAODefaultSymbolProvider
All Implemented Interfaces:
ILcdObjectIconProvider

public class TLcdICAODefaultSymbolProvider extends Object implements ILcdObjectIconProvider
This class returns, for each kind of AIS object, the symbol used to paint the object on a map according to ICAO guidelines.

The user can specify whether he/she wants to use vector icons or image icons, through the method setPaintVectorIcons(boolean). Image icons are lazy loaded: image icons never requested are not precomputed as an image.

This class uses a set of predefined icons (see getIcon(Object) for a list), but it is possible to extend this class with other icons. This can be done in two ways, depending on the type of the new icons:

  • by overriding getIcon(Object): this is the preferable approach when the icons are image-based.
  • by overriding getVectorIcon(Object): this is the preferable approach when the icons are vector-based. The icons returned by this method are automatically cached in an image icon, if isPaintVectorIcons() returns true.
Please note that extensions should take into account the color property (getColor()) and the size property (getIconSize()) for custom icons.

This label painter evaluates its expressions using an instance of TLcdDataObjectExpressionLanguage.
  • Constructor Details

    • TLcdICAODefaultSymbolProvider

      public TLcdICAODefaultSymbolProvider()
  • Method Details

    • setNavaidTypeIndex

      @Deprecated public void setNavaidTypeIndex(int aIndex)
      Specifies the index of the navaid type feature. If the value is not -1 (default value), this feature is used to make a distinction between the graphical representation of a VOR, a VOR-DME and a VORTAC object. If the value is -1, the default VOR icon is used for all VOR objects.
      Parameters:
      aIndex - the index of the navaid type feature.
    • setNavaidTypeExpression

      public void setNavaidTypeExpression(String aExpression)
      Specifies the expression that evaluates to the navaid's type. If the value is not null (default value), this property is used to make a distinction between the graphical representation of a VOR, a VOR-DME and a VORTAC object. If the value is null, the default VOR icon is used for all VOR objects.
      Parameters:
      aExpression - the navaid type expression.
    • getIcon

      public ILcdIcon getIcon(Object aObject)
      Returns an icon that can be used as representation for the given object.

      A predefined icon is available for the following objects:

      • ILcdAerodrome objects: a separate icon is available for airports (aerodrome type TLcdAerodromeType.AIRPORT or TLcdAerodromeType.AIRPORT_HELIPORT) and for heliports (aerodrome type TLcdAerodromeType.HELIPORT), see ILcdAerodrome.getAerodromeType();
      • ILcdHelipad objects;
      • ILcdWayPoint objects;
      • ILcdDME objects;
      • ILcdMarker objects;
      • ILcdGlidePath objects;
      • ILcdLocalizer objects;
      • ILcdNDB objects;
      • ILcdTACAN objects;
      • ILcdVOR objects: a separate icon is available for VORs with navaid type TLcdNavaidType.VOR_DME, TLcdNavaidType.VORTAC or TLcdNavaidType.VOR. This functionality requires that the navaid type index is set through setNavaidTypeIndex(int). If this index is not set, the same icon is used for all VORs;
      • ILcdParachuteJumpArea objects;
      • ILcdAirspace objects;
      • ILcdArrestingGear objects;
      • ILcdObstacle objects: a separate icon is available for lighted and unlighted obstacles (see ILcdObstacle.isLighted());
      • ILcdLocationBasedService objects.
      Specified by:
      getIcon in interface ILcdObjectIconProvider
      Parameters:
      aObject - the domain object.
      Returns:
      an icon that can be used as representation for the given object. If no icon can be found or if the supplied object is null, a default icon is returned (see setDefaultIcon(com.luciad.gui.ILcdIcon)).
    • setIconSize

      public void setIconSize(int aSize)
      Sets the size of the icons in this symbol provider.

      Note that this is a potential expensive operation when image icons are used, since such icons need to be recomputed when the size is changed.

      This setting is applied to all icons except for the default icon, which is a general ILcdIcon that can be set through setDefaultIcon(ILcdIcon).

      By default, an icon size of 17 pixels is used.

      Parameters:
      aSize - the size of the icons in this symbol provider.
    • getIconSize

      public int getIconSize()
      Returns the size of the icons in this symbol provider.
      Returns:
      the size of the icons in this symbol provider.
      See Also:
    • canGetIcon

      public boolean canGetIcon(Object aObject)
      Returns whether an icon can be returned for the given object.

      Because getIcon(Object) returns a default icon when no icon can be found or when the given object is null, this method always returns true.

      Specified by:
      canGetIcon in interface ILcdObjectIconProvider
      Parameters:
      aObject - the object to check whether an icon can be provided for it.
      Returns:
      true in all cases.
    • getVectorIcon

      public ILcdIcon getVectorIcon(Object aObject)
      Returns a vector-based icon for the given object.

      A predefined icon is available for a set of domain objects: see getIcon(Object) for a list.

      Parameters:
      aObject - the domain object.
      Returns:
      a vector-based icon for the given object. If no icon can be found, a default icon is returned (see setDefaultIcon(com.luciad.gui.ILcdIcon)).
    • setDefaultIcon

      public void setDefaultIcon(ILcdIcon aIcon)
      Sets the default icon to be used when no icon can be found for a particular object.
      Parameters:
      aIcon - an ILcdIcon that will be used as default.
    • setColor

      public void setColor(Color aColor)
      Sets the color to be used for the icons in this provider.
      Parameters:
      aColor - a Color
    • getColor

      public Color getColor()
      Returns the color that is used for the icons in this provider.
      Returns:
      the color that is used for the icons in this provider.
    • isPaintVectorIcons

      public boolean isPaintVectorIcons()
      Returns a boolean indicating whether this symbolProvider should return vector icons or not.

      If the return value is false, the getIcon method will return an instance of the TLcdAWTImageIcon class.

      Returns:
      a boolean indicating whether this symbolProvider should return vector icons or not
      See Also:
    • setPaintVectorIcons

      public void setPaintVectorIcons(boolean aPaintVectorIcons)
      Specifies whether this symbolProvider should return vector icons or not.

      If this property is set to false, the getIcon method will return an instance of the TLcdAWTImageIcon class (except for the default icon, which can be set through setDefaultIcon(ILcdIcon).

      By default, this property is true, indicating that vector icons are used.

      Parameters:
      aPaintVectorIcons - a boolean indicating whether this symbol provider should return vector icons or not.
      See Also: