You should be able to call AbstractDataProvider.updateRowData() with just
the one updated row value, which will only cause that row to refresh.
 However, there is a bug in CellTree (will be fixed in GWT 2.1.1) which
always causes it to update the 0th item.

Is there any way of making a node go from having children to having
> no children again in a CellTree?

You can set the row count in the child DataProvider to 0.  The node won't be
a leaf node, but it won't have any children.  If you really want it to be a
leaf node, you have to refresh the node using the same method above.

Thanks,
John LaBanca
[email protected]


On Mon, Nov 8, 2010 at 11:53 AM, Ed Merks <[email protected]> wrote:

> I'm having a hard time understanding how I can update things like the
> label of a node in the cell tree when I know its value has changed in
> the model being viewed. Right now I have a rather brute force
> approach: I update the entire set of children for the parent by
> calling AbstractDataProvider.updateRowData.  At least it works, but
> it's like a sledge hammer.  I have yet to figure out how to update
> just the one child; maybe I just ran into bugs in the older pre-
> release versions and have to try again.  Also, I have to do similar
> things if children are added, i.e., if a node y has a child z added,
> and originally y had no children, I have to tell the parent node x of
> y to update all its children so that it updates the expansion icon to
> reflect that y is no longer a leaf.  But, now matter how hard I wrack
> my brain, I cannot find a way to make a node go from having children
> back to being a leaf again.  The only way I can get this to work is to
> hack the code:
>
>        // Create a set of currently open nodes.
>        Set<Object> openNodes = new HashSet<Object>();
>        int childCount = nodeView.getChildCount();
>        int end = start + values.size();
>        for (int i = start; i < end && i < childCount; i++) {
>          CellTreeNodeView<?> child = nodeView.getChildNode(i);
>          // Ignore child nodes that are closed.
>          if (child.isOpen() && !child.isLeaf()) {  ///////////////
> <------  add the test to not save the open state if it's a leaf.
>            openNodes.add(child.getValueKey());
>          }
>        }
>
> Is there any way of making a node go from having children to having no
> children again in a CellTree?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Web Toolkit" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-web-toolkit%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-web-toolkit?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to