'use strict'; /*@ Ox.ListItem ListItem Object ([options[, self]]) -> ListItem Object options Options object construct construct function data item data draggable can be dragged position item position unique unique key self shared private variable cancel triggered if cancel button is pressed save triggered if save button is pressed @*/ Ox.ListItem = function(options, self) { self = self || {}; var that = Ox.Element({}, self) .defaults({ construct: null, data: {}, draggable: false, position: 0, unique: '' }) .options(options || {}) .update({ data: function() { constructItem(true); } }); constructItem(); function constructItem(update) { var $element = self.options.construct(self.options.data) .addClass('OxItem') .data({ id: self.options.data[self.options.unique], position: self.options.position }); if (update) { that.$element.hasClass('OxSelected') && $element.addClass('OxSelected'); } that.setElement($element); } return that; };