X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/docs/source/progress-bar.html diff --git a/docs/source/progress-bar.html b/docs/source/progress-bar.html new file mode 100644 index 00000000..13f56143 --- /dev/null +++ b/docs/source/progress-bar.html @@ -0,0 +1,114 @@ + +
+Ext.onReady(function(){ + //==== Progress bar 1 ==== + var pbar1 = new Ext.ProgressBar({ + text:'Initializing...' + }); + var btn1 = Ext.get('btn1'); + btn1.on('click', function(){ + Ext.fly('p1text').update('Working'); + if (!pbar1.rendered){ + pbar1.render('p1'); + }else{ + pbar1.text = 'Initializing...'; + pbar1.show(); + } + Runner.run(pbar1, Ext.get('btn1'), 10, function(){ + pbar1.reset(true); + Ext.fly('p1text').update('Done.').show(); + }); + }); + + //==== Progress bar 2 ==== + var pbar2 = new Ext.ProgressBar({ + text:'Ready', + id:'pbar2', + cls:'left-align', + renderTo:'p2' + }); + var btn2 = Ext.get('btn2'); + btn2.on('click', function(){ + Runner.run(pbar2, btn2, 12, function(){ + pbar2.reset(); + pbar2.updateText('Done.'); + }); + }); + + //==== Progress bar 3 ==== + var pbar3 = new Ext.ProgressBar({ + id:'pbar3', + width:300, + renderTo:'p3' + }); + pbar3.on('update', function(val){ + //You can handle this event at each progress interval if + //needed to perform some other action + Ext.fly('p3text').dom.innerHTML += '.'; + }); + var btn3 = Ext.get('btn3'); + btn3.on('click', function(){ + Ext.fly('p3text').update('Working'); + btn3.dom.disabled = true; + pbar3.wait({ + interval:200, + duration:5000, + increment:15, + fn:function(){ + btn3.dom.disabled = false; + Ext.fly('p3text').update('Done'); + } + }); + }); + + //==== Progress bar 4 ==== + var pbar4 = new Ext.ProgressBar({ + text:'Waiting on you...', + id:'pbar4', + textEl:'p4text', + cls:'custom', + renderTo:'p4' + }); + var btn4 = Ext.get('btn4'); + btn4.on('click', function(){ + Runner.run(pbar4, btn4, 19, function(){ + pbar4.updateText('All finished!'); + }); + }); +}); + +//Please do not use the following code as a best practice! :) +var Runner = function(){ + var f = function(v, pbar, btn, count, cb){ + return function(){ + if(v > count){ + btn.dom.disabled = false; + cb(); + }else{ + if(pbar.id=='pbar4'){ + //give this one a different count style for fun + var i = v/count; + pbar.updateProgress(i, Math.round(100*i)+'% completed...'); + }else{ + pbar.updateProgress(v/count, 'Loading item ' + v + ' of '+count+'...'); + } + } + }; + }; + return { + run : function(pbar, btn, count, cb){ + btn.dom.disabled = true; + var ms = 5000/count; + for(var i = 1; i < (count+2); i++){ + setTimeout(f(i, pbar, btn, count, cb), i*ms); + } + } + } +}();+ + \ No newline at end of file