# tomahawk tree2



## Neo1988 (24. Jul 2007)

Hihi....

Ich möchte mit Tomahawk ein kleinen Tree Programmieren.
Der Tree an sich Funktioniert auch weitesgehend.
Doch bei dem Versuch zu erfahren, wo ich mich gerade in dem Baum
befinde, scheitere ich.

hier ist erst mal der Baum:


```
<t:tree2 id="Familien_tree" value="#{Tree.treeData}" var="node"  varNodeToggler="t" clientSideToggle="false" showRootNode="false">
	<f:facet name="root">
            <h:panelGroup>
            	<h:outputText value="#{node.description}" styleClass="nodeFolder"/>
            </h:panelGroup>
      	</f:facet>
        <f:facet name="child1">
            <h:panelGroup>
            	<h:outputText value="#{node.description}" styleClass="childCount"/>
            	<h:outputText value=" (#{node.childCount})" styleClass="childCount" rendered="#{!empty node.children}"/>
            </h:panelGroup>
       	</f:facet>
      	<f:facet name="child2">
            <h:panelGroup>
            	<h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{t.setNodeSelected}">
            		<h:outputText value="#{node.description}" styleClass="childCount"/>
            	</h:commandLink>
            </h:panelGroup>
    	</f:facet>
   	<f:facet name="child3">
     		<h:panelGroup>
            		<h:commandLink immediate="true" styleClass="#{t.nodeSelected ? 'documentSelected':'document'}" actionListener="#{t.setNodeSelected}">
            			<h:outputText value="#{node.description}" styleClass="childCount"/>
 			</h:commandLink>
       		</h:panelGroup>
 	</f:facet>
</t:tree2>
```

Und hier ist die Treeklasse dazu....


```
public class Tree
{
	private TreeNode treeData;
	private TreeModelBase TreeModel;
	String SelectedNode;
	
	public Tree(){treeData = new TreeNodeBase("root","root",false);}

	public TreeNode getTreeData(){
		if(treeData.getChildCount()==0){
			TreeNodeBase Child = new TreeNodeBase("child1","Kind1", false);
			TreeNodeBase Child2 = new TreeNodeBase("child2", "Enkelkind", false);
			TreeNodeBase Child3 = new TreeNodeBase("child3", "Urenkel", true);
			Child2.getChildren().add(Child3 );
			Child.getChildren().add(Child2);
			treeData.getChildren().add(Child);
		}
		return treeData;
	}

	public void setTreeData( TreeNode treeData ){this.treeData = treeData;}
	public String getSelectedNode(){return SelectedNode;}
	public void setSelectedNode( String selectedNode ){SelectedNode = selectedNode;}
	public TreeModelBase getTreeModel(){return TreeModel;}
	public void setTreeModel( TreeModelBase treeModel ){TreeModel = treeModel;}
}
```

Ich bekomme es einfach nicht hin. Eigentlich sollte es bei dem treeData eine Funktion namens getNode
geben. Doch diese gibt es bei mir nicht. Und bei Apache (myfaces.apache.org) finde ich auch nur sehr wenig zu
diesem Thema.


----------



## matzedd (29. Aug 2007)

hallo,

konntest du das problem lösen?

ich habe ein ähnliches Problem,

ich erhalte immer eine  java.lang.NullPointerException wenn ich dein Beispiel in meine seite einbaue und die seite abschicke.

auszug aus log...

javax.servlet.ServletException
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)
	org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)


root cause 

java.lang.NullPointerException

	org.apache.myfaces.custom.tree2.UITreeData.getDataModel(UITreeData.java:449)
	org.apache.myfaces.custom.tree2.UITreeData.setNodeId(UITreeData.java:349)
	org.apache.myfaces.custom.tree2.HtmlTree.setNodeId(HtmlTree.java:109)



weißt du, woran das liegen kann?


Grüße,

Matze


----------



## Ganesh (6. Nov 2007)

Hi,

Aus Euren Beispielen ist mir nicht klar gewrden, was Ihr eigentlich erreichen wollt. Ich vermute aber, mit dem <t:updateModelListener> Tag könnt Ihr Eure Ziele erreichen. Schaut mal das Beispiel unter: http://www.j4fry.org/J4Fry_Quick_Setup_Tomcat_MyFaces_Hibernate/index.faces an.

Viele Grüße,
Ganesh


----------

