For those who might be run into the same problem:
It was kind of classloader issue? I had the TreeModelAdapter inside an
ejb.jar (or, as my first trial ,inited the ChildPropertyModel directly from
a stateful session bean).  
After having moved the TreeModelAdapter into the applications .war, the tree
handles (and the child nodes) appear.
I do not really see what happened now and before, perhaps someone else could
clarify?

Regards,
sonja


> -----Original Message-----
> From: Sonja Löhr [mailto:[EMAIL PROTECTED] 
> Sent: Freitag, 3. November 2006 11:23
> To: [email protected]
> Subject: <tr:tree> no Children inited
> 
> Hi!
> Could someone tell me where I am wrong that my <tr:tree> 
> always displays just the root elements?
> As the tree inited from the persistence layer (using Seam and 
> EJB3) did not work, I stepped back and setup the following 
> simple test, but still I do not see any "open" handles, nor 
> is the "getChildren" getter on my TestBean ever called, 
> therefore  the log message in getModel() also states a tree 
> depth of zero. On the adapter I removed some "model = null" 
> instructions during debugging.
> 
> Here is the <tr:tree>, the classes used and the faces-config.xml part.
> 
> Any help would be great!
> Thanks in advance!
> 
> 
> 
> 
>    <tr:tree id="grouptree" var="cat" value="#{groupsAdapter.model}">
>            <f:facet name="nodeStamp">
>               <tr:commandLink text="#{cat.name}" 
> styleClass="nodeText">
>                  <!--  outcommented actionListener  -->
>                  </tr:commandLink>
> 
>            </f:facet>
>    </tr:tree>
> 
> 
> ==============================================================
> ==============
> =========
>       
>  <managed-bean>
>        <managed-bean-name>treeTest</managed-bean-name>
>        <managed-bean-class>japp.jsf.TreeTest</managed-bean-class>
>        <managed-bean-scope>session</managed-bean-scope>     
>   </managed-bean>
> 
>  <managed-bean>
>        <managed-bean-name>groupsAdapter</managed-bean-name>
>        
> <managed-bean-class>japp.jsf.TreeModelAdapter</managed-bean-class>
>        <managed-bean-scope>session</managed-bean-scope>
>        <managed-property>
>             <property-name>instance</property-name>
>             <value>#{treeTest.roots}</value>
>         </managed-property>
>         <managed-property>
>             <property-name>childPropertyName</property-name>
>             <value>children</value>
>         </managed-property>
>  </managed-bean>
> 
> 
> ==============================================================
> ==============
> ===0
> 
> 
> public class TreeModelAdapter {
> 
>       private String childPropertyName;
>       private Object _instance = null;
>       private transient TreeModel _model = null;
>           
>       Log logger = LogFactory.getLog(TreeModelAdapter.class);
>           
>       public TreeModelAdapter() {}
>               
> 
>       public TreeModel getModel() throws IntrospectionException    {
>             if (_model == null)  {
>               _model = new ChildPropertyTreeModel(getInstance(),
> getChildPropertyName());
>             }
>             logger.info("Tree depth: "+_model.getDepth());
>             return _model;
>       }
> 
>       public String getChildPropertyName()   {
>            return childPropertyName;
>       }
> 
>       public void setChildPropertyName(String propertyName)   {
>               childPropertyName = propertyName;            
>       }
> 
>        public Object getInstance() {
>            return _instance;
>        }
> 
> 
>     public void setInstance(Object instance)   {
>       _instance = instance;
>     }
>     
>           
>       public void setListInstance(List<Object> instance) {
>            setInstance(instance);
>       }  
>           
>           
>       @SuppressWarnings("unchecked")
>       public List<Object> getListInstance()   {
>            return (List<Object>)getInstance();
>       }
>           
>           
> }
> 
> 
> 
> ==============================================================
> ==============
> ==
> 
> public class TreeTest {
>       
>       public TreeTest() {
>               
>       }
>       
>       private List<TestBean> roots;
>         
>     public List<TestBean> getRoots() {
>       if(roots != null) return roots;
>       roots = new ArrayList<TestBean>();
>       TestBean r1 = new TestBean("root1");
>       TestBean ch1 = new TestBean("ch1");
>       TestBean enk11 = new TestBean("enk1");
>       ch1.addChild(enk11);
>       r1.addChild(ch1);
>       
>       TestBean r2 = new TestBean("root2");
>       TestBean ch2 = new TestBean("ch2");
>       TestBean enk21 = new TestBean("enk21");
>       TestBean enk22 = new TestBean("enk22");
>       ch2.addChild(enk21);
>       ch2.addChild(enk22);
>       r2.addChild(ch2);
>       TestBean ch3 = new TestBean("ch3");
>       TestBean enk23 = new TestBean("enk23");
>       ch3.addChild(enk23);
>       r2.addChild(ch3);
>       roots.add(r1);
>       roots.add(r2);
>       return roots;
>     }
> }
> 
> 
> ==============================================================
> ==============
> ====
> 
> public class TestBean {
>       private List<TestBean> children;
>       private String name;
>       
>       public TestBean() {
>               children = new ArrayList<TestBean>();
>       }
>       public TestBean(String name) {
>               this.name = name;
>               children = new ArrayList<TestBean>();
>       }
>       public void addChild(TestBean ch) {
>               children.add(ch);
>       }
>       //never called !!
>       public List<TestBean> getChildren() {
>               System.out.println("getChildren called on "+name);
>               System.out.print("getChildren returns: ");
>               for(TestBean ch : children) {
>                       System.out.print(ch.toString());
>               }
>               System.out.println();
>               return children;
>       }
>       
>       public void setChildren(List<TestBean> children) {
>               this.children = children;
>       }
>       public String getName() {
>               return name;
>       }
>       public void setName(String name) {
>               this.name = name;
>       }
>       
>       public String toString() {
>               return name+" kids: "+children.size();
>       }       
> }
> 
>     
>     
> 
> 
> 


Reply via email to