-<html>\r
-<head>\r
- <title>The source code</title>\r
- <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
- <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
-</head>\r
-<body onload="prettyPrint();">\r
- <pre class="prettyprint lang-js">Ext.onReady(function(){\r
- //==== Progress bar 1 ====\r
- var pbar1 = new Ext.ProgressBar({\r
- text:'Initializing...'\r
- });\r
- var btn1 = Ext.get('btn1');\r
- btn1.on('click', function(){\r
- Ext.fly('p1text').update('Working');\r
- if (!pbar1.rendered){\r
- pbar1.render('p1');\r
- }else{\r
- pbar1.text = 'Initializing...';\r
- pbar1.show();\r
- }\r
- Runner.run(pbar1, Ext.get('btn1'), 10, function(){\r
- pbar1.reset(true);\r
- Ext.fly('p1text').update('Done.').show();\r
- });\r
- });\r
-\r
- //==== Progress bar 2 ====\r
- var pbar2 = new Ext.ProgressBar({\r
- text:'Ready',\r
- id:'pbar2',\r
- cls:'left-align',\r
- renderTo:'p2'\r
- });\r
- var btn2 = Ext.get('btn2');\r
- btn2.on('click', function(){\r
- Runner.run(pbar2, btn2, 12, function(){\r
- pbar2.reset();\r
- pbar2.updateText('Done.');\r
- });\r
- });\r
-\r
- //==== Progress bar 3 ====\r
- var pbar3 = new Ext.ProgressBar({\r
- id:'pbar3',\r
- width:300,\r
- renderTo:'p3'\r
- });\r
- pbar3.on('update', function(val){\r
- //You can handle this event at each progress interval if\r
- //needed to perform some other action\r
- Ext.fly('p3text').dom.innerHTML += '.';\r
- });\r
- var btn3 = Ext.get('btn3');\r
- btn3.on('click', function(){\r
- Ext.fly('p3text').update('Working');\r
- btn3.dom.disabled = true;\r
- pbar3.wait({\r
- interval:200,\r
- duration:5000,\r
- increment:15,\r
- fn:function(){\r
- btn3.dom.disabled = false;\r
- Ext.fly('p3text').update('Done');\r
- }\r
- });\r
- });\r
-\r
- //==== Progress bar 4 ====\r
- var pbar4 = new Ext.ProgressBar({\r
- text:'Waiting on you...',\r
- id:'pbar4',\r
- textEl:'p4text',\r
- cls:'custom',\r
- renderTo:'p4'\r
- });\r
- var btn4 = Ext.get('btn4');\r
- btn4.on('click', function(){\r
- Runner.run(pbar4, btn4, 19, function(){\r
- pbar4.updateText('All finished!');\r
- });\r
- });\r
-});\r
-\r
-//Please do not use the following code as a best practice! :)\r
-var Runner = function(){\r
- var f = function(v, pbar, btn, count, cb){\r
- return function(){\r
- if(v > count){\r
- btn.dom.disabled = false;\r
- cb();\r
- }else{\r
- if(pbar.id=='pbar4'){\r
- //give this one a different count style for fun\r
- var i = v/count;\r
- pbar.updateProgress(i, Math.round(100*i)+'% completed...');\r
- }else{\r
- pbar.updateProgress(v/count, 'Loading item ' + v + ' of '+count+'...');\r
- }\r
- }\r
- };\r
- };\r
- return {\r
- run : function(pbar, btn, count, cb){\r
- btn.dom.disabled = true;\r
- var ms = 5000/count;\r
- for(var i = 1; i < (count+2); i++){\r
- setTimeout(f(i, pbar, btn, count, cb), i*ms);\r
- }\r
- }\r
- }\r
-}();</pre> \r
-</body>\r
-</html>
\ No newline at end of file