pixotec wrote:
>
> I want to use LinkTree to represent a very very large hierarchy (the
> loading of the whole thing is expensive...).
> Is there an AJAX way of loading the children of a node just when clicking
> on the "plus-icon" for expanding?
>
You may try my code below which seems to work, even though it's not using
ajax:
<pre>
public class TreePage extends WebPage {
private DefaultTreeModel treeModel;
private TreeChildrenProvider provider;
private class MyTreeNode extends DefaultMutableTreeNode {
public MyTreeNode(String nodeName) {
super(nodeName);
}
public String getName() {
return (String) getUserObject();
}
public boolean isLeaf() {
return provider.getChildren(getName()).isEmpty();
}
}
public TreePage() {
provider = makeMockProvider();
MyTreeNode a = new MyTreeNode("a");
treeModel = new DefaultTreeModel(a);
LinkTree tree = new LinkTree("tree", new PropertyModel(this,
"treeModel"));
add(tree);
ITreeState treeState = tree.getTreeState();
treeState.collapseAll();
treeState.addTreeStateListener(new ITreeStateListener() {
public void nodeUnselected(TreeNode node) {
}
public void nodeSelected(TreeNode node) {
}
public void nodeExpanded(TreeNode node) {
if (!node.isLeaf() && node.getChildCount() ==
0) {
MyTreeNode myTreeNode = ((MyTreeNode)
node);
for (String childName :
provider.getChildren(myTreeNode
.getName())) {
myTreeNode.add(new
MyTreeNode(childName));
}
}
}
public void nodeCollapsed(TreeNode node) {
}
public void allNodesExpanded() {
}
public void allNodesCollapsed() {
}
});
}
private TreeChildrenProvider makeMockProvider() {
return new TreeChildrenProvider() {
public List<String> getChildren(String nodeName) {
if (nodeName.equals("a")) {
return Arrays.asList(new String[] {
"b", "c" });
}
if (nodeName.equals("b")) {
return Arrays.asList(new String[] {
"d", "e" });
}
return Collections.EMPTY_LIST;
}
};
}
public DefaultTreeModel getTreeModel() {
return treeModel;
}
}
public interface TreeChildrenProvider {
List<String> getChildren(String nodeName);
}
</pre>
--
View this message in context:
http://www.nabble.com/LinkTree-lazy-loading-possible--tf4493231.html#a12842551
Sent from the Wicket - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]