Class TLcdAIXM51GXYPainterEditorProvider

java.lang.Object
com.luciad.format.aixm51.view.gxy.TLcdAIXM51GXYPainterEditorProvider
All Implemented Interfaces:
ILcdCloneable, ILcdGXYEditorProvider, ILcdGXYLabelEditorProvider, ILcdGXYLabelPainterProvider, ILcdGXYPainterProvider, Serializable, Cloneable

A provider of ILcdGXYEditor, ILcdGXYPainter, ILcdGXYLabelPainter and ILcdGXYLabelEditorProvider instances for AIXM 5.1 features.

This provider generally supports the elements returned by TLcdAIXM51AbstractAIXMMessage.elements(), but not every AIXM 5.1 feature type is supported. The following types are currently supported:

  • AirportHeliport
  • DesignatedPoint
  • Navaid
  • Unit
  • RunwayBlastPad
  • RunwayCentreLinePoint
  • RunwayElement
  • AirportProtectionAreaMarking
  • ApronMarking
  • DeicingAreaMarking
  • GuidanceLineMarking
  • RunwayMarking
  • StandMarking
  • TaxiHoldingPositionMarking
  • TaxiwayMarking
  • TouchDownLiftOffMarkingPassengerService
  • PassengerService
  • AirportSuppliesService
  • TaxiwayElement
  • ApronElement
  • RouteSegment
  • Airspace
  • GeoBorder
  • GuidanceLine
  • InstrumentApproachProcedure
  • StandardInstrumentDeparture
  • StandardInstrumentArrival
  • DepartureLeg
  • TouchDownLiftOff
  • TouchDownLiftOffSafeArea
  • VerticalStructure

For each supported feature type, default settings and styles are used to configure the corresponding (label painters and (label) editors. By overriding getGXYPainter(Object), getGXYEditor(Object), getGXYLabelPainter(Object) and/or getGXYLabelEditor(Object), the rendering and editing behavior can be customized for each feature type.

The following default settings are used for each feature type:

  • AirportHeliport
    • Rendering: 'ICAO Annex 4'-compliant icon, color (255, 255, 255) (white), selection color (255, 0, 0) - see TLcdGXYIconPainter and TLcdAIXM51SymbolProvider
    • Label: value of the designator, referenced by the XPath expression //aixm51:AirportHeliportTimeSlice/aixm51:designator - see TLcdAIXM51XPathLabelPainter
  • DesignatedPoint
    • Rendering: 'ICAO Annex 4'-compliant icon, color (255, 255, 255) (white), selection color (255, 0, 0) - see TLcdGXYIconPainter and TLcdAIXM51SymbolProvider
    • Label: value of the name, referenced by the XPath expression //aixm51:DesignatedPointTimeSlice/aixm51:name - see TLcdAIXM51XPathLabelPainter
  • Navaid
    • Rendering: 'ICAO Annex 4'-compliant icon, color (255, 255, 255) (white), selection color (255, 0, 0) - see TLcdGXYIconPainter and TLcdAIXM51SymbolProvider
    • Label: 'ICAO Annex 4'-compliant label - see TLcdAIXM51NavaidLabelPainter
  • Unit
    • Rendering: filled rectangle icon, color (255, 255, 255) (white), selection color (255, 0, 0) - see TLcdGXYIconPainter and TLcdSymbol.FILLED_RECT
    • Label: value of the name, referenced by the XPath expression //aixm51:UnitTimeSlice/aixm51:name - see TLcdAIXM51XPathLabelPainter
  • RunwayBlastPad
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (51, 51, 51), selection color (255, 0, 0, 100) - see TLcdGXYSurfacePainter
    • Label: value of the designator of the associated runway, referenced by the XPath expression lcd:getLinkedTimeSlice(/aixm51:RunwayBlastPadTimeSlice/aixm51:usedRunwayDirection)/aixm51:designator/text() - see TLcdAIXM51XPathLabelPainter
  • RunwayCentrelinePoint
    • Rendering: filled rectangle icon, color (255, 255, 255) (white), selection color (255, 0, 0) - see TLcdGXYIconPainter and TLcdSymbol.FILLED_RECT
    • Label: value of the role, referenced by the XPath expression //aixm51:RunwayCentrelinePointTimeSlice/aixm51:role - see TLcdAIXM51XPathLabelPainter
  • RunwayElement
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (51, 51, 51) + texture based upon the surface composition, selection color (255, 0, 0, 100) - see TLcdGXYSurfacePainter
    • Label: value of the designator of the associated runway, referenced by the XPath expression lcd:getLinkedTimeSlice(//aixm51:RunwayElementTimeSlice/aixm51:associatedRunway)/aixm51:designator - see TLcdAIXM51XPathLabelPainter
  • AirportProtectionAreaMarking, ApronMarking, DeicingAreaMarking, GuidanceLineMarking, RunwayMarking, StandMarking, TaxiHoldingPositionMarking, TaxiwayMarking, TouchDownLiftOffMarking
    • Rendering (surface): GML 3.2 surface, no line, fill color dependent on colour-property (WHITE by default), selection color (255, 0, 0) - see TLcdGXYSurfacePainter
    • Rendering (curve): GML 3.2 curve, color dependent on colour-property (WHITE by default), width 3, stroke-style dependent on style-property (SOLID by default), selection color (255, 0, 0) - see TLcdGXYCompositeCurvePainter
    • Rendering (point): GML 3.2 point, filled rectangle icon, color dependent on colour-property (WHITE by default) - see TLcdGXYIconPainter
    • Label: value of the colour and the style of this marking, referenced by the XPath expression "/aixm51:RunwayMarkingTimeSlice/aixm51:element/aixm51:MarkingElement/aixm51:colour", "/aixm51:RunwayMarkingTimeSlice/aixm51:element/aixm51:MarkingElement/aixm51:style" - see TLcdAIXM51XPathLabelPainter
  • PassengerService
    • Rendering: type specific icon (i.e. a car-icon for TRANSPORT, bank-note-icon for BANK etc.) - see TLcdGXYIconPainter and TLcdAIXM51SymbolProvider
    • Label: value of the type, referenced by the XPath expression /aixm51:PassengerServiceTimeSlice/aixm51:type/text() - see TLcdAIXM51XPathLabelPainter
  • AirportSuppliesService
    • Rendering: icon based on "SUGPIRP---H****" from the MS2525c-standard (WARFIGHTING SYMBOLS - GROUND TRACK - INSTALLATION - RAW MATERIAL PRODUCTION/STORAGE - PETROLEUM/GAS/OIL) - see TLcdGXYIconPainter and TLcdAIXM51SymbolProvider
    • Label: list of categories of the supplied services, in the order of [fuelSupply oilSupply nitrogenSupply oxygenSupply], referenced by the XPath expression "lcd:join-string( /aixm51:AirportSuppliesServiceTimeSlice/aixm51:fuelSupply/aixm51:Fuel/aixm51:category, \", \")", "lcd:join-string( /aixm51:AirportSuppliesServiceTimeSlice/aixm51:oilSupply/aixm51:Oil/aixm51:category, \", \")", "lcd:join-string( /aixm51:AirportSuppliesServiceTimeSlice/aixm51:nitrogenSupply/aixm51:Nitrogen/aixm51:category, \", \")", "lcd:join-string( /aixm51:AirportSuppliesServiceTimeSlice/aixm51:oxygenSupply/aixm51:Oxygen/aixm51:category, \", \")" - see TLcdAIXM51XPathLabelPainter
  • TaxiwayElement
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (156, 150, 138), selection color (255, 0, 0, 100) - see TLcdGXYSurfacePainter
    • Label: value of the designator of the associated taxiway, referenced by the XPath expression lcd:getLinkedTimeSlice(//aixm51:TaxiwayElementTimeSlice/aixm51:associatedTaxiway)/aixm51:designator - see TLcdAIXM51XPathLabelPainter
  • ApronElement
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (196, 190, 178), selection color (255, 0, 0, 100) - see TLcdGXYSurfacePainter
    • Label: value of the name, referenced by the XPath expression //aixm51:ApronElementTimeSlice/aixm51:name - see TLcdAIXM51XPathLabelPainter
  • RouteSegment
    • Rendering: GML 3.2 curve, color (0, 185, 56), selection color (255, 0, 0) - see TLcdGXYCompositeCurvePainter
    • Label: value of the name of the associated route, referenced by the XPath expression lcd:getLinkedTimeSlice(//aixm51:RouteSegmentTimeSlice/aixm51:routeFormed)/aixm51:name - see TLcdAIXM51XPathLabelPainter
  • Airspace
    • Rendering: 'ICAO Annex 4'-compliant styling, based upon the airspace classification
    • Label: 'ICAO Annex 4'-compliant label - see TLcdAIXM51AirspaceLabelPainter
  • GeoBorder
    • Rendering: GML 3.2 curve, color (255, 255, 255), selection color (255, 0, 0) - see TLcdGXYCompositeCurvePainter
    • Label: value of the name, referenced by the XPath expression //aixm51:GeoBorderTimeSlice/aixm51:name - see TLcdAIXM51XPathLabelPainter
  • GuidanceLine
    • Rendering: GML 3.2 curve, color (255, 229, 1), width 2, selection color (255, 0, 0) - see TLcdGXYCompositeCurvePainter
    • Label: value of the designator, referenced by the XPath expression //aixm51:GuidanceLineTimeSlice/aixm51:designator - see TLcdAIXM51XPathLabelPainter
  • InstrumentApproachProcedure, StandardInstrumentDeparture, StandardInstrumentArrival
    • Rendering: GML 3.2 curve, color (255, 255, 255), selection color (255, 0, 0) - see TLcdGXYCompositeCurvePainter
    • Label: value of the name, referenced by the XPath expression //aixm51:name - see TLcdAIXM51XPathLabelPainter
  • TouchDownLiftOff
    • Rendering: GML 3.2 surface, line color (96, 90, 78), fill color (51, 51, 51), selection color (255, 0, 0, 100) - see TLcdGXYSurfacePainter
    • Label: value of the designator of the associated airportheliport, together with the surface composition, referenced by the XPath expression "lcd:getLinkedTimeSlice(/aixm51:TouchDownLiftOffTimeSlice/aixm51:associatedAirportHeliport)/aixm51:designator/text()", "/aixm51:TouchDownLiftOffTimeSlice/aixm51:surfaceProperties/aixm51:SurfaceCharacteristics/aixm51:composition/text()" - see TLcdAIXM51XPathLabelPainter
  • TouchDownLiftOffSafeArea
    • Rendering: GML 3.2 surface, line color ( 0, 88, 12 ), fill color (0, 128, 12 ), selection color (255, 0, 0, 100) - see TLcdGXYSurfacePainter
    • Label: value of the designator of the touchdownliftoff it protects, together with the surface composition, referenced by the XPath expression "lcd:getLinkedTimeSlice(/aixm51:TouchDownLiftOffSafeAreaTimeSlice/aixm51:protectedTouchDownLiftOff)/aixm51:designator/text()", "/aixm51:TouchDownLiftOffSafeAreaTimeSlice/aixm51:surfaceProperties/aixm51:SurfaceCharacteristics/aixm51:composition/text() - see TLcdAIXM51XPathLabelPainter
  • VerticalStructure
    • Rendering (surface): GML 3.2 surface, line color (215, 142, 0), fill color (255, 192, 0, 128), selection color (255, 0, 0, 100) - see TLcdGXYSurfacePainter
    • Rendering (curve): GML 3.2 curve, color (255, 192, 0), selection color (255, 0, 0) - see TLcdGXYCompositeCurvePainter
    • Rendering (point): GML 3.2 point, 'ICAO Annex 4'-compliant icon - see TLcdGXYIconPainter and TLcdAIXM51SymbolProvider
    • Label: value of the name, referenced by the XPath expression //aixm51:VerticalStructureTimeSlice/aixm51:name - see TLcdAIXM51XPathLabelPainter

Since:
10.0
See Also:
  • Constructor Details

    • TLcdAIXM51GXYPainterEditorProvider

      public TLcdAIXM51GXYPainterEditorProvider()
      Creates a new TLcdAIXM51GXYPainterEditorProvider.
  • Method Details

    • getSLDFeatureTypeStyle

      public TLcdSLDFeatureTypeStyle getSLDFeatureTypeStyle(TLcdDataType aFeatureType)
      Returns an SLD feature type style that can be used to configure painting for the given feature type. If an SLD style is set on this painter provider with the setSLDFeatureTypeStyle(TLcdDataType, TLcdSLDFeatureTypeStyle) method, it will be returned. Otherwise a style will be returned that resembles the style that is internally used by the painter, as far as that style can be represented using SLD.

      The style supports styling of AIXM 5.1 features, and is primarily meant for use with this painter. It is not guaranteed that it can be used with a generic SLD painter without modification. It can be read and written with the LuciadLightspeed SLD decoder/encoder.

      The returned style can be customized, use the corresponding setter with the changed style to use it for painting. Do note that styles returned by this method are not guaranteed to remain the same across different versions of LuciadLightspeed. It is very likely that the default styles will be improved over time, or updated if new features are added to the SLD specifications.

      The TLcdDataType that defines the feature type can be retrieved generically using the ILcdDataModelDescriptor.getModelElementTypes() method, or the ILcdDataObject.getDataType() method. It is also possible to use one of the constants that are available in TLcdAIXM51DataTypes.

      Parameters:
      aFeatureType - The feature type for which a style is to be retrieved. This type has to be an extension of an AIXM 5.1 abstract feature.
      Returns:
      A valid feature type style for use with this painter provider.
      Throws:
      IllegalArgumentException - In case aFeatureType is not an extension of an AIXM 5.1 abstract feature.
      Since:
      10.1
      See Also:
    • getDefaultSLDFeatureTypeStyle

      public static TLcdSLDFeatureTypeStyle getDefaultSLDFeatureTypeStyle(TLcdDataType aFeatureType)
      Returns a default SLD style that corresponds to the default style that is used by the painter as far as that style can be represented with SLD.

      Styles returned by this method are not guaranteed to remain the same across different versions of LuciadLightspeed. It is very likely that the default styles will be improved over time, or updated if new features are added to the SLD specifications.

      Parameters:
      aFeatureType - A data type that is an extension of an AIXM 5.1 abstract feature type.
      Returns:
      A valid SLD feature type style that corresponds to the default styling of the painter.
      Throws:
      IllegalArgumentException - In case aFeatureType is not an extension of an AIXM 5.1 abstract feature.
      Since:
      10.1
    • setSLDFeatureTypeStyle

      public void setSLDFeatureTypeStyle(TLcdDataType aFeatureType, TLcdSLDFeatureTypeStyle aFeatureStyle)
      Sets the SLD feature type style that defines the visualization for the given feature type. Use null to reset to the default style.

      All of the XPath expressions in the style will be evaluated on AIXM 5.1 features.

      Parameters:
      aFeatureType - The feature type for which the style needs to be set. This type has to be an extension of an AIXM 5.1 abstract feature.
      aFeatureStyle - A valid SLD feature type style, or null to reset the painter to the default style.
      Throws:
      IllegalArgumentException - In case aFeatureType is not an extension of an AIXM 5.1 abstract feature.
      Since:
      10.1
      See Also:
    • getGXYEditor

      public ILcdGXYEditor getGXYEditor(Object aObject)
      Provides an editor for each feature type supported by this class, and its corresponding timeslice type.

      A list of supported feature types can be found in the class documentation. If a feature type is not supported, null is returned.

      Specified by:
      getGXYEditor in interface ILcdGXYEditorProvider
      Parameters:
      aObject - object for which an editor should be returned; the object should at least be of type TLcdAIXM51AbstractAIXMFeature or TLcdAIXM51AbstractAIXMTimeSlice
      Returns:
      A valid editor for aObject if its type is supported, null otherwise.
    • getGXYPainter

      public ILcdGXYPainter getGXYPainter(Object aObject)
      Provides a painter for each feature type supported by this class, and its corresponding timeslice type.

      A list of supported feature types can be found in the class documentation. If a feature type is not supported, null is returned.

      Specified by:
      getGXYPainter in interface ILcdGXYPainterProvider
      Parameters:
      aObject - object for which a painter should be returned; the object should at least be of type TLcdAIXM51AbstractAIXMFeature or TLcdAIXM51AbstractAIXMTimeSlice
      Returns:
      A valid painter for aObject if its type is supported, null otherwise.
    • getGXYLabelPainter

      public ILcdGXYLabelPainter getGXYLabelPainter(Object aObject)
      Provides a ILcdGXYLabelPainter for each feature type supported by this class.

      A list of supported feature types can be found in the class documentation. If a feature type is not supported, null is returned.

      Specified by:
      getGXYLabelPainter in interface ILcdGXYLabelPainterProvider
      Parameters:
      aObject - object for which a label painter should be returned; the object should at least be of type ILcdXMLSchemaElement, and correspond to a feature type supported by this provider.
      Returns:
      A valid label painter for aObject if its type is supported, null otherwise.
    • getGXYLabelEditor

      public ILcdGXYLabelEditor getGXYLabelEditor(Object aObject)
      Provides a ILcdGXYLabelEditor for each feature type supported by this class.

      A list of supported feature types can be found in the class documentation. If a feature type is not supported, null is returned.

      Specified by:
      getGXYLabelEditor in interface ILcdGXYLabelEditorProvider
      Parameters:
      aObject - object for which a label editor should be returned; the object should at least be of type TLcdAIXM51AbstractAIXMFeature
      Returns:
      A valid label editor for aObject if its type is supported, null otherwise.
      See Also:
    • setTimeSliceProvider

      public void setTimeSliceProvider(ILcdAIXM51TimeSliceProvider aTimeSliceProvider)
      Sets the time slice provider that will be used by painters that are returned by this provider. By settings this time slice provider you override the default time slice provider of the AIXM 5.1 feature. Set this time slice provider to null to use the default time slice provider in the painters.
      Parameters:
      aTimeSliceProvider - A valid time slice provider or null.
      See Also:
    • getTimeSliceProvider

      public ILcdAIXM51TimeSliceProvider getTimeSliceProvider()
      Returns the time slice provider that is used by the painters of this painter editor provider. Returns null in case the default time slice provider of the AIXM 5.1 features is used.
      Returns:
      A valid time slice provider or null.
      See Also:
    • clone

      public Object clone()
      Description copied from interface: ILcdGXYEditorProvider
      Redefines Object.clone() to make it public.
      Specified by:
      clone in interface ILcdCloneable
      Specified by:
      clone in interface ILcdGXYEditorProvider
      Specified by:
      clone in interface ILcdGXYLabelEditorProvider
      Specified by:
      clone in interface ILcdGXYLabelPainterProvider
      Specified by:
      clone in interface ILcdGXYPainterProvider
      Overrides:
      clone in class Object
      Returns:
      a clone of this editor provider.
      See Also: