2 * Ext JS Library 0.30
\r
3 * Copyright(c) 2006-2009, Ext JS, LLC.
\r
4 * licensing@extjs.com
\r
6 * http://extjs.com/license
\r
9 Ext.SwitchButton = Ext.extend(Ext.Component, {
\r
10 initComponent : function(){
\r
11 Ext.SwitchButton.superclass.initComponent.call(this);
\r
13 var mc = new Ext.util.MixedCollection();
\r
14 mc.addAll(this.items);
\r
17 this.addEvents('change');
\r
20 this.on('change', this.handler, this.scope || this);
\r
24 onRender : function(ct, position){
\r
26 var el = document.createElement('table');
\r
28 el.className = 'x-rbtn';
\r
31 var row = document.createElement('tr');
\r
32 el.appendChild(row);
\r
34 var count = this.items.length;
\r
35 var last = count - 1;
\r
36 this.activeItem = this.items.get(this.activeItem);
\r
38 for(var i = 0; i < count; i++){
\r
39 var item = this.items.itemAt(i);
\r
41 var cell = row.appendChild(document.createElement('td'));
\r
42 cell.id = this.id + '-rbi-' + i;
\r
44 var cls = i == 0 ? 'x-rbtn-first' : (i == last ? 'x-rbtn-last' : 'x-rbtn-item');
\r
47 if(this.activeItem == item){
\r
50 cell.className = cls;
\r
52 var button = document.createElement('button');
\r
53 button.innerHTML = ' ';
\r
54 button.className = item.iconCls;
\r
55 button.qtip = item.tooltip;
\r
57 cell.appendChild(button);
\r
62 this.el = Ext.get(ct.dom.appendChild(el));
\r
64 this.el.on('click', this.onClick, this);
\r
67 getActiveItem : function(){
\r
68 return this.activeItem;
\r
71 setActiveItem : function(item){
\r
72 if(typeof item != 'object' && item !== null){
\r
73 item = this.items.get(item);
\r
75 var current = this.getActiveItem();
\r
76 if(item != current){
\r
78 Ext.fly(current.cell).removeClass(current.baseCls + '-active');
\r
81 Ext.fly(item.cell).addClass(item.baseCls + '-active');
\r
83 this.activeItem = item;
\r
84 this.fireEvent('change', this, item);
\r
89 onClick : function(e){
\r
90 var target = e.getTarget('td', 2);
\r
91 if(!this.disabled && target){
\r
92 this.setActiveItem(parseInt(target.id.split('-rbi-')[1], 10));
\r
97 Ext.reg('switch', Ext.SwitchButton);
\r