1 /** 2 * @author Gillis Haasnoot <gillis.haasnoot@gmail.com> 3 * @package Banana.Controls 4 * @summary Info decorator 5 */ 6 7 goog.provide('Banana.Controls.Decorators.InfoDecorator'); 8 9 /** @namespace Banana.Controls.Decorators.InfoDecorator */ 10 namespace('Banana.Controls.Decorators').InfoDecorator = Banana.Controls.Decorators.Decorator.extend( 11 /** @lends Banana.Controls.Decorators.InfoDecorator.prototype */ 12 { 13 /** 14 * Creates a info decorator which decorates a custom control with a info image with a text tag 15 * 16 * @param {Banana.UiControl} customControl 17 * @constructs 18 * @extends Banana.Controls.Decorators.Decorator 19 */ 20 init : function(customControl) 21 { 22 this._super(customControl); 23 24 this.addCssClass('BInfoDecorator'); 25 26 this.infoImage = new Banana.Controls.Image().addCssClass('BInfoDecoratorInfoImage'); 27 this.infoImage.setImage("banana/images/infodot.png"); 28 29 this.addControl(this.infoImage); 30 this.addControl(customControl); 31 32 //when custom control becomes visible or invisible so does this control 33 customControl.bind('onSetVisible',this.getProxy(this.onSetVisible)); 34 }, 35 36 /** 37 * Invoked when setVisible is called 38 * @param {Event} event 39 * @param {Mixed} data 40 */ 41 onSetVisible : function(event,data) 42 { 43 this.setVisible(data); 44 }, 45 46 /** 47 * @param {String} t text to show as info 48 */ 49 setText : function(text) 50 { 51 this.infoImage.setAttribute('title',text); 52 return this; 53 } 54 });