How to refresh a particular directory in a Jtree

Hi,
Based on this thread, http://www.experts-exchange.com/Programming/Languages/Java/Q_23793040.html
can anyone please say, how to refresh a particular directory alone, whenever needed.

zzynx, i have reposted this question as per your suggestion. Hope I am clear with my question.

Please provide some help.

Warm Regards,
Sreejith
Sreejith22Asked:
Who is Participating?
 
zzynxConnect With a Mentor Software engineerCommented:
1) On the MyTreeNode object corresponding with the particular directory (let's say it is called "nodeToRefresh") call removeAllChildren() (That's a mehtod of the DefaultMutableTreeNode class it extends)

  nodeToRefresh.removeAllChildren();

2) Make sure your MyNode object is up-to-date with the new situation (= the children are reconstructed)

3) Then call

   nodeToRefresh.addSubNodes();

4) call

    ((DefaultTreeModel)yourTree.getModel()).reload(nodeToRefresh);

If needed:
[ 5) If you don't see anything changing visually it might be needed to call

    yourTree.revalidate();
    thePanelWhereTheTreeIsPartOf.repaint();
]
0
 
Sreejith22Author Commented:
Inside myTree class, is it possible for me to get the vector of contents corresponding to a particular directory?
0
 
zzynxSoftware engineerCommented:
myTree class?
I'm not aware of the fact that you have your own myTree class...
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
Sreejith22Author Commented:
I named the class in which I declare and create the tree as myTree.java

My question is, I get the child vector corresponding to a particular directory with  myNode.getChildren()

Though we add it to the child vector as
>>children.add( new MyNode(dirEntry1.filename, dirEntry1.attributes.isDirectory()) ); , i get the output in the form [my_share, jj, my_music, my_pictures, my_video, New Folder (2), search_off.png, booodrive.png, src.rar] , which is OK for me.

But , when I perform the below mentioned, I get the exception given.

            for(Enumeration e = myNode.getChildren().elements(); e.hasMoreElements();)
            {
                  Object o = e.nextElement();
                  nomSelection =((SFTPv3DirectoryEntry)o).filename;






....................


Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: booodrive.MyNode cannot be cast to com.trilead.ssh2.SFTPv3Dir
ectoryEntry
        at booodrive.myTree.createFileVector(myTree.java:958)



I know that what is inside that vector is a MyNode object, but how can I cast this?
0
 
zzynxSoftware engineerCommented:
>> I know that what is inside that vector is a MyNode object, but how can I cast this?
Well, you only can get the information out of a MyNode object that you previously put in.

I don't know how your constructChildren() method and your MyNode object currently looks like,
but if constructChildren() still contains the line I suggested:

       children.add( MyNode(dirEntry1.filename, dirEntry1.attributes.isDirectory()) );

you see that in your MyNode object you store the filename, so you could write:

for(Enumeration e = myNode.getChildren().elements(); e.hasMoreElements();) {
      MyNode node = (MyNode)e.nextElement();
      nomSelection = node.getName();
      ...
}
0
 
Sreejith22Author Commented:
ok..thanks very much, I am implementing the refresh for a directory..after that I will close this thread.
thx, again.
0
 
Sreejith22Author Commented:
I am implementing drag and drop. Everything works fine for me. But one problem occured while implementing this. The solution of which requires me to have the following detail.

If at any time, I select a particular item in a directory(say, directory x), how can I get the children vector of that directory(directory x) from MyNode?

I tried different methods, sorry to say that with my limited knowledge, i could not get the desired vector.

If possible, please help.
0
 
zzynxSoftware engineerCommented:
>> how can I get the children vector of that directory(directory x) from MyNode?
getChildren() returns the Vector containing the children (also MyNode object's again)
0
 
Sreejith22Author Commented:
Thanks alot zzynx, soln. was awesome
0
 
Sreejith22Author Commented:
Thanks alot zzynx, solution was awesome and line by line accurate.

0
 
zzynxSoftware engineerCommented:
You're welcome.
Thanx 4 axxepting
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.