Class TLcdMS2525bNode

java.lang.Object
com.luciad.symbology.milstd2525b.model.TLcdMS2525bNode

public class TLcdMS2525bNode extends Object
Tree structured representation of the symbol hierarchy for a given MIL-STD 2525 standard. This allows enumerating all possible symbols of the standard. Use getRoot(com.luciad.symbology.milstd2525b.model.ELcdMS2525Standard) to access the root, and getChildren() to list its children.

A hierarchy code can be retrieved from and applied to any ILcdMS2525bCoded instance, unless it does not have a visual representation.

Since:
2013.1
See Also:
  • Method Details

    • getRoot

      public static TLcdMS2525bNode getRoot(ELcdMS2525Standard aStandard)
      Returns a node with a hierarchic structure of all symbols of the given standard.
      Parameters:
      aStandard - the symbology standard
      Returns:
      a node containing with symbols for the domains of the given standard
    • getStandard

      public ELcdMS2525Standard getStandard()
      Returns the symbology standard of this tree.
      Returns:
      the symbology standard of this tree.
    • getCodeMask

      public String getCodeMask()
      Returns a code identifier that corresponds to this node.
      Even if the node maps to a symbol with a visual representation, the identifier may or may not be directly usable as a MIL-STD 2525 symbol code (SIDC). It could, for example, contain masking characters (hence the term "code mask").
      For this reason, the identifier should not be applied directly on an ILcdEditableMS2525bCoded object, but rather using the applyOn method.
      Returns:
      the symbol code (SIDC) mask
      See Also:
    • isFolderOnly

      public boolean isFolderOnly()
      Returns true if the node does not represent a symbol, but rather a folder of symbols.
      Returns:
      true if the node does not represent a symbol
    • getChildren

      public List<TLcdMS2525bNode> getChildren()
      Returns a list of the node's children.
      Returns:
      a list of the node's children.
    • getParent

      public TLcdMS2525bNode getParent()
      Returns the parent of this tree node. This can be null if this tree node is the root node.
      Returns:
      the parent of this tree node. Can be null.
    • getName

      public String getName()
      Returns a human readable name for this symbol or folder.
      Returns:
      a human readable name for this symbol or folder.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • get

      public static TLcdMS2525bNode get(String aSIDC, ELcdMS2525Standard aStandard)
      Returns the hierarchy node for the given object.
      Parameters:
      aSIDC - the SIDC
      aStandard - the standard
      Returns:
      the hierarchy node for the given object, or null if the object is not part of the given standard
    • applyOn

      public void applyOn(ILcdEditableMS2525bCoded aObject)
      Adapts the given symbol so that it belongs to the given hierarchy node.
      Parameters:
      aObject - the symbol to adapt
    • applyTemplateShape

      public void applyTemplateShape(ILcdModelReference aReference, double aX, double aY, double aSize, ILcd2DEditablePointList aListSFCT)

      Applies a suitable shape for this symbology node, at the given location and of the provided size. This method can be used to create a template object (for example used in association with the create controller) or as a convenience for programmatically creating shapes. The template geometry coordinates are derived from the symbol, not the geometry type of the given pointlist. For example: if the symbol represents a polygon, the template geometry will reflect this.

      Example:

         TLcdGeodeticReference reference = ...;
         String code = "GUTPR---------X";
         TLcdMS2525bNode node = TLcdMS2525bNode.get(code, ELcdMS2525Standard.MIL_STD_2525b);
         TLcdEditableMS2525bObject symbol = new TLcdEditableMS2525bObject();
         node.applyOn(symbol);
         // set up the geometry at (0,0) with an approximate size of 2 degrees
         node.applyTemplateShape(reference, 0, 0, 2, symbol);
       

      Parameters:
      aReference - the coordinate reference of the shape
      aX - x coordinate where the template will be created
      aY - y coordinate where the template will be created
      aSize - the approximate size of the final template. This is applied to the coordinates in the shape's reference system. In other words, if the size is 1, the width and height of the geometry will be around 1 model unit (e.g. degree, meter), depending on the shape.
      aListSFCT - A shape that can represent a military symbol.
      Throws:
      IllegalArgumentException - If this node does not have a code (i.e. the node sits high in the hierarchy, grouping several nodes).