in optaplanner-docs/src/modules/ROOT/images/website/jstree/jstree.js [1638:1724]
parse_flat = function (d, p, ps) {
if(!ps) { ps = []; }
else { ps = ps.concat(); }
if(p) { ps.unshift(p); }
var tid = d.id.toString(),
i, j, c, e,
tmp = {
id : tid,
text : d.text || '',
icon : d.icon !== undefined ? d.icon : true,
parent : p,
parents : ps,
children : d.children || [],
children_d : d.children_d || [],
data : d.data,
state : { },
li_attr : { id : false },
a_attr : { href : '#' },
original : false
};
for(i in df) {
if(df.hasOwnProperty(i)) {
tmp.state[i] = df[i];
}
}
if(d && d.data && d.data.jstree && d.data.jstree.icon) {
tmp.icon = d.data.jstree.icon;
}
if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") {
tmp.icon = true;
}
if(d && d.data) {
tmp.data = d.data;
if(d.data.jstree) {
for(i in d.data.jstree) {
if(d.data.jstree.hasOwnProperty(i)) {
tmp.state[i] = d.data.jstree[i];
}
}
}
}
if(d && typeof d.state === 'object') {
for (i in d.state) {
if(d.state.hasOwnProperty(i)) {
tmp.state[i] = d.state[i];
}
}
}
if(d && typeof d.li_attr === 'object') {
for (i in d.li_attr) {
if(d.li_attr.hasOwnProperty(i)) {
tmp.li_attr[i] = d.li_attr[i];
}
}
}
if(!tmp.li_attr.id) {
tmp.li_attr.id = tid;
}
if(d && typeof d.a_attr === 'object') {
for (i in d.a_attr) {
if(d.a_attr.hasOwnProperty(i)) {
tmp.a_attr[i] = d.a_attr[i];
}
}
}
if(d && d.children && d.children === true) {
tmp.state.loaded = false;
tmp.children = [];
tmp.children_d = [];
}
m[tmp.id] = tmp;
for(i = 0, j = tmp.children.length; i < j; i++) {
c = parse_flat(m[tmp.children[i]], tmp.id, ps);
e = m[c];
tmp.children_d.push(c);
if(e.children_d.length) {
tmp.children_d = tmp.children_d.concat(e.children_d);
}
}
delete d.data;
delete d.children;
m[tmp.id].original = d;
if(tmp.state.selected) {
add.push(tmp.id);
}
return tmp.id;
},