NASA World Wind

gov.nasa.worldwind.util.layertree
Class KMLLayerTreeNode

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.WWObjectImpl
          extended by gov.nasa.worldwind.util.tree.BasicTreeNode
              extended by gov.nasa.worldwind.util.layertree.LayerTreeNode
                  extended by gov.nasa.worldwind.util.layertree.KMLLayerTreeNode
All Implemented Interfaces:
AVList, MessageListener, TreeNode, WWObject, PropertyChangeListener, EventListener

public class KMLLayerTreeNode
extends LayerTreeNode

A LayerTreeNode that represents a KML feature hierarchy defined by a KMLRoot.

See Also:
KMLFeatureTreeNode

Field Summary
protected  KMLRoot kmlRoot
          Indicates the KML feature hierarchy this node represents.
 
Fields inherited from class gov.nasa.worldwind.util.layertree.LayerTreeNode
DEFAULT_IMAGE, layer
 
Fields inherited from class gov.nasa.worldwind.util.tree.BasicTreeNode
children, description, enabled, imageSource, parent, selected, text, texture, treeSelected, visible
 
Fields inherited from interface gov.nasa.worldwind.util.tree.TreeNode
NOT_SELECTED, PARTIALLY_SELECTED, SELECTED
 
Constructor Summary
KMLLayerTreeNode(Layer layer, KMLRoot kmlRoot)
          Creates a new KMLLayerTreeNode from the specified layer and kmlRoot.
 
Method Summary
protected  void addChildFeatures()
          Adds a new KMLFeatureTreeNode to this node for each KML feature in the KMLRoot.
protected  void addFeatureNode(KMLAbstractFeature feature)
          Adds the a new KMLFeatureTreeNode created with the specified feature to this node.
 void expandOpenContainers(Tree tree)
          Expands paths in the specified tree corresponding to open KML container elements.
protected  boolean mustExpandNode()
          Indicates whether the tree path for this node must expanded.
protected  void refresh()
          Refresh the tree model to match the contents of the KML document.
 void setSelected(boolean selected)
          Specifies whether this node's layer is enabled for rendering.
 
Methods inherited from class gov.nasa.worldwind.util.layertree.LayerTreeNode
initialize, isSelected
 
Methods inherited from class gov.nasa.worldwind.util.tree.BasicTreeNode
addChild, addChild, computeTreeSelected, getChildren, getDescription, getImageSource, getParent, getPath, getText, getTexture, hasImage, initializeTexture, isEnabled, isLeaf, isTreeSelected, isVisible, propertyChange, removeAllChildren, removeChild, setDescription, setEnabled, setImageSource, setParent, setVisible
 
Methods inherited from class gov.nasa.worldwind.WWObjectImpl
onMessage
 
Methods inherited from class gov.nasa.worldwind.avlist.AVListImpl
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getBooleanValue, getBooleanValue, getChangeSupport, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getRestorableStateForAVPair, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gov.nasa.worldwind.avlist.AVList
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from interface gov.nasa.worldwind.event.MessageListener
onMessage
 

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:
IllegalArgumentException - if the layer is null, or if kmlRoot is null.
Method Detail

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:
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.


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()

NASA World Wind