oxjs/source/Ox.UI/js/List/CustomList.js

69 lines
No EOL
1.9 KiB
JavaScript

'use strict';
/*@
Ox.CustomList <f> Custom List Widget
experimental
@*/
Ox.CustomList = function(options, self) {
self = self || {};
var that = Ox.Element({}, self)
.defaults({
draggable: false,
item: null,
itemHeight: 32,
items: null,
itemWidth: 256,
keys: [],
max: -1,
min: 0,
pageLength: 100,
query: {conditions: [], operator: '&'},
scrollbarVisible: false,
selected: [],
sort: [],
sortable: false,
sums: [],
unique: ''
})
.options(options || {})
.update({
})
.addClass('OxCustomList');
self.$list = Ox.List({
construct: function(data) {
return self.options.item(data).addClass('OxTarget');
},
draggable: self.options.draggable,
itemHeight: self.options.itemHeight,
itemWidth: self.options.itemWidth
- self.options.scrollbarVisible * Ox.UI.SCROLLBAR_SIZE,
items: self.options.items,
keys: self.options.keys.concat(self.options.unique),
max: self.options.max,
min: self.options.min,
orientation: 'vertical',
pageLength: self.options.pageLength,
query: self.options.query,
selected: self.options.selected,
sort: self.options.sort,
sortable: self.options.sortable,
sums: self.options.sums,
type: 'text',
unique: self.options.unique
})
.css({
top: 0,
overflowY: (self.options.scrollbarVisible ? 'scroll' : 'hidden')
})
.bindEvent(function(data, event) {
that.triggerEvent(event, data);
})
.appendTo(that);
return that;
};