Wednesday, August 6th, 2008

Ext 2.2: History, Selectors, FileUploader, and more

Category: Sencha

Ext 2.2 has been released, and it has features to complement the usual maintenance bug fixes and performance updates (Ext now works better in Firefox 3).

New features include:

CheckboxGroup / RadioGroup

Technically, while the individual Checkbox and Radio controls are not new, they may as well be, considering the overhaul they have had in this release. Gone are the ugly standard browser input controls, now replaced by attractive, visually-consistent Ext-ified versions (a long-overdue improvement).

In addition to that, we’ve added group controls for both that support complex layouts with just a config option or two. Previously in order to accomplish similar grouping layouts you would have had to create a container with a ColumnLayout and manually place your controls across multiple column configs.


Another component that has been missing in Ext is a browser history utility to enable history stack navigation within your single-page Ext application. The new Ext.History singleton makes it extremely easy to do exactly that, and it uses an event-based API to notify you when the browser history as changed.

MultiSelect / ItemSelector

These two components were contributed to Ext by community member TJ Stuart (thanks TJ). The MultiSelect is a traditional list control that allows for selecting multiple list items, and the ItemSelector combines two MultiSelects into a more sophisticated control that includes drag-and-drop list selection and bulk selection and deselection among other features.


This is an official extension provided as a sample for implementing a useful form component. Not everyone needs a form upload component, but if you do, you can’t live without it. This control is fully styled and has an API consistent with other Ext form controls. It also supports both Text+Button (read-only text) and Button-only modes, and can participate fully in form layouts.


This official extension provides a great demonstration of extending an existing Ext component to provide functionality that you need in your own application. Again, loading an XML document into a tree is not needed by everyone, but if you do need something similar, this should be a great demo.


This extension was originally written up as a demo for one of our previous blog posts. However, it proved to be such a hit with the community that we transformed it into an official extension. This is another useful example of extending a standard Ext component, in this case to interface with an external API.

Posted by Dion Almaer at 10:49 am

3.8 rating from 118 votes


Comments feed TrackBack URI

On advise of our lawyers, we stopped using Ext JS once they changed their license to GPL. Our lawyers did a complete code audit of ExtJS and GXT and found numerous violations in the Ext JS library. We raised our concerns but they went unanswered (not surprising really given Ext’s history). For example, it is a well documented fact that the Creative Commons License is not compatible with GPL and yet Ext uses’s Silk Icons that are licensed under Creative Commons. I am not sure why Ajaxian continues to post on Ext. pretty much summarizes several of the reasons we ditched Ext.

Comment by MichealMartin — August 6, 2008

If you have concerns about Ext licensing, please bring it up with us. We are more than happy to discuss your concerns. In the meantime, I would appreciate it if you would refrain from making unfounded accusations about us violating others licenses. Thanks.

Comment by Jack Slocum — August 6, 2008


I appreciate this is a sore spot, but if Michael’s point is unfounded, perhaps you could address the specific example he gives? That is, are both the commercial and GPL versions of ExtJS compatible with the Creative Commons license of Silk Icons? If so, how (roughly)?

Most of us genuinely want to support, use, and advocate Ext, but please try to be patient in putting the community’s concerns to rest.

Thanks kindly,

Comment by Matt — August 6, 2008

I got halfway to converting the JS for the PHP framework PRADO to ExtJS when this change happened. I was hoping to have it use Ext and then people could go back and choose a prototype adapter if they wanted. I wouldn’t have to maintain my own version of the client side code for the framework. Oh well. The work I did was worth it to me anyhow, even if other developers won’t benefit.

Ext’s development may have slowed now that its mature and the license change a while back may not let everyone play, but I think it will still be the best JS framework for a long time, considering its lead today. It has an elegant design and is fast. I would not have started with it had it not been a BSD license at the time, but I won’t make such myopic decision now, in light of what I would have missed out on with ExtJS.

And the commercial license it worth every penny. It’s like my iPhone. Beautiful, productive, but not quite free. :)

Comment by sroussey — August 6, 2008

I personally don’t think Ajaxian is the place to discuss licensing of Ext JS. However, to respond to your question: there is no CC licensed code or images in Ext JS. The famfam icons are used in the samples for Ext JS (not the library itself) and are in their own folder with a license file that directs users to the famfam site (as required by the CC and requested by the famfam creator).
So, in a nutshell, we don’t distribute the famfam icons under GPL, we distribute them under the CC which the famfam license allows us to do.
Hopefully this answers your question. If you have any others, please feel free to contact us and we would be happy to discuss your concerns. Thanks.

Comment by Jack Slocum — August 6, 2008

I have to say I don’t really understand the controversy. There ain’t no such thing as a free lunch, and developers have to eat. I cannot see the problem with buying a license. But back on topic… Congratulations to the team and everyone involved with the release, it’s a big step forward. It has to be the best all-purpose Javascript UI library. It has real functionality that is usable in business applications rather than flaky type stuff usable only on “social” sites.

Comment by DataPlumber — August 7, 2008

Flaky <blink> type stuff?

Comment by DataPlumber — August 7, 2008

to bad they didn’t implement an flash component for the upload extension.
Would make uploads of multiple files a whole lot easier

Comment by DaanK — August 7, 2008

I have made no unfounded accusations. We actually have a legal team and don’t just go with your interpretation of how you’d like licensing to work. ExtJS is illegal software. The download of ExtJS distribution from the Ext site does include the Silk icons from famfamfam. Since ExtJS is GPL now, you *are* distributing the Creative Commons Licensed Silk icons with GPL software which is not legal. You’re now saying that the examples are not licensed under GPL? So what are they licensed under? All the code in the samples also have the Ext (GPL) license in their header making illegal to use the Silk icons. It doesn’t matter if you include the Creative Commons license of Silk icons – that doesn’t make it legal to use with GPL software.

GPL is a strong copyleft license that requires derived works to be available under the same copyleft. So it doesn’t matter what license you come up with for the samples or distribute it separately. By virtue of the samples using ExtJS GPL code it makes the samples code GPL too and therefore incompatible with Creative Commons.

Quite frankly I think Ajaxian is a good a place to discuss Ext licensing because 1) posts that Ext doesn’t like aren’t deleted and 2) you actually respond here instead of ignoring concerns sent to

And for the record, famfamfam icons was one on several violations our lawyers discovered. The intent of my post was just to raise awareness among users and not to post a laundry list of Ext’s violations here.

Comment by MichealMartin — August 7, 2008

I don’t get this lawyering, how do they think these things up? The famfamfam site links to and in commonsense language, that basically says you are free to do as you like as long as you attribute the work, and I’m sure that’s the intention of Mark James, the creator of the icons.

Comment by DataPlumber — August 7, 2008

If you worry about Ext JS open source license issues, why not buying a Ext commercial license? I don’t think it is a big deal for most companies.

Comment by Shuo Geng — August 7, 2008


This whole topic is getting a bit tiresome. Do you feel that all software must be totally free? Is all the software you create for your company free? Is the time you’d save not worth the couple hundred bucks a license costs? If not, use jquery. Software developers deserve to get paid for their work, especially for a product of ext’s quality.

Please, let’s move on. I’m interested in discussing the product not quibbling over the license of example icons.

Comment by jfb1973 — August 7, 2008

Yes, it sure is getting tiring which is why my company is not using Ext anymore. We cannot use illegal libraries or libraries with holes and gray areas in their licensing terms. Paying for the library doesn’t necessarily make it valid. If your company doesn’t care and thinks that by having a commercial license you have a free ticket, then thats your peril.
BTW – I am still waiting on Jack to respond to my last post. . He does have a habit of going silent when he doesn’t have a good answer, just like the concerns I raised with them previously.

Comment by MichealMartin — August 7, 2008

For the record, we have seen the same legal concerns about ExtJS cited by several recent customers who switched to SmartClient LGPL. From a developer’s perspective, everything seems fine, but the lawyers say otherwise. Michael has not even raised the issue of the dubious ground of user extensions, which is what we hear about most.

Commercial licenses are fine, but, user extensions are still an issue, and of course LGPL / GPL switcheroo created a trust issue. Yesterday I heard for the third time that Ext’s stock commercial license was not considered a solution because further guarantees were considered necessary now, like future pricing.

Full disclosure: for smaller apps at least, SmartClient is an ExtJS competitor.

Comment by ckendrick — August 7, 2008

What is with these trolls and their virulent opposition to EXT Js? Can’t we discuss the release / features of the software and pros/cons to other software rather then the same tired out license garbage? If you don’t like the author or the licensing technicalities of the software, take it elsewhere, it is becoming tiresome to hear your whining in every EXT related news post.

Comment by 4stam4strbelt — August 8, 2008

I guess the problem is, enterprises want something they can actually use. These licensing concerns are real, and have in fact killed projects and all the effort that went into them. Raising these concerns is neither trolling nor whining.

But hey, we LOVE head to head comparisons. Compare us to any technology for enterprise business applications, any time.

Comment by ckendrick — August 8, 2008

Michael you strut around with an unwarranted sense of self importance while making highly contentious legal accusations.

You are just a Blogland malcontent whereas Jack Slocum is one of the greatest JavaScript programmers of the day, he has grasped a vision and implemented it by writing a prodigious amount of high quality code.

A doer like Jack is not obliged to fritter away his time replying to people like you, if you cannot use ExtJS move on.

ExtJS LLC cannot please everyone with its licensing decisions. The world of OSS licences reminds me of early twentieth century communist and socialist movements, the OSS factions hate each other more than the Capitalists. Jack ineptly wandered into this licence turf war and yes ExtJS has had a momentary stumble, but his software is so well written and the underlying concepts are so elegant the momentum is back with the release of 2.2.

Finally please stop using the phrase “illegal software”. I am 99.999% confident the packaging of the famfam icons has not created a legal problem, but if it has it is up to the owner of those icons to pursue the matter.

Comment by Seasharp2 — August 11, 2008

Seasharp2, you sure sound like Jack’s mouthpiece :) Why hasn’t Jack responded to my specific question above. If he claims Ext sample code is not GPL, what is it licensed under?

Comment by MichealMartin — August 11, 2008

Micheal, While I admire the energy in which you attempt to defame ExtJS, I hope you will use your passion more productively going forward. Please read the following FAQ on aggregation by the Free Software Foundation I do not monitor the comments on Ajaxian. Should you or your “legal team” wish to discuss this matter further you may email me directly at

Comment by AbrahamElias — August 11, 2008

Thanks for the response but what you’re missing is that the other requirement is that CCA should be compatible with GPL which its not. So you’re in violation on the Silk icons’ CCA license. We’re past using ExtJS now so there’s nothing further to discuss with Ext. Our company has attempted to contact Ext licensing a few times but never heard back so there’s no desire for us to work with you on fixing issues that you’re already well aware of and have chosen to ignore.
I see many licensing concerns raised on the Ext forum. What happens is that the Ext team replies asking the user to email and that is the end of the thread. This has been a recurring pattern with Ext deliberately not providing clarity on straightforward licensing questions

Comment by MichealMartin — August 12, 2008

Michael, I am going to assume you didn’t click the link that I posted since the first paragraph includes the sentence “The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible.”. This is directly from the FSF, who I am going to assume know a little more about the GPL than you do.

Comment by AbrahamElias — August 12, 2008

So going by this logic, Ext 2.2 css and images (GPL) permits me to create and distribute an aggregate with – the Ext fork RooJS – and Ext 2.0.2 LGPL
I’ll inform the authors of those projects that using Ext CSS / images is no longer an issue since you have acknowledged that creating an aggregate is ok

Comment by MichealMartin — August 14, 2008

Michael, think about what you are saying – You must follow the license of the software you are aggregating. So, for example, we meet all of the requirements of the CCA license, so our distribution as part of an aggregate is fine. The same is fine for you, as long as you follow all terms of the GPL (the software you are aggregating) – which unlike the CCA (only requires attribution), has quite a few additional requirements (including copy-left/GPL requirements).

Comment by Jack Slocum — August 14, 2008

I don’t use to get into the typical Ext debate, but I think michael’s point is serious. Everything you include with a GPL distribution is GPL, PERIOD. If you are including famfamfam, you are changing the icons license and open legal ground to third parties to redistribute the icons (which are _not_ your IP) as GPL again, and drop the CC part. This is copyleft.

You may claim that this is not what you intended to do, but you are standing on uncertain legal ground.

If you want to do creative license interpretation, here is a bit more: I can use GPL software, as long as I don’t extend it (that’s why there are proprietary tools running on Linux). I suppose I could use ext as long as I don’t extend the inner classes and only use their APIs. It’s the same thing.

No, you cannot. Jack explicitely addressed this point in the ext license.

Sorry, but I don’t like getting creative with legal issues, and I think Michael has sound reasons to be concerned.

Comment by icoloma — December 15, 2008

Leave a comment

You must be logged in to post a comment.