123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- /*
- * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com
- *
- * http://extjs.com/license
- */
- Ext.ProgressBar = Ext.extend(Ext.BoxComponent, {
- baseCls : "x-progress",
- waitTimer : null,
- initComponent : function() {
- Ext.ProgressBar.superclass.initComponent.call(this);
- this.addEvents("update")
- },
- onRender : function(D, A) {
- Ext.ProgressBar.superclass.onRender.call(this, D, A);
- var C = new Ext.Template("<div class=\"{cls}-wrap\">",
- "<div class=\"{cls}-inner\">", "<div class=\"{cls}-bar\">",
- "<div class=\"{cls}-text\">", "<div> </div>", "</div>",
- "</div>", "<div class=\"{cls}-text {cls}-text-back\">",
- "<div> </div>", "</div>", "</div>", "</div>");
- if (A) {
- this.el = C.insertBefore(A, {
- cls : this.baseCls
- }, true)
- } else {
- this.el = C.append(D, {
- cls : this.baseCls
- }, true)
- }
- if (this.id) {
- this.el.dom.id = this.id
- }
- var B = this.el.dom.firstChild;
- this.progressBar = Ext.get(B.firstChild);
- if (this.textEl) {
- this.textEl = Ext.get(this.textEl);
- delete this.textTopEl
- } else {
- this.textTopEl = Ext.get(this.progressBar.dom.firstChild);
- var E = Ext.get(B.childNodes[1]);
- this.textTopEl.setStyle("z-index", 99).addClass("x-hidden");
- this.textEl = new Ext.CompositeElement([
- this.textTopEl.dom.firstChild, E.dom.firstChild]);
- this.textEl.setWidth(B.offsetWidth)
- }
- if (this.value) {
- this.updateProgress(this.value, this.text)
- } else {
- this.updateText(this.text)
- }
- this.setSize(this.width || "auto", "auto");
- this.progressBar.setHeight(B.offsetHeight)
- },
- updateProgress : function(B, C) {
- this.value = B || 0;
- if (C) {
- this.updateText(C)
- }
- var A = Math.floor(B * this.el.dom.firstChild.offsetWidth);
- this.progressBar.setWidth(A);
- if (this.textTopEl) {
- this.textTopEl.removeClass("x-hidden").setWidth(A)
- }
- this.fireEvent("update", this, B, C);
- return this
- },
- wait : function(B) {
- if (!this.waitTimer) {
- var A = this;
- B = B || {};
- this.waitTimer = Ext.TaskMgr.start({
- run : function(C) {
- var D = B.increment || 10;
- this
- .updateProgress(((((C + D) % D) + 1) * (100 / D))
- * 0.01)
- },
- interval : B.interval || 1000,
- duration : B.duration,
- onStop : function() {
- if (B.fn) {
- B.fn.apply(B.scope || this)
- }
- this.reset()
- },
- scope : A
- })
- }
- return this
- },
- isWaiting : function() {
- return this.waitTimer != null
- },
- updateText : function(A) {
- this.text = A || " ";
- this.textEl.update(this.text);
- return this
- },
- setSize : function(A, C) {
- Ext.ProgressBar.superclass.setSize.call(this, A, C);
- if (this.textTopEl) {
- var B = this.el.dom.firstChild;
- this.textEl.setSize(B.offsetWidth, B.offsetHeight)
- }
- return this
- },
- reset : function(A) {
- this.updateProgress(0);
- if (this.textTopEl) {
- this.textTopEl.addClass("x-hidden")
- }
- if (this.waitTimer) {
- this.waitTimer.onStop = null;
- Ext.TaskMgr.stop(this.waitTimer);
- this.waitTimer = null
- }
- if (A === true) {
- this.hide()
- }
- return this
- }
- });
- Ext.reg("progress", Ext.ProgressBar);
|