Hi again! I've forgotten to paste the code, maybe someone can help me
solve the problem, thanks.
Home.html:
<html jwcid="@Shell" title="Using The Tapestry Tree Control">
<body jwcid="@Body">
<h1>First Tree</h1>
<span class="tree" jwcid="treeView">
<span jwcid="treeDataView">
<span jwcid="treeNodeView"/>
</span>
</span>
<span jwcid="info"/>
</body>
</html>
Home.page:
<?xml version="1.0"?>
<!DOCTYPE page-specification PUBLIC
"-//Apache Software Foundation//Tapestry Specification 4.0//EN"
"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
<page-specification class="com.ttdev.newtree3v4.FirstTreePage">
<component id="treeView" type="contrib:TreeView">
<binding name="treeModel" value="treeModel"/>
<binding name="treeStateListener" value="treeStateListener"/>
</component>
<component id="treeDataView" type="contrib:TreeDataView">
<binding name="treeView" value="components.treeView"/>
<binding name="value" value="value"/>
</component>
<component id="treeNodeView" type="contrib:TreeNodeView">
<binding name="treeDataView" value="components.treeDataView"/>
<binding name="makeNodeDirect" value="true"/>
<binding name="nodeRenderFactory" value="renderFactory"/>
<binding name="showNodeImages" value="false"/>
</component>
<component id="info" type="Insert">
<binding name="value" value="lastNodeSelectedMsg"/>
</component>
</page-specification>
FirstTreePage.java:
public class FirstTreePage extends BasePage implements ITreeStateListener {
private ITreeDataModel treeDataModel;
private ITreeModel treeModel;
private Object value;
public FirstTreePage() {
treeModel=null;
}
public INodeRenderFactory getRenderFactory()
{
//System.out.println("getRenderFactory");
return new SimpleNodeRenderFactory();
}
public void attach(IEngine value,IRequestCycle cycle) {
super.attach(value,cycle);
}
public void detach() {
super.detach();
treeDataModel = null;
value = null;
}
public ITreeStateListener getTreeStateListener() {
System.out.println("getTreeStateListener");
return this;
}
/*
* @see
org.apache.tapestry.contrib.tree.model.ITreeStateListener#treeStateChanged(org.apache.tapestry.contrib.tree.model.TreeStateEvent)
*/
public void treeStateChanged(TreeStateEvent objEvent) {
System.out.println("TreeStateChanged");
// Get the StringTreeNode object that was selected
TreeView treeView = (TreeView)getComponent("treeView");
if(treeView != null){
ITreeDataModel thisTreeDataModel =
treeView.getTreeModel().getTreeDataModel();
Object selectedNode =
thisTreeDataModel.getObject(objEvent.getNodeUID());
if(selectedNode instanceof StringTreeNode){
lastNodeSelectedValue =
((StringTreeNode)selectedNode).getValue();
}
} else { // This shouldn't happen
lastNodeSelectedValue = objEvent.getNodeUID().toString();
}
}
String lastNodeSelectedValue;
public String getLastNodeSelectedMsg()
{
if(lastNodeSelectedValue==null){
return null;
}
return lastNodeSelectedValue + " was the last node selected.";
}
/**
* Get the TreeModel that contains the nodes to be rendered
*
* @return ITreeModel
*/
public ITreeModel getTreeModel() {
System.out.println("GetTreeModell");
if (treeModel == null) {
// Create and "connect" all the nodes
TreeNode node1 = new StringTreeNode("Root Node",1);
TreeNode node2 = new StringTreeNode("Child One",2);
TreeNode node2a = new StringTreeNode("Grandchild One",3);
node2.insert(node2a);
node1.insert(node2);
TreeNode node3 = new StringTreeNode("Child Two",4);
TreeNode node3a = new StringTreeNode("GrandChild Two",5);
node3.insert(node3a);
TreeNode node3a1 = new StringTreeNode("Great Grandchild One",6);
node3a.insert(node3a1);
node1.insert(node3);
// Wrap the root node in a SimpleTreeDataModel
treeDataModel = new SimpleTreeDataModel(node1);
// Wrap the SimpleTreeDataModel in a SimpleTreeModel
treeModel = new SimpleTreeModel(treeDataModel);
}
return treeModel;
}
}
2005/12/5, Istvan Zakar <[EMAIL PROTECTED]>:
> Hello!
>
> I hope i'm sending this message to the right place. I've tried to
> figure out how to use contrib:tree in tapestry 4. I've managed to
> display a tree, and I can expand the root node, but when I try to
> expand the following node the whole tree collapses.
>
> Please help me :)
>
> Best Regards,
> Istvan
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]