2 $.extend($.tree.plugins, {
7 get_checked :
function (t) {
8 if(!t) t = $.tree.focused();
9 return t.container.find(
"a.checked").parent();
11 get_undeterminded :
function (t) {
12 if(!t) t = $.tree.focused();
13 return t.container.find(
"a.undetermined").parent();
15 get_unchecked :
function (t) {
16 if(!t) t = $.tree.focused();
17 return t.container.find(
"a:not(.checked, .undetermined)").parent();
20 check :
function (n) {
22 var t = $.tree.reference(n);
24 if(n.children(
"a").hasClass(
"checked"))
return true;
26 var opts = $.extend(
true, {}, $.tree.plugins.checkbox.defaults, t.settings.plugins.checkbox);
27 if(opts.three_state) {
28 n.find(
"li").andSelf().children(
"a").removeClass(
"unchecked undetermined").addClass(
"checked");
29 n.parents(
"li").each(
function () {
30 if($(
this).children(
"ul").find(
"a:not(.checked):eq(0)").size() > 0) {
31 $(
this).parents(
"li").andSelf().children(
"a").removeClass(
"unchecked checked").addClass(
"undetermined");
34 else $(
this).children(
"a").removeClass(
"unchecked undetermined").addClass(
"checked");
37 else n.children(
"a").removeClass(
"unchecked").addClass(
"checked");
40 uncheck :
function (n) {
42 var t = $.tree.reference(n);
44 if(n.children(
"a").hasClass(
"unchecked"))
return true;
46 var opts = $.extend(
true, {}, $.tree.plugins.checkbox.defaults, t.settings.plugins.checkbox);
47 if(opts.three_state) {
48 n.find(
"li").andSelf().children(
"a").removeClass(
"checked undetermined").addClass(
"unchecked");
49 n.parents(
"li").each(
function () {
50 if($(
this).find(
"a.checked, a.undetermined").size() - 1 > 0) {
51 $(
this).parents(
"li").andSelf().children(
"a").removeClass(
"unchecked checked").addClass(
"undetermined");
54 else $(
this).children(
"a").removeClass(
"checked undetermined").addClass(
"unchecked");
57 else n.children(
"a").removeClass(
"checked").addClass(
"unchecked");
60 toggle :
function (n) {
62 var t = $.tree.reference(n);
64 if(n.children(
"a").hasClass(
"checked")) $.tree.plugins.checkbox.uncheck(n);
65 else $.tree.plugins.checkbox.check(n);
69 onchange :
function(n, t) {
70 $.tree.plugins.checkbox.toggle(n);