View Full Version : [1.1.1] TreeNodeUI toggleCheck() issue
sjivan
18 Oct 2007, 8:27 PM
Ext version : 1.1.1
OS / Browser : All
TreeNodeUI's toggleCheck() visually changes the check state however it does not update the node's checked attribute and as a result TreePanels getChecked() does not correctly return the results from a programatic TreeNodeUI#toggleCheck() call.
You can take a look at this issue here :
http://gwt-ext.googlecode.com/svn/trunk/site/samples/Showcase/Showcase.html#checkboxTree
toggleCheck : function(value){
var cb = this.checkbox;
if(cb){
cb.checked = (value === undefined ? !cb.checked : value);
//sj this needs to be added to correctly update the nodes checked state
this.node.attributes.checked = cb.checked;
}
}
Animal
20 Oct 2007, 7:32 AM
I'd say getChecked was wrong really.
The attributes property is the initial config. The currently checked state is defined by the state of the checkbox.
There's also the problem of lazy loading.
getChecked goes through loaded nodes. If some aren't loaded, but still just part of their parent node's children attribute, then even if they were set up with checked:true, getChecked won't find them.
That's why this is so good in Ext 2: http://extjs.com/deploy/dev/docs/?class=Ext.tree.TreeLoader&member=preloadChildren
sjivan
20 Oct 2007, 11:53 AM
Thanks fo the pointer to Ext 2.0's preloadChildren config. Can the Ext 2.0 change log be updated to reflect this: http://extjs.com/forum/showthread.php?t=12866
I think getChecked() using the nodes attributes is correct (to handle non rendered nodes / checkboxes as you mentioned). So changing TreeNodeUI's toogleChecked method to also update the nodes checked attribute as I initially suggested seems appropriate. I agree that it might be confusing to a user if they call getChecked() in 1.1 and the node is not loaded, but the behaviour is consistent with Ext 2.0 which has the preloadChildren config. There's no other way around it in Ext 1.1 anyway.
This issue also seems to be in Ext 2.0 b1 as the getChecked() method only goes through the node's attributes and TreeNodeUI's toggleCheck() doesnt update the checked attribute.
It would be great if preloadChildren is added to Ext 1.1.x as well.
Thanks,
Sanjiv
Animal
21 Oct 2007, 12:30 AM
Go on Sanjiv! Upgrade to Ext 2.
You'll enjoy the challenge, and GWT-Ext will be so much better for it. I assume you've been staying up to date with its new design, capabilities, and performance gains?
sjivan
22 Oct 2007, 5:51 PM
Once I fully wrap up GWT-Ext / Ext 1.1.1, I plan on supporting Ext 2.0. I'm hoping to finish GWT-Ext / Ext 1.1.1 in a couple of weeks. Other than bug fixes, Grid Drag & Drop is main piece of functionality remaining.
I'm kinda aware of the new Ext 2.0 features / enhancements, but feel free to share the key improvements / design changes as you see it ( a few bullet points or a para ).
Thanks,
Sanjiv
sjivan
2 Nov 2007, 7:04 PM
This problem also exists in Ext 2.0. This portion of the code appears unchanged with Ext 2.0. Marc, do you want me to post in the Ext 2.0 area of the forum as well?
Sanjiv
mystix
2 Nov 2007, 9:30 PM
This problem also exists in Ext 2.0. This portion of the code appears unchanged with Ext 2.0. Marc, do you want me to post in the Ext 2.0 area of the forum as well?
Sanjiv
yes please, with a link back to this thread. thanks. :)
sjivan
9 Feb 2008, 8:10 PM
Go on Sanjiv! Upgrade to Ext 2.
You'll enjoy the challenge, and GWT-Ext will be so much better for it. I assume you've been staying up to date with its new design, capabilities, and performance gains?
It's finally here! Check out http://www.gwt-ext.com/demo
Would be great to hear your feedback.
Sanjiv
Powered by vBulletin® Version 4.1.5 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.