Class TLcdTreeLayeredSupport
- All Implemented Interfaces:
ILcdLayered
,ILcdTreeLayered
,ILcdTreeLayeredSupport
,Serializable
- Direct Known Subclasses:
TLcdIndependentOrderTreeLayeredSupport
This is a utility class that can be used to make a class that implements
ILcdTreeLayered
.
The order of the layers in the flat list representation is derived from the order in which the
layers appear in the hierarchical layer structure. As a consequence, moving a layer to a certain
index is not always possible since the hierarchical structure must allow such a move (see also
moveLayerAt(int, ILcdLayer)
). This also means that adjusting the layer order in the
hierarchical structure will influence the layer order in the flat list.
- Since:
- 9.0
- See Also:
-
Constructor Summary
ConstructorDescriptionTLcdTreeLayeredSupport
(ILcdLayered aLayeredToSupport, ILcdLayerTreeNode aRootNode) Constructs a newTLcdTreeLayeredSupport
for a tree with root nodeaRootNode
.TLcdTreeLayeredSupport
(ILcdLayerTreeNode aRootNode) Constructs a newTLcdTreeLayeredSupport
for a tree with root nodeaRootNode
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addLayeredListener
(ILcdLayeredListener aLayeredListener) Registers the givenILcdLayeredListener
to be notified when layers are added, removed or moved in the flat list.boolean
containsLayer
(ILcdLayer aLayer) Returns whether the flat list representation of the hierarchical layer structure contains the given layer.getLayer
(int aIndex) Returns theILcdLayer
with indexaIndex
in the flat list representation of the hierarchical layer structure.Returns theILcdLayered
for which this support is created.Returns the root node of the tree structure.int
Returns the index of the given layeraLayer
in the flat list representation of the hierarchical structure.int
Returns the number of layers in the flat list representation of the hierarchical layer structure.Returns theILcdLayer
of the flat list that contains the givenILcdModel
.layers()
Returns anEnumeration
of all theILcdLayer
s currently in the flat list representation of the hierarchical layer structure, starting from the bottom layer to the top layer.Returns anEnumeration
of all theILcdLayer
s currently in the flat list representation of the hierarchical layer structure, starting from the top layer to the bottom layer.void
moveLayerAt
(int aIndex, ILcdLayer aLayer) Tries to move the layeraLayer
to indexaIndex
, without affecting the tree structure, in a best effort approach.void
Remove all the layers from the hierarchical layer structure and the flat list representation.void
removeLayer
(ILcdLayer aLayer) Removes a layer from both the hierarchical layer structure and the flat list representation.void
removeLayeredListener
(ILcdLayeredListener aLayeredListener) Unregisters the givenILcdLayeredListener
from receiving layered events for the flat list.void
setLayeredToSupport
(ILcdLayered aLayeredToSupport) Sets theILcdLayered
for which this support is created.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.luciad.view.ILcdLayered
addLayeredListener, getLayers, removeLayeredListener
-
Constructor Details
-
TLcdTreeLayeredSupport
Constructs a new
TLcdTreeLayeredSupport
for a tree with root nodeaRootNode
.- Parameters:
aLayeredToSupport
- theILcdLayered
that will delegate to this supportaRootNode
- the root node of the hierarchical layer structure
-
TLcdTreeLayeredSupport
Constructs a new
TLcdTreeLayeredSupport
for a tree with root nodeaRootNode
.Before using an instance of this class,
setLayeredToSupport(ILcdLayered)
must be called.- Parameters:
aRootNode
- the root node of the hierarchical layer structure
-
-
Method Details
-
setLayeredToSupport
Sets the
ILcdLayered
for which this support is created. This method may only be called once, and this call should happen before using this class. When using the constructor which takes anILcdLayered
as a parameter, calling this method is not necessary since this is already done by the constructor.- Specified by:
setLayeredToSupport
in interfaceILcdTreeLayeredSupport
- Parameters:
aLayeredToSupport
- the ILcdLayered that will delegate to this support
-
getRootNode
Description copied from interface:ILcdTreeLayered
Returns the root node of the tree structure.
- Specified by:
getRootNode
in interfaceILcdTreeLayered
- Returns:
- the root node of the tree structure
-
addLayeredListener
Description copied from interface:ILcdTreeLayered
Registers the givenILcdLayeredListener
to be notified when layers are added, removed or moved in the flat list.- Specified by:
addLayeredListener
in interfaceILcdLayered
- Specified by:
addLayeredListener
in interfaceILcdTreeLayered
- Parameters:
aLayeredListener
- the listener that from now on will be notified of all changes to the flat list.- See Also:
-
removeLayeredListener
Description copied from interface:ILcdTreeLayered
Unregisters the givenILcdLayeredListener
from receiving layered events for the flat list.- Specified by:
removeLayeredListener
in interfaceILcdLayered
- Specified by:
removeLayeredListener
in interfaceILcdTreeLayered
- Parameters:
aLayeredListener
- the listener that will no longer be notified of changes in the flat list.- See Also:
-
layerCount
public int layerCount()Description copied from interface:ILcdTreeLayered
Returns the number of layers in the flat list representation of the hierarchical layer structure. This does not include the root node.
- Specified by:
layerCount
in interfaceILcdLayered
- Specified by:
layerCount
in interfaceILcdTreeLayered
- Returns:
- the number of layers in the flat list. Does not include the root node.
-
layers
Description copied from interface:ILcdTreeLayered
Returns an
Enumeration
of all theILcdLayer
s currently in the flat list representation of the hierarchical layer structure, starting from the bottom layer to the top layer. This does not include the root node.- Specified by:
layers
in interfaceILcdLayered
- Specified by:
layers
in interfaceILcdTreeLayered
- Returns:
- an
Enumeration
of all theILcdLayer
s currently in the flat list, starting from the bottom layer to the top layer. Does not include the root node.
-
layersBackwards
Description copied from interface:ILcdTreeLayered
Returns an
Enumeration
of all theILcdLayer
s currently in the flat list representation of the hierarchical layer structure, starting from the top layer to the bottom layer. This does not include the root node.- Specified by:
layersBackwards
in interfaceILcdLayered
- Specified by:
layersBackwards
in interfaceILcdTreeLayered
- Returns:
- an
Enumeration
of all theILcdLayer
s currently in the flat list, starting from the top layer to the bottom layer. Does not include the root node.
-
getLayer
Description copied from interface:ILcdTreeLayered
Returns the
ILcdLayer
with indexaIndex
in the flat list representation of the hierarchical layer structure.- Specified by:
getLayer
in interfaceILcdLayered
- Specified by:
getLayer
in interfaceILcdTreeLayered
- Parameters:
aIndex
- the position of the layer to retrieve in the flat list representation.- Returns:
- the
ILcdLayer
with indexaIndex
in the flat list representation - Throws:
ArrayIndexOutOfBoundsException
- if the given index is invalid
-
layerOf
Description copied from interface:ILcdTreeLayered
Returns theILcdLayer
of the flat list that contains the givenILcdModel
.- Specified by:
layerOf
in interfaceILcdLayered
- Specified by:
layerOf
in interfaceILcdTreeLayered
- Parameters:
aModel
- the model to check for in the flat list- Returns:
- the
ILcdLayer
of the flat list that contains the givenILcdModel
. - Throws:
NoSuchElementException
- if there is no layer containing the given model
-
indexOf
Description copied from interface:ILcdTreeLayered
Returns the index of the given layer
aLayer
in the flat list representation of the hierarchical structure.- Specified by:
indexOf
in interfaceILcdLayered
- Specified by:
indexOf
in interfaceILcdTreeLayered
- Parameters:
aLayer
- the layer whose index to return- Returns:
- the index of
aLayer
in the flat list representation - Throws:
NoSuchElementException
- ifaLayer
is not in the flat list
-
moveLayerAt
public void moveLayerAt(int aIndex, ILcdLayer aLayer) throws NoSuchElementException, ArrayIndexOutOfBoundsException Tries to move the layer
aLayer
to indexaIndex
, without affecting the tree structure, in a best effort approach. This best effort approach can be seen as follows:- First the layer at index
aIndex
is searched. - Then the first common ancestor of layer
aLayer
and the layer at indexaIndex
is searched - Once the first common ancestor is found, the subtree containing
aLayer
is moved to the position of the subtree containing the layer at indexaIndex
in the child list of the common ancestor
This also means that after calling this method the index of the layer
aLayer
can be different from the requested indexaIndex
.- Specified by:
moveLayerAt
in interfaceILcdLayered
- Parameters:
aIndex
- the desired index for the layeraLayer
aLayer
- the layer to move.- Throws:
NoSuchElementException
- ifaLayer
is not in thisILcdLayered
.ArrayIndexOutOfBoundsException
- ifaIndex
is not an index of one of the layers of thisILcdLayered
.
- First the layer at index
-
removeLayer
Description copied from interface:ILcdTreeLayered
Removes a layer from both the hierarchical layer structure and the flat list representation. When removing an
ILcdLayerTreeNode
all of its children will also be removed. An event will then be generated for every layer that has been removed (one for the node and one for each of its child layers).It is not possible to remove the root node
- Specified by:
removeLayer
in interfaceILcdLayered
- Specified by:
removeLayer
in interfaceILcdTreeLayered
- Parameters:
aLayer
- the layer to remove. If the layer is not in the flat list, this method has no effect.
-
removeAllLayers
public void removeAllLayers()Description copied from interface:ILcdTreeLayered
Remove all the layers from the hierarchical layer structure and the flat list representation. An event will be fired for every layer that has been removed. This will not remove the root node.
- Specified by:
removeAllLayers
in interfaceILcdLayered
- Specified by:
removeAllLayers
in interfaceILcdTreeLayered
-
containsLayer
Description copied from interface:ILcdTreeLayered
Returns whether the flat list representation of the hierarchical layer structure contains the given layer. More formally, returns
true
if and only if the flat list representation contains at least one layerl
such that (aLayer==null ? l==null : aLayer.equals(l)).Calling this method with the root node will return
false
, since the root node is not a part of the flat list representation.- Specified by:
containsLayer
in interfaceILcdLayered
- Specified by:
containsLayer
in interfaceILcdTreeLayered
- Parameters:
aLayer
- the layer to check whether it is in the flat list representation- Returns:
true
when the flat list representation contains the given layer,false
otherwise
-
getLayeredToSupport
Description copied from interface:ILcdTreeLayeredSupport
Returns the
ILcdLayered
for which this support is created.- Specified by:
getLayeredToSupport
in interfaceILcdTreeLayeredSupport
- Returns:
- the
ILcdLayered
for which this support is created.
-