Ext 2.2 Released
We are pleased to announce the release of Ext 2.2, a fully backwards-compatible maintenance release of Ext. This is a recommended upgrade for all Ext 2.x users as it not only adds many new components and examples, but also provides a host of important bug fixes and performance improvements.
New Features
While many minor release versions are simply boring bug fix releases, we have also decided to pack a bunch of brand new components and extensions into 2.2 for your enjoyment. Let’s start off with the fun stuff!
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. This was inspired, in part, by the RadioGroup user extension created by community member vtswingkid. Previously in order to accomplish similar grouping layouts for checkbox/radio controls you would have had to create a container with a ColumnLayout and manually place your controls across multiple column configs. Now you can do something as simple as…
... },{ xtype: 'checkboxgroup', fieldLabel: 'Multi-Column (horizontal)', columns: 3, items: [ {boxLabel: 'Item 1', name: 'cb-horiz-1'}, {boxLabel: 'Item 2', name: 'cb-horiz-2', checked: true}, {boxLabel: 'Item 3', name: 'cb-horiz-3'}, {boxLabel: 'Item 4', name: 'cb-horiz-4'}, {boxLabel: 'Item 5', name: 'cb-horiz-5'} ] },{ ...
Check out the live example.
History

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 has changed. Check out the live example.
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. Check out the live example.
For the time being these controls are still implemented as user extensions, and the MultiSelect will likely be migrated to become a core component in a future release. They should not yet be considered to be API-stable controls, but should still be quite useful if you need the functionality.
FileUploadField

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. Check out the live example.
XmlTreeLoader

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. Check out the live example.
GMapPanel

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. Check out the live example.
Other Notable Changes
“But wait, isn’t this a maintenance relase?”
It sure is, and there have been countless fixes and improvements in the framework since 2.1. Here are some of the most important highlights from what’s changed.
Full Firefox 3 Support

Firefox 3 is a fantastic upgrade from version 2 (especially on Mac — I’m looking at you, scrollbars!). Ext performance out of the box on Firefox 3 is far better than it was before. However, the negative is that the new version also introduced a handful of bugs that have been addressed in this Ext release. Most notably:
- Grid columns were visually misaligned
- Ext.onReady stopped working reliably (our desktop demo stopped initializing correctly)
- The DatePicker width ran off the screen, making the control unusable
- The TabPanel contextmenu event stopped firing, killing the TabCloseMenu extension
- Window dragging stopped working correctly
- Various minor visual inconsistencies
If any of these issues sounds familiar, then Ext 2.2 is for you!
Advanced Drag and Drop Examples

There are 3 new advanced drag-and-drop examples available in the Ext distribution, authored by community members Animal and JGarcia (thanks guys). These examples demonstrate:
Performance Improvements, Bug Fixes and Other Goodies
- New properties for differentiating Firefox version (Ext.isGecko2 and Ext.isGecko3)
- New support for deferred row rendering in the grid (the default), boosting render performance significantly
- Refactor of EventManager to improve how event handlers are managed, which should help alleviate IE DOM leaks
- Fixed the “small PNG’s can cause performance issues in IE7″ problem
- More than 100 additional fixes and improvements
Consult the 2.2 release notes to get a complete listing of all changes.
We are very happy with this release and hope that it will provide a lot of value to our community. And for all of you version 1.x users, we have not forgotten about you either. We plan to push out Ext 1.2 within the next few days to address many of the same bugs mentioned above, including Firefox 3 issues, so keep an eye out for that.










Great news, great work
I love extjs
Awesome!
Thanks guys for the hard work!
Thanks again for the great work! You guys rock!
Might want to tell old Ext users to purge their browser caches. I got “Ext.history” is undefined when trying the history example, worked as a charm after clearing my FF3 cache…
Guauuuuuuuuuuu!!
Excellent work as always Ext team!!!!!!!!
wuhuuuu.. I love the Ext.history add on
Very good job! Unfortunately no more with LGPL
bravo ext js…
Congrats!!!! Awesome work!
Now let’s implement comet
Do I missed something or there is no air folder ? Was it in 2.1 by default (I have)
Many Thank’s.
Great news!
Thank you, guys! It is quite intime event! We gonna begin new project and naturally will use 2.2!
But, as I understand, it is sadly has no tableform layout still..
Awesome! Thanks a lot.
Congratulations to the Ext Dev team on a job well done.
Yeah! Thx!
Awesome! And thank you very much for the FF3 fixes!
This is really an amazing project!
Excellent job, gentlemen.
Ext.History has made my day – thanks! FF3 fixes very much welcome too
This is great. Great job to the dev team and all the contributors. I think Ext 2.2 is a *major* update. Thank you so much for the hard work.
It is awesome.
(The sort in the grid filtering example does not work)
I absolutely love the improvements to the frameworks, but what about the FLOSS exceptions to the GPL License??? I thought you guys promised this would be fixed in version 2.2
Nevermind about the FLOSS exceptions. I found them under the licensing pages:
http://extjs.com/products/floss-exception.php
Thanks so much for the checkbox improvements! Use them a lot in my apps. And thanks for continuing to support 1.x — got a lot of apps still using that, with no time to update, and bug fixes for it will help out immensely.
非常棒!谢谢
well done! thanks
gut gemacht! Danke
Thank you for release.
Unfortunately have to report bug (and I am not allowed to do so via forums
Lithuanian weekday names are shofted by one. So, if one opens calendar, he sees that first day of the week is Tuesday (Antradienis); should be Monday (Pirmadienis).
Fix is available here: http://www.kasparas.net/ext-2.2-lt.diff
You can report a bug on the forums.
Just register, then create a thread at http://extjs.com/forum/forumdisplay.php?f=20
Awesome news! Great work Ext Team and Community. Thank you so much, my apps are 100x better thanks to Ext.
FYI, if anyone is having issues like the ones mentioned above (history, checkboxes) please hard-refresh. You probably have a stale file cached.
Thanks!!
i really like Ext
Really awesome! Can’t wait to start using it!
Great Work !!!
Thanks for the new release and the help you provide through forums
Great Job,Tanks!
Awesome! just the functionality that we needed.
Desde Venezuela, Buenisimo la nueva version nueva del EXT JS…
Saludos,
the newer, the greater!
Thanks for the upgrade! It is much appreciated!
Any details on how “deferred row rendering in the grid” will increase performance? I’ve got grids now that load up to 250 rows and was wondering how this new feature will help.
I searched the forums without any replies.
Thanks in advance!
Can anyone describe in a little more detail how much of an improvement was provided with:
“New support for deferred row rendering in the grid (the default), boosting render performance significantly”
We currently use EXTJS but have some tables with many hundreds if not thousands of records. Would 2.2 improve the local rendering of this data on the PC?
Thanks Very Much!
Ext-cellent!
Thx =)
First of all conmgratulations for the excellent work! The library rocks!
I work for a big brazilian company, now part of the biggest japanese group, Mitsubishi, and we were developing some architecture directives for all of our clients .At first sign, we were inclined to use Ext as our Rich GUI library, now we can’t do that anymore, we had problems with our lawyers, they think that you guys are a little confused with licenses and stuff. You guys gotta pay attention with those icons and prototype/jquery bridges and other little details…
Well, summarizing, we can’t use Ext anymore, we’ve lost 2 months of work and our clients won’t be able to have that rich and beautiful interface anymore… shame shame shame.
Ahhhh so nice. Thanks guys we love it!!
@joyfulbob and @Jeff Regarding the performance enhancements to the grid:
Previously the whole grid would be rendered up front (rows included). As of Ext 2.2, the grid’s panel will be rendered and then the rows will be filled in afterwards. This greatly improves rendering time by allowing layout calculations to take place and for the grid to be visible before it is populated. It will not improve loading of an Ext.data.Store or complex XML processing which you may have to do in an Ext.data.DataReader.
We’d love to hear any feedback about real world applications and the performance benefits that you’ve noticed simply by upgrading to Ext 2.2..
@Daniel
I work for a Global Fortune 50 company. The ExtJS library went through a rigorous IP review and passed with flying colors. I think you guys should get some better guidance.
Gary J, Thank you for your feedback, but better guidance… Mitsubishi? I don’t think so! Note, I’m talking about open license, not framework quality!
Plus ExtJS changed the license terms about 3 times in 2 years, We can’t consider that a secure aproach at all! Personally I love the framework, it’s nice, pretty, straight forward to learn… BUT (see? there’s always a but) in a company I would NOT use it unless the company buy a enterprise license.
Again, i wanna let things clear here, I know Ext since the very beginning, I’ve created some Struts2 customization using it, so I REALLY like it.
Daniel
I’ve had a similar experience. Even though Ext is a great framework, our lawyers have refused us from using it. The change of license with every release had a part to play. Even with 2.2 the license has changed.This time adding FLOSS.
Plus they got to read a lot about the bad press Ext got when they switched to GPL. In my opinion, if Ext had only a commercial offering and drop the whole GPL thing they would be better off
Omg i love you
Great work… Love the history component. Got Team Ext
Thanks for the hard work and this release !!
Geeeee!!! You guy are TOO MUCH!!!
Awesome. Keep the hard work.
@Aaron Conran
OK,thanks for the “Regarding the performance enhancements to the grid” info. A quick test of loading 142 records that are then grouped seems quicker; from about 8-10 seconds to 4-5.
I’ll do more testing. Do you have an idea of how many rows to notice a significant improvement?
Thanks!
still no RTL support
This release is missing yui-utilities.js file.
For all those who use YUI along with extJS, this release not work
(
@Joyfullbob – I would say that an improvement of cutting your rendering time in half is quite an improvement. Your rendering should not be taking that long though. Maybe post on the forums to try to see why your grid rendering is taking that long.
History manager, great. That’s what I’ve been looking for for weeks.
Thanks!
For rendering performance look at the qooxdoo framework. I think that if ExtJS will use similar approach that it can perform better (for example 10000 rows isn’t problem here)
Hey! The Google Map Panel is Really a cool and awesome one… Excellent!!
Where’s the release of Ext 1.2 ? It was supposed to be released “within the next few days”, back on Aug 4th, 17 days ago.
Please release it, so that I can incorporate the Firefox 3 fixes into our codebase.
what about ext-air in 2.2??
Fantastic work on 2.2! History and MultiSelect are indeed star attractions. With a file upload field as icing on the cake, it’s a tasty morsel indeed!
I don’t even know who you are but I’m deeply in love with you guys.
Thanks.
good job! but i have the following issue: when i run some of the examples they show nothing! they work perfectly online, but not on my working computer. there’re no errors, just no data is shown. this is for layout sample and for columned tree.
Do you realize how damaging this GPL licensing issue is going to be for your library? Can you condsider releasing it as well under a commercial license? Please don’t be yet another example of a good technology destroying itself.
JQuery performance (specially on page init) was a problem. Now it seems better.
thank’s very much to “ext”, i love you…
don’t stop to share your knowledge about this to us…
excellent .很棒
Excellent! I love my extjs
Thank you for all that you have done for this excellent application.
Hello, I can’t understand how to add your blog ( extjs.com ) in my rss reader
————————
my blog: http://vahar.ru/
Hi,
hopefully an easy one:
I have a TabPanel with initial height. Inside i have a resizable element. When i resize it, tabPanel doesn’t change dimension, so part of content is hidden.
How can i achieve auto-grow, or have i to do it manually by resize event?
Great post! I’ll subscribe right now wth my feedreader software!
Да уж… Тут как в поговорке: Агриппине засвербило в спине
I am grateful to you for this great content.aöf
SUper post about the ext js. Really enjoying your contributions.
this is really awesome. You are the key of our succes with our community. More powerful than Mootools.
cillop gibi blog
Nice post,Thanks for sharing it.