Page Menu
Home
Code
Search
Configure Global Search
Log In
Files
F947849
TreeAdapter.js
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
5 KB
Subscribers
None
TreeAdapter.js
View Options
if
(
!
dojo
.
_hasResource
[
"dojox.wire.TreeAdapter"
]){
//_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo
.
_hasResource
[
"dojox.wire.TreeAdapter"
]
=
true
;
dojo
.
provide
(
"dojox.wire.TreeAdapter"
);
dojo
.
require
(
"dojox.wire.CompositeWire"
);
dojo
.
declare
(
"dojox.wire.TreeAdapter"
,
dojox
.
wire
.
CompositeWire
,
{
// summary:
// A composite Wire for tree nodes
// description:
// This class has multiple child Wires for tree nodes, their title and
// child nodes.
// The root object for this class must be an array.
// 'node' Wires in 'nodes' property is used to identify an object
// representing a node.
// 'title' Wires in 'nodes' property is used to get the title string
// of a node.
// 'children' Wires in 'nodes' property is used to iterate over child
// node objects.
// The node values are returned in an array as follows:
// [
// {title: title1,
// children: [
// {title: title2,
// child: ...},
// {title: title3,
// child: ...},
// ...
// ]},
// ...
// ]
// This class only supports getValue(), but not setValue().
_wireClass
:
"dojox.wire.TreeAdapter"
,
constructor
:
function
(
/*Object*/
args
){
// summary:
// Initialize properties
// description:
// If object properties ('node', 'title' and 'children') of array
// elements specified in 'nodes' property are not Wires, Wires are
// created from them as arguments, with 'parent' property set to
// this Wire instance.
// args:
// Arguments to initialize properties
// nodes:
// An array containing objects for child Wires for node values
this
.
_initializeChildren
(
this
.
nodes
);
},
_getValue
:
function
(
/*Array*/
object
){
// summary:
// Return an array of tree node values
// description:
// This method iterates over an array specified to 'object'
// argument and calls getValue() method of 'node' Wires with each
// element of the array to get object(s) that represetns nodes.
// (If 'node' Wires are omitted, the array element is used for
// further processing.)
// Then, getValue() method of 'title' Wires are called to get
// title strings for nodes.
// (If 'title' Wires are omitted, the objects representing nodes
// are used as title strings.)
// And if an array of objects with 'node' and 'title' Wires is
// specified to 'children', it is used to gather child nodes and
// their title strings in the same way recursively.
// Finally, an array of the top-level node objects are retuned.
// object:
// A root array
// returns:
// An array of tree node values
if
(
!
object
||
!
this
.
nodes
){
return
object
;
//Array
}
var
array
=
object
;
if
(
!
dojo
.
isArray
(
array
)){
array
=
[
array
];
}
var
nodes
=
[];
for
(
var
i
in
array
){
for
(
var
i2
in
this
.
nodes
){
nodes
=
nodes
.
concat
(
this
.
_getNodes
(
array
[
i
],
this
.
nodes
[
i2
]));
}
}
return
nodes
;
//Array
},
_setValue
:
function
(
/*Array*/
object
,
/*Array*/
value
){
// summary:
// Not supported
throw
new
Error
(
"Unsupported API: "
+
this
.
_wireClass
+
"._setValue"
);
},
_initializeChildren
:
function
(
/*Array*/
children
){
// summary:
// Initialize child Wires
// description:
// If 'node' or 'title' properties of array elements specified in
// 'children' argument are not Wires, Wires are created from them
// as arguments, with 'parent' property set to this Wire instance.
// If an array element has 'children' property, this method is
// called recursively with it.
// children:
// An array of objects containing child Wires
if
(
!
children
){
return
;
//undefined
}
for
(
var
i
in
children
){
var
child
=
children
[
i
];
if
(
child
.
node
){
child
.
node
.
parent
=
this
;
if
(
!
dojox
.
wire
.
isWire
(
child
.
node
)){
child
.
node
=
dojox
.
wire
.
create
(
child
.
node
);
}
}
if
(
child
.
title
){
child
.
title
.
parent
=
this
;
if
(
!
dojox
.
wire
.
isWire
(
child
.
title
)){
child
.
title
=
dojox
.
wire
.
create
(
child
.
title
);
}
}
if
(
child
.
children
){
this
.
_initializeChildren
(
child
.
children
);
}
}
},
_getNodes
:
function
(
/*Object*/
object
,
/*Object*/
child
){
// summary:
// Return an array of tree node values
// description:
// This method calls getValue() method of 'node' Wires with
// 'object' argument to get object(s) that represents nodes.
// (If 'node' Wires are omitted, 'object' is used for further
// processing.)
// Then, getValue() method of 'title' Wires are called to get
// title strings for nodes.
// (If 'title' Wires are omitted, the objects representing nodes
// are used as title strings.)
// And if an array of objects with 'node' and 'title' Wires is
// specified to 'children', it is used to gather child nodes and
// their title strings in the same way recursively.
// Finally, an array of node objects are returned.
// object:
// An object
// child:
// An object with child Wires
// returns:
var
array
=
null
;
if
(
child
.
node
){
array
=
child
.
node
.
getValue
(
object
);
if
(
!
array
){
return
[];
}
if
(
!
dojo
.
isArray
(
array
)){
array
=
[
array
];
}
}
else
{
array
=
[
object
];
}
var
nodes
=
[];
for
(
var
i
in
array
){
object
=
array
[
i
];
var
node
=
{};
if
(
child
.
title
){
node
.
title
=
child
.
title
.
getValue
(
object
);
}
else
{
node
.
title
=
object
;
}
if
(
child
.
children
){
var
children
=
[];
for
(
var
i2
in
child
.
children
){
children
=
children
.
concat
(
this
.
_getNodes
(
object
,
child
.
children
[
i2
]));
}
if
(
children
.
length
>
0
){
node
.
children
=
children
;
}
}
nodes
.
push
(
node
);
}
return
nodes
;
//Array
}
});
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 26, 13:39 (21 h, 16 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26499
Default Alt Text
TreeAdapter.js (5 KB)
Attached To
rZEDHG ZedLegacy
Event Timeline
Log In to Comment