OK I created my java class TreeNode like that

public class TreeNode {
        
    private String label;
    private String data;
    private ArrayList children;
    
        public ArrayList getChildren() {
                return children;
        }
        public void setChildren(ArrayList children) {
                this.children = children;
        }
        public String getData() {
                return data;
        }
        public void setData(String data) {
                this.data = data;
        }
        public String getLabel() {
                return label;
        }
        public void setLabel(String label) {
                this.label = label;
        }

   
}


I don't know if it is needed, but i did the same in ActionScript

package src.beans
{
        import mx.collections.ArrayCollection;
        [Managed]
        [RemoteClass(alias="beans.TreeNode")]
        public class TreeNode
        {
         private var label:String;
     private var data:String;
     private var children:ArrayCollection;
    
        public function  getChildren():ArrayCollection {
                return children;
        }
        public function  setChildren( children:ArrayCollection):void {
                this.children = children;
        }
        public function  getData():String {
                return data;
        }
        public  function setData( data:String ):void {
                this.data = data;
        }
        public  function getLabel():String {
                return label;
        }
        public  function setLabel( label:String):void {
                this.label = label;
        }
        
        
        }
        
}

In my remoting-config in got 

        <destination id="treeNode">
                <properties>
                        <source>beans.TreeNode</source>
                        <scope>application</scope>
                </properties>
        </destination>

So then I call a java class webDav method getFiles which do :

IN JAVA
public TreeNode getFiles(){
                
                TreeNode treeNode = new TreeNode();
                
                treeNode.setLabel("Root");
                
                String[]listFiles = this.wdr.list();
                
                for(int i = 0; i < listFiles.length; i++){
                        treeNode.getChildren().add(listFiles[i]);               
        
                }
                
                return treeNode;
        }

IN AS

    <mx:RemoteObject id="webdav" destination="webdav" >
    <mx:method name="getFiles" result='getFilesResult(event)' />
    </mx:RemoteObject>

  public function getFilesResult(event:ResultEvent):void{
         myProjectTree.dataProvider = event.result as TreeNode;
}


and I get the folloing error message :

[RPC Fault faultString="java.lang.NullPointerException : null"
faultCode="Server.Processing" faultDetail="null"]
        at
mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::faultHandler()
        at mx.rpc::Responder/fault()
        at mx.rpc::AsyncRequest/fault()
        at
::NetConnectionMessageResponder/NetConnectionChannel.as$37:NetConnectionMessageResponder::statusHandler()
        at mx.messaging::MessageResponder/status()


Did somebody had an idea ?

The linkage between the Webdav java class and Flex is working, but i
dont know how to make flex understand the TreeNode Class.

Thanks



--- In flexcoders@yahoogroups.com, "Dustin Mercer" <[EMAIL PROTECTED]>
wrote:
>
> Yeah, this is a fun one.  I have done this, but it's not as elegant
as I was hoping, but it works.  What I had to do was create a TreeNode
class.  Looks like this:
> 
>  
> 
> Public class TreeNode {
> 
>  
> 
>             Private String label;
> 
>             Private String data;
> 
>             Private ArrayList children;
> 
>  
> 
>             Getters and setters....
> 
> }
> 
>  
> 
> The key here is the children property.  The property to hold the
nodes must be named children or the tree won't have any childNodes. 
There is probably better ways to do this, I.E. implementing the
ITreeDataProvider interface on the AS class, but I couldn't get it to
work properly, and haven't had a chance to revisit it.  Does your tree
need to load dynamically (I.E. populate the children with another call
to the database on the nodeOpen event) or will you be loading the
whole tree at once?   If you load dynamically, you will need to make
sure you initialize the children property or that node won't be a folder.
> 
>  
> 
> Dustin Mercer  
> 
>  
> 
> ________________________________
> 
> From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED]
On Behalf Of frederic_dematos
> Sent: Wednesday, October 04, 2006 7:15 AM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Fill a Tree From a JAVA Class
> 
>  
> 
> Hi,
> 
> I want to fill an mx:Tree from a Java class talking with webDav.
> 
> I am calling my Java class using the Remoting Object.
> 
> On the actionScript I want to call the method getFiles of my Java
> class and give the result to the mx.Tree. The problem is I don't know
> which kind of data and which king of structure to pass to the data
> provider of the tree.
> 
> If somebody had already meet that kind of problem , thanks for your
help.
> 
> Fr�d�ric DE MATOS
>






--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/flexcoders/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to