123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- /*
- * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com
- *
- * http://extjs.com/license
- */
- Ext.Toolbar = function(A) {
- if (A instanceof Array) {
- A = {
- buttons : A
- }
- }
- Ext.Toolbar.superclass.constructor.call(this, A)
- };
- (function() {
- var A = Ext.Toolbar;
- Ext.extend(A, Ext.BoxComponent, {
- trackMenus : true,
- initComponent : function() {
- A.superclass.initComponent.call(this);
- if (this.items) {
- this.buttons = this.items
- }
- this.items = new Ext.util.MixedCollection(false,
- function(B) {
- return B.itemId || B.id || Ext.id()
- })
- },
- autoCreate : {
- cls : "x-toolbar x-small-editor",
- html : "<table cellspacing=\"0\"><tr></tr></table>"
- },
- onRender : function(C, B) {
- this.el = C.createChild(this.autoCreate, B);
- this.tr = this.el.child("tr", true)
- },
- afterRender : function() {
- A.superclass.afterRender.call(this);
- if (this.buttons) {
- this.add.apply(this, this.buttons);
- delete this.buttons
- }
- },
- add : function() {
- var C = arguments, B = C.length;
- for (var D = 0; D < B; D++) {
- var E = C[D];
- if (E.isFormField) {
- this.addField(E)
- } else {
- if (E.render) {
- this.addItem(E)
- } else {
- if (typeof E == "string") {
- if (E == "separator" || E == "-") {
- this.addSeparator()
- } else {
- if (E == " ") {
- this.addSpacer()
- } else {
- if (E == "->") {
- this.addFill()
- } else {
- this.addText(E)
- }
- }
- }
- } else {
- if (E.tagName) {
- this.addElement(E)
- } else {
- if (typeof E == "object") {
- if (E.xtype) {
- this.addField(Ext.ComponentMgr
- .create(E, "button"))
- } else {
- this.addButton(E)
- }
- }
- }
- }
- }
- }
- }
- },
- addSeparator : function() {
- return this.addItem(new A.Separator())
- },
- addSpacer : function() {
- return this.addItem(new A.Spacer())
- },
- addFill : function() {
- return this.addItem(new A.Fill())
- },
- addElement : function(B) {
- return this.addItem(new A.Item(B))
- },
- addItem : function(B) {
- var C = this.nextBlock();
- this.initMenuTracking(B);
- B.render(C);
- this.items.add(B);
- return B
- },
- addButton : function(D) {
- if (D instanceof Array) {
- var F = [];
- for (var E = 0, C = D.length; E < C; E++) {
- F.push(this.addButton(D[E]))
- }
- return F
- }
- var B = D;
- if (!(D instanceof A.Button)) {
- B = D.split ? new A.SplitButton(D) : new A.Button(D)
- }
- var G = this.nextBlock();
- this.initMenuTracking(B);
- B.render(G);
- this.items.add(B);
- return B
- },
- initMenuTracking : function(B) {
- if (this.trackMenus && B.menu) {
- B.on({
- "menutriggerover" : this.onButtonTriggerOver,
- "menushow" : this.onButtonMenuShow,
- "menuhide" : this.onButtonMenuHide,
- scope : this
- })
- }
- },
- addText : function(B) {
- return this.addItem(new A.TextItem(B))
- },
- insertButton : function(C, F) {
- if (F instanceof Array) {
- var E = [];
- for (var D = 0, B = F.length; D < B; D++) {
- E.push(this.insertButton(C + D, F[D]))
- }
- return E
- }
- if (!(F instanceof A.Button)) {
- F = new A.Button(F)
- }
- var G = document.createElement("td");
- this.tr.insertBefore(G, this.tr.childNodes[C]);
- this.initMenuTracking(F);
- F.render(G);
- this.items.insert(C, F);
- return F
- },
- addDom : function(C, B) {
- var E = this.nextBlock();
- Ext.DomHelper.overwrite(E, C);
- var D = new A.Item(E.firstChild);
- D.render(E);
- this.items.add(D);
- return D
- },
- addField : function(C) {
- var D = this.nextBlock();
- C.render(D);
- var B = new A.Item(D.firstChild);
- B.render(D);
- this.items.add(B);
- return B
- },
- nextBlock : function() {
- var B = document.createElement("td");
- this.tr.appendChild(B);
- return B
- },
- onDestroy : function() {
- Ext.Toolbar.superclass.onDestroy.call(this);
- if (this.rendered) {
- if (this.items) {
- Ext.destroy.apply(Ext, this.items.items)
- }
- Ext.Element.uncache(this.tr)
- }
- },
- onDisable : function() {
- this.items.each(function(B) {
- if (B.disable) {
- B.disable()
- }
- })
- },
- onEnable : function() {
- this.items.each(function(B) {
- if (B.enable) {
- B.enable()
- }
- })
- },
- onButtonTriggerOver : function(B) {
- if (this.activeMenuBtn && this.activeMenuBtn != B) {
- this.activeMenuBtn.hideMenu();
- B.showMenu();
- this.activeMenuBtn = B
- }
- },
- onButtonMenuShow : function(B) {
- this.activeMenuBtn = B
- },
- onButtonMenuHide : function(B) {
- delete this.activeMenuBtn
- }
- });
- Ext.reg("toolbar", Ext.Toolbar);
- A.Item = function(B) {
- this.el = Ext.getDom(B);
- this.id = Ext.id(this.el);
- this.hidden = false
- };
- A.Item.prototype = {
- getEl : function() {
- return this.el
- },
- render : function(B) {
- this.td = B;
- B.appendChild(this.el)
- },
- destroy : function() {
- if (this.td && this.td.parentNode) {
- this.td.parentNode.removeChild(this.td)
- }
- },
- show : function() {
- this.hidden = false;
- this.td.style.display = ""
- },
- hide : function() {
- this.hidden = true;
- this.td.style.display = "none"
- },
- setVisible : function(B) {
- if (B) {
- this.show()
- } else {
- this.hide()
- }
- },
- focus : function() {
- Ext.fly(this.el).focus()
- },
- disable : function() {
- Ext.fly(this.td).addClass("x-item-disabled");
- this.disabled = true;
- this.el.disabled = true
- },
- enable : function() {
- Ext.fly(this.td).removeClass("x-item-disabled");
- this.disabled = false;
- this.el.disabled = false
- }
- };
- Ext.reg("tbitem", A.Item);
- A.Separator = function() {
- var B = document.createElement("span");
- B.className = "ytb-sep";
- A.Separator.superclass.constructor.call(this, B)
- };
- Ext.extend(A.Separator, A.Item, {
- enable : Ext.emptyFn,
- disable : Ext.emptyFn,
- focus : Ext.emptyFn
- });
- Ext.reg("tbseparator", A.Separator);
- A.Spacer = function() {
- var B = document.createElement("div");
- B.className = "ytb-spacer";
- A.Spacer.superclass.constructor.call(this, B)
- };
- Ext.extend(A.Spacer, A.Item, {
- enable : Ext.emptyFn,
- disable : Ext.emptyFn,
- focus : Ext.emptyFn
- });
- Ext.reg("tbspacer", A.Spacer);
- A.Fill = Ext.extend(A.Spacer, {
- render : function(B) {
- B.style.width = "100%";
- A.Fill.superclass.render.call(this, B)
- }
- });
- Ext.reg("tbfill", A.Fill);
- A.TextItem = function(C) {
- var B = document.createElement("span");
- B.className = "ytb-text";
- B.innerHTML = C;
- A.TextItem.superclass.constructor.call(this, B)
- };
- Ext.extend(A.TextItem, A.Item, {
- enable : Ext.emptyFn,
- disable : Ext.emptyFn,
- focus : Ext.emptyFn
- });
- Ext.reg("tbtext", A.TextItem);
- A.Button = Ext.extend(Ext.Button, {
- hideParent : true,
- onDestroy : function() {
- A.Button.superclass.onDestroy.call(this);
- if (this.container) {
- this.container.remove()
- }
- }
- });
- Ext.reg("tbbutton", A.Button);
- A.SplitButton = Ext.extend(Ext.SplitButton, {
- hideParent : true,
- onDestroy : function() {
- A.SplitButton.superclass.onDestroy.call(this);
- if (this.container) {
- this.container.remove()
- }
- }
- });
- Ext.reg("tbsplit", A.SplitButton);
- A.MenuButton = A.SplitButton
- })();
|