Wow, way old thread here....but I'm on this topic currently.  I implemented
the above for a Tree.  Problem is all my leaves display with folder icon in
the tree even though they have no children.  Any ideas?

DK

On 11/7/06, Matias Nicolas Sommi <[EMAIL PROTECTED]> wrote:

Is too late, but I read this in a personal search in the history messages.
The error of NullPointerException maybe is for:
for(int i = 0; i < listFiles.length; i++){
treeNode.getChildren().add(listFiles[i]);
}
In this sentece, you add childrens to the ArrayList, but the ArrayList
never has been initialized.
You must to initialize this, for example, in the constructor of the javaclass, 
or in the getter if is null.

Regards.
--
Matías Nicolás Sommi


2006/10/9, frederic_dematos <[EMAIL PROTECTED]>:
>
>   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 <flexcoders%40yahoogroups.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 
<flexcoders%40yahoogroups.com>[mailto:flexcoders@yahoogroups.com<flexcoders%40yahoogroups.com>
> ]
> On Behalf Of frederic_dematos
> > Sent: Wednesday, October 04, 2006 7:15 AM
> > To: flexcoders@yahoogroups.com <flexcoders%40yahoogroups.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
> >
>
>



--
Douglas Knudsen
http://www.cubicleman.com
this is my signature, like it?

Reply via email to