Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #1633

Re: automatic refreshing

From "Brandon McCombs" <brandon.mccombs@THRWHITE.remove-dii-this>
Subject Re: automatic refreshing
Message-ID <464a9d5b$0$1344$4c368faf@roadrunner.com> (permalink)
Newsgroups comp.lang.java.gui
References <464a8e54$0$9094$5a62ac22@per-qv1-newsreader-01.iinet.net.au>
Date 2011-04-27 15:34 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
Qu0ll wrote:
> "Brandon McCombs" <none@none.com> wrote in message 
> news:464a8a7a$0$8975$4c368faf@roadrunner.com...
>> Qu0ll wrote:
>>> "Brandon McCombs" <none@none.com> wrote in message 
>>> news:464a7cdf$0$502$4c368faf@roadrunner.com...
>>>> Hello,
>>>>
>>>> I'm having a hell of a time trying to get a JTree to automatically 
>>>> refresh to show that a node has been moved from one parent node to 
>>>> another.
>>>>
>>>> I'm using the following statement to move the node to the new parent:
>>>>     model.getTreeModel().insertNodeInto(movedNode,
>>>> newParent,newParent.getChildCount());
>>>>
>>>> I'm trying to implement cut/copy/paste functionality and I'm working 
>>>> to get cut/paste functionality working first so in my paste method I 
>>>> test for the original operation. If it was a "cut" then I do the 
>>>> following:
>>>>     model.getTreeModel().removeNodeFromParent(movedNode);
>>>>
>>>> However both of the statements above do not make the tree refresh 
>>>> automatically to show the changes. I thought using the above were 
>>>> supposed to do that?  I tried the reload() method of the tree model 
>>>> and of course when I do that the entire tree collapses and that 
>>>> isn't what I want (I have a feeling hardly anyone finds that 
>>>> "feature" of the reload() method useful).
>>>>
>>>> Is reloading the tree the only way to make the change in the node's 
>>>> location visible in the tree? If so, what the hell is the point of 
>>>> those particular methods when I could just do, for an insertion, 
>>>> newParent.add(movedNode) instead?
>>>
>>>
>>> Are you notifying the tree that a new node has been inserted or removed?
>>>
>>
>> I forgot to mention that my tree model is in fact the DefaultTreeModel 
>> so that's why I thought the notifications should happen automatically 
>> as long as I used the methods above.
> 
> I agree with you on the JavaDoc point but I have only ever used 
> DefaultMutableTreeNode#add() and #remove() and then manually notifying 
> the tree.  

notifying by doing what though? You've mentioned that twice w/o actually 
saying how you do it.

You may wish to try this just to see if it's related to some
> other problem.  Also, posting a SSCCE could help.
> 

I was already adding nodes using add/remove methods of the parent nodes 
and it wasn't working very well, at least for this particular feature 
that I was trying to add (cut/copy/paste), because of the way that JNDI 
sends out search requests.  My method of add/remove methods for the rest 
of my program was and is working just fine.

If I send out a search request to fill in the data of the tree where the 
node was removed and another search request (against my backend data 
source) to update the tree where the node was moved to then I get all 
sorts of weird things. The simplest way to put it is that the new 
location is updated properly but the old location isn't modified at all 
so the node looks like it is in 2 different locations at the same time. 
  And *that* issue is due to how JNDI sends search requests to a server. 
  Even with 2 different threads I only get back results on the 2nd 
search that I spawn which is why the refresh of the location where the 
node came from doesn't work at all.

I thought if I go back to simplifying my code to make the JTree update 
itself then I wouldn't even have to go back to my data source, at least 
for refreshing the node that had one of its children removed. Simply 
removing the node from its source in the JTree for a cut operation would 
be sufficient and for where it gets pasted I could maybe get away with 
just modifying the JTree in that case too...but again, when I changed 
the code to make the JTree update itself it isn't working.

Instead of wasting time trying to create an SSCCE I'll just keep working 
on my own.  Trying to separate out my code into a separate program is 
not very productive in my opinion. If someone can at least say that the 
methods I've already mentioned are supposed to work the way the JavaDoc 
says then I know I'm at least on the right track and that it is with my 
code. Otherwise I know that the JavaDoc is wrong and I will have more 
work to do as a result.

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

automatic refreshing of J "Brandon McCombs" <brandon.mccombs@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000
  Re: automatic refreshing "Qu0ll" <qu0ll@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000
    Re: automatic refreshing "Brandon McCombs" <brandon.mccombs@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000
    Re: automatic refreshing "Brandon McCombs" <brandon.mccombs@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000
      Re: automatic refreshing "Qu0ll" <qu0ll@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000
        Re: automatic refreshing "Brandon McCombs" <brandon.mccombs@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000
  Re: automatic refreshing "Roedy Green" <roedy.green@THRWHITE.remove-dii-this> - 2011-04-27 15:34 +0000

csiph-web