|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.openide.nodes.Children
Container for array of nodes.
Can be associated
with a node and then
all children in the array have that node set as a parent, and this list
will be returned as the node's children.
Probably you want to subclass Children.Keys
.
Subclassing Children
directly is not recommended.
Inner Class Summary | |
static class |
Children.Array
Implements the storage of node children by an array. |
static class |
Children.Keys
Implements an array of child nodes associated nonuniquely with keys and sorted by these keys. |
static class |
Children.Map
Implements the storage of node children by a map. |
static class |
Children.SortedArray
Maintains a list of children sorted by the provided comparator in an array. |
static class |
Children.SortedMap
Maintains a list of children sorted by the provided comparator in a map. |
Field Summary | |
static Children |
LEAF
The object representing an empty set of children. |
static Mutex |
MUTEX
Lock for access to hierarchy of all node lists. |
Constructor Summary | |
Children()
Constructor. |
Method Summary | |
abstract boolean |
add(Node[] nodes)
Add nodes this container. |
protected void |
addNotify()
Called when children are first asked for nodes. |
protected Object |
clone()
Handles cloning in the right way, that can be later extended by subclasses. |
Node |
findChild(String name)
Find a child node by name. |
protected Node |
getNode()
Get the parent node of these children. |
Node[] |
getNodes()
Get a (sorted) array of nodes in this list. |
int |
getNodesCount()
Get the number of nodes in the list. |
protected boolean |
isInitialized()
Method that can be used to test whether the children content has ever been used or it is still not initalized. |
Enumeration |
nodes()
Get the nodes as an enumeration. |
abstract boolean |
remove(Node[] nodes)
Remove nodes from the list. |
protected void |
removeNotify()
Called when the list of nodes for this children object is no longer needed by the IDE. |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final Mutex MUTEX
All operations on the hierarchy of nodes (add, remove, etc.) are
done in the Mutex.writeAccess(org.openide.util.Mutex.Action)
method of this lock, so if someone
needs for a certain amount of time to forbid modification,
he can execute his code in Mutex.readAccess(org.openide.util.Mutex.Action)
.
public static final Children LEAF
Constructor Detail |
public Children()
Method Detail |
protected final Node getNode()
null
if there is none yetprotected Object clone() throws CloneNotSupportedException
Cloneable
interface, otherwise this method throws
CloneNotSupportedException
.clone
in class Object
Cloneable
interface is not implementedpublic abstract boolean add(Node[] nodes)
false
to signal that the addition has not been successful.
This method should be implemented by subclasses to filter some nodes, etc.
nodes
- set of nodes to add to the listtrue
if successfully addedpublic abstract boolean remove(Node[] nodes)
nodes
- nodes to be removedtrue
if the nodes could be removedpublic final Enumeration nodes()
Node
spublic Node findChild(String name)
Normally the list of nodes should have been computed by the time this returns,
but see getNodes()
for an important caveat as to why this may not
be doing what you want and what to do instead.
name
- (code) name of child node to find or null
if any arbitrary child may
be returnednull
if it could not be foundprotected final boolean isInitialized()
addNotify()
public final Node[] getNodes()
addNotify()
) before
the nodes are returned.
Warning: not all children
implementations do a complete calculation at
this point. For example, the children of
FolderNode
may or may not be fully calculated when you
first get the children list; in that particular
case, you may force it to synchronously finish
recognizing nodes of child data objects and adding
them to its list, by calling findChild(java.lang.String)
with an arbitrary argument (null
works).
But in general if you are trying to get useful data
by calling this method, you are probably doing something
wrong; it is primarily for use by the Explorer to display
nodes. Usually you should be asking some underlying model
for information, not the nodes for children. For example,
DataFolder.getChildren
is a much more appropriate way to get what you want.public final int getNodesCount()
protected void addNotify()
Children.Keys
etc.).isInitialized()
protected void removeNotify()
Children.Keys
etc.).
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |