# Ext Release Notes for 3.1.0

# Release Notes for Ext 3.1.0

Release Date: Dec 14, 2009
Current Version: 3.1.0 (rev 5770-119)
Previous Version: 3.0.0 (rev 4747)

## Overview

- Bug fixes.
- Enhancements.

## Changes

- Ext.DatePicker
  - Fixed the first set of days when the startDay was not 0

- Ext.menu.Menu
  - Only cascade the menu hiding up when the menus are floating
  - Moved the beforeshow event to showAt inside the menu, since show either always calls the superclass show method, or calls showAt
  - Use the getItemId methods instead of referring to the itemId

- Ext.form.HtmlEditor
  - Used insertHTML because it's supported in Safari and Chrome

- Ext.Panel
  - Have onLayout method respect force to ensure that toolbars are laid out when force is passed
  - Only add animation classes if we're actually animating. Helps resolve DOM reflow issues in FF
  - Fixed the panel so that tools aren't created too early. A header will now be properly created when specifying tools (collapsible: true creates tool). It may be necessary to now explicitly set @cfg header:false in some situations (e.g. setting collapsible will now correctly create a header)

- Ext.MessageBox
  - Fixed an issue where MessageBox width is calculated differently depending on the previous content

- Ext.data.DirectProxy
  - Remove idProperty being written in DataWriter. This was unnecessary information since all info required by server to perform some CRUD action is in the request "root." The examples were updated also.

- Ext.Window
  - Changed the window animations event to not be blocked. This resolved the issue specified in the thread without having to modify the core code

- Ext.Component
  - Add note to config: itemCls that it is only relevant when the Component is being rendered by a FormLayout layout manager
  - Remove redundant config option
  - Add a flag to ensure a component may only be destroyed once. This will fix a series of issues, but also fixes the one mentioned in the ticket
  - Components now have an onAdded and onRemoved method and are aware of when they are added/removed to their respective Container. They will fire an added and removed event. References are properly cleaned up after removing a component from its owning container. References are established at add time rather than at render time
  - Added tpl, tplWriteMode and data configurations to Ext.Component. Added an update method which accepts data for a template or an html fragment/domhelper configuration to update the content area of a component

- Ext.ux.StatusBar
  - Encapsulate the class under one folder (examples/ux/statusbar)
  - Correction to the animated hide of the element since the statusElement changed from an Ext.Element to a toolbar item
  - Correction to initial iconCls not being removed when the icon was updated

- Ext.grid.ColumnDD
  - Fix for columnmove event firing twice. The event for columnmove is now fired in onColumnMove in the GridView, which means the event in ColumnDD is now redundant

- Ext.tree.TreePanel, Ext.tree.TreeNodeUI, Ext.tree.TreeNode
  - Added a beforedblclick event

- Ext.util.CSS
  - When interrogating rules in IE, elements are written in caps (eg DIV). This caused issues when retrieving the rules

- Ext.form.Field, Ext.form.TextField
  - Make validation more efficient if the validation event is set to blur. Prior behavior when setting validationEvent to 'blur' would cause an additional blur event handler to be attached, even though there was one already attached

- Ext.grid.Column, Ext.grid.ColumnModel
  - Change to the 2.x behavior where column's that do not specify an id will use the ordinal position of the column to generate the id, instead of autogenerating unique id's for every column

- Ext.grid.GridView, Ext.grid.GroupingView, Ext.list.ListView, Ext Core
  - Due to various factors, the scroll bars on the operating system can differ (theme, font size). As such, a static value isn't always appropriate. This adds a method to dynamically calculate this

- Ext.TabPanel, Et.form.Field, Ext.form.Form, AccordionLayout, ContainerLayout, FormLayout, Container
  - Several modifications to fix issues with form layout:
    - Added the ability to hide and show field labels with the Field
    - Added new template methods for when an item is added to and removed from a Container
    - Added a method to allow layouts to clean up after themselves
    - Form layouts can now be dynamic (moving fields to another form)

- Ext.tree.TreeSelectionModel
  - Fixed an issue where hidden tree nodes are visited when using keyboard navigation. The behaviour now is that they are skipped over properly

- Ext.data.Api, Ext.data.DataProxy
  - Added 3 hook functions in Ext.data.Api for listening to proxy-events 'beforewrite', 'write' and 'exception'. Since all proxies are run through Ext.data.Api#prepare, this was easily done automatically. These hooks are great places for devs to implement user-feedback messages. Also had to move a small block of code (The call to Ext.data.Api#prepare) in DataProxy to *after* the call to super (Observable), which will cause no problems

- Ext.Editor, Ext.form.Field, Ext.form.TriggerField, Ext.grid.GridPanel, Ext.form.TextField, Ext.grid.CellSelectionModel, Ext.grid.EditorGrid, Ext.form.Combo, Ext.grid.RowSelectionModel, Ext.util.KeyNav
  - General overhaul of the key handling system to make events, especially in the editor grid, more consistent across browser and operating system

- Ext.data.DataWriter, Ext.data.JsonWriter, Ext.data.XmlWriter
  - XmlWriter now renders XML using Ext.XTemplate. If users have a problem with the XML schema, they can provide their own template to XmlWriter constructor. Also made DataWriter#toHash a bit smarter dealing with meta.idProperty

- Ext.form.HtmlEditor
  - Added a fix to stop the default value of the editor being posted to the server because it can cause encoding issues

- jQuery Adapter, YUI Adapter, prototype Adapter
  - Fixed an issue where firefox would erroneously report elements as existing. Very old bug in FF, still not fixed

## New

- Significant IE6-8 memory improvments
- Grouping GridView
- Locking Grid Column
- TreeGrid
- VBox Form
- Grid Filtering
- Editor

## Documentation Improvements

- Ext.grid.RowSelectionModel
- Ext.grid.CheckboxSelectionModel
- Ext.grid.GridView
- Ext.grid.Column
- Ext.Panel
- Ext.XTemplate
- Ext.form.Action
- Ext.util.MixedCollection
- Ext.tree.TreeNode
- Ext.form.TextField