dojo.provide("epages.widget.Elementlistitem"); dojo.require("epages.widget"); dojo.require("dijit._Container"); dojo.declare("epages.widget.Elementlistitem", [epages.widget.LocalizedWidget, dijit._Contained], { /** * public properties */ templateString: '<div class="${itemClassName}">${title}</div>', itemClassName: 'ElementListItem', hoverClassName: 'Hover', selectClassName: 'Selected', isSelected: false, objectId: '', title: 'item', parent: undefined, translationName: dojo.moduleUrl('epages','translation'), selectOn: 'onclick', disabled: false, /** * public methods */ postCreate: function() { epages.widget.Elementlistitem.superclass.postCreate.apply(this, arguments); // connect events this.connect(this.domNode, "onmouseover", '_onMouseOver'); this.connect(this.domNode, "onmouseout", '_onMouseOut'); this.connect(this.domNode, this.selectOn, '_onClick'); this.parent = this.getParent(); }, select: function () { this.isSelected = true; dojo.addClass(this.domNode, this.selectClassName); }, deselect: function () { this.isSelected = false; dojo.removeClass(this.domNode, this.selectClassName); }, /** * private methods */ _onMouseOver: function() { dojo.addClass(this.domNode, this.hoverClassName); }, _onMouseOut: function() { dojo.removeClass(this.domNode, this.hoverClassName); }, _onClick: function(evt) { if (this.getParent()) { this.getParent().doSelectItem(this, this.isSelected, evt); } else { this.isSelected ? this.deselect() : this.select(); dojo.publish(this.id+'/onClick', [{ widget: this, node: this.domNode, objectId: this.objectId }]); } } } );