Class KMLLayerTreeNode

    • Field Detail

      • kmlRoot

        protected KMLRoot kmlRoot
        Indicates the KML feature hierarchy this node represents. Initialized during construction.
    • Constructor Detail

      • KMLLayerTreeNode

        public KMLLayerTreeNode​(Layer layer,
                                KMLRoot kmlRoot)
        Creates a new KMLLayerTreeNode from the specified layer and kmlRoot. The node's name is set to the layer's name, and the node's hierarchy is populated from the feature hierarchy of the KMLRoot.
        Parameters:
        layer - the Layer the kmlRoot corresponds to.
        kmlRoot - the KML feature hierarchy this node represents.
        Throws:
        java.lang.IllegalArgumentException - if the layer is null, or if kmlRoot is null.
    • Method Detail

      • setSelected

        public void setSelected​(boolean selected)
        Specifies whether this node's layer is enabled for rendering. If the KMLRoot's feature is a container (Document or Folder), this method sets the visibility of that container as well as the node that represents the layer.
        Specified by:
        setSelected in interface TreeNode
        Overrides:
        setSelected in class LayerTreeNode
        Parameters:
        selected - true to enable the layer, otherwise false.
        See Also:
        TreeNode.isSelected()
      • addChildFeatures

        protected void addChildFeatures()
        Adds a new KMLFeatureTreeNode to this node for each KML feature in the KMLRoot.

        If the KMLRoot's top level feature is a Document or Folder, this method ignores this container and adds its children directly to this node. Creating a node for the container adds an extra level to the tree node that doesn't provide any meaningful grouping.

        This does nothing if the KMLRoot's top level feature is null.

      • addFeatureNode

        protected void addFeatureNode​(KMLAbstractFeature feature)
        Adds the a new KMLFeatureTreeNode created with the specified feature to this node.
        Parameters:
        feature - the KML feature to add.
      • expandOpenContainers

        public void expandOpenContainers​(Tree tree)
        Expands paths in the specified tree corresponding to open KML container elements. This assumes that the tree's model contains this node.

        This node's path is expanded if it's top level KML feature is an open KML container, an open KML network link, or is any other kind of KML feature.

        This calls expandOpenContainers on all children which are instances of KMLFeatureTreeNode.

        Parameters:
        tree - the Tree who's paths should be expanded.
        Throws:
        java.lang.IllegalArgumentException - if the tree is null.
      • mustExpandNode

        protected boolean mustExpandNode()
        Indicates whether the tree path for this node must expanded. If the KMLRoot's feature is a KML container or a KML network link, this returns whether that KML element's open property is true. Otherwise this returns true
        Returns:
        true if the tree path for this node must be expanded, otherwise false.
      • refresh

        protected void refresh()
        Refresh the tree model to match the contents of the KML document.