in optaplanner-docs/src/modules/ROOT/images/website/jstree/jstree.js [3491:3576]
set_state : function (state, callback) {
if(state) {
if(state.core && state.core.selected && state.core.initial_selection === undefined) {
state.core.initial_selection = this._data.core.selected.concat([]).sort().join(',');
}
if(state.core) {
var res, n, t, _this, i;
if(state.core.loaded) {
if(!this.settings.core.loaded_state || !$.isArray(state.core.loaded) || !state.core.loaded.length) {
delete state.core.loaded;
this.set_state(state, callback);
}
else {
this._load_nodes(state.core.loaded, function (nodes) {
delete state.core.loaded;
this.set_state(state, callback);
});
}
return false;
}
if(state.core.open) {
if(!$.isArray(state.core.open) || !state.core.open.length) {
delete state.core.open;
this.set_state(state, callback);
}
else {
this._load_nodes(state.core.open, function (nodes) {
this.open_node(nodes, false, 0);
delete state.core.open;
this.set_state(state, callback);
});
}
return false;
}
if(state.core.scroll) {
if(state.core.scroll && state.core.scroll.left !== undefined) {
this.element.scrollLeft(state.core.scroll.left);
}
if(state.core.scroll && state.core.scroll.top !== undefined) {
this.element.scrollTop(state.core.scroll.top);
}
delete state.core.scroll;
this.set_state(state, callback);
return false;
}
if(state.core.selected) {
_this = this;
if (state.core.initial_selection === undefined ||
state.core.initial_selection === this._data.core.selected.concat([]).sort().join(',')
) {
this.deselect_all();
$.each(state.core.selected, function (i, v) {
_this.select_node(v, false, true);
});
}
delete state.core.initial_selection;
delete state.core.selected;
this.set_state(state, callback);
return false;
}
for(i in state) {
if(state.hasOwnProperty(i) && i !== "core" && $.inArray(i, this.settings.plugins) === -1) {
delete state[i];
}
}
if($.isEmptyObject(state.core)) {
delete state.core;
this.set_state(state, callback);
return false;
}
}
if($.isEmptyObject(state)) {
state = null;
if(callback) { callback.call(this); }
/**
* triggered when a `set_state` call completes
* @event
* @name set_state.jstree
*/
this.trigger('set_state');
return false;
}
return true;
}
return false;
},