Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F1041332
TreeStoreModel.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
TreeStoreModel.js
View Options
/*
Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
Available via Academic Free License >= 2.1 OR the modified BSD license.
see: http://dojotoolkit.org/license for details
*/
if
(
!
dojo
.
_hasResource
[
"dijit.tree.TreeStoreModel"
]){
dojo
.
_hasResource
[
"dijit.tree.TreeStoreModel"
]
=
true
;
dojo
.
provide
(
"dijit.tree.TreeStoreModel"
);
dojo
.
declare
(
"dijit.tree.TreeStoreModel"
,
null
,{
store
:
null
,
childrenAttrs
:
[
"children"
],
newItemIdAttr
:
"id"
,
labelAttr
:
""
,
root
:
null
,
query
:
null
,
deferItemLoadingUntilExpand
:
false
,
constructor
:
function
(
_1
){
dojo
.
mixin
(
this
,
_1
);
this
.
connects
=
[];
var
_2
=
this
.
store
;
if
(
!
_2
.
getFeatures
()[
"dojo.data.api.Identity"
]){
throw
new
Error
(
"dijit.Tree: store must support dojo.data.Identity"
);
}
if
(
_2
.
getFeatures
()[
"dojo.data.api.Notification"
]){
this
.
connects
=
this
.
connects
.
concat
([
dojo
.
connect
(
_2
,
"onNew"
,
this
,
"onNewItem"
),
dojo
.
connect
(
_2
,
"onDelete"
,
this
,
"onDeleteItem"
),
dojo
.
connect
(
_2
,
"onSet"
,
this
,
"onSetItem"
)]);
}
},
destroy
:
function
(){
dojo
.
forEach
(
this
.
connects
,
dojo
.
disconnect
);
},
getRoot
:
function
(
_3
,
_4
){
if
(
this
.
root
){
_3
(
this
.
root
);
}
else
{
this
.
store
.
fetch
({
query
:
this
.
query
,
onComplete
:
dojo
.
hitch
(
this
,
function
(
_5
){
if
(
_5
.
length
!=
1
){
throw
new
Error
(
this
.
declaredClass
+
": query "
+
dojo
.
toJson
(
this
.
query
)
+
" returned "
+
_5
.
length
+
" items, but must return exactly one item"
);
}
this
.
root
=
_5
[
0
];
_3
(
this
.
root
);
}),
onError
:
_4
});
}
},
mayHaveChildren
:
function
(
_6
){
return
dojo
.
some
(
this
.
childrenAttrs
,
function
(
_7
){
return
this
.
store
.
hasAttribute
(
_6
,
_7
);
},
this
);
},
getChildren
:
function
(
_8
,
_9
,
_a
){
var
_b
=
this
.
store
;
if
(
!
_b
.
isItemLoaded
(
_8
)){
var
_c
=
dojo
.
hitch
(
this
,
arguments
.
callee
);
_b
.
loadItem
({
item
:
_8
,
onItem
:
function
(
_d
){
_c
(
_d
,
_9
,
_a
);
},
onError
:
_a
});
return
;
}
var
_e
=
[];
for
(
var
i
=
0
;
i
<
this
.
childrenAttrs
.
length
;
i
++
){
var
_f
=
_b
.
getValues
(
_8
,
this
.
childrenAttrs
[
i
]);
_e
=
_e
.
concat
(
_f
);
}
var
_10
=
0
;
if
(
!
this
.
deferItemLoadingUntilExpand
){
dojo
.
forEach
(
_e
,
function
(
_11
){
if
(
!
_b
.
isItemLoaded
(
_11
)){
_10
++
;
}
});
}
if
(
_10
==
0
){
_9
(
_e
);
}
else
{
var
_12
=
function
_12
(
_13
){
if
(
--
_10
==
0
){
_9
(
_e
);
}
};
dojo
.
forEach
(
_e
,
function
(
_14
){
if
(
!
_b
.
isItemLoaded
(
_14
)){
_b
.
loadItem
({
item
:
_14
,
onItem
:
_12
,
onError
:
_a
});
}
});
}
},
isItem
:
function
(
_15
){
return
this
.
store
.
isItem
(
_15
);
},
fetchItemByIdentity
:
function
(
_16
){
this
.
store
.
fetchItemByIdentity
(
_16
);
},
getIdentity
:
function
(
_17
){
return
this
.
store
.
getIdentity
(
_17
);
},
getLabel
:
function
(
_18
){
if
(
this
.
labelAttr
){
return
this
.
store
.
getValue
(
_18
,
this
.
labelAttr
);
}
else
{
return
this
.
store
.
getLabel
(
_18
);
}
},
newItem
:
function
(
_19
,
_1a
,
_1b
){
var
_1c
=
{
parent
:
_1a
,
attribute
:
this
.
childrenAttrs
[
0
],
insertIndex
:
_1b
};
if
(
this
.
newItemIdAttr
&&
_19
[
this
.
newItemIdAttr
]){
this
.
fetchItemByIdentity
({
identity
:
_19
[
this
.
newItemIdAttr
],
scope
:
this
,
onItem
:
function
(
_1d
){
if
(
_1d
){
this
.
pasteItem
(
_1d
,
null
,
_1a
,
true
,
_1b
);
}
else
{
this
.
store
.
newItem
(
_19
,
_1c
);
}
}});
}
else
{
this
.
store
.
newItem
(
_19
,
_1c
);
}
},
pasteItem
:
function
(
_1e
,
_1f
,
_20
,
_21
,
_22
){
var
_23
=
this
.
store
,
_24
=
this
.
childrenAttrs
[
0
];
if
(
_1f
){
dojo
.
forEach
(
this
.
childrenAttrs
,
function
(
_25
){
if
(
_23
.
containsValue
(
_1f
,
_25
,
_1e
)){
if
(
!
_21
){
var
_26
=
dojo
.
filter
(
_23
.
getValues
(
_1f
,
_25
),
function
(
x
){
return
x
!=
_1e
;
});
_23
.
setValues
(
_1f
,
_25
,
_26
);
}
_24
=
_25
;
}
});
}
if
(
_20
){
if
(
typeof
_22
==
"number"
){
var
_27
=
_23
.
getValues
(
_20
,
_24
);
_27
.
splice
(
_22
,
0
,
_1e
);
_23
.
setValues
(
_20
,
_24
,
_27
);
}
else
{
_23
.
setValues
(
_20
,
_24
,
_23
.
getValues
(
_20
,
_24
).
concat
(
_1e
));
}
}
},
onChange
:
function
(
_28
){
},
onChildrenChange
:
function
(
_29
,
_2a
){
},
onDelete
:
function
(
_2b
,
_2c
){
},
onNewItem
:
function
(
_2d
,
_2e
){
if
(
!
_2e
){
return
;
}
this
.
getChildren
(
_2e
.
item
,
dojo
.
hitch
(
this
,
function
(
_2f
){
this
.
onChildrenChange
(
_2e
.
item
,
_2f
);
}));
},
onDeleteItem
:
function
(
_30
){
this
.
onDelete
(
_30
);
},
onSetItem
:
function
(
_31
,
_32
,
_33
,
_34
){
if
(
dojo
.
indexOf
(
this
.
childrenAttrs
,
_32
)
!=-
1
){
this
.
getChildren
(
_31
,
dojo
.
hitch
(
this
,
function
(
_35
){
this
.
onChildrenChange
(
_31
,
_35
);
}));
}
else
{
this
.
onChange
(
_31
);
}
}});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, May 15, 07:11 (3 d, 21 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
25807
Default Alt Text
TreeStoreModel.js (3 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment