// vim: et:ts=4:sw=4:sts=4:ft=javascript 'use strict'; /*@ Ox.ListItem <f:Ox.Element> ListItem Object () -> <f> ListItem Object (options) -> <f> ListItem Object (options, self) -> <f> ListItem Object options <o> Options object construct <f> construct function data <o|{}> item data draggable <b|false> can be dragged position <n|0> item position unique <s|''> unique key self <o> 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 || {}); 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); } self.setOption = function(key, value) { if (key == 'data') { constructItem(true); } }; return that; };