jford 2005/01/21 15:38:47
Modified: taglibs/treecontrol/src/java/org/apache/webapp/admin
TreeControlNode.java
Log:
Added support for lazy loading the tree.
This implementation could by fancier
ex:
tree listeners for expansion
allow handlers to load children of nodes during lazy load
Revision Changes Path
1.2 +64 -7
jakarta-jetspeed-2/taglibs/treecontrol/src/java/org/apache/webapp/admin/TreeControlNode.java
Index: TreeControlNode.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/taglibs/treecontrol/src/java/org/apache/webapp/admin/TreeControlNode.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TreeControlNode.java 2 Jul 2004 04:00:18 -0000 1.1
+++ TreeControlNode.java 21 Jan 2005 23:38:47 -0000 1.2
@@ -37,6 +37,30 @@
// -----------------------------------------------------------
Constructors
+ /**
+ * Construct a new TreeControlNode with the specified parameters.
+ *
+ * @param name Internal name of this node (must be unique within
+ * the entire tree)
+ * @param icon Pathname of the image file for the icon to be displayed
+ * when this node is visible, relative to the image directory
+ * for our images
+ * @param label The label that will be displayed to the user if
+ * this node is visible
+ * @param action The hyperlink to be selected if the user
+ * selects this node, or <code>null</code> if this node's label should
+ * not be a hyperlink
+ * @param target The window target in which the <code>action</code>
+ * hyperlink's results will be displayed, or <code>null</code> for
+ * the current window
+ * @param expanded Should this node be expanded?
+ */
+ public TreeControlNode(String name,
+ String icon, String label,
+ String action, String target,
+ boolean expanded, String domain) {
+ this(name, icon, label, action, target, expanded, domain,
false);
+ }
/**
* Construct a new TreeControlNode with the specified parameters.
@@ -55,11 +79,13 @@
* hyperlink's results will be displayed, or <code>null</code> for
* the current window
* @param expanded Should this node be expanded?
+ * @param lazy Is this node's children lazy loaded?
*/
public TreeControlNode(String name,
String icon, String label,
String action, String target,
- boolean expanded, String domain) {
+ boolean expanded, String domain,
+ boolean lazy) {
super();
this.name = name;
@@ -69,7 +95,8 @@
this.target = target;
this.expanded = expanded;
this.domain = domain;
-
+ this.lazy = lazy;
+ this.loaded = false;
}
@@ -152,15 +179,46 @@
void setLast(boolean last) {
this.last = last;
}
+
+ protected boolean lazy = false;
+
+ public boolean isLazy() {
+ return (this.lazy);
+ }
/**
* Is this a "leaf" node (i.e. one with no children)?
*/
+ protected boolean leaf = true;
+
public boolean isLeaf() {
- synchronized (children) {
- return (children.size() < 1);
- }
+ if(lazy)
+ {
+ return leaf;
+ }
+ else
+ {
+ synchronized (children) {
+ return (children.size() < 1);
+ }
+ }
+ }
+
+ public void setLeaf(boolean leaf)
+ {
+ this.leaf = leaf;
+ }
+
+ protected boolean loaded = false;
+
+ public boolean isLoaded() {
+ return (this.loaded);
+ }
+
+ public void setLoaded(boolean loaded)
+ {
+ this.loaded = loaded;
}
@@ -244,7 +302,6 @@
public int getWidth() {
return (this.width);
}
-
// --------------------------------------------------------- Public
Methods
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]