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 });