2 * Toolbar with menus providing quick access to class members.
4 Ext.define('Docs.OverviewToolbar', {
5 extend: 'Ext.toolbar.Toolbar',
11 * @cfg {Object} docClass
12 * Documentation for a class.
16 initComponent: function() {
21 property: "Properties",
25 for (var type in memberTitles) {
26 var members = this.docClass[type];
28 this.items.push(this.createMemberButton({
31 title: memberTitles[type]
36 if (this.docClass.subclasses.length) {
37 this.items.push(this.createSubClassesButton({
38 items: this.docClass.subclasses,
43 this.items = this.items.concat([
46 boxLabel: 'Hide inherited',
47 boxLabelAlign: 'before',
51 handler: this.hideInherited
55 iconCls: 'expandAllMembers',
56 tooltip: "Expand all",
58 Ext.Array.forEach(Ext.query('.side.expandable'), function(el) {
59 Ext.get(el).parent().addCls('open');
65 iconCls: 'collapseAllMembers',
66 tooltip: "Collapse all",
68 Ext.Array.forEach(Ext.query('.side.expandable'), function(el) {
69 Ext.get(el).parent().removeCls('open');
75 this.callParent(arguments);
78 createMemberButton: function(cfg) {
79 var menu = Ext.create('Ext.menu.Menu', {
80 items: Ext.Array.map(cfg.items, function(m) {
83 memberName: cfg.type + '-' + m.name
88 click: function(menu, item) {
89 Ext.getCmp('doc-overview').scrollToEl("#" + item.memberName);
94 return Ext.create('Ext.button.Split', {
96 iconCls: 'icon-' + cfg.type,
97 text: cfg.title + ' <span class="num">' + cfg.items.length + '</span>',
100 Ext.getCmp('doc-overview').scrollToEl("#m-" + cfg.type);
107 createSubClassesButton: function(cfg) {
108 var menu = Ext.create('Ext.menu.Menu', {
109 items: Ext.Array.map(cfg.items, function(className) {
110 return {text: className, clsName: className};
114 click: function(menu, item) {
115 Docs.ClassLoader.load(item.clsName);
120 return Ext.create('Ext.button.Button', {
122 iconCls: 'icon-subclass',
123 text: cfg.title + ' <span class="num">' + cfg.items.length + '</span>',
128 hideInherited: function(el) {
129 var hide = el.checked;
131 // show/hide all inherited members
132 Ext.Array.forEach(Ext.query('.member.inherited'), function(m) {
133 Ext.get(m).setStyle({display: hide ? 'none' : 'block'});
136 // Remove all first-child classes
137 Ext.Array.forEach(Ext.query('.member.first-child'), function(m) {
138 Ext.get(m).removeCls('first-child');
141 Ext.Array.forEach(['cfg', 'property', 'method', 'event'], function(m) {
142 var sectionId = '#m-' + m;
144 // Hide the section completely if all items in it are inherited
145 if (Ext.query(sectionId+' .member.not-inherited').length === 0) {
146 var section = Ext.query(sectionId)[0];
147 section && Ext.get(section).setStyle({display: hide ? 'none' : 'block'});
150 // add first-child class to first member in section
151 var sectionMembers = Ext.query(sectionId+' .member' + (hide ? ".not-inherited" : ""));
152 if (sectionMembers.length > 0) {
153 Ext.get(sectionMembers[0]).addCls('first-child');