<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>aKa Web Design &#187; ExtJs</title>
	<atom:link href="http://blog.akawebdesign.com/index.php/category/ajax/extjs/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.akawebdesign.com</link>
	<description>...how a nerd sees the world-wide-web.</description>
	<lastBuildDate>Thu, 22 Jul 2010 20:13:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Web Application Architecture with ExtJS</title>
		<link>http://blog.akawebdesign.com/index.php/2010/06/23/web-application-architecture-with-extjs/</link>
		<comments>http://blog.akawebdesign.com/index.php/2010/06/23/web-application-architecture-with-extjs/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 17:13:35 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[ExtJs]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=481</guid>
		<description><![CDATA[I've spoken at great length about the need for developers to have an organized User Interface, and I frequently see questions posted to the ExtJS Sencha message boards asking about "Best Practices" for creating a web application with the ExtJS framework.

As I recently started a new project using ExtJS, I thought I would share some of my own advice on the subject.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spoken at great length about the need for developers to have an organized User Interface, and I frequently see questions posted to the <del>ExtJS</del> Sencha message boards asking about &#8220;Best Practices&#8221; for creating a web application with the ExtJS framework.</p>
<p>As I recently started a new project using ExtJS, I thought I would share some of my own advice on the subject.</p>
<h2>Folder Structure</h2>
<p>Architects build things&#8230; and as software architects, it&#8217;s our job to build an organized folder structure as the solid foundation for our web application. Organization is the key here; we don&#8217;t want to be searching through our IDE for hours trying to find something. To accomplish this task, we will setup a UI based on &#8220;tiers&#8221; (think of an N-tier application).</p>
<p>A habit I&#8217;ve developed over the years is to create a root-level folder named with an underscore as the first character (/<em>_app/</em>) which contains important UI application files. The underscore is important for two reasons:</p>
<ol>
<li>it visually stands out, and</li>
<li>it will be listed at the top when sorted alphabetically</li>
</ol>
<p>For argument&#8217;s sake, we will create a folder structure for our application which looks like the following:</p>
<p><img src="http://www.akawebdesign.com/blog/2010/06-23/folders.gif" alt="Web Application Architecture with ExtJS: Folder Structure" /></p>
<p>In this way, we keep all of our UI application code separated from other web entities like HTML and image files. (<em>I consider JavaScript and CSS to be &#8220;UI application code&#8221;, which I define as logic or presentation within the UI. HTML and other file types are generally more structural and are dependent on JS or CSS. Server-side files often contain logic, but fall into a different tier of the application at large.</em>)</p>
<p>If necessary, the folder structure can be much more robust &#8211; it completely depends on how your application works. For example, a project running ASP.NET MVC will have root-level folders for Models, Controllers and Views which contain code specific to their tier&#8217;s functionality.</p>
<h2>ExtJS Framework</h2>
<p>The first thing any application using ExtJS will need is the framework itself (duh!). Copy the ExtJS files to <em>/_app/ext-3.2.1/</em> Name the folder to match whatever version you&#8217;re running &#8211; this makes future upgrades a breeze.</p>
<p>Assuming that you&#8217;re not using ExtJS in conjunction with another framework (like jQuery), your application simply needs to include three files:</p>
<ul>
<li>ext-all.css</li>
<li>ext-base.js</li>
<li>ext-all.js (or ext-all-debug.js)</li>
</ul>
<p>I always like to include the CSS file before the JS files, but that&#8217;s just my preference. <em><strong>ext-base.js</strong></em><strong> must be included before </strong><em><strong>ext-all.js</strong></em><strong> &#8211; read your INCLUDE_ORDER.txt file!</strong></p>
<pre><code>    &lt;!-- ExtJS Framework --&gt;
    &lt;link rel="stylesheet" type="text/css" href="/_app/ext-3.2.1/resources/css/ext-all.css" /&gt;
    &lt;script type="text/javascript" src="/_app/ext-3.2.1/adapter/ext/ext-base.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="/_app/ext-3.2.1/ext-all.js"&gt;&lt;/script&gt;</code></pre>
<h3>Themes</h3>
<p>If you have any custom ExtJS themes that you plan on using for your application, this would be the appropriate time to add them.</p>
<p>Place these files in the <em>/_app/ext-themes/</em> folder. We specifically separate these files from <em>/_app/ext-3.2.1/</em> to simplify the upgrade process should you migrate to a newer version of ExtJS in the future.</p>
<pre><code>    &lt;!-- ExtJS Themes --&gt;
    &lt;link rel="stylesheet" type="text/css" href="/_app/ext-themes/css/xtheme-XYZ.css" /&gt;</code></pre>
<h3>Overrides</h3>
<p>Next, you should create CSS and JS files to place any overrides which you&#8217;ll need. These overrides are generally bug fixes &#8211; <em>not customizations</em>. The point of these files is to have a central place for fixing oddities in the ExtJS framework which may be fixed in a future release.</p>
<p>Here&#8217;s what I call these files:</p>
<ul>
<li>Ext.Overrides.css</li>
<li>Ext.Overrides.js</li>
</ul>
<pre><code>    &lt;!-- ExtJS Overrides --&gt;
    &lt;link rel="stylesheet" type="text/css" href="/_app/ext-overrides/Ext.Overrides.css" /&gt;
    &lt;script type="text/javascript" src="/_app/ext-overrides/Ext.Overrides.js"&gt;&lt;/script&gt;</code></pre>
<p>At this point in our application (the beginning), we probably won&#8217;t have any overrides since we haven&#8217;t started writing any code. One exception is the global variable BLANK_IMAGE_URL value, which needs to point to our local application (not the remote ExtJS server, which is by default).</p>
<p>In our Ext.Overrides.js file, simply add the following:</p>
<pre><code>    Ext.BLANK_IMAGE_URL = '/_app/ext-3.2.1/resources/images/default/s.gif';</code></pre>
<h3>UX Classes</h3>
<p>Last but not least, we can now include any ExtJS user extensions (UX) that we need for our application.</p>
<pre><code>    &lt;!-- ExtJS UX --&gt;
    &lt;script type="text/javascript" src="/_app/ext-ux/Ext.ux.XYZ.js"&gt;&lt;/script&gt;</code></pre>
<h2>Application Code</h2>
<p>The first thing we should create at this point is our application CSS files (placed in <em>/_app/css/</em> ). These styles may or may not have anything to do with our JS classes, but we obviously need to include them. I suggest including these styles now (as opposed-to before the ExtJS styles) because we don&#8217;t want ExtJS to overwrite any of our custom styles. (Browsers apply styles based on the most recently included definition.)</p>
<p>Next it&#8217;s time to add our custom application classes (placed in <em>/_app/js/</em> ). Although I won&#8217;t go into any specific details about how to write your classes, I highly suggest reading the posts by <strong>Ed Spencer</strong> and <strong>Jay Garcia</strong> (see below under Resources) which contain excellent tutorials.</p>
<h3>Namespace</h3>
<p>I usually start by creating a namespace file which asks ExtJS to creates all of my application namespaces before I load my JavaScript classes. <strong>This isn&#8217;t necessary</strong>, but I&#8217;ve found that creating the namespaces early often prevents errors due to classes being included in the &#8220;wrong order&#8221;. It can also save code, as none of your classes need to explicitly create their own namespace.</p>
<p>I call this file <em>_Namespace.js</em> &#8211; using the same naming convention as before (starting with an underscore) to draw attention to its importance. It&#8217;s contents include only a handful of lines (depending on how large your application is). <strong>This file should only contain namespace definitions.</strong></p>
<pre><code>    Ext.namespace(
        'NS1',
        'NS2',
        'NS3'
    );</code></pre>
<p>Also, if you&#8217;re going to use this idea, be sure to include <em>_Namespace.js</em> <strong>before</strong> any of your other application files!</p>
<h3>JS Classes</h3>
<p>Lastly, we can include all of our application&#8217;s JavaScript classes in the HTML header.</p>
<pre><code>    &lt;!-- Application Files --&gt;
    &lt;link rel="stylesheet" type="text/css" href="/_app/css/styles.css" /&gt;
    &lt;script type="text/javascript" src="/_app/js/_Namespace.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="/_app/js/MyClass1.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="/_app/js/MyClass2.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="/_app/js/MyClass3.js"&gt;&lt;/script&gt;</code></pre>
<h2>Put It All Together</h2>
<pre><code>    &lt;!-- ExtJS Framework --&gt;
    &lt;link rel="stylesheet" type="text/css" href="/_app/ext-3.2.1/resources/css/ext-all.css" /&gt;
    &lt;script type="text/javascript" src="/_app/ext-3.2.1/adapter/ext/ext-base.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="/_app/ext-3.2.1/ext-all.js"&gt;&lt;/script&gt;

    &lt;!-- ExtJS Themes --&gt;
    &lt;link rel="stylesheet" type="text/css" href="/_app/ext-themes/css/xtheme-XYZ.css" /&gt;

    &lt;!-- ExtJS Overrides --&gt;
    &lt;link rel="stylesheet" type="text/css" href="/_app/ext-overrides/Ext.Overrides.css" /&gt;
    &lt;script type="text/javascript" src="/_app/ext-overrides/Ext.Overrides.js"&gt;&lt;/script&gt;

    &lt;!-- ExtJS UX --&gt;
    &lt;script type="text/javascript" src="/_app/ext-ux/Ext.ux.XYZ.js"&gt;&lt;/script&gt;

    &lt;!-- Application Files --&gt;
    &lt;link rel="stylesheet" type="text/css" href="/_app/css/styles.css" /&gt;
    &lt;script type="text/javascript" src="/_app/js/_Namespace.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="/_app/js/MyClass1.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="/_app/js/MyClass2.js"&gt;&lt;/script&gt;
    &lt;script type="text/javascript" src="/_app/js/MyClass3.js"&gt;&lt;/script&gt;</code></pre>
<h2>Optimization</h2>
<p>Larger applications may have hundreds of JavaScript files containing custom classes, methods, etc. Simply including each file in the HTML header will result in potentially long page load times &#8211; and this is far from ideal.</p>
<p>Many web servers compress JS files for you, and you always have the option of minifying your code &#8211; but loading hundreds of compressed and minified files still takes time and bandwidth.</p>
<p>One option is to combine/compress all of your classes into a single file &#8211; exactly as ExtJS has done with their <em>ext-all.js</em> file. This is a great solution &#8211; but it&#8217;s a manual process, one which can be tedious and is prone to user-error.</p>
<p>A far better solution is to automate this process &#8211; and if you&#8217;re using Visual Studio (like me), <strong><a href="http://encosia.com/2009/05/20/automatically-minify-and-combine-javascript-in-visual-studio/ " target="_blank">Dave Ward</a></strong> has a great post on setting that up.</p>
<p>Lastly, tools such as YSlow and Google Page Speed will suggest adding your JavaScript files to the bottom of the page. This may be advantageous; however, if your application makes use of the ExtJS Viewport or the famous Ext Desktop example, it probably won&#8217;t do much good as the UI is completely dependent on the JS framework.</p>
<h2>Your Thoughts</h2>
<p>Do you have any thoughts on what I&#8217;ve described above? Are you doing something that I missed?</p>
<p>I look forward to seeing your comments!</p>
<h2>Resources</h2>
<ul>
<li><strong><a href="http://edspencer.net/2010/06/writing-compressible-javascript.html" target="_blank">Writing Compressible JavaScript</a></strong> (Ed Spencer)</li>
<li><strong><a href="http://tdg-i.com/364/abstract-classes-with-ext-js" target="_blank">Abstract Classes with ExtJS</a></strong> (Jay Garcia)</li>
<li><strong><a href="http://www.sencha.com/blog/2008/05/28/use-namespaces/" target="_blank">Using Namespaces to organize your JavaScript code</a></strong> (Aaron Conran, Sencha Blog)</li>
<li><strong><a href="http://blog.extjs.eu/know-how/writing-a-big-application-in-ext/" target="_blank">Writing a Big Application in Ext</a></strong> (Jozef Sakalos, aka <em>Saki<span style="font-style: normal;">)</span></em></li>
<li><em><span style="font-style: normal;"><strong><a href="http://edspencer.net/2009/07/extoverride-monkey-patching-ext-js.html" target="_blank">Ext.override &#8211; Monkey Patching ExtJS</a></strong> (Ed Spencer)</span></em></li>
<li><em><span style="font-style: normal;"><strong><a href="http://encosia.com/2009/05/20/automatically-minify-and-combine-javascript-in-visual-studio/ " target="_blank">Automatically Minify and Combine JS in Visual Studio</a></strong> (Dave Ward)</span></em></li>
</ul>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F&amp;t=Web%20Application%20Architecture%20with%20ExtJS" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F&amp;title=Web%20Application%20Architecture%20with%20ExtJS" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F&amp;title=Web%20Application%20Architecture%20with%20ExtJS&amp;bodytext=I%27ve%20spoken%20at%20great%20length%20about%20the%20need%20for%20developers%20to%20have%20an%20organized%20User%20Interface%2C%20and%20I%20frequently%20see%20questions%20posted%20to%20the%20ExtJS%20Sencha%20message%20boards%20asking%20about%20%22Best%20Practices%22%20for%20creating%20a%20web%20application%20with%20the%20ExtJS%20framework.%0D%0A%0D%0AAs%20I%20recently%20started%20a%20new%20project%20using%20ExtJS%2C%20I%20thought%20I%20would%20share%20some%20of%20my%20own%20advice%20on%20the%20subject." title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F&amp;title=Web%20Application%20Architecture%20with%20ExtJS&amp;notes=I%27ve%20spoken%20at%20great%20length%20about%20the%20need%20for%20developers%20to%20have%20an%20organized%20User%20Interface%2C%20and%20I%20frequently%20see%20questions%20posted%20to%20the%20ExtJS%20Sencha%20message%20boards%20asking%20about%20%22Best%20Practices%22%20for%20creating%20a%20web%20application%20with%20the%20ExtJS%20framework.%0D%0A%0D%0AAs%20I%20recently%20started%20a%20new%20project%20using%20ExtJS%2C%20I%20thought%20I%20would%20share%20some%20of%20my%20own%20advice%20on%20the%20subject." title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F&amp;title=Web%20Application%20Architecture%20with%20ExtJS" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F&amp;title=Web%20Application%20Architecture%20with%20ExtJS&amp;source=aKa+Web+Design+...how+a+nerd+sees+the+world-wide-web.&amp;summary=I%27ve%20spoken%20at%20great%20length%20about%20the%20need%20for%20developers%20to%20have%20an%20organized%20User%20Interface%2C%20and%20I%20frequently%20see%20questions%20posted%20to%20the%20ExtJS%20Sencha%20message%20boards%20asking%20about%20%22Best%20Practices%22%20for%20creating%20a%20web%20application%20with%20the%20ExtJS%20framework.%0D%0A%0D%0AAs%20I%20recently%20started%20a%20new%20project%20using%20ExtJS%2C%20I%20thought%20I%20would%20share%20some%20of%20my%20own%20advice%20on%20the%20subject." title="LinkedIn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Web%20Application%20Architecture%20with%20ExtJS%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F06%2F23%2Fweb-application-architecture-with-extjs%2F&amp;submitHeadline=Web%20Application%20Architecture%20with%20ExtJS&amp;submitSummary=I%27ve%20spoken%20at%20great%20length%20about%20the%20need%20for%20developers%20to%20have%20an%20organized%20User%20Interface%2C%20and%20I%20frequently%20see%20questions%20posted%20to%20the%20ExtJS%20Sencha%20message%20boards%20asking%20about%20%22Best%20Practices%22%20for%20creating%20a%20web%20application%20with%20the%20ExtJS%20framework.%0D%0A%0D%0AAs%20I%20recently%20started%20a%20new%20project%20using%20ExtJS%2C%20I%20thought%20I%20would%20share%20some%20of%20my%20own%20advice%20on%20the%20subject.&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2010/06/23/web-application-architecture-with-extjs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ExtJS, Flickr and Wordpress</title>
		<link>http://blog.akawebdesign.com/index.php/2010/04/13/extjs-flickr-and-wordpress/</link>
		<comments>http://blog.akawebdesign.com/index.php/2010/04/13/extjs-flickr-and-wordpress/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 14:04:37 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=429</guid>
		<description><![CDATA[I recently built a website for my sister (Jennifer Kay) to showcase her professional work as a reporter for the Associated Press. The design is simple &#8211; but I thought I might share something cool with everyone.
For starters, byJenniferKay.com is built on WordPress so that my sister can make content edits quickly and easily without [...]]]></description>
			<content:encoded><![CDATA[<p>I recently built a website for my sister (<strong><a href="http://www.byjenniferkay.com" target="_blank">Jennifer Kay</a></strong>) to showcase her professional work as a reporter for the Associated Press. The design is simple &#8211; but I thought I might share something cool with everyone.</p>
<p>For starters, <strong><a href="http://www.byjenniferkay.com" target="_blank">byJenniferKay.com</a></strong> is built on <strong>WordPress</strong> so that my sister can make content edits quickly and easily without having to look at HTML code.</p>
<p>I also chose to use <strong>ExtCore</strong> to display a slideshow of my sister&#8217;s photography. The implementation of the slideshow is hardly anything worth noting as it&#8217;s basically the standard ExtJS Carousel example.</p>
<p><em>But here&#8217;s the cool part</em>: my sister can edit the slideshow from her <strong>Flickr</strong> account without touching a single line of HTML or JavaScript!</p>
<p>Now some of you may be asking yourselves, &#8220;How is this possible?&#8221; I promise you it&#8217;s far easier than you might think.</p>
<p>I stumbled across the <strong><a href="http://eightface.com/wordpress/flickrrss/" target="_blank">flickrRSS plugin for WordPress</a></strong> awhile back and noticed it would be perfect for something like this. Using the Flickr API, the plugin simply fetches recent images from a Flickr account (or images with a specific tag) and pastes them into your WordPress blog. Not exactly rocket science; in fact, it&#8217;s laughably simple.</p>
<p>Here&#8217;s how it works:</p>
<ol>
<li>Install WordPress (duh!)</li>
<li>Download and install the <strong><a href="http://eightface.com/wordpress/flickrrss/" target="_blank">flickrRSS plugin</a></strong></li>
<li>Edit your WordPress template to include this code where the slideshow should appear:
<pre><code>
    &lt;div id="slideshow"&gt;
        &lt;?php get_flickrRSS(); ?&gt;
    &lt;/div&gt;
</code></pre>
</li>
<li>Edit the settings for flickrRSS so that it outputs the images with this code:
<pre><code>
&lt;img src="%image_medium%" alt="%title%" /&gt;
</code></pre>
</li>
<li>Download ExtCore and the JS/CSS files for Ext.ux.Carousel (total of 3 files)</li>
<li>FTP the ExtJS files to your server and include them in your template</li>
<li>Add the following JavaScript code to your template:
<pre><code>
&lt;script type="text/javascript"&gt;
    Ext.onReady(function() {
        new Ext.ux.Carousel('slideshow', {
            itemSelector: 'img',
            interval: 5,
            autoPlay: true,
            showPlayButton: true,
            pauseOnNavigate: true,
            freezeOnHover: false,
            transitionType: 'fade',
            navigationOnHover: false
        });
    });
&lt;/script&gt;
</code></pre>
</li>
</ol>
<p>Your slideshow should now appear and work without any problems! Best of all, changing the photos is easy &#8211; simply login to your Flickr account and add photos.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F&amp;t=ExtJS%2C%20Flickr%20and%20Wordpress" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F&amp;title=ExtJS%2C%20Flickr%20and%20Wordpress" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F&amp;title=ExtJS%2C%20Flickr%20and%20Wordpress&amp;bodytext=I%20recently%20built%20a%20website%20for%20my%20sister%20%28Jennifer%20Kay%29%20to%20showcase%20her%20professional%20work%20as%20a%20reporter%20for%20the%20Associated%20Press.%20The%20design%20is%20simple%20-%20but%20I%20thought%20I%20might%20share%20something%20cool%20with%20everyone.%0D%0A%0D%0AFor%20starters%2C%20byJenniferKay.com%20is%20b" title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F&amp;title=ExtJS%2C%20Flickr%20and%20Wordpress&amp;notes=I%20recently%20built%20a%20website%20for%20my%20sister%20%28Jennifer%20Kay%29%20to%20showcase%20her%20professional%20work%20as%20a%20reporter%20for%20the%20Associated%20Press.%20The%20design%20is%20simple%20-%20but%20I%20thought%20I%20might%20share%20something%20cool%20with%20everyone.%0D%0A%0D%0AFor%20starters%2C%20byJenniferKay.com%20is%20b" title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F&amp;title=ExtJS%2C%20Flickr%20and%20Wordpress" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F&amp;title=ExtJS%2C%20Flickr%20and%20Wordpress&amp;source=aKa+Web+Design+...how+a+nerd+sees+the+world-wide-web.&amp;summary=I%20recently%20built%20a%20website%20for%20my%20sister%20%28Jennifer%20Kay%29%20to%20showcase%20her%20professional%20work%20as%20a%20reporter%20for%20the%20Associated%20Press.%20The%20design%20is%20simple%20-%20but%20I%20thought%20I%20might%20share%20something%20cool%20with%20everyone.%0D%0A%0D%0AFor%20starters%2C%20byJenniferKay.com%20is%20b" title="LinkedIn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=ExtJS%2C%20Flickr%20and%20Wordpress%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F04%2F13%2Fextjs-flickr-and-wordpress%2F&amp;submitHeadline=ExtJS%2C%20Flickr%20and%20Wordpress&amp;submitSummary=I%20recently%20built%20a%20website%20for%20my%20sister%20%28Jennifer%20Kay%29%20to%20showcase%20her%20professional%20work%20as%20a%20reporter%20for%20the%20Associated%20Press.%20The%20design%20is%20simple%20-%20but%20I%20thought%20I%20might%20share%20something%20cool%20with%20everyone.%0D%0A%0D%0AFor%20starters%2C%20byJenniferKay.com%20is%20b&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2010/04/13/extjs-flickr-and-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ext Scheduler</title>
		<link>http://blog.akawebdesign.com/index.php/2010/02/08/ext-scheduler/</link>
		<comments>http://blog.akawebdesign.com/index.php/2010/02/08/ext-scheduler/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 19:28:44 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=380</guid>
		<description><![CDATA[Here's a look inside the Ext Scheduler application developed by Mats Bryntse! There's been a lot of buzz in the ExtJS community over this tool, so I jumped at the chance to peek inside his code.

Included is an example of the Ext Scheduler tool that I built using the Twitter API. It's a crappy example... but you still might like it!

Overall, my impression is that the Ext Scheduler will be an invaluable tool for most developers working with "events". It's easy to work with, offers an impressive set of features and should impress a lot of end-users. I would encourage everyone to check out the other Ext Scheduler examples and see for yourself!]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago, Mats Bryntse (<em>mankz</em> on the ExtJS forums) asked me if I would be interested in taking a look under the hood of his <strong><a href="http://www.ext-scheduler.com" target="_blank">Ext Scheduler</a></strong> application. There has been a great deal of buzz in the ExtJS community over his tool, so I jumped at the chance to peek into his source code. We&#8217;ve never actually met in person, but Mats seems like a good guy and he has a lot of good insight on the ExtJS forums. Apparently <strong><a href="http://www.mankz.com/" target="_blank">Mankz</a></strong> is also a DJ; I did not know that!</p>
<p><em>Disclaimer: Mats granted me a free license to use the tool in exchange for my review.</em></p>
<p>After unzipping the source code, I poked through a few of the examples. At first glance I was very impressed! The download came packaged with six demos, each of which utilizes different ExtJS features and gathers data via different sources (eBay, Google Calendar, among others). My only immediate complaint was that the API documentation wasn&#8217;t included in the ZIP file. It is however freely available on the Ext Scheduler website <strong><a href="http://www.ext-scheduler.com/docs/" target="_blank">here</a></strong>.</p>
<h3>Let&#8217;s Build Something Fun!</h3>
<p>Rather than just saying what the Ext Scheduler does&#8230; let&#8217;s build something! Since Ext Scheduler&#8217;s website already has a handful of examples, I&#8217;d like to try building something new &#8212; let&#8217;s use the <strong><a href="http://apiwiki.twitter.com/Twitter-API-Documentation" target="_blank">Twitter API</a></strong> and map when our tweets are posted.</p>
<p><em><span style="text-decoration: underline;">A quick note</span></em><em>: I didn&#8217;t realize something important until I was almost done with this application &#8211; the Twitter API doesn&#8217;t allow you to grab tweets based on a given time frame. You&#8217;re only allowed to grab the last X tweets&#8230; which I think is pretty lame. Had I know that before starting this application, I would have chosen a better example. *Facepalm!*</em></p>
<p>My journey through the Ext Scheduler started with a quick look through the API docs. The basis for the entire application is the <strong>Sch.SchedulerPanel()</strong> class, which is an extension of the Ext.grid.GridPanel(). If you read the API docs for this class, you&#8217;ll learn that it depends on two data stores: the first (&#8220;Store&#8221;) defines the various categories/rows for your application, while the other (&#8220;EventStore&#8221;) defines the events displayed on our schedule.</p>
<p>For my sample application, the &#8220;Store&#8221; will consist of a single Twitter user and the &#8220;EventStore&#8221; will be filled with this user&#8217;s 50 most recent Tweets. Thus, my application only has one row on the grid (boring, I know). I chose to display my grid as a 24 hour day so we can see our user&#8217;s Twitter activity over the course of a single day. Toolbar buttons allow us to move forward/backward by day. <em>(Since the Twitter API doesn&#8217;t take start/end date parameters, this functionality is somewhat pointless.)</em></p>
<p>Take a moment now and <strong><a href="http://www.akawebdesign.com/extjs/extscheduler/" target="_blank">try my sample application</a></strong>. We&#8217;ll explore it in more detail below, but see the source code <strong><a href="http://www.akawebdesign.com/extjs/extscheduler/js/TwitterApp.js" target="_blank">here</a></strong>.</p>
<h3>Learning Curve</h3>
<p>My only real complaint with the Ext Scheduler code is the fact that there&#8217;s a <em>slight </em>learning curve. The examples provided in my ZIP folder are great, but there&#8217;s so much going on in each demo that it&#8217;s hard to figure out the basics. It took me the better part of a day to get my application working, so be prepared for a little bit of frustration.</p>
<p>Don&#8217;t get me wrong &#8211; this is an awesome tool, and I had the same complaints about ExtJS when I first started too. As such, I&#8217;m hoping this review can be a step-by-step demonstration on how to get started.</p>
<h3>Step One: Define Your Categories</h3>
<p>The &#8220;CategoryStore&#8221; is used for our left-hand grid labels &#8211; the entities to which the events are associated. In some of the other Ext Scheduler examples, the &#8220;Categories&#8221; were often people; the &#8220;Events&#8221; were often meetings or other appointments.</p>
<p>I started my application by prompting the user for their Twitter username. If you open <strong><a href="http://www.akawebdesign.com/extjs/extscheduler/js/TwitterApp.js" target="_blank">my source file</a></strong>, you&#8217;ll see that I take the user&#8217;s input and insert it as a new data record into my <em>TwitterApp.Scheduler.categoryStore</em> (an <em>Ext.data.JsonStore()</em>). That was easy!</p>
<p>Next, I call the <em>init()</em> method on my <em>TwitterApp.Scheduler</em> object (a generic literal), which calls a series of other methods. In essence, here&#8217;s what they do:</p>
<ul>
<li>Set <em>this.start</em> and <em>this.end</em> (values needed to properly display data in our schedule)</li>
<li>Create and load our &#8220;EventStore&#8221; (we&#8217;ll come back to this in a moment)</li>
<li>Create the scheduler grid and render it to the UI</li>
</ul>
<h3>Step Two: Define Your Events</h3>
<p>As I just mentioned, we need to create and load the event data to display on our schedule. See the following code:</p>
<p><img src="http://www.akawebdesign.com/blog/2010/02-08/extscheduler.gif" alt="Ext Scheduler Demo" /></p>
<p>Our &#8220;EventStore&#8221; is another simple <em>Ext.data.JsonStore()</em> object; however, I&#8217;m pulling the data for this store from the Twitter API (based on the supplied username).</p>
<p>Take note of the &#8220;start&#8221; and &#8220;end&#8221; base parameters on this store. Although Twitter doesn&#8217;t really need them (which is why this example kinda sucks), the Ext Scheduler classes do! If you don&#8217;t add these parameters you&#8217;ll get an error!</p>
<p>When this store finishes loading (see my LOAD event), I manually set the &#8220;EndDate&#8221; property for each record because Ext Scheduler needs this information.</p>
<h3>Step Three: Create the UI</h3>
<p>Once we have our categories and events defined, we have the data we need to display the Ext Scheduler UI.</p>
<p>The <em>Sch.SchedulerPanel()</em> class is an extension of the <em>ExtJS GridPanel()</em>. The only things we really need to be aware of are the <em>autoViews</em> property and the <em>eventTemplate</em> since they&#8217;re the two things which really affect the appearance of our tool.</p>
<p>For the <em>autoViews</em>, you have your choice of displaying the grid by days/week, hours/day and a few other options. Since we&#8217;re using Twitter, I thought hours/day was most appropriate.</p>
<p>For the <em>eventTemplate</em>, it&#8217;s important to create an <em>Ext.Template()</em> object that means something to your users. Looking at the other examples of Ext Scheduler, you might see the name of the event, its start/end times, or other descriptive information. My example isn&#8217;t as cool&#8230; but you get the idea.</p>
<p>The only other thing I should point out is that your users will probably want a way to change the date range displayed by our scheduler grid. I added &#8220;Previous&#8221; and &#8220;Next&#8221; buttons which essentially alter the start/end date and reload our &#8220;event&#8221; data.</p>
<h3>Step Four: Brag about your tool!</h3>
<p>As I already pointed out, the Twitter API was a terrible choice for this demo because it doesn&#8217;t allow me to search for tweets by a selected date range. It was also a bad example because tweets don&#8217;t have start/end dates. <em>Note to self: choose better examples next time!</em></p>
<p>Overall, my impression is that the Ext Scheduler will be an invaluable tool for most developers working with &#8220;events&#8221;. It&#8217;s easy to work with, offers an impressive set of features and should impress a lot of end-users. I would encourage everyone to check out the other Ext Scheduler examples and see for yourself!</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F02%2F08%2Fext-scheduler%2F&amp;t=Ext%20Scheduler" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F02%2F08%2Fext-scheduler%2F&amp;title=Ext%20Scheduler" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F02%2F08%2Fext-scheduler%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F02%2F08%2Fext-scheduler%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F02%2F08%2Fext-scheduler%2F&amp;title=Ext%20Scheduler" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Ext%20Scheduler%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F02%2F08%2Fext-scheduler%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2010/02/08/ext-scheduler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Tabs: ExtCore vs jQuery UI</title>
		<link>http://blog.akawebdesign.com/index.php/2010/01/21/javascript-tabs-extcore-vs-jquery-ui/</link>
		<comments>http://blog.akawebdesign.com/index.php/2010/01/21/javascript-tabs-extcore-vs-jquery-ui/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 18:25:41 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=374</guid>
		<description><![CDATA[ExtCore and jQuery UI are both JavaScript libraries which allow web developers to create all kinds of widgets. I have been using both over the past year or so, and specifically to use their respective "Tab" widgets.

How do these two libraries compare when you want to build tabs from existing HTML markup? ]]></description>
			<content:encoded><![CDATA[<p>A while back, I built a website for a client using jQuery 1.3 because I needed a slide-show widget for the homepage. More recently I&#8217;ve been using ExtCore for small website widgets &#8211; mainly because I&#8217;m a bigger fan of ExtJS than jQuery. (ExtCore also didn&#8217;t exist at the time I built that website).</p>
<p>Long story short, this particular client (a restaurant) asked me to add some new content to their menu. Rather than expecting the user to scroll down a lengthy list of mouthwatering lunch options, I suggested that we add tabs to the menu in order to logically separate the menu items.</p>
<p>Since I already had jQuery 1.3 running the slide-show on this website I simply decided to build the menu tabs in jQuery to maintain consistency. But I was suddenly struck by an idea: why not compare how ExtCore and jQuery UI create tabs from HTML markup!</p>
<h3>ExtCore</h3>
<p><strong><a href="http://www.extjs.com/products/extcore/" target="_blank">ExtCore</a></strong> can be downloaded from the ExtJS website, and an online demo of the simple tabs can be seen <strong><a href="http://www.extjs.com/playpen/ext-core-latest/examples/tabs/" target="_blank">here</a></strong>.</p>
<p>The first step to building tabs from HTML markup using ExtCore is to reference <em>ext-core.js</em> in your page header. You also need to include the <em>tabs.css</em> file and the &#8220;<em>images</em>&#8221; folder containing the necessary 5 background images. (These can be found under &#8220;<em>/examples/tabs/</em>&#8221; of your ExtCore download ZIP.)</p>
<p><strong>Note:</strong> I&#8217;m using ExtCore 3.0, although I believe 3.1 is available for download.</p>
<p>Next, we need to add the appropriate HTML markup for our tabs. Here&#8217;s a quick example.</p>
<p align="center"><img src="http://www.akawebdesign.com/blog/2010/01-21/extcore-html.gif" alt="ExtCore HTML Markup" /></p>
<p>As you can see from the picture above, ExtCore takes a wrapping DIV element (class &#8220;tab_container&#8221;) and converts a nested unordered list into the tabs. Subsequent child DIV elements contain the markup for each tab&#8217;s content. (The source code in this example is taken directly from the ExtCore tab example.)</p>
<p>The only thing to notice is that each DIV element has a CSS class assigned to it &#8211; these classes are essential to proper tab theming. The DOM ID properties are used to click back-and-forth between tabs.</p>
<p>Lastly, you need to include a JavaScript snippet which converts your HTML markup into a fancy tabbed widget:</p>
<p align="center"><img src="http://www.akawebdesign.com/blog/2010/01-21/extcore-js.gif" alt="ExtCore JavaScript Code" /></p>
<p><strong>jQuery UI</strong></p>
<p><strong><a href="http://jqueryui.com" target="_blank">jQuery UI</a></strong> has a tab widget which is dependant on the larger jQuery library. An online demo of their tab widget can be seen <strong><a href="http://jqueryui.com/demos/tabs/" target="_blank">here</a></strong>.</p>
<p>The first step to using tabbed content with jQuery is to reference:</p>
<ul>
<li>jquery-1.3.2.min.js</li>
<li>jquery-ui-1.7.2.min.js</li>
</ul>
<p>Your file versions may differ (I think jQuery 1.4 was just released), but these are the versions I&#8217;m using. I&#8217;m also using the &#8220;smoothness&#8221; theme &#8211; for some reason jQuery UI would not allow me to download the package without specifying a theme. (That may affect my analysis for speed in the next section.)</p>
<p>You will also need to include the CSS file and images folder included with your download of jQuery UI. In my case, it&#8217;s <em>jquery-ui-1.7.2.css</em> and an &#8220;<em>images</em>&#8221; folder containing 13 background images.</p>
<p>Next, write your HTML markup:</p>
<p align="center"><img src="http://www.akawebdesign.com/blog/2010/01-21/jquery-html.gif" alt="jQuery HTML Markup" /></p>
<p>Compared to ExtCore, jQuery UI expects less HTML markup as we lose several layers of nested DIV elements. The most obvious difference between jQuery UI and ExtCore is probably that jQuery UI doesn&#8217;t need the extra CSS classes applied to the DIV elements.</p>
<p>Next, we add our JavaScript snippet:</p>
<p align="center"><img src="http://www.akawebdesign.com/blog/2010/01-21/jquery-js.gif" alt="jQuery JavaScript Code" /></p>
<p>Again, jQuery UI expects less code to generate the tabbed widget.</p>
<h3>A Deeper Look</h3>
<p>Let&#8217;s take a look at the file sizes for each library. This is about as un-scientific a study as it can get; I&#8217;m using Firebug&#8217;s &#8220;Net&#8221; tab to grab file size and download speed numbers. These numbers will probably be different for you because of any number of factors&#8230; but you get the idea.</p>
<p>As I already mentioned, ExtCore requires 1 JavaScript file, 1 CSS file and only 5 background images:</p>
<ul>
<li>ext-core.js (78.9 KB, 156ms)</li>
<li>Ext.tabs.css (1.3 KB, 147ms)</li>
<li>5 png files (2.8-2.9 KB each, average 107ms)</li>
</ul>
<p>Combing the file sizes and their download times (on my home network), you get a <strong>total of roughly 94.7 KB taking 838ms</strong>.</p>
<p>jQuery UI requires 2 JavaScript files, 1 CSS file and 13 background images (again, with the &#8220;smoothness&#8221; theme):</p>
<ul>
<li>jquery-1.3.2.min.js (55.9 KB, 116ms)</li>
<li>jquery-ui-1.7.2.min.js (188.1 KB, 221ms)</li>
<li>13 png files (22.3 KB total*)</li>
</ul>
<p>*Something interesting I noticed about the jQuery UI tabs is that my page only seemed to load 5 of the 13 background images, totaling something like 605 bytes and a total of 684ms. Perhaps someone more familiar with jQuery can explain that to me&#8230; I didn&#8217;t dig deep enough to figure out what was going on, but I&#8217;ll base my total on what Firebug says. I&#8217;m guessing that I&#8217;m not using all of the CSS background images for this theme.</p>
<p>Overall, that brings jQuery UI tabs to a <strong>total of roughly 245 KB taking 1021ms</strong>.</p>
<p>What Does That Even Mean?</p>
<p>According to my inaccurate, quasi-scientific study it appears that ExtCore requires slightly more code than jQuery UI. On the other hand, ExtCore also appears to be downloaded by my browser more quickly than jQuery UI. In reality, those numbers probably offset each other as the extra markup required by ExtCore increases the HTML file size. The fact that I&#8217;m using a theme on jQuery UI probably also has a slight impact on performance.</p>
<p><em>Which do I prefer?</em></p>
<p>In essence, both libraries create tabbed widgets from the same basic HTML markup &#8211; though the differences are significant enough that they&#8217;re not cross-compatible.</p>
<p>Judging both frameworks as they stand in my examples, I will say that I like the conciseness (is that a word?) of jQuery with regards to both HTML markup and JavaScript code. But I also like that ExtCore requires fewer files. As someone who uses the larger ExtJS framework a great deal, I&#8217;ll say that I am very likely to choose ExtCore over jQuery UI most days of the week.</p>
<p>Are there any ExtCore or jQuery UI users out there? <strong><em>What do you think?</em></strong></p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F&amp;t=JavaScript%20Tabs%3A%20ExtCore%20vs%20jQuery%20UI" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F&amp;title=JavaScript%20Tabs%3A%20ExtCore%20vs%20jQuery%20UI" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F&amp;title=JavaScript%20Tabs%3A%20ExtCore%20vs%20jQuery%20UI&amp;bodytext=ExtCore%20and%20jQuery%20UI%20are%20both%20JavaScript%20libraries%20which%20allow%20web%20developers%20to%20create%20all%20kinds%20of%20widgets.%20I%20have%20been%20using%20both%20over%20the%20past%20year%20or%20so%2C%20and%20specifically%20to%20use%20their%20respective%20%22Tab%22%20widgets.%0D%0A%0D%0AHow%20do%20these%20two%20libraries%20compare%20when%20you%20want%20to%20build%20tabs%20from%20existing%20HTML%20markup%3F%20" title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F&amp;title=JavaScript%20Tabs%3A%20ExtCore%20vs%20jQuery%20UI&amp;notes=ExtCore%20and%20jQuery%20UI%20are%20both%20JavaScript%20libraries%20which%20allow%20web%20developers%20to%20create%20all%20kinds%20of%20widgets.%20I%20have%20been%20using%20both%20over%20the%20past%20year%20or%20so%2C%20and%20specifically%20to%20use%20their%20respective%20%22Tab%22%20widgets.%0D%0A%0D%0AHow%20do%20these%20two%20libraries%20compare%20when%20you%20want%20to%20build%20tabs%20from%20existing%20HTML%20markup%3F%20" title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F&amp;title=JavaScript%20Tabs%3A%20ExtCore%20vs%20jQuery%20UI" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F&amp;title=JavaScript%20Tabs%3A%20ExtCore%20vs%20jQuery%20UI&amp;source=aKa+Web+Design+...how+a+nerd+sees+the+world-wide-web.&amp;summary=ExtCore%20and%20jQuery%20UI%20are%20both%20JavaScript%20libraries%20which%20allow%20web%20developers%20to%20create%20all%20kinds%20of%20widgets.%20I%20have%20been%20using%20both%20over%20the%20past%20year%20or%20so%2C%20and%20specifically%20to%20use%20their%20respective%20%22Tab%22%20widgets.%0D%0A%0D%0AHow%20do%20these%20two%20libraries%20compare%20when%20you%20want%20to%20build%20tabs%20from%20existing%20HTML%20markup%3F%20" title="LinkedIn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=JavaScript%20Tabs%3A%20ExtCore%20vs%20jQuery%20UI%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2010%2F01%2F21%2Fjavascript-tabs-extcore-vs-jquery-ui%2F&amp;submitHeadline=JavaScript%20Tabs%3A%20ExtCore%20vs%20jQuery%20UI&amp;submitSummary=ExtCore%20and%20jQuery%20UI%20are%20both%20JavaScript%20libraries%20which%20allow%20web%20developers%20to%20create%20all%20kinds%20of%20widgets.%20I%20have%20been%20using%20both%20over%20the%20past%20year%20or%20so%2C%20and%20specifically%20to%20use%20their%20respective%20%22Tab%22%20widgets.%0D%0A%0D%0AHow%20do%20these%20two%20libraries%20compare%20when%20you%20want%20to%20build%20tabs%20from%20existing%20HTML%20markup%3F%20&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2010/01/21/javascript-tabs-extcore-vs-jquery-ui/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ExtJS Unit Testing now on Google Code</title>
		<link>http://blog.akawebdesign.com/index.php/2009/12/17/extjs-unit-testing-now-on-google-code/</link>
		<comments>http://blog.akawebdesign.com/index.php/2009/12/17/extjs-unit-testing-now-on-google-code/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 19:31:37 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=329</guid>
		<description><![CDATA[Although I've been meaning to do this for a while now, I finally released the ExtJS Unit Testing platform as an open source project on Google Code!

I've been talking about the need for a solid JavaScript unit testing platform for a while, specifically in relation to ExtJS. I gave a presentation on the subject a few months ago and have received some great feedback from the ExtJS community. I encourage you to take a look - I find it extremely helpful in my own day-to-day development.]]></description>
			<content:encoded><![CDATA[<p>Although I&#8217;ve been meaning to do this for a while now, I finally released the <a href="http://code.google.com/p/extjs-unit-test/" target="_blank"><strong>ExtJS Unit Testing platform</strong></a> as an open source project on Google Code!</p>
<p>I&#8217;ve been talking about the need for a solid JavaScript unit testing platform for a while, specifically in relation to ExtJS. I gave a <strong><a href="http://blog.akawebdesign.com/index.php/2009/06/15/meeting-roundup-chicago-ajax-developers/">presentation</a></strong> on the subject a few months ago and have received some great feedback from the ExtJS community. I encourage you to take a look &#8211; I find it extremely helpful in my own day-to-day development.</p>
<p>See the interactive demo <strong><a href="http://www.akawebdesign.com/ExtJS/UnitTest.aspx" target="_blank">here</a></strong>.</p>
<p>Although I&#8217;ve been involved with several projects in the past, this is the first open source project that I have started on my own &#8211; and I had to stumble my way through the SVN setup. As ExtJS 3.x was released under the GPL v3 license, the ExtJS licensing team advised me to use the same license for this project.</p>
<p>If anyone is interested in contributing (or just wants to submit bug/feature requests) please don&#8217;t hesitate to contact me.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F17%2Fextjs-unit-testing-now-on-google-code%2F&amp;t=ExtJS%20Unit%20Testing%20now%20on%20Google%20Code" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F17%2Fextjs-unit-testing-now-on-google-code%2F&amp;title=ExtJS%20Unit%20Testing%20now%20on%20Google%20Code" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F17%2Fextjs-unit-testing-now-on-google-code%2F&amp;title=ExtJS%20Unit%20Testing%20now%20on%20Google%20Code&amp;bodytext=Although%20I%27ve%20been%20meaning%20to%20do%20this%20for%20a%20while%20now%2C%20I%20finally%20released%20the%20ExtJS%20Unit%20Testing%20platform%20as%20an%20open%20source%20project%20on%20Google%20Code%21%0D%0A%0D%0AI%27ve%20been%20talking%20about%20the%20need%20for%20a%20solid%20JavaScript%20unit%20testing%20platform%20for%20a%20while%2C%20specifically%20in%20relation%20to%20ExtJS.%20I%20gave%20a%20presentation%20on%20the%20subject%20a%20few%20months%20ago%20and%20have%20received%20some%20great%20feedback%20from%20the%20ExtJS%20community.%20I%20encourage%20you%20to%20take%20a%20look%20-%20I%20find%20it%20extremely%20helpful%20in%20my%20own%20day-to-day%20development." title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F17%2Fextjs-unit-testing-now-on-google-code%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F17%2Fextjs-unit-testing-now-on-google-code%2F&amp;title=ExtJS%20Unit%20Testing%20now%20on%20Google%20Code&amp;notes=Although%20I%27ve%20been%20meaning%20to%20do%20this%20for%20a%20while%20now%2C%20I%20finally%20released%20the%20ExtJS%20Unit%20Testing%20platform%20as%20an%20open%20source%20project%20on%20Google%20Code%21%0D%0A%0D%0AI%27ve%20been%20talking%20about%20the%20need%20for%20a%20solid%20JavaScript%20unit%20testing%20platform%20for%20a%20while%2C%20specifically%20in%20relation%20to%20ExtJS.%20I%20gave%20a%20presentation%20on%20the%20subject%20a%20few%20months%20ago%20and%20have%20received%20some%20great%20feedback%20from%20the%20ExtJS%20community.%20I%20encourage%20you%20to%20take%20a%20look%20-%20I%20find%20it%20extremely%20helpful%20in%20my%20own%20day-to-day%20development." title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F17%2Fextjs-unit-testing-now-on-google-code%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F17%2Fextjs-unit-testing-now-on-google-code%2F&amp;title=ExtJS%20Unit%20Testing%20now%20on%20Google%20Code" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=ExtJS%20Unit%20Testing%20now%20on%20Google%20Code%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F17%2Fextjs-unit-testing-now-on-google-code%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2009/12/17/extjs-unit-testing-now-on-google-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Customized ExtJS Toolbar</title>
		<link>http://blog.akawebdesign.com/index.php/2009/12/02/a-customized-extjs-toolbar/</link>
		<comments>http://blog.akawebdesign.com/index.php/2009/12/02/a-customized-extjs-toolbar/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 19:03:45 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=292</guid>
		<description><![CDATA[I've been working on an application for some time that necessitates changes to my grid's toolbar depending upon several factors. The challenge that I've run into is that the default Ext.Toolbar() object is not very helpful when you try to show/hide options which are not specifically grouped.

Now as far as I know, there isn't a plugin or user extension available which meets the requirements my application needs. Therefore I created my own!]]></description>
			<content:encoded><![CDATA[<p>The ExtJS grid is probably the most often used widget in the entire ExtJS library. The Ext.grid.GridPanel() object allows the developer to neatly display JSON or XML data returned from the server with little coding effort.</p>
<p>I&#8217;ve been working on an application for some time that necessitates changes to my grid&#8217;s toolbar depending upon several factors. The challenge that I&#8217;ve run into is that the default Ext.Toolbar() object is not very helpful when you try to show/hide options which are not specifically grouped.</p>
<p>For example, let&#8217;s say that you have a layout like the one pictured below. This particular layout allows the user to manage a list of physical locations and group them into categories.</p>
<p align="center"><img style="margin: 10px;" src="http://www.akawebdesign.com/blog/2009-12-02/root.gif" alt="ExtJS Toolbar Extension" width="600" /></p>
<p>As you can see, the grid has several top-level UI elements: a drop-down menu, a combo-box and several generic buttons. Our drop-down menu also has multiple options for the user to select (add/remove, etc).</p>
<p>This application requires that certain options are only visible when the grid is in its default (or &#8216;root&#8217;) view. Other options become visible (or hidden) when the grid is filtered by clicking on a category in the tree or by selecting a previously saved search algorithm. In other words, the toolbar&#8217;s functionality depends on some kind of state.</p>
<p align="center"><img style="margin: 10px;" src="http://www.akawebdesign.com/blog/2009-12-02/filtered.gif" alt="ExtJS Toolbar Extension" width="600" /></p>
<p>Now as far as I know, there isn&#8217;t a plugin or user extension available which meets the requirements my application needs. Therefore I created my own!</p>
<h3>Override Toolbar Buttons/Actions</h3>
<p>The first thing I needed to do was mark which toolbar options need to be hidden in specified states. I did this via a simple override statement on Ext.Component() and Ext.Action(). This was necessary because ExtJS toolbars can contain any Component() sub-class <em>AND</em> Ext.Action() instances which do not inherit from Component(). Thus I needed to cover both cases.</p>
<pre><code>/**
 * Add markAsHidden member to all Components.
 * Used for marking toolbar items/buttons as hidden
 */
Ext.override(Ext.Component, {
    markAsHidden: []
});
Ext.override(Ext.Action, {
    markAsHidden: []
});
</code></pre>
<p>The new &#8220;markAsHidden&#8221; member  is an array (defaults to an empty array) which can be given any number of &#8217;states&#8217; in which the button or action must be hidden from the user.</p>
<p>You can now add these states via the button/action config:</p>
<pre><code>var myButton = new Ext.Action({
    text: 'My Button',
    markAsHidden: [ 'someState', 'anotherState' ],
    handler: function() { ... }
});
</code></pre>
<h3>Extend Ext.Toolbar()</h3>
<p>My.Toolbar() is a basic extension of the Ext.Toolbar() object, with only two things which require explanation.</p>
<pre><code>/**
 * @class My.Toolbar
 * @extends Ext.Toolbar
 * @constructor
 * @param {object} configObj
 * @cfg {array} items
 */
My.Toolbar = function(configObj) {
    var thisObject = this;

    /**
     * @method
     * @description Method to update the toolbar, showing/hiding specified
     *     buttons based on the passed display type.
     *     Common values are: 'root', 'child', 'query'
     * @param {string} displayType
     */
    this.updateDisplay = function(displayType) {
        function checkForHiddenFlag(toolbarItem) {
            if (toolbarItem.markAsHidden.indexOf(displayType) == -1) {
                toolbarItem.show();
            }
            else {
                toolbarItem.hide();
            }

            //cascade into the menu actions
            if (toolbarItem.isXType('button')) {
                if (toolbarItem.menu) {
                    toolbarItem.menu.items.each(checkForHiddenFlag);
                }
            }
        }

        thisObject.items.each(checkForHiddenFlag);
    };

    Ext.apply(this, {
        items: configObj.items
    });

    My.Toolbar.superclass.constructor.apply(this, arguments);

    this.mon(
        thisObject,
        'render',
        function(thisComponent) {
            thisComponent.updateDisplay('root');
        }
    );
};
Ext.extend(My.Toolbar, Ext.Toolbar, {});
</code></pre>
<p>First, I added an updateDisplay() method which (when called with a string parameter) will hide any toolbar options marked to-be-hidden in the specified state. It even goes into sub-menus to hide menu options!</p>
<p>Second, I run <em>updateDisplay(&#8216;root&#8217;)</em> when the toolbar renders to put the grid into a default state.</p>
<h3>So&#8230; now what?</h3>
<p>The idea is that we can change the state of the toolbar whenever we need to &#8211; like on UI events such as tree-node clicks or a combo-box selection.</p>
<pre><code>myTree.on(
    'click',
    function(theNode, theEvent) {
        myGrid.getTopToolbar().updateDisplay('someState');
    }
);
</code></pre>
<p>This extension is still a bit of a work in progress, but hopefully it helps a few of you ExtJS developers out there!</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F&amp;t=A%20Customized%20ExtJS%20Toolbar" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F&amp;title=A%20Customized%20ExtJS%20Toolbar" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F&amp;title=A%20Customized%20ExtJS%20Toolbar&amp;bodytext=I%27ve%20been%20working%20on%20an%20application%20for%20some%20time%20that%20necessitates%20changes%20to%20my%20grid%27s%20toolbar%20depending%20upon%20several%20factors.%20The%20challenge%20that%20I%27ve%20run%20into%20is%20that%20the%20default%20Ext.Toolbar%28%29%20object%20is%20not%20very%20helpful%20when%20you%20try%20to%20show%2Fhide%20options%20which%20are%20not%20specifically%20grouped.%0D%0A%0D%0ANow%20as%20far%20as%20I%20know%2C%20there%20isn%27t%20a%20plugin%20or%20user%20extension%20available%20which%20meets%20the%20requirements%20my%20application%20needs.%20Therefore%20I%20created%20my%20own%21" title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F&amp;title=A%20Customized%20ExtJS%20Toolbar&amp;notes=I%27ve%20been%20working%20on%20an%20application%20for%20some%20time%20that%20necessitates%20changes%20to%20my%20grid%27s%20toolbar%20depending%20upon%20several%20factors.%20The%20challenge%20that%20I%27ve%20run%20into%20is%20that%20the%20default%20Ext.Toolbar%28%29%20object%20is%20not%20very%20helpful%20when%20you%20try%20to%20show%2Fhide%20options%20which%20are%20not%20specifically%20grouped.%0D%0A%0D%0ANow%20as%20far%20as%20I%20know%2C%20there%20isn%27t%20a%20plugin%20or%20user%20extension%20available%20which%20meets%20the%20requirements%20my%20application%20needs.%20Therefore%20I%20created%20my%20own%21" title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F&amp;title=A%20Customized%20ExtJS%20Toolbar" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F&amp;title=A%20Customized%20ExtJS%20Toolbar&amp;source=aKa+Web+Design+...how+a+nerd+sees+the+world-wide-web.&amp;summary=I%27ve%20been%20working%20on%20an%20application%20for%20some%20time%20that%20necessitates%20changes%20to%20my%20grid%27s%20toolbar%20depending%20upon%20several%20factors.%20The%20challenge%20that%20I%27ve%20run%20into%20is%20that%20the%20default%20Ext.Toolbar%28%29%20object%20is%20not%20very%20helpful%20when%20you%20try%20to%20show%2Fhide%20options%20which%20are%20not%20specifically%20grouped.%0D%0A%0D%0ANow%20as%20far%20as%20I%20know%2C%20there%20isn%27t%20a%20plugin%20or%20user%20extension%20available%20which%20meets%20the%20requirements%20my%20application%20needs.%20Therefore%20I%20created%20my%20own%21" title="LinkedIn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=A%20Customized%20ExtJS%20Toolbar%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F12%2F02%2Fa-customized-extjs-toolbar%2F&amp;submitHeadline=A%20Customized%20ExtJS%20Toolbar&amp;submitSummary=I%27ve%20been%20working%20on%20an%20application%20for%20some%20time%20that%20necessitates%20changes%20to%20my%20grid%27s%20toolbar%20depending%20upon%20several%20factors.%20The%20challenge%20that%20I%27ve%20run%20into%20is%20that%20the%20default%20Ext.Toolbar%28%29%20object%20is%20not%20very%20helpful%20when%20you%20try%20to%20show%2Fhide%20options%20which%20are%20not%20specifically%20grouped.%0D%0A%0D%0ANow%20as%20far%20as%20I%20know%2C%20there%20isn%27t%20a%20plugin%20or%20user%20extension%20available%20which%20meets%20the%20requirements%20my%20application%20needs.%20Therefore%20I%20created%20my%20own%21&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2009/12/02/a-customized-extjs-toolbar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Book Review: ExtJS 3.0 Cookbook</title>
		<link>http://blog.akawebdesign.com/index.php/2009/11/20/book-review-extjs-3-0-cookbook/</link>
		<comments>http://blog.akawebdesign.com/index.php/2009/11/20/book-review-extjs-3-0-cookbook/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 16:25:18 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[Book Reviews]]></category>
		<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=278</guid>
		<description><![CDATA[ExtJS 3.0 Cookbook is definitely geared towards JavaScript developers who have some basic understanding of and experience with ExtJS 3.0. If you're brand-new to ExtJS, you may want to wait a few weeks until you've spent some time playing with the various components and layouts that ExtJS offers.

As an experienced ExtJS developer, I can say with absolute certainty that I learned some new tricks while reading this book.]]></description>
			<content:encoded><![CDATA[<p>As I mentioned in an <strong><a href="http://blog.akawebdesign.com/index.php/2009/11/03/new-book-extjs-3-0-cookbook/" target="_self">earlier post</a></strong>, Packt Publishing contacted me a few weeks ago asking if I wanted to review ExtJS 3.0 Cookbook (written by <strong><a href="http://www.miamicoder.com/" target="_blank">Jorge Ramon</a></strong>). Since I do a ton of software development using ExtJS, and I like free stuff, I agreed to review the book.</p>
<p><em>Disclaimer: I am not getting paid for this review, but I did get the book for free. I don&#8217;t work for ExtJS or Packt Publishing.</em></p>
<h3>Who this Book is for</h3>
<p><strong><a href="http://www.amazon.com/gp/product/1847198708?ie=UTF8&amp;tag=whiloch-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1847198708" target="_blank">ExtJS 3.0 Cookbook</a></strong> is definitely geared towards JavaScript developers who have some basic understanding of and experience with ExtJS 3.0. If you&#8217;re brand-new to ExtJS, you may want to wait a few weeks until you&#8217;ve spent some time playing with the various components and layouts that ExtJS offers.</p>
<p>As an experienced ExtJS developer, I can say with absolute certainty that I learned some new tricks while reading this book.</p>
<h3>Let&#8217;s Start with the Bad</h3>
<p><a title="ExtJS Cookbook" href="http://www.amazon.com/gp/product/1847198708?ie=UTF8&amp;tag=whiloch-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1847198708"><img style="margin: 5px;" src="http://www.akawebdesign.com/blog/2009-11-03/ExtJS-3.0-Cookbook.png" border="0" alt="ExtJS 3.0 Cookbook" align="left" /></a>I want to start by pointing out the things I didn&#8217;t like about this ExtJS 3.0 Cookbook. Why? Because you should read this book, and I want you to walk away from this post remembering the things I liked!</p>
<p>Overall, a general complaint I have about the examples is that many of them are similar to those given on the <strong><a href="http://www.extjs.com/deploy/dev/examples/samples.html#sample-12" target="_blank">ExtJS website</a></strong>. If I were writing my own book (which I haven&#8217;t done&#8230;) I would try to come up with more unique examples. Jorge did spend some time doing that &#8211; but not enough time for my liking.</p>
<p>Chapter 1 (<em>DOM and Data Types, the ExtJS Way</em>) seemed a bit all-over-the-place. While the examples and explanations were well written, topics like building custom ExtJS extensions are complicated. For developers new to ExtJS, a more in-depth focus will absolutely be necessary. Topics like sniffing the user&#8217;s browser or OS aren&#8217;t advanced enough to interest seasoned ExtJS developers. Overall, I thought Chapter 1 was a bit of a waste.</p>
<p>Chapter 2 (<em>Laying Out a Rich User Interface</em>) doesn&#8217;t mention <strong>HBOX</strong> and <strong>VBOX</strong> layouts &#8211; two of the most useful layout containers. These layouts were new features in ExtJS 3.0, and I&#8217;m disappointed that Jorge didn&#8217;t give any explanation of them.</p>
<p>Chapter 6 mentions a drag/drop implementation between two grids (basically the example seen <strong><a href="http://www.extjs.com/deploy/dev/examples/dd/dnd_grid_to_grid.html" target="_blank">here</a></strong>) &#8211; which is a great introduction &#8211; but only spends 4 paragraphs explaining the example. Drag-and-drop is one of the most useful (and often confusing) concepts in ExtJS, and I&#8217;m disappointed that this example wasn&#8217;t expanded. In fact, Jorge probably should have devoted an entire chapter to this example, maybe even adding some extra functionality.</p>
<p>I also thought it was odd that Chapter 7 (<em>Keeping Tabs on your Trees</em>) covered TabPanels and Trees at the same time. Although I often use the two together when building my user interfaces, I think the topics could have been covered separately and each given more attention. Specifically, I don&#8217;t have much experience with the ColumnTree extension or drag/drop between TreePanels&#8230; I don&#8217;t know why they&#8217;re in the same chapter as the TabPanel.</p>
<p>Lastly, I don&#8217;t know why Jorge added the Ext.Slider() to Chapter 9 (<em>Well-charted Territory</em>). The Slider() isn&#8217;t a chart, and he doesn&#8217;t add it into an example using a chart. It&#8217;s just out-of-place.</p>
<h3>Things I Really Liked</h3>
<p>Throughout the book, Jorge Ramon shows the reader examples using three distinct headers:</p>
<ol>
<li><em>Name of the concept</em></li>
<li><em>How to do it&#8230;</em></li>
<li><em>How it works&#8230;</em></li>
</ol>
<p>Ramon&#8217;s approach to explaining the examples is virtually flawless, and the box-style headers make it easy to follow. I haven&#8217;t seen too many coding books use this technique, so kudos to whoever thought of it!</p>
<p align="center"><img style="margin: 10px;" src="http://www.akawebdesign.com/blog/2009-11-20/cookbook.jpg" alt="ExtJS 3.0 Cookbook" height="400" /></p>
<p>Chapter 2 (<em>Laying Out a Rich User Interface</em>) has a lot of good stuff. I was particularly impressed when I saw the Portal drag/drop example, although I didn&#8217;t really dig deep enough to see if it&#8217;s the same example shown on the ExtJS website. In either case, Jorge did a great job explaining how it all works!</p>
<p>Chapter 3 (Load, Validate, and Submit Forms) was more useful to me than I thought it would be. Forms are the basis of web-based applications, and any developer using ExtJS has (more than likely) had to create <em>Ext.form.FormPanel()</em> objects at some point. Awesome tips included: changing the location of validation errors and auto-validation of URLs/email addresses.</p>
<p>Chapter 4 (Fun with Combo Boxes and Date Fields) has a lot of great examples for customizing these two widgets. The best samples in this chapter involve XTemplates and data-paging on the ComboBox, and disabling days/dates in the date picker. I actually didn&#8217;t know you could disable days/dates on the date picker widget&#8230; I learned something!</p>
<p>Chapter 5 (<em>Using Grid Panels to Display and Edit Tabular Data</em>) didn&#8217;t really teach me anything new, but I will say that I was impressed by the number of examples Jorge uses to demonstrate the power of the ExtJS grids. This chapter covers everything from using remote data sets (in both XML and JSON) to inline editing, grouping and expandable rows. If you&#8217;re not an expert on ExtJS grids before you read this chapter, you&#8217;ll know everything you need to know when you&#8217;re finished!</p>
<p>Chapter 6 (<em>More Applications of Grid and List Views</em>) is another great compilation of examples which build on the ExtJS grid. ExtJS GridViews are (in my opinion) one of the best features of the entire framework because they allow the developer to customize the way the UI displays the data. Jorge also covers the RowEditor plugin (new in ExtJS 3.0) and dives into creating grid cell tooltips.</p>
<p>Chapter 8 (<em>Making Progress with Menus and Toolbars</em>) demonstrates a bunch of ways to make your application interactive. While most of the examples won&#8217;t blow your mind, I found that they do spark ideas to accomplish any number of things. I particularly liked the customization of the progress bar!</p>
<p>Finally, Chapter 10 (<em>Patterns in ExtJS</em>) contains solid direction for developers looking to build rich internet applications with ExtJS. In all honesty, this chapter could probably be expanded into a separate book&#8230; but it serves as a nice conclusion for the previous nine chapters. Jorge builds on many of the examples he mentioned in earlier chapters and gives some final advice for developers to move forward with their own applications.</p>
<h3>The Best Chapter</h3>
<p>If I had to pick a single reason to buy ExtJS 3.0 Cookbook, it would definitely be Chapter 9 (<em>Well-Charted Territory</em>).</p>
<p><em>Why?</em></p>
<p>For starters, the ExtJS website samples don&#8217;t do a great job explaining how to use many of the available charts. The online documentation also lacks direction. Jorge is the first person I&#8217;ve seen who thoroughly explains how to use each type of chart, and his examples are both unique and helpful. Kudos!</p>
<h3>Final Thoughts</h3>
<p>I really liked this book!</p>
<p>I&#8217;ve read a lot of programming textbooks, and none are nearly as helpful or interesting as <strong><a href="http://www.amazon.com/gp/product/1847198708?ie=UTF8&amp;tag=whiloch-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1847198708" target="_blank">ExtJS 3.0 Cookbook</a></strong>. It is a quick read for containing 356 pages, and Jorge Ramon does a fantastic job offering tips and tricks for ExtJS developers.</p>
<p>Regardless of your experience level, the ExtJS 3.0 Cookbook will absolutely teach you something new!</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F&amp;t=Book%20Review%3A%20ExtJS%203.0%20Cookbook" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F&amp;title=Book%20Review%3A%20ExtJS%203.0%20Cookbook" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F&amp;title=Book%20Review%3A%20ExtJS%203.0%20Cookbook&amp;bodytext=ExtJS%203.0%20Cookbook%20is%20definitely%20geared%20towards%20JavaScript%20developers%20who%20have%20some%20basic%20understanding%20of%20and%20experience%20with%20ExtJS%203.0.%20If%20you%27re%20brand-new%20to%20ExtJS%2C%20you%20may%20want%20to%20wait%20a%20few%20weeks%20until%20you%27ve%20spent%20some%20time%20playing%20with%20the%20various%20components%20and%20layouts%20that%20ExtJS%20offers.%0D%0A%0D%0AAs%20an%20experienced%20ExtJS%20developer%2C%20I%20can%20say%20with%20absolute%20certainty%20that%20I%20learned%20some%20new%20tricks%20while%20reading%20this%20book." title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F&amp;title=Book%20Review%3A%20ExtJS%203.0%20Cookbook&amp;notes=ExtJS%203.0%20Cookbook%20is%20definitely%20geared%20towards%20JavaScript%20developers%20who%20have%20some%20basic%20understanding%20of%20and%20experience%20with%20ExtJS%203.0.%20If%20you%27re%20brand-new%20to%20ExtJS%2C%20you%20may%20want%20to%20wait%20a%20few%20weeks%20until%20you%27ve%20spent%20some%20time%20playing%20with%20the%20various%20components%20and%20layouts%20that%20ExtJS%20offers.%0D%0A%0D%0AAs%20an%20experienced%20ExtJS%20developer%2C%20I%20can%20say%20with%20absolute%20certainty%20that%20I%20learned%20some%20new%20tricks%20while%20reading%20this%20book." title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F&amp;title=Book%20Review%3A%20ExtJS%203.0%20Cookbook" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F&amp;title=Book%20Review%3A%20ExtJS%203.0%20Cookbook&amp;source=aKa+Web+Design+...how+a+nerd+sees+the+world-wide-web.&amp;summary=ExtJS%203.0%20Cookbook%20is%20definitely%20geared%20towards%20JavaScript%20developers%20who%20have%20some%20basic%20understanding%20of%20and%20experience%20with%20ExtJS%203.0.%20If%20you%27re%20brand-new%20to%20ExtJS%2C%20you%20may%20want%20to%20wait%20a%20few%20weeks%20until%20you%27ve%20spent%20some%20time%20playing%20with%20the%20various%20components%20and%20layouts%20that%20ExtJS%20offers.%0D%0A%0D%0AAs%20an%20experienced%20ExtJS%20developer%2C%20I%20can%20say%20with%20absolute%20certainty%20that%20I%20learned%20some%20new%20tricks%20while%20reading%20this%20book." title="LinkedIn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Book%20Review%3A%20ExtJS%203.0%20Cookbook%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F20%2Fbook-review-extjs-3-0-cookbook%2F&amp;submitHeadline=Book%20Review%3A%20ExtJS%203.0%20Cookbook&amp;submitSummary=ExtJS%203.0%20Cookbook%20is%20definitely%20geared%20towards%20JavaScript%20developers%20who%20have%20some%20basic%20understanding%20of%20and%20experience%20with%20ExtJS%203.0.%20If%20you%27re%20brand-new%20to%20ExtJS%2C%20you%20may%20want%20to%20wait%20a%20few%20weeks%20until%20you%27ve%20spent%20some%20time%20playing%20with%20the%20various%20components%20and%20layouts%20that%20ExtJS%20offers.%0D%0A%0D%0AAs%20an%20experienced%20ExtJS%20developer%2C%20I%20can%20say%20with%20absolute%20certainty%20that%20I%20learned%20some%20new%20tricks%20while%20reading%20this%20book.&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2009/11/20/book-review-extjs-3-0-cookbook/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New Book: ExtJS 3.0 Cookbook</title>
		<link>http://blog.akawebdesign.com/index.php/2009/11/03/new-book-extjs-3-0-cookbook/</link>
		<comments>http://blog.akawebdesign.com/index.php/2009/11/03/new-book-extjs-3-0-cookbook/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 14:35:52 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=273</guid>
		<description><![CDATA[A few days ago I was contacted by Packt Publishing. As an active member of the ExtJS community, I have been asked to review a new book called ExtJs 3.0 Cookbook. My copy of the book is in the mail and should be arriving shortly and I'll be posting my review within a few weeks]]></description>
			<content:encoded><![CDATA[<p><a title="ExtJS Cookbook" href="http://www.amazon.com/gp/product/1847198708?ie=UTF8&amp;tag=whiloch-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1847198708"><img style="margin: 5px;" src="http://www.akawebdesign.com/blog/2009-11-03/ExtJS-3.0-Cookbook.png" border="0" alt="ExtJS 3.0 Cookbook" align="left" /></a>A few days ago I was contacted by Packt Publishing. As an active member of the ExtJS community, I have been asked to review a new book called <strong>ExtJs 3.0 Cookbook</strong> by <strong><a href="http://miamicoder.com/" target="_blank">Jorge Ramon</a></strong>.</p>
<p>I&#8217;m very excited to read this book, and I&#8217;ll be posting my review within a few weeks. The book is intended for: &#8220;Ext JS users who want a book of useful techniques, with explanations, that they can refer to and adapt to their purposes. Developers who are already familiar with Ext JS will find practical guidance and numerous examples covering most of the library&#8217;s features and components that can be used as a solid foundation to build upon when creating rich internet applications.&#8221;</p>
<p>According to the Packt Publishing site, the book covers the following topics:</p>
<ul>
<li>Mastering ExtJS widgets</li>
<li>Creating custom components</li>
<li>Building forms with custom validation</li>
<li>Exploring Layouts</li>
<li>Drag-and-Drop</li>
<li>Use patterns and state management</li>
</ul>
<p>My copy of the book is in the mail and should be arriving shortly, but you can order a copy for yourself by clicking on the book cover above. Happy reading!</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F&amp;t=New%20Book%3A%20ExtJS%203.0%20Cookbook" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F&amp;title=New%20Book%3A%20ExtJS%203.0%20Cookbook" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F&amp;title=New%20Book%3A%20ExtJS%203.0%20Cookbook&amp;bodytext=A%20few%20days%20ago%20I%20was%20contacted%20by%20Packt%20Publishing.%20As%20an%20active%20member%20of%20the%20ExtJS%20community%2C%20I%20have%20been%20asked%20to%20review%20a%20new%20book%20called%20ExtJs%203.0%20Cookbook.%20My%20copy%20of%20the%20book%20is%20in%20the%20mail%20and%20should%20be%20arriving%20shortly%20and%20I%27ll%20be%20posting%20my%20review%20within%20a%20few%20weeks" title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F&amp;title=New%20Book%3A%20ExtJS%203.0%20Cookbook&amp;notes=A%20few%20days%20ago%20I%20was%20contacted%20by%20Packt%20Publishing.%20As%20an%20active%20member%20of%20the%20ExtJS%20community%2C%20I%20have%20been%20asked%20to%20review%20a%20new%20book%20called%20ExtJs%203.0%20Cookbook.%20My%20copy%20of%20the%20book%20is%20in%20the%20mail%20and%20should%20be%20arriving%20shortly%20and%20I%27ll%20be%20posting%20my%20review%20within%20a%20few%20weeks" title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F&amp;title=New%20Book%3A%20ExtJS%203.0%20Cookbook" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F&amp;title=New%20Book%3A%20ExtJS%203.0%20Cookbook&amp;source=aKa+Web+Design+...how+a+nerd+sees+the+world-wide-web.&amp;summary=A%20few%20days%20ago%20I%20was%20contacted%20by%20Packt%20Publishing.%20As%20an%20active%20member%20of%20the%20ExtJS%20community%2C%20I%20have%20been%20asked%20to%20review%20a%20new%20book%20called%20ExtJs%203.0%20Cookbook.%20My%20copy%20of%20the%20book%20is%20in%20the%20mail%20and%20should%20be%20arriving%20shortly%20and%20I%27ll%20be%20posting%20my%20review%20within%20a%20few%20weeks" title="LinkedIn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=New%20Book%3A%20ExtJS%203.0%20Cookbook%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F11%2F03%2Fnew-book-extjs-3-0-cookbook%2F&amp;submitHeadline=New%20Book%3A%20ExtJS%203.0%20Cookbook&amp;submitSummary=A%20few%20days%20ago%20I%20was%20contacted%20by%20Packt%20Publishing.%20As%20an%20active%20member%20of%20the%20ExtJS%20community%2C%20I%20have%20been%20asked%20to%20review%20a%20new%20book%20called%20ExtJs%203.0%20Cookbook.%20My%20copy%20of%20the%20book%20is%20in%20the%20mail%20and%20should%20be%20arriving%20shortly%20and%20I%27ll%20be%20posting%20my%20review%20within%20a%20few%20weeks&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2009/11/03/new-book-extjs-3-0-cookbook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Custom colors for Ext.chart.*</title>
		<link>http://blog.akawebdesign.com/index.php/2009/10/08/custom-colors-for-ext-chart/</link>
		<comments>http://blog.akawebdesign.com/index.php/2009/10/08/custom-colors-for-ext-chart/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 22:55:14 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=253</guid>
		<description><![CDATA[With the release of ExtJS 3.0 earlier this year, developers can now create and use charts of various kinds. The ExtJS chart classes (Ext.chart.*) are basically extensions of the YUI charts - which has made my life difficult because neither YUI nor ExtJS does a fantastic job documenting how to use them. My biggest beef with the Ext.chart.* docs has to do with the ability to change the default colors.

Here's an example of how to change the colors on a Pie Chart.]]></description>
			<content:encoded><![CDATA[<p>One of the main reasons I like ExtJS more than YUI is the documentation &#8211; I happen to find the ExtJS docs much easier to understand, though there&#8217;s a number of people who disagree with me.</p>
<p>With the release of ExtJS 3.0 earlier this year, developers can now create and use charts of various kinds. The ExtJS chart classes (Ext.chart.*) are basically extensions of the YUI charts &#8211; which has made my life difficult because neither YUI nor ExtJS does a fantastic job documenting how to use them. To be fair ExtJS has done a great job updating their 3.0 docs with the help of the community (charts included), but the chart documentation is still far from ideal.</p>
<p>My biggest beef with the Ext.chart.* docs has to do with the ability to change the default colors. While some references on how to do this can be found on the ExtJS forums and by searching Google, no solid examples exist as far as I can tell in either the ExtJS or YUI documentation. I only stumbled across the solution to this problem while searching Google.</p>
<p>The key to changing a chart&#8217;s colors lies in the &#8220;series&#8221; attribute of a given chart. This config option takes an array of Object literals defining each series on the chart &#8211; things like &#8220;displayName&#8221; and (most importantly) &#8220;style&#8221;. The &#8220;style&#8221; attribute has a &#8220;colors&#8221; property which takes an array of color values.</p>
<p>For example, let&#8217;s create a Pie Chart. A Pie Chart will only have one series, and doesn&#8217;t need much defined for the series&#8217; attributes (it really only needs the &#8220;style&#8221; attribute to define the colors we&#8217;re going to use).</p>
<p align="center"><img src="http://www.akawebdesign.com/blog/2009-10-08/piechart.gif" alt="Ext.chart.PieChart() with custom colors" /></p>
<p>As you can see, the series style defines colors for the Pie Chart in the order they&#8217;re going to be used. Since our data store contains three records, &#8220;Pending&#8221; will get a blue color, &#8220;Passed&#8221; will get a green color, and &#8220;Failed&#8221; will get a red color.</p>
<p>See an example implemented within my <strong><a href="http://www.akawebdesign.com/ExtJS/UnitTest.aspx" target="_blank">ExtJS Unit Testing</a></strong> demo.</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F&amp;t=Custom%20colors%20for%20Ext.chart.%2A" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F&amp;title=Custom%20colors%20for%20Ext.chart.%2A" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F&amp;title=Custom%20colors%20for%20Ext.chart.%2A&amp;bodytext=With%20the%20release%20of%20ExtJS%203.0%20earlier%20this%20year%2C%20developers%20can%20now%20create%20and%20use%20charts%20of%20various%20kinds.%20The%20ExtJS%20chart%20classes%20%28Ext.chart.%2A%29%20are%20basically%20extensions%20of%20the%20YUI%20charts%20-%20which%20has%20made%20my%20life%20difficult%20because%20neither%20YUI%20nor%20ExtJS%20does%20a%20fantastic%20job%20documenting%20how%20to%20use%20them.%20My%20biggest%20beef%20with%20the%20Ext.chart.%2A%20docs%20has%20to%20do%20with%20the%20ability%20to%20change%20the%20default%20colors.%0D%0A%0D%0AHere%27s%20an%20example%20of%20how%20to%20change%20the%20colors%20on%20a%20Pie%20Chart." title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F&amp;title=Custom%20colors%20for%20Ext.chart.%2A&amp;notes=With%20the%20release%20of%20ExtJS%203.0%20earlier%20this%20year%2C%20developers%20can%20now%20create%20and%20use%20charts%20of%20various%20kinds.%20The%20ExtJS%20chart%20classes%20%28Ext.chart.%2A%29%20are%20basically%20extensions%20of%20the%20YUI%20charts%20-%20which%20has%20made%20my%20life%20difficult%20because%20neither%20YUI%20nor%20ExtJS%20does%20a%20fantastic%20job%20documenting%20how%20to%20use%20them.%20My%20biggest%20beef%20with%20the%20Ext.chart.%2A%20docs%20has%20to%20do%20with%20the%20ability%20to%20change%20the%20default%20colors.%0D%0A%0D%0AHere%27s%20an%20example%20of%20how%20to%20change%20the%20colors%20on%20a%20Pie%20Chart." title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F&amp;title=Custom%20colors%20for%20Ext.chart.%2A" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F&amp;title=Custom%20colors%20for%20Ext.chart.%2A&amp;source=aKa+Web+Design+...how+a+nerd+sees+the+world-wide-web.&amp;summary=With%20the%20release%20of%20ExtJS%203.0%20earlier%20this%20year%2C%20developers%20can%20now%20create%20and%20use%20charts%20of%20various%20kinds.%20The%20ExtJS%20chart%20classes%20%28Ext.chart.%2A%29%20are%20basically%20extensions%20of%20the%20YUI%20charts%20-%20which%20has%20made%20my%20life%20difficult%20because%20neither%20YUI%20nor%20ExtJS%20does%20a%20fantastic%20job%20documenting%20how%20to%20use%20them.%20My%20biggest%20beef%20with%20the%20Ext.chart.%2A%20docs%20has%20to%20do%20with%20the%20ability%20to%20change%20the%20default%20colors.%0D%0A%0D%0AHere%27s%20an%20example%20of%20how%20to%20change%20the%20colors%20on%20a%20Pie%20Chart." title="LinkedIn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Custom%20colors%20for%20Ext.chart.%2A%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F10%2F08%2Fcustom-colors-for-ext-chart%2F&amp;submitHeadline=Custom%20colors%20for%20Ext.chart.%2A&amp;submitSummary=With%20the%20release%20of%20ExtJS%203.0%20earlier%20this%20year%2C%20developers%20can%20now%20create%20and%20use%20charts%20of%20various%20kinds.%20The%20ExtJS%20chart%20classes%20%28Ext.chart.%2A%29%20are%20basically%20extensions%20of%20the%20YUI%20charts%20-%20which%20has%20made%20my%20life%20difficult%20because%20neither%20YUI%20nor%20ExtJS%20does%20a%20fantastic%20job%20documenting%20how%20to%20use%20them.%20My%20biggest%20beef%20with%20the%20Ext.chart.%2A%20docs%20has%20to%20do%20with%20the%20ability%20to%20change%20the%20default%20colors.%0D%0A%0D%0AHere%27s%20an%20example%20of%20how%20to%20change%20the%20colors%20on%20a%20Pie%20Chart.&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2009/10/08/custom-colors-for-ext-chart/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Update to Ext.ux.UnitTest()</title>
		<link>http://blog.akawebdesign.com/index.php/2009/08/31/update-to-ext-ux-unittest/</link>
		<comments>http://blog.akawebdesign.com/index.php/2009/08/31/update-to-ext-ux-unittest/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 20:17:40 +0000</pubDate>
		<dc:creator>Arthur Kay</dc:creator>
				<category><![CDATA[ExtJs]]></category>

		<guid isPermaLink="false">http://blog.akawebdesign.com/?p=229</guid>
		<description><![CDATA[Back in May, I started a pet-project on Unit Testing with ExtJS. I just uploaded the newest changes to my Ext.ux.UnitTest() class, and a demo is available here.

The most recent enhancements include:

  - migration from Ext 2.2.1 to Ext 3.0
  - use of Ext.chart.PieChart() to visually track the tests
  - addition of assertTrue() and assertFalse() test methods
  - test grouping, and color-coded group labels

Take a look and let me know your thoughts!]]></description>
			<content:encoded><![CDATA[<p>Back in May, I started a pet-project on <a href="http://blog.akawebdesign.com/index.php/2009/05/13/javascript-unit-testing-in-extjs/" target="_blank"><strong>Unit Testing with ExtJS</strong></a>. I just uploaded the newest changes to my Ext.ux.UnitTest() class, and a demo is available <strong><a href="http://www.akawebdesign.com/ExtJS/UnitTest.aspx" target="_blank">here</a></strong>.</p>
<p>The most recent enhancements include:</p>
<ul>
<li>migration from Ext 2.2.1 to Ext 3.0</li>
<li>use of Ext.chart.PieChart() to visually track the tests</li>
<li>addition of assertTrue() and assertFalse() test methods</li>
<li>test grouping, and color-coded group labels</li>
</ul>
<p>Take a look and let me know your thoughts!</p>



Share and Enjoy:


	<a rel="nofollow"  target="_blank" href="http://blog.akawebdesign.com/index.php/feed/" title="RSS"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/rss.png" title="RSS" alt="RSS" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F&amp;t=Update%20to%20Ext.ux.UnitTest%28%29" title="Facebook"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F&amp;title=Update%20to%20Ext.ux.UnitTest%28%29" title="StumbleUpon"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F&amp;title=Update%20to%20Ext.ux.UnitTest%28%29&amp;bodytext=Back%20in%20May%2C%20I%20started%20a%20pet-project%20on%20Unit%20Testing%20with%20ExtJS.%20I%20just%20uploaded%20the%20newest%20changes%20to%20my%20Ext.ux.UnitTest%28%29%20class%2C%20and%20a%20demo%20is%20available%20here.%0D%0A%0D%0AThe%20most%20recent%20enhancements%20include%3A%0D%0A%0D%0A%20%20-%20migration%20from%20Ext%202.2.1%20to%20Ext%203.0%0D%0A%20%20-%20use%20of%20Ext.chart.PieChart%28%29%20to%20visually%20track%20the%20tests%0D%0A%20%20-%20addition%20of%20assertTrue%28%29%20and%20assertFalse%28%29%20test%20methods%0D%0A%20%20-%20test%20grouping%2C%20and%20color-coded%20group%20labels%0D%0A%0D%0ATake%20a%20look%20and%20let%20me%20know%20your%20thoughts%21" title="Digg"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F" title="Sphinn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F&amp;title=Update%20to%20Ext.ux.UnitTest%28%29&amp;notes=Back%20in%20May%2C%20I%20started%20a%20pet-project%20on%20Unit%20Testing%20with%20ExtJS.%20I%20just%20uploaded%20the%20newest%20changes%20to%20my%20Ext.ux.UnitTest%28%29%20class%2C%20and%20a%20demo%20is%20available%20here.%0D%0A%0D%0AThe%20most%20recent%20enhancements%20include%3A%0D%0A%0D%0A%20%20-%20migration%20from%20Ext%202.2.1%20to%20Ext%203.0%0D%0A%20%20-%20use%20of%20Ext.chart.PieChart%28%29%20to%20visually%20track%20the%20tests%0D%0A%20%20-%20addition%20of%20assertTrue%28%29%20and%20assertFalse%28%29%20test%20methods%0D%0A%20%20-%20test%20grouping%2C%20and%20color-coded%20group%20labels%0D%0A%0D%0ATake%20a%20look%20and%20let%20me%20know%20your%20thoughts%21" title="del.icio.us"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://technorati.com/faves?add=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F" title="Technorati"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F&amp;title=Update%20to%20Ext.ux.UnitTest%28%29" title="Reddit"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F&amp;title=Update%20to%20Ext.ux.UnitTest%28%29&amp;source=aKa+Web+Design+...how+a+nerd+sees+the+world-wide-web.&amp;summary=Back%20in%20May%2C%20I%20started%20a%20pet-project%20on%20Unit%20Testing%20with%20ExtJS.%20I%20just%20uploaded%20the%20newest%20changes%20to%20my%20Ext.ux.UnitTest%28%29%20class%2C%20and%20a%20demo%20is%20available%20here.%0D%0A%0D%0AThe%20most%20recent%20enhancements%20include%3A%0D%0A%0D%0A%20%20-%20migration%20from%20Ext%202.2.1%20to%20Ext%203.0%0D%0A%20%20-%20use%20of%20Ext.chart.PieChart%28%29%20to%20visually%20track%20the%20tests%0D%0A%20%20-%20addition%20of%20assertTrue%28%29%20and%20assertFalse%28%29%20test%20methods%0D%0A%20%20-%20test%20grouping%2C%20and%20color-coded%20group%20labels%0D%0A%0D%0ATake%20a%20look%20and%20let%20me%20know%20your%20thoughts%21" title="LinkedIn"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=Update%20to%20Ext.ux.UnitTest%28%29%20-%20http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F" title="Twitter"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://buzz.yahoo.com/submit/?submitUrl=http%3A%2F%2Fblog.akawebdesign.com%2Findex.php%2F2009%2F08%2F31%2Fupdate-to-ext-ux-unittest%2F&amp;submitHeadline=Update%20to%20Ext.ux.UnitTest%28%29&amp;submitSummary=Back%20in%20May%2C%20I%20started%20a%20pet-project%20on%20Unit%20Testing%20with%20ExtJS.%20I%20just%20uploaded%20the%20newest%20changes%20to%20my%20Ext.ux.UnitTest%28%29%20class%2C%20and%20a%20demo%20is%20available%20here.%0D%0A%0D%0AThe%20most%20recent%20enhancements%20include%3A%0D%0A%0D%0A%20%20-%20migration%20from%20Ext%202.2.1%20to%20Ext%203.0%0D%0A%20%20-%20use%20of%20Ext.chart.PieChart%28%29%20to%20visually%20track%20the%20tests%0D%0A%20%20-%20addition%20of%20assertTrue%28%29%20and%20assertFalse%28%29%20test%20methods%0D%0A%20%20-%20test%20grouping%2C%20and%20color-coded%20group%20labels%0D%0A%0D%0ATake%20a%20look%20and%20let%20me%20know%20your%20thoughts%21&amp;submitCategory=science&amp;submitAssetType=text" title="Yahoo! Buzz"><img src="http://blog.akawebdesign.com/wp-content/plugins/sociable/images/yahoobuzz.png" title="Yahoo! Buzz" alt="Yahoo! Buzz" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://blog.akawebdesign.com/index.php/2009/08/31/update-to-ext-ux-unittest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
