diff --git a/source/Ox.UI/js/List/Ox.TreeList.js b/source/Ox.UI/js/List/Ox.TreeList.js
index 7cd0d441..17b205a3 100644
--- a/source/Ox.UI/js/List/Ox.TreeList.js
+++ b/source/Ox.UI/js/List/Ox.TreeList.js
@@ -31,10 +31,7 @@ Ox.TreeList = function(options, self) {
selected: [],
width: 256
})
- .options(options || {})
- .bindEvent({
- select: selectItem
- });
+ .options(options || {});
if (self.options.data) {
self.options.items = [];
@@ -62,10 +59,13 @@ Ox.TreeList = function(options, self) {
})
.bindEvent({
anyclick: clickItem,
+ select: selectItem,
toggle: toggleItems
})
);
+ self.options.selected.length && selectItem({ids: self.options.selected});
+
function clickItem(e) {
var $target = $(e.target),
$item, id, item;
@@ -107,7 +107,7 @@ Ox.TreeList = function(options, self) {
.appendTo($item);
}
$('
')
- .addClass('OxCell OxTarget'+(!data.items?' OxSelectable':''))
+ .addClass('OxCell OxTarget' + (!data.items ? ' OxSelectable' : ''))
.css({
width: (self.options.width - padding - 32 + !data.items * 16) + 'px'
})
@@ -140,13 +140,13 @@ Ox.TreeList = function(options, self) {
function getParent(id, items) {
var ret;
Ox.forEach(items, function(item) {
- if(item.items) {
- if(Ox.getObjectById(item.items, id)) {
+ if (item.items) {
+ if (Ox.getObjectById(item.items, id)) {
ret = item.id;
} else {
ret = getParent(id, item.items);
}
- if(ret) {
+ if (ret) {
return false;
}
}
@@ -155,7 +155,6 @@ Ox.TreeList = function(options, self) {
}
function parseData(key, value) {
- //Ox.Log('List', 'parseData', key, value)
var ret = {
expanded: false,
id: Ox.uid().toString(),
@@ -199,8 +198,8 @@ Ox.TreeList = function(options, self) {
}
function selectItem(data) {
- var id = data.ids[0], parent = id, parents=[];
- while(parent = getParent(parent, self.options.items)) {
+ var id = data.ids[0], parent = id, parents = [];
+ while (parent = getParent(parent, self.options.items)) {
parents.push(parent);
}
parents = parents.reverse();
@@ -208,7 +207,9 @@ Ox.TreeList = function(options, self) {
expanded: true,
ids: parents
});
+ self.$list.options({selected: data.ids})
}
+
function toggleItem(item, expanded) {
var $img, pos;
item.expanded = expanded;
@@ -248,7 +249,9 @@ Ox.TreeList = function(options, self) {
if (key == 'data') {
// ...
} else if (key == 'selected') {
- self.$list.options({selected: value});
+ //self.$list.options({selected: value});
+ selectItem({ids: value});
+ self.$list.scrollToSelection();
} else if (key == 'width') {
// ...
}