Roo/bootstrap/NavGroup.js
[roojs1] / Roo / bootstrap / NavGroup.js
1 /*
2  * - LGPL
3  *
4  * nav group
5  * 
6  */
7
8 /**
9  * @class Roo.bootstrap.NavGroup
10  * @extends Roo.bootstrap.Component
11  * Bootstrap NavGroup class
12  * @cfg {String} align left | right
13  * @cfg {Boolean} inverse false | true
14  * @cfg {String} type (nav|pills|tab) default nav
15  * @cfg {String} navId - reference Id for navbar.
16
17  * 
18  * @constructor
19  * Create a new nav group
20  * @param {Object} config The config object
21  */
22
23 Roo.bootstrap.NavGroup = function(config){
24     Roo.bootstrap.NavGroup.superclass.constructor.call(this, config);
25     this.navItems = [];
26     Roo.bootstrap.NavGroup.register(this);
27 };
28
29 Roo.extend(Roo.bootstrap.NavGroup, Roo.bootstrap.Component,  {
30     
31     align: '',
32     inverse: false,
33     form: false,
34     type: 'nav',
35     navId : '',
36     // private
37     
38     navItems : false,
39     
40     getAutoCreate : function()
41     {
42         var cfg = Roo.apply({}, Roo.bootstrap.NavGroup.superclass.getAutoCreate.call(this));
43         
44         cfg = {
45             tag : 'ul',
46             cls: 'nav' 
47         }
48         
49         if (['tabs','pills'].indexOf(this.type)!==-1) {
50             cfg.cls += ' nav-' + this.type
51         } else {
52             if (this.type!=='nav') {
53                 Roo.log('nav type must be nav/tabs/pills')
54             }
55             cfg.cls += ' navbar-nav'
56         }
57         
58         if (this.parent().sidebar === true) {
59             cfg = {
60                 tag: 'ul',
61                 cls: 'dashboard-menu'
62             }
63             
64             return cfg;
65         }
66         
67         if (this.form === true) {
68             cfg = {
69                 tag: 'form',
70                 cls: 'navbar-form'
71             }
72             
73             if (this.align === 'right') {
74                 cfg.cls += ' navbar-right';
75             } else {
76                 cfg.cls += ' navbar-left';
77             }
78         }
79         
80         if (this.align === 'right') {
81             cfg.cls += ' navbar-right';
82         }
83         
84         if (this.inverse) {
85             cfg.cls += ' navbar-inverse';
86             
87         }
88         
89         
90         return cfg;
91     },
92     
93     setActiveItem : function(item)
94     {
95         
96         Roo.each(this.navItems, function(v){
97             if (v.isActive()) {
98                 v.setActive(false, false);
99             }
100             
101         });
102
103         item.el.setActive('active', false);
104         this.fireEvent('item-activate', this, item);
105         
106         
107     },
108     
109     
110     register : function(item)
111     {
112         this.navItems.push( item);
113         item.navId = this.navId;
114     
115     }
116     
117 });
118
119  
120 Roo.apply(Roo.bootstrap.NavGroup, {
121     
122     groups: {},
123     
124     register : function(navgrp)
125     {
126         this.groups[navgrp.navId] = navgrp;
127         
128     }
129     
130     
131     
132 });
133
134