Link to home
Start Free TrialLog in
Avatar of Sreejith22
Sreejith22Flag for India

asked on

How to refresh a particular directory in a Jtree

Hi,
Based on this thread, https://www.experts-exchange.com/questions/23793040/Jtree-implementation-based-on-structure-given.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
ASKER CERTIFIED SOLUTION
Avatar of zzynx
zzynx
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Sreejith22

ASKER

Inside myTree class, is it possible for me to get the vector of contents corresponding to a particular directory?
myTree class?
I'm not aware of the fact that you have your own myTree class...
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?
>> 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();
      ...
}
ok..thanks very much, I am implementing the refresh for a directory..after that I will close this thread.
thx, again.
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.
>> 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)
Thanks alot zzynx, soln. was awesome
Thanks alot zzynx, solution was awesome and line by line accurate.

You're welcome.
Thanx 4 axxepting