Progress Bar ExtJs
Progress Bar ExtJs
Pada program yang pertama, saya akan membuat Progress Bar. Script dibawah ini sebenarnya sudah ada di library ExtJS. Namun kita akan coba menyederhanakan dan menganalisis script tersebut. Pertama buatlah sebuah folder di htdocs, kita beri nama belajarextjs saja biar mudah mengingatnya. Setelah itu ekstraklah ExtJS ke dalam folder yang baru kita buat, lalu ubah nama foldernya menjadi extjs. Kemudian didalam folder belajarextjs buat lagi folder progress-bar. Buat sebuah file progress-bar.html didalam folder tersebut. Untuk bisa bekerja dengan ExtJS kita harus melakukan link kebeberapa file seperti berikut,
<link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" /> <script type="text/javascript" src="../extjs/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../extjs/ext-all.js"></script> <script type="text/javascript" src="progress-bar.js"></script> <link rel="stylesheet" type="text/css" href="../extjs/examples/shared/examples.css" />
-2-
<p> <b>Basic Progress Bar</b><br /> Klik tombol disamping untuk melihat Progress Bar: <button id="btn1">Show</button><br /> <div class="status" id="p1text">Belum di Klik..^0^.</div> <div id="p1" style="width:300px;"></div> </p> Secara keseluruhan file progress-bar.html akan seperti dibawah ini :
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>ProgressBar</title> <link rel="stylesheet" type="text/css" href="../extjs/resources/css/ext-all.css" /> <script type="text/javascript" src="../extjs/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../extjs/ext-all.js"></script> <script type="text/javascript" src="progress-bar.js"></script> <link rel="stylesheet" type="text/css" href="../extjs/examples/shared/examples.css" /> </head> <body>
<p> <b>Basic Progress Bar</b><br /> Klik tombol disamping untuk melihat Progress Bar: <button id="btn1">Show</button><br /> <div class="status" id="p1text">Belum di Klik..^0^.</div> <div id="p1" style="width:300px;"></div> </p>
</body>
-3-
</html> Apakah sudah selesai? Tentu belum donk.. . Selanjutnya kita akan membuat file Javascriptnya dimana main program progress bar dibuat. Berikan nama progress-bar.js.
/*! * Ext JS Library 3.1.1 * Copyright(c) 2006-2010 Ext JS, LLC * licensing@extjs.com * http://www.extjs.com/license */ 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('Sedang Proses'); 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('Keren Kaan..!').show(); }); }); });
//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;
-4-
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); } } } }(); Javascript diatas sudah saya modifikasi dan sederhanakan dari file Javascript aslinya. Dan hasil akhirnya adalah seperti ini :
-5-
Problem / Masalah
Sebenarnya saya baru saja mengenal dan mencoba framework untuk pembuatan Web dengan metode AJAX. Awal saya belajar Ajax adalah murni pemrograman manual menggunakan notepad. Disana saya mempelajari dari bagaimana XMLHTTPRequest mengecek browser hingga pembuatan form berikut validasinya menggunakan PHP dan Javascript dengan metode Ajax(penggunaan readystate dll). Namun ternyata framework sangat berbeda (atau mungkin dikemas secara berbeda) dan cukup membuat saya bingung untuk beradaptasi. Bagaimana mengolah script agar bisa digunakan sesuai kebutuhan. Tadinya saya mau membuat form dengan menggunakan Framework ExtJS ini, namun masih bingung untuk diutak-atik,mungkin target selanjutnya saya bisa memberikan laporan mengenai hal tersebut. Sedikit masalah saya minggu ini, semoga dari masalah tersebut muncul pemecahan-pemecahan baru dalam pembelajaran saya selanjutnya. Semoga laporan singkat saya ini bermanfaat.
-6-