As many of you know, in certain areas, GXT performs noticable slower than Ext JS. Improving performance has been a high priority. There have been some new changes I wanted to share.
TabPanel has been improved in 3 places.
1. TabItems are now only rendered when the tab is selected, not when it is added.
2. When switching tabs, the active tab does not execute its layout if it has already been rendered and the size of the panel has not been changed.
4. CardLayout, which tab panel uses, now will only render the active child.
With the new code, the tab panel renders faster, and tabs are added quicker. The most noticeable change is when switching tabs, which now happens with no delay. Also, the scroll state of tab items is now preserved when swithing between tabs
BoxComponent calls onResize whenever it is resized. Many subclasses recalculate their internal layout by overriding onResize. The call to onResize now only occurs if the the size since the last resize has changed. So if a component is resized to by 100 by 100 onResize will be called if. If the comonent is resized again, with 100 by 100, onResize will not be called.
I have put the explorer demo online with the new code. Take a look here:
We will continue to work on improving performance as there are still places that can be optimized.