Post a reply

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

InteXX

Re: TreeView Node Expansion

It sure is lonely here at the top, isn't it? :)
martin

Re: TreeView Node Expansion

Asynchronous loading is definitely the solution. Though it is too much work, providing the feature is not that demanded. Will see if more people asks for that.
InteXX

Re: TreeView Node Expansion

Ah, I smell a user option coming on ;-)

TreeView loading behavior:

  • Load grandchildren on node expand
  • Load children and expand node on selection

And/Or, even better yet:

TreeView node expansion:

  • Synchronous loading
  • Asynchronous loading

This way the user can choose for himself, instead of us choosing for him :-)

Thanks,
Jeff Bowman
www.intexx.com
martin

Re: TreeView Node Expansion

I know. But loading child-nodes from remote server is expensive. If you have slow line, it can take minutes.
InteXX

TreeView Node Expansion

Hello

I'm not handy in C/C++, otherwise I'd consider volunteering to work on this myself. Maybe someone else can have a look? It's possible the TreeView code is too deeply embedded to make it easy to pull this off, but I'll propose it in any case.

I've done this in the past with my FoxPro code and it's worked pretty well.

When Explorer View's TreeView loads a node, the node's expand event can be modified slightly to include a load all of its grandchildren. This way a node's expansion control (the plus/minus symbol) will always immediately indicate whether or not it has children, even before we expand it.

Currently the model is that we have to select a node in order to determine whether it has children. This makes navigating the heirarchy a guessing game, which can become frustrating at times.

Some example psuedo code:
BeginEvent NodeExpand(ThisNode)

  ForEach ChildNode In ThisNode.Children
    If ChildNode.HasChildren = False
      ChildNode.LoadChildren()
    EndIf
  EndFor
EndEvent


Would such a change be possible to implement?

Thanks,
Jeff Bowman
www.intexx.com