Ext JS - JavaScript Framework

# Release Notes for Ext JS 4.0 Final

Release Notes: April 26, 2011
Version Number: 4.0.0

## New In This Release

- New Features
  - [EXTJSIV-919] - CheckHeader fires an additional change event
  - [EXTJSIV-1291] - Charts draw undefined values
  - [EXTJSIV-1352] - Floating should allow Component as an argument to alignTo

- Bug Fixes
  - [EXTJSIV-2] - Normalize text baseline calculation for FireFox 3.0 and 3.5
  - [EXTJSIV-495] - Forum search example - search does not work
  - [EXTJSIV-513] - DragSelector does not maintain selection in IE
  - [EXTJSIV-528] - Improve class loader performance
  - [EXTJSIV-571] - autoHeight Box layouts
  - [EXTJSIV-672] - Active tab has dark line beneath in access theme
  - [EXTJSIV-697] - Element loses event Listener
  - [EXTJSIV-788] - Grid in accordion layout displays scrollbars
  - [EXTJSIV-820] - Ext.util.Format.usMoney is not inserting commas into the returned string
  - [EXTJSIV-826] - When removing + then adding grid summary, it does not add x-grid-cell-first
  - [EXTJSIV-860] - Row editing shadow issue
  - [EXTJSIV-863] - IE Header menu issue
  - [EXTJSIV-869] - Changing Collapsed Titles in a Border Layout
  - [EXTJSIV-871] - form-grid example layout in IE6
  - [EXTJSIV-873] - menu shows a small rectangle when it has no items
  - [EXTJSIV-876] - Grid Menu allows hiding all columns
  - [EXTJSIV-901] - updateRecord w/ radio group
  - [EXTJSIV-902] - FieldContainer misses clearInvalid
  - [EXTJSIV-910] - Need to know when Surface is rendered
  - [EXTJSIV-912] - IE6 & 7, FF4: Grid Header misaligned with the gridview
  - [EXTJSIV-932] - Gauge series needs docs.
  - [EXTJSIV-936] - Trigger field is not flushed using the access theme in IE 6 and 7
  - [EXTJSIV-975] - Font styles are inconsistent across components
  - [EXTJSIV-976] - TreeSelectionModel does not use checkbox images
  - [EXTJSIV-977] - Ext.isFunction return true with a NodeList in Safari 3-4
  - [EXTJSIV-979] - CSS styling wrong after collapsing Navigation panel
  - [EXTJSIV-981] - Resizing failure with layout-browser.html --> Table
  - [EXTJSIV-983] - Border line is missing beneath the grid header row
  - [EXTJSIV-984] - Bottom scrollbar is not flushed with the right scrollbar
  - [EXTJSIV-986] - Grid state does not save column width
  - [EXTJSIV-993] - IE9 Strict Rendering issue with form.fieldset
  - [EXTJSIV-994] - IE9 Strict Border layout issue
  - [EXTJSIV-995] - IE7: Artifact in top-left corner of framed panel
  - [EXTJSIV-996] - Field/Trigger placement in top toolbar needs to move down 1 pixel
  - [EXTJSIV-999] - Both framing and flushing trigger button issues seen in IE 7
  - [EXTJSIV-1000] - DatePicker Month title color is black
  - [EXTJSIV-1002] - IE9 Strict Collapsible button in Ext.form.Fieldset aren't displayed correctly
  - [EXTJSIV-1004] - Group header grid example is broken
  - [EXTJSIV-1005] - Locking Grid Lock/Unlock throw an error
  - [EXTJSIV-1007] - IE9 Strict - RowEditor scrolls the grid view when starting an edit
  - [EXTJSIV-1008] - Splitter's calculated collapse directions are wrong. 'up' should be 'top', 'down' should be bottom.
  - [EXTJSIV-1010] - Check/Radio example, white background
  - [EXTJSIV-1011] - IE 9 Quirks Pie chart example Pie parts border issue
  - [EXTJSIV-1012] - NumberField - Bottom trigger doesn't hover
  - [EXTJSIV-1013] - IE9 Quirks Message Box Multi-line prompt: Input width is too large
  - [EXTJSIV-1014] - ItemSelector button icons missing
  - [EXTJSIV-1015] - IE9 Strict Tree Checkbox are not correctly positioned
  - [EXTJSIV-1016] - Grey background on drag drop indicator on IE6
  - [EXTJSIV-1017] - IE9 Drag and Drop in TreePanel does not work correctly
  - [EXTJSIV-1020] - Clipping of letters in vertical header titles
  - [EXTJSIV-1021] - IE9 Custom Styles progress bar doesn't show XP style
  - [EXTJSIV-1022] - Wrong font for vertical header titles with IE 9
  - [EXTJSIV-1023] - The minButtonWidth is applied to non-buttons in fbar
  - [EXTJSIV-1025] - Tree shifts after expand/collapse animation in all IEs
  - [EXTJSIV-1028] - Grid: Promote from Markup example doesn't work in IE6 &7
  - [EXTJSIV-1029] - Added an Associations example
  - [EXTJSIV-1031] - draw/Logos Example the window is too big
  - [EXTJSIV-1033] - Safari 5 Mac Tabs rendering glitch
  - [EXTJSIV-1036] - Grid Window in Desktop example permanently loses scrollbars during window resize
  - [EXTJSIV-1039] - IE 6 &7 Only: After resizing flexed column very wide
  - [EXTJSIV-1040] - statusbar/statusbar-demo.html toolbar items alignment issue
  - [EXTJSIV-1042] - Clicking constrained windows does not bring constraining window to top
  - [EXTJSIV-1044] - Gap between box elements in keynav example
  - [EXTJSIV-1045] - examples/layout/snap-windows.html throws "Attempting to extend from a class which has not been loaded on the page."
  - [EXTJSIV-1048] - Inaccurate lastComponentSize returned
  - [EXTJSIV-1049] - Grid filters are lost when clicking Add Columns in Custom Grid Filters Example (local filtering)
  - [EXTJSIV-1050] - Feedviewer "view post" has no margin/padding
  - [EXTJSIV-1051] - Stateful grid doesn't work in IE6
  - [EXTJSIV-1052] - Multi line message box doesn't show a scrollbar (IE6)
  - [EXTJSIV-1054] - Portal dragging breaks
  - [EXTJSIV-1055] - DataView dragged selection not applying in IE6
  - [EXTJSIV-1056] - Adding more rows after scrolling to the bottom of grid view causes the row editor to disappear
  - [EXTJSIV-1057] - Quickly trigger window show / hide while it's still animating screws layout / visibility checking
  - [EXTJSIV-1058] - Resizing window while it's being masked does not resize the masking layer
  - [EXTJSIV-1059] - Error using GridViewDragDrop plugin
  - [EXTJSIV-1062] - Menu items don't layout to full width
  - [EXTJSIV-1063] - Window.show() no longer does a toFront() as in 3.x
  - [EXTJSIV-1064] - Vertical toolbar separators are vertical but should be horizontal.
  - [EXTJSIV-1067] - Toolbar enableOverflow property not respected
  - [EXTJSIV-1071] - Tree getRecords doesn't work correctly
  - [EXTJSIV-1075] - collapseAll shouldn't collapse root if rootVisible is true
  - [EXTJSIV-1076] - Possible missing variables
  - [EXTJSIV-1078] - Shadows look odd on non-white backgrounds
  - [EXTJSIV-1079] - Theme example is missing some components
  - [EXTJSIV-1084] - Tab height/tabbar height is not consistent with 3.3
  - [EXTJSIV-1085] - Tab panel and panel headers need to be the same size
  - [EXTJSIV-1087] - API Change: Ext.tab.TabPanel renamed to Ext.tab.Panel
  - [EXTJSIV-1088] - Toolbar Buttons when against the Left side of the gutter need more padding
  - [EXTJSIV-1089] - In theme example, tree panel is not in the accordion panel
  - [EXTJSIV-1091] - In theme example, paging toolbar does not display default page number
  - [EXTJSIV-1092] - Grid Shifts on Header Trigger Click
  - [EXTJSIV-1093] - Theme example: scrollable tab indicator is off by a pixel
  - [EXTJSIV-1095] - Theme example - missing multi-trigger field inside GridPanel toolbar
  - [EXTJSIV-1100] - Button config renders incorrectly - "submit" seems off center
  - [EXTJSIV-1103] - Padding on toolbar buttons is two pixels at the bottom and one pixel at the top. Should be two pixels on both.
  - [EXTJSIV-1104] - Framed panel does not have bottom border when headerPosition:top
  - [EXTJSIV-1106] - iconCls not honored on Ext.grid.column.Action
  - [EXTJSIV-1108] - pressed state buttons have a background in the corners?
  - [EXTJSIV-1110] - Split button and menu button: Text and arrow have too much space in between
  - [EXTJSIV-1111] - Error when using tab in Writer Example
  - [EXTJSIV-1115] - FeedViewer Add Feed Window is too small
  - [EXTJSIV-1116] - Accordion panel - accordion titles have more padding on bottom than top
  - [EXTJSIV-1119] - In the list of examples, it's impossible to close a set of examples
  - [EXTJSIV-1120] - Border Layout collapsed vertical header has dark black bold text
  - [EXTJSIV-1122] - Feed View Looses Scroll Bar
  - [EXTJSIV-1123] - Live Grid Search Example does not have screenshot
  - [EXTJSIV-1125] - When changing feeds, tabs have the wrong size
  - [EXTJSIV-1126] - RowEditor edging for buttons in IE
  - [EXTJSIV-1128] - Feed viewer - add feed dialogue box is missing several elements
  - [EXTJSIV-1129] - TextField 1px taller than other fields
  - [EXTJSIV-1131] - Image Viewer Example: Unable to edit album names in the tree
  - [EXTJSIV-1132] - Panel header has 1 pixel white on left and right
  - [EXTJSIV-1136] - Paging Grid Example: JsonPProxy in the header isn't the name of the class in the code
  - [EXTJSIV-1138] - Paging Example: disablePagingSelection:true is not respected
  - [EXTJSIV-1139] - Portal example - if all components are in one column, cannot drag to 3rd column
  - [EXTJSIV-1143] - Property grid does not have an indicator to show it's a property grid
  - [EXTJSIV-1144] - Property Grid Example is too large -- should fit the size to make it look more like a property grid
  - [EXTJSIV-1146] - Editor Grid Example: Clicking from Common Name in an editor to Light doesn't invoke an editor
  - [EXTJSIV-1147] - Grid editing example - resizing the column while editing behaves incorrectly
  - [EXTJSIV-1148] - Custom Grid Filters: Menu is lost on refresh of view
  - [EXTJSIV-1150] - GroupTextTPL is not implemented
  - [EXTJSIV-1153] - Row Editing: When editing a row, pixels are missing from the bottom left and bottom right box
  - [EXTJSIV-1154] - Row Editing: Single click doesn't move the row editor
  - [EXTJSIV-1155] - Row Editing plugin/example needs to be more like 3.3
  - [EXTJSIV-1156] - Row Editing: Scrolling and row editor in the wrong place when clicking "Add Plant"
  - [EXTJSIV-1160] - No loading indication when you open up a node
  - [EXTJSIV-1161] - Empty Tree has +/- button
  - [EXTJSIV-1163] - Grouped Grid Example: Missing Collapsable on the Panel and Clear Grouping on the bottom
  - [EXTJSIV-1164] - Tool missing disabledCls
  - [EXTJSIV-1166] - Summary Grid Example: Button needs to be fixed
  - [EXTJSIV-1167] - Status bar example - clock shows up randomly when you start typing
  - [EXTJSIV-1174] - Need a Remote Filtering Example
  - [EXTJSIV-1175] - Grid Filtering Example: No Date Column
  - [EXTJSIV-1176] - Clean up main example page
  - [EXTJSIV-1177] - Grid Filtering Example: No Boolean Filtering
  - [EXTJSIV-1179] - Data Writer example appears to not work
  - [EXTJSIV-1181] - grouped header grid example - crash chrome when dragging a header into it's children
  - [EXTJSIV-1183] - Grid Multiple Sorting is missing a splitter after sorting order
  - [EXTJSIV-1185] - Tab Scroller Menu Plugin: Misalignment on top of overflow tabs
  - [EXTJSIV-1186] - Message Box Confirm Dialog needs more spacing between Yes/No buttons
  - [EXTJSIV-1188] - Tree Open Animation is incorrect
  - [EXTJSIV-1190] - Incorrect default body padding?
  - [EXTJSIV-1191] - Layout browser -> Center layout. Auto height not expanding to body contents
  - [EXTJSIV-1192] - Complex Layout Example: On load, property grid is selected, but "A Tab" is rendered
  - [EXTJSIV-1194] - In a combo box, hitting space inside combobox presents user with a big gray box
  - [EXTJSIV-1195] - Need an Combo Box Example with Transforms
  - [EXTJSIV-1196] - Combo with Templates and Ajax draws the searching box incorrectly on first load
  - [EXTJSIV-1197] - Need an example of a fieldset side by side
  - [EXTJSIV-1198] - Wrong Collapse Indicator in Checkbox Radio Groups
  - [EXTJSIV-1199] - Bring Back Flash Component (if necessary)
  - [EXTJSIV-1200] - Combobox in a Menu Dropdown is Flush with Left Edge
  - [EXTJSIV-1201] - Submenu is Lost when Resizing Window
  - [EXTJSIV-1203] - Ext.Action Example should port the existing Action Example over
  - [EXTJSIV-1205] - Cannot read property 'afteredit' of undefined
  - [EXTJSIV-1209] - Advanced DataView Example: Animation poofs, it doesn't zoom back to the grid when selecting an item
  - [EXTJSIV-1210] - History Example doesn't work
  - [EXTJSIV-1214] - Progress bar example needs a blue background
  - [EXTJSIV-1216] - Panel Example "Panel as Child" is missing border for header in first child
  - [EXTJSIV-1219] - Portal columns disappear when removing all portlets (regression)
  - [EXTJSIV-1220] - Numeric Axis shows extra
  - [EXTJSIV-1222] - Rename Ext.container.Viewport isViewPort property to isViewport
  - [EXTJSIV-1223] - GroupGrid does not scroll if using paginggridscroller
  - [EXTJSIV-1231] - ComboBox's bound list: Shadow persists when Store is filtered to zero matches and the list shrinks to zero height.
  - [EXTJSIV-1232] - DatePicker as dropdown from a DateField should dismiss when you press ESC
  - [EXTJSIV-1233] - API DOC Browser Class links issue
  - [EXTJSIV-1235] - Testing: Ext.tip.Tip spec fails in IE6-8
  - [EXTJSIV-1237] - Move Rob's framing command over to use jarred's new tool
  - [EXTJSIV-1239] - Need to implement .x-small-editor sizing for form fields
  - [EXTJSIV-1240] - Regression on rotated labels (check the area select example in test/ui)
  - [EXTJSIV-1243] - Fix a bug where NodeInterface decorate would always override data fields in your Model, even if they already existed.
  - [EXTJSIV-1245] - ComboBox selectOnTab does not work if the field has a value.
  - [EXTJSIV-1246] - Accordion layout fails with hidden items
  - [EXTJSIV-1247] - MessageBox doesn't work with animateTarget
  - [EXTJSIV-1249] - Grid column resize indicators don't show when used inside border layout
  - [EXTJSIV-1250] - Combo with no value returns empty array
  - [EXTJSIV-1251] - Phantom records should not be added to removed
  - [EXTJSIV-1252] - Border Layout collapseMode mini positioning incorrect
  - [EXTJSIV-1253] - Tree needs checkchange event
  - [EXTJSIV-1254] - Grouping needs to refresh the scroller on grid expand/collapse
  - [EXTJSIV-1255] - MessageBox reacts to enter keypress even when hidden
  - [EXTJSIV-1257] - Unable to control whether or not the checkbox is shown for certain rows with CheckboxModel
  - [EXTJSIV-1258] - Setting border false on grid, headerCt still keeps borders
  - [EXTJSIV-1260] - DirectProxy doesn't accept string paramOrder
  - [EXTJSIV-1261] - Reconfigure breaks when used with locked columns
  - [EXTJSIV-1263] - Window body is slightly different color than window frame
  - [EXTJSIV-1264] - The grid-plugins example takes a long time in IE 6 to display the grids and scrollbars
  - [EXTJSIV-1265] - Tabs are broken with draw/Logos.html in IE 8.0
  - [EXTJSIV-1266] - Row Editing broken when not specifying an editor
  - [EXTJSIV-1267] - Framing for the access example is broken in some browsers
  - [EXTJSIV-1268] - Grouping Feature - Events provide no context, aren't fired on the grid
  - [EXTJSIV-1272] - Add extra string methods to Ext.util.Format so they can be used with templates
  - [EXTJSIV-1273] - Dragging and Dropping Panels in the Portal Example lose Tools
  - [EXTJSIV-1274] - Identify and fix transitory Table View memory leak in IE6 &IE7
  - [EXTJSIV-1279] - Nested Windows not hiding themselves when floatParent (tab) hides.
  - [EXTJSIV-1280] - Window that is a child of TabPanel doesn't get hidden when Tab is switched, not hiding itself when its floatParent hides.
  - [EXTJSIV-1281] - DataView#ItemOver tracking does not always detect onItemMouseLeave
  - [EXTJSIV-1282] - Specifying groupable:false on a column definition has no effect
  - [EXTJSIV-1283] - Identify and Fix transient memory leak in the HtmlEditor
  - [EXTJSIV-1284] - Borders are no longer correct.
  - [EXTJSIV-1285] - Messagebox text not wrapping properly.
  - [EXTJSIV-1286] - Fieldsets too large in HBox layout in Firefox
  - [EXTJSIV-1288] - Chart axes and line not aligned
  - [EXTJSIV-1289] - RowEditor - option to prevent moving editor to new row when there are pending changes
  - [EXTJSIV-1290] - setClosable on Tab will not remove element
  - [EXTJSIV-1292] - beforeshow recursion and error
  - [EXTJSIV-1296] - Several tree examples are failing in IE (all versions)
  - [EXTJSIV-1297] - Hard Error: Not implemented error seen with IE 8
  - [EXTJSIV-1298] - ComboBox dropdown has horrible rendering artifacts in IE6
  - [EXTJSIV-1299] - ComboBox triggerAction:'all' not working after list has been filtered
  - [EXTJSIV-1301] - PropertyGrid throws error when editing
  - [EXTJSIV-1303] - Model constructor needs to support array data
  - [EXTJSIV-1304] - ButtonGroup styling is not perfect. issue with header
  - [EXTJSIV-1305] - TreePanel.selectPath fails
  - [EXTJSIV-1306] - RowEditing example - migrate 3.3 example so it is the same
  - [EXTJSIV-1307] - RowEditing - make animation speed more like 3.3 by default
  - [EXTJSIV-1308] - Sub-menu menu is not aligned properly
  - [EXTJSIV-1309] - Menus are misaligned in buttons
  - [EXTJSIV-1310] - Disabling form does not disable radios and check boxes
  - [EXTJSIV-1311] - Tab scroller arrows are not correctly aligned
  - [EXTJSIV-1312] - Central tab panel in the themes example has tabs that are too wide
  - [EXTJSIV-1314] - Forum browser has 2px blue border on left edge of grid
  - [EXTJSIV-1315] - Collapse icons disappear when moving a portlet
  - [EXTJSIV-1316] - Panel expand icon is positioned 1px/2px too low
  - [EXTJSIV-1318] - Gap between buttons in a window is too small
  - [EXTJSIV-1319] - Locking grid borders are wrong
  - [EXTJSIV-1323] - Menu Submenus can get out of alignment
  - [EXTJSIV-1324] - Status Bar breaks easily
  - [EXTJSIV-1325] - Status bar date too low
  - [EXTJSIV-1326] - QuickTips close button missing a bottom border
  - [EXTJSIV-1327] - Floater.js should not reopen a floating component based solely on its visible state prior to hiding its floatParent
  - [EXTJSIV-1329] - Vertical header text in IE9 is the wrong font
  - [EXTJSIV-1330] - RowEditor is missing panel frame corners on bottom left/right of buttons
  - [EXTJSIV-1332] - Application.getController not using Ext.Loader
  - [EXTJSIV-1333] - Locking grid doesn't get viewConfig from the GridPanel
  - [EXTJSIV-1334] - Tip + Window issues
  - [EXTJSIV-1335] - Stroke opacity in VML
  - [EXTJSIV-1336] - RowExpander removes other features
  - [EXTJSIV-1338] - Grid doesn't disable properly
  - [EXTJSIV-1339] - Store needs clear event - should be fired after a removeAll
  - [EXTJSIV-1340] - Area chart showing incorrect values
  - [EXTJSIV-1341] - TabPanel without borders has odd looking headers
  - [EXTJSIV-1342] - ColorPicker selected class not correct in CSS
  - [EXTJSIV-1344] - Grid Editing with checkbox editor shows cell contents
  - [EXTJSIV-1345] - Editor revertInvalid doesn't default to true like the docs say
  - [EXTJSIV-1346] - Bad global variable detected by test reporter in AbstractComponent
  - [EXTJSIV-1347] - Browser resizer interferes with textarea
  - [EXTJSIV-1350] - RowEditor should disable its update button when there are validation errors
  - [EXTJSIV-1353] - Desktop Example does not work with dynamic loader (only ext-all)
  - [EXTJSIV-1354] - Can't assign idProperty when creating implicit fields
  - [EXTJSIV-1355] - Can't destroy grid with DD
  - [EXTJSIV-1356] - Collapsed grid crashes when expanded
  - [EXTJSIV-1357] - Combo needs a hiddenName property
  - [EXTJSIV-1358] - RowEditor - very quick grid view scroll prior to full rendering results in an error
  - [EXTJSIV-1359] - Framed buttons (IE 6-8) lose their styles when focused or mouseovered
  - [EXTJSIV-1361] - on tree.Panel the scroller element still has a border when bodyBorder is set to 0
  - [EXTJSIV-1365] - Transparency is not working in the slicer tool
  - [EXTJSIV-1367] - There is no styling for overflowHandler Scroller for Toolbar (used by Desktop example)
  - [EXTJSIV-1371] - Radio buttons look like stars for the access theme
  - [EXTJSIV-1372] - Tooltips with more than text configuration do not work reliably on Chrome, Safari and IE
  - [EXTJSIV-1373] - Default window background is incorrect?
  - [EXTJSIV-1374] - Button group needs more right margin
  - [EXTJSIV-1376] - htmleditor font combo stays above all content in IE6 (only)
  - [EXTJSIV-1377] - Grid column dropped into wrong place when inserting into a locked area
  - [EXTJSIV-1378] - Locking grid: crashes when you drag a column to the first column index
  - [EXTJSIV-1379] - Make upgrade guide clear that form submission must now use the API
  - [EXTJSIV-1381] - Create a test for toolbars in every situation
  - [EXTJSIV-1382] - Masking behavior not correct in theme viewer example
  - [EXTJSIV-1383] - Vertical text is cut off if the panel is collapsed
  - [EXTJSIV-1385] - Icon in tree has incorrect padding
  - [EXTJSIV-1386] - Double triggers seem in example
  - [EXTJSIV-1387] - Double pixel border on the left side of the accordion panel
  - [EXTJSIV-1388] - Need to add a UI test to make sure a framed grid can have rounded corners
  - [EXTJSIV-1393] - Pie chart needs to deal with 0 values
  - [EXTJSIV-1394] - Portlet z-index issues when dragging
  - [EXTJSIV-1395] - Tree doesn't setup all dependencies
  - [EXTJSIV-1397] - Locking doesn't provide a centralized view
  - [EXTJSIV-1399] - RowEditor buttons &grid scroller have an issue in Opera 11.01 only
  - [EXTJSIV-1400] - menu.Manager::get, variable undefined
  - [EXTJSIV-1402] - Sprite doesn't clean up draggable
  - [EXTJSIV-1403] - SplitButton - overArrow flag gets stuck
  - [EXTJSIV-1404] - GridPanel should have getStore method
  - [EXTJSIV-1405] - Button onMenuTriggerOver/Out is not accurate
  - [EXTJSIV-1407] - RowNumberer - needs a better way to determine the row number
  - [EXTJSIV-1408] - Organizer example: Dropping the same image into an album twice throws a hard error
  - [EXTJSIV-1409] - RowEditor throws an error when starting a new edit after a previously failed validation
  - [EXTJSIV-1410] - RowEditor must update its error summary tooltip for changes to the same field
  - [EXTJSIV-1411] - Access theme needs image for number field trigger buttons
  - [EXTJSIV-1416] - Adding a docked:top toolbar tp a headerPosition:right panel/window causes a bug
  - [EXTJSIV-1418] - Inconsistent look for accordions header titles between browsers
  - [EXTJSIV-1419] - Inconsistent direction from dark to light for gradient colors in the Logos example
  - [EXTJSIV-1422] - TabPanel has incorrect bottom border
  - [EXTJSIV-1423] - Divider line in toolbar is not vertically centered, also doesn't look correct
  - [EXTJSIV-1426] - No gap between the accordion headers in Safari 4.0
  - [EXTJSIV-1427] - GridEditing: Column to use editor, field or some other name
  - [EXTJSIV-1429] - The >> button is not vertically centered in the overflow toolbar examples
  - [EXTJSIV-1430] - overItemCls not working
  - [EXTJSIV-1432] - Trailing comma in forum/forum.html example
  - [EXTJSIV-1436] - Grid sorting icons slightly mispositioned
  - [EXTJSIV-1438] - Grid column header text slightly mispositioned in all IEs
  - [EXTJSIV-1439] - Window buttons have an ugly border in IE6 and IE7
  - [EXTJSIV-1440] - Rest proxy doesn't respect api config
  - [EXTJSIV-1441] - Vertical toolbar separators margin is incorrect. Seems to get more on the bottom
  - [EXTJSIV-1442] - Uncaught TypeError: Cannot call method 'bringToFront' of undefined
  - [EXTJSIV-1444] - Vertical toolbars need to have no margin on the bottom, not the right
  - [EXTJSIV-1445] - li style disc not set when using styleHtmlContent
  - [EXTJSIV-1446] - /core gets doubled up in the distributed package
  - [EXTJSIV-1447] - Form DirectLoad callback fires twice
  - [EXTJSIV-1448] - Borders need help
  - [EXTJSIV-1449] - Grid Locking and Sorting not in SYNC FF4
  - [EXTJSIV-1450] - Accordion bottom border incorrect
  - [EXTJSIV-1451] - Legend renders incorrectly in Chart FF4.0
  - [EXTJSIV-1452] - Drag and Drop broken in FF4 organizer example
  - [EXTJSIV-1453] - Vertical header text in FF is the wrong font
  - [EXTJSIV-1455] - theme example doesn't select a theme on first load, it seems.
  - [EXTJSIV-1456] - ComboBox remains open after selection in grid cell editing
  - [EXTJSIV-1457] - createBuffered ignores scope
  - [EXTJSIV-1458] - File field crashes when you use disabled: true
  - [EXTJSIV-1461] - Highlight on charts uses the same window shadow?
  - [EXTJSIV-1462] - Legend doesn't renable a value FF4
  - [EXTJSIV-1463] - Menu issues on FF when messing with charts
  - [EXTJSIV-1464] - Flicker on Animation of Window Showing and incorrect initial position of windows
  - [EXTJSIV-1465] - ComboBox in a menu does not react correctly
  - [EXTJSIV-1466] - Leaves a menu up when using the color picker in an overflow
  - [EXTJSIV-1467] - Status bar too short
  - [EXTJSIV-1468] - Selection range implemented poorly
  - [EXTJSIV-1469] - ComboBox with remote search example does not act intuitively
  - [EXTJSIV-1470] - Remove Simple MVC example from examples
  - [EXTJSIV-1475] - Vertical separators in toolbars are missing in quirks mode in IE (all versions)
  - [EXTJSIV-1477] - Left border is missing in draw/Sencha.html example in strict/transitional modes in IE 6
  - [EXTJSIV-1478] - Broken form/check-radio.html example in IE 6 &7 in strict/transitional DOCTYPE modes
  - [EXTJSIV-1479] - Zero top/bottom padding in toolbar for the search field -- all browsers affected
  - [EXTJSIV-1482] - Ext.draw.CompositeSprite.setStyle problem
  - [EXTJSIV-1483] - The forum/forum.html example is broken in IE 6 with strict/transitional DOCTYPEs
  - [EXTJSIV-1486] - Tree header shows a 1px border when no column headers, works for grid
  - [EXTJSIV-1487] - Toolbar separators are not visible in quirks.
  - [EXTJSIV-1488] - Web Desktop needs to have a blue background
  - [EXTJSIV-1489] - Desktop example windows don't open smoothly, can't be closed
  - [EXTJSIV-1490] - Desktop example taskbar buttons not well aligned
  - [EXTJSIV-1491] - Remove extra bordering on the grid window on Desktop example
  - [EXTJSIV-1492] - Accordion text and border colors incorrect
  - [EXTJSIV-1493] - Remove border around desktop's example's accordion window toolbar
  - [EXTJSIV-1494] - Extra padding between cells in IE 6/7 (first grid) when using strict or transitional DOCTYPEs.
  - [EXTJSIV-1495] - Desktop example accordion breaks layout
  - [EXTJSIV-1497] - Desktop example's Notepad window has a double border
  - [EXTJSIV-1498] - Desktop example's logo has too high z-index
  - [EXTJSIV-1500] - Desktop example is not listed in the examples page
  - [EXTJSIV-1505] - Menu doesn't fire deactivate
  - [EXTJSIV-1506] - The theme viewer example is failing in Safari on Snow Leopard
  - [EXTJSIV-1507] - Menu Checkbox hideOnClick
  - [EXTJSIV-1508] - Accordion is broken in desktop example
  - [EXTJSIV-1509] - Resizing the portal example fails in Safari on Snow Leopard
  - [EXTJSIV-1512] - Drag &Drop broken with the organizer example
  - [EXTJSIV-1513] - Tabs are broken with Webkit in the key feed viewer example
  - [EXTJSIV-1514] - Clicking on tabs creates a big dark-blue border box around it in Safari on Snow Leopard
  - [EXTJSIV-1515] - Border line is missing for content area in new tabs
  - [EXTJSIV-1517] - Scrollbar does not reappear after expanding a collapsed grid in example
  - [EXTJSIV-1518] - Combo-box in Cell Editing Grid Example is Failing with Safari on Snow Leopard
  - [EXTJSIV-1519] - Scrollbar disappears after unchecking "Show in Groups" and checking again "Show in Groups"
  - [EXTJSIV-1520] - ZIndexManager: Dynamic Load depends on Ext.window.Window
  - [EXTJSIV-1521] - Collapsing invisible root node of tree w/vertical scrollbar throws null reference exception
  - [EXTJSIV-1525] - Previous pull-down menus do not unhighlight when clicking on the next one
  - [EXTJSIV-1526] - Custom Grid Filters: Object doesn't support this property or method
  - [EXTJSIV-1527] - The bottom toolbar in the Calendar component just doesn't look right
  - [EXTJSIV-1529] - Height in toolbar is not tall enough to clearly show the icon after searching
  - [EXTJSIV-1530] - Last row in charting tooltip is clipped
  - [EXTJSIV-1531] - Blank spot seen in examples page with IE 8.0
  - [EXTJSIV-1532] - Vertical header SVG element too small, clips text
  - [EXTJSIV-1534] - x-column-header-open class not being removed from column header when column menu hides.
  - [EXTJSIV-1538] - Scrollbar is missing when loading 20 items -- all items are clipped
  - [EXTJSIV-1539] - Transparency is not working for panels on a gray background
  - [EXTJSIV-1541] - Patient data is lost after drag &drop and sorting on a grid column
  - [EXTJSIV-1542] - Sencha icon on Desktop example has black underline (the shadow) in IE6-8
  - [EXTJSIV-1543] - Panel acts like it has a X+Y value set when rendered in a autoScroll div
  - [EXTJSIV-1547] - Buttons in DatePicker are not vertically centered -- has zero padding below the buttons
  - [EXTJSIV-1548] - Custom Layout under Checkbox Groups is blank
  - [EXTJSIV-1549] - Buttons do not unhighlight after clicking on them and moving the mouse away from it
  - [EXTJSIV-1550] - Nested Panels not laying out child grids until resize occurs
  - [EXTJSIV-1554] - The header looks bad after collapsing the window
  - [EXTJSIV-1555] - Last column header needs right border
  - [EXTJSIV-1556] - Remove Associations example from examples
  - [EXTJSIV-1559] - Need to include appropriate video in Desktop example
  - [EXTJSIV-1561] - Double borders initially, then single border when clicking on the next header
  - [EXTJSIV-1562] - Collapse icon does not relocate after resizing the browser window
  - [EXTJSIV-1563] - onReady Handling is Different than in 3.3
  - [EXTJSIV-1565] - Tooltip is clipped for the Toolbar with Menus example
  - [EXTJSIV-1566] - The close button has no effect on the panel
  - [EXTJSIV-1571] - JS error in when deleting a row in restful example
  - [EXTJSIV-1572] - Split buttons stay highlighted after clicking and moving the mouse away from it
  - [EXTJSIV-1573] - Several border lines are missing in the feed-viewer example
  - [EXTJSIV-1574] - emptyText in the fields are not vertically centered in IE 6/7/8
  - [EXTJSIV-1575] - Right side of tab bar is not flushed in IE 7 &IE 6
  - [EXTJSIV-1576] - The grid header in the 2nd grid is taller than the header in the first grid
  - [EXTJSIV-1578] - Double border-lines around frame
  - [EXTJSIV-1579] - Double border-lines around bottom toolbar
  - [EXTJSIV-1581] - Grid editor's input fields now have incorrect padding since a recent change to grid cell padding style.
  - [EXTJSIV-1582] - Last grid in grid-plugins example should enable remove button if a row is selected.
  - [EXTJSIV-1583] - Framed Panel's body border color wrong.
  - [EXTJSIV-1584] - Horizontal splitter too tall in IE6
  - [EXTJSIV-1585] - htmleditor body stays visible when containing window is minimized in IE6-8
  - [EXTJSIV-1586] - Border line is missing beneath the panel header -- all browsers
  - [EXTJSIV-1587] - Border line is missing above all three panel headers including sides -- all browsers
  - [EXTJSIV-1588] - Tree in accordion window of desktop example has double border
  - [EXTJSIV-1590] - Scatter chart doesn't render with a Time axis
  - [EXTJSIV-1591] - IE6 tooltip width aren't calculated properly on ie6
  - [EXTJSIV-1592] - Accordion items bottom border doesn't fit the accordion width (IE6)
  - [EXTJSIV-1594] - Scrollers at any level under a panel with no borders has no borders.
  - [EXTJSIV-1596] - Organizer Example: the left tree panel must be scrollable
  - [EXTJSIV-1597] - Modal layer does not block access to select elements on page n IE6
  - [EXTJSIV-1598] - Ext.core.Element needs to be aliased to Ext.Element for backwards compability
  - [EXTJSIV-1599] - MsgBox prompt right margin is almost nothing in IE6
  - [EXTJSIV-1600] - Window always tries to call toFront on mousedown, even with floating:false
  - [EXTJSIV-1602] - Link to new vertical toolbar example is broken in examples page
  - [EXTJSIV-1604] - Row expander doesn't work with IE Quirk
  - [EXTJSIV-1605] - Menu with single item has way too much bottom padding in IE6 and a little too much in IE8
  - [EXTJSIV-1606] - Inaccurate Ext.Loader error message thrown when files have been loaded but the corresponding classes are not defined
  - [EXTJSIV-1607] - StatusBar example clips iconCls in IE (all versions)
  - [EXTJSIV-1608] - Mouse wheel scroll through expanded combo generates JS error in IE6 and IE7
  - [EXTJSIV-1609] - Cell editing: When you move a column while you're editing an error is thrown and field is still visible
  - [EXTJSIV-1610] - Grouping Header: Columns with flex 1 move bug
  - [EXTJSIV-1611] - Header/Column alignment issue
  - [EXTJSIV-1612] - Clicking in htmleditor of Notepad window in desktop example does not raise the window to the top
  - [EXTJSIV-1613] - Bar Chart in Chrome renders bars below the axis
  - [EXTJSIV-1614] - Double click on a bar chart keep it highlighted in Form Dashboard example
  - [EXTJSIV-1616] - Body mask does not mask select input in IE6
  - [EXTJSIV-1617] - IE6 resizable west handler height change only after resizing
  - [EXTJSIV-1619] - Slider shows duplicate tooltip
  - [EXTJSIV-1620] - Items don't re-layout when expanded
  - [EXTJSIV-1621] - Fix SVG and VML classes to match our naming conventions
  - [EXTJSIV-1624] - Stack overflow (out of memory) reported by IE 6/7/8 with the portal example
  - [EXTJSIV-1625] - Garbage Collector wrongly removes listeners for iframe document
  - [EXTJSIV-1627] - Hard Error: Object has no method 'getField'
  - [EXTJSIV-1628] - Support dynamic framing on IE.
  - [EXTJSIV-1629] - disabled text in toolbar buttons don't look disabled in modern browsers (non-IE)
  - [EXTJSIV-1633] - No padding (left/right) for text in document body
  - [EXTJSIV-1636] - View source links get mixed when classes have same name
  - [EXTJSIV-1639] - Statusbar steals focus
  - [EXTJSIV-1642] - Boxreorderer crashes when mousing down on the toolbar
  - [EXTJSIV-1644] - examples/app/simple/simple.html Editing window always stretch its width to 100% of the viewport in all IEs, but not other browsers.
  - [EXTJSIV-1645] - Can't save a second time in writer example
  - [EXTJSIV-1653] - Loader paths incorrect
  - [EXTJSIV-1655] - Component animation not working
  - [EXTJSIV-1661] - The Card (TabPanel)'s bar is shown having a white background. Normally is blue in this example
  - [EXTJSIV-1662] - A borderline is shown falsely in the fit layout inside the layout-browser example
  - [EXTJSIV-1663] - Ext.grid.Section not used
  - [EXTJSIV-1664] - Grid sorting menus are grayed out -- doesn't look right
  - [EXTJSIV-1670] - TemplateColumn doesn't use associated data
  - [EXTJSIV-1671] - Listeners not cleared when setting null target
  - [EXTJSIV-1673] - Grid window vscroll border off by 1 on right and bottom
  - [EXTJSIV-1675] - Border line is seen in panels -- was never there before -- first time
  - [EXTJSIV-1678] - Component animation, when animating only one size dimension throws "Warning, size detected as NaN on Element.addUnits."
  - [EXTJSIV-1683] - Border lines are missing top and sides with examples/state/state.html
  - [EXTJSIV-1684] - Field widths were the same before, not now with statusbar/statusbar-advanced.html
  - [EXTJSIV-1685] - Form validation super slow
  - [EXTJSIV-1687] - The supplied RowExpander's event are not very useful.
  - [EXTJSIV-1688] - idProperty not working on ArrayReader
  - [EXTJSIV-1690] - Grid scrollbars have double border
  - [EXTJSIV-1691] - Configuring tooltips on line chart with trackMouse: false throws error
  - [EXTJSIV-1692] - Hard Error: New desktop example. Click on About Ext JS in start menu in IE 8 and then close the video window
  - [EXTJSIV-1693] - Main example pointer page needs to be updated
  - [EXTJSIV-1695] - Desktop example - accordion widow hit the refresh while collapsed
  - [EXTJSIV-1697] - Desktop example - in notepad, increase/decrease font only works 1 time
  - [EXTJSIV-1698] - Desktop example - in notepad, font color/background doesn't work
  - [EXTJSIV-1699] - Theme example - toggle enable button doesn't look disabled
  - [EXTJSIV-1700] - About window - open more than one time
  - [EXTJSIV-1701] - Mask should not displayed in collapsed panel
  - [EXTJSIV-1702] - Theme viewer needs to reload when changing to access theme
  - [EXTJSIV-1704] - Selecting a tree node throws an error
  - [EXTJSIV-1705] - Dragging multiple elements in organizer example does not work in IE7
  - [EXTJSIV-1706] - Portal example - moving the portlet is really slow
  - [EXTJSIV-1710] - Fix accessibility theme
  - [EXTJSIV-1714] - Grid row editing is completely broken
  - [EXTJSIV-1718] - RowEditor display broken
  - [EXTJSIV-1721] - Grid plugin example - select all, down arrow, throws exception
  - [EXTJSIV-1722] - Date picker - typing text into date field throws exception
  - [EXTJSIV-1724] - Key feed viewer throws exception at loading. IE6 only
  - [EXTJSIV-1728] - Ext Toolbar Action Example - Change Text throws exception
  - [EXTJSIV-1731] - Window drag/drop leaks iframe shim in IE 6.0
  - [EXTJSIV-1741] - Sliding pager does not display in IE6
  - [EXTJSIV-1742] - Missing "-debug" in regex check of ext-debug.js
  - [EXTJSIV-1744] - ZINdexManager: unregister this.list is null
  - [EXTJSIV-1748] - MessageBoxWindow autosizing probably needs a fudge factor to avoid unwanted word wrapping.

- Enhancements
  - [EXTJSIV-174] - Implement getChecked on TreeView and TreePanel as soon as Tree filtering is implemented.
  - [EXTJSIV-854] - Improve chart renderer API
  - [EXTJSIV-904] - Optimization to make Component tpls not be compiled until needed
  - [EXTJSIV-1112] - Consider cleaning up the panel/panel example, bad examples
  - [EXTJSIV-1256] - Improve performance of loading big trees. Support appending and inserting parents with inline children.
  - [EXTJSIV-1262] - Rename insert to insertChild on NodeInterface for consistency.
  - [EXTJSIV-1351] - Initial hidden config doesn't hide tab
  - [EXTJSIV-1364] - Support folderSort on TreePanel. Support passing a store configuration.
  - [EXTJSIV-1380] - When extending, the requires config doesn't accept wildcards.
  - [EXTJSIV-1412] - Add beforedestroy and destroy events to Sprites
  - [EXTJSIV-1413] - Document remove/removeAll methods in Surface. Add optional boolean to destroy sprites upon removal.
  - [EXTJSIV-1414] - draggable option on a Sprite will now call initDraggable when it is added to a surface.
  - [EXTJSIV-105] - Added Bubble Panel Example
  - [EXTJSIV-117] - Added Web Desktop Example
  - [EXTJSIV-218] - Theme Builder / Page Slicer - Packaged for Windows, OS X, and Linux
  - [EXTJSIV-221] - Fixed transitory XHR memory leak in IE6 & IE7
  - [EXTJSIV-839] - Created App Builder script
  - [EXTJSIV-875] - JSON.decode "safe" mode implemented
  - [EXTJSIV-1234] - Panel implements iconchange event
  - [EXTJSIV-1275] - Ext.tab.TabBar renamed to Ext.tab.Bar
  - [EXTJSIV-1276] - Ext.AbstractDataView renamed to Ext.view.AbstractView and Ext.DataView renamed to Ext.view.View
  - [EXTJSIV-1277] - Ext.AbstractContainer renamed to Ext.container.AbstractContainer and Ext.AbstractPanel renamed to Ext.panel.AbstractPanel
  - [EXTJSIV-1363] - Package EXT JS 4 SDK Tools download for all OSes
  - [EXTJSIV-1389] - Generated distributable binaries for PhantomJS that work cross-platform
  - [EXTJSIV-1415] - The remove method on a sprite will now only remove it from a surface. The destroy method will no longer remove and destroy the sprite.
  - [EXTJSIV-1603] - New thumbnail for the Tree Selections example

- Documentation Improvements
  - [EXTJSIV-724] - Ext.data.NodeStore docs
  - [EXTJSIV-729] - Ext.direct.Event docs
  - [EXTJSIV-730] - Ext.direct.ExceptionEvent docs
  - [EXTJSIV-731] - Ext.direct.JsonProvider docs
  - [EXTJSIV-732] - Ext.direct.RemotingEvent docs
  - [EXTJSIV-733] - Ext.direct.RemotingMethod docs
  - [EXTJSIV-734] - Ext.draw.Component docs
  - [EXTJSIV-735] - Ext.draw.Sprite docs
  - [EXTJSIV-736] - Ext.draw.SpriteGroup docs
  - [EXTJSIV-737] - Ext.draw.Surface docs
  - [EXTJSIV-738] - Ext.fx.Anim docs
  - [EXTJSIV-740] - Ext.fx.Easing docs
  - [EXTJSIV-741] - Ext.grid.column.Column docs
  - [EXTJSIV-742] - Ext.grid.column.Template docs
  - [EXTJSIV-744] - Ext.grid.feature.Feature docs
  - [EXTJSIV-745] - Ext.grid.feature.Grouping docs
  - [EXTJSIV-746] - Ext.grid.feature.GroupingSummary docs
  - [EXTJSIV-747] - Ext.grid.feature.Summary docs
  - [EXTJSIV-749] - Ext.grid.ColumnLayout docs
  - [EXTJSIV-752] - Ext.grid.GridView docs
  - [EXTJSIV-756] - There is no class documentation for "version".
  - [EXTJSIV-757] - Inadequate documentation for ModelMgr
  - [EXTJSIV-758] - Ext.layout.container.Anchor docs
  - [EXTJSIV-759] - Inadequate documentation for ComponentLoader
  - [EXTJSIV-764] - Ext.panel.Tool docs
  - [EXTJSIV-770] - Inadequate documentation in util.route
  - [EXTJSIV-776] - Ext.util.Cookies docs
  - [EXTJSIV-779] - Ext.util.Format docs
  - [EXTJSIV-782] - Ext.util.Stateful docs
  - [EXTJSIV-783] - Ext.view.TableView docs
  - [EXTJSIV-1068] - Links in the tree link to 404 pages
  - [EXTJSIV-1069] - Link back to doc index
  - [EXTJSIV-1070] - Ext.app.Application.autoCreateViewport type
  - [EXTJSIV-1077] - Link bad in Ext.grid.feature.GroupingSummary
  - [EXTJSIV-1221] - Error in example in Ext.grid.RowNumberer Doc
  - [EXTJSIV-1224] - Architecture & MVC Guide, links are not created
  - [EXTJSIV-1225] - Class System Guide has PI wrong
  - [EXTJSIV-1226] - Class tree not loading
  - [EXTJSIV-1228] - Search for Panel does not show Ext.grid.Panel
  - [EXTJSIV-1230] - Search for 'quick' results in old Ext.tip.QuickTips also
  - [EXTJSIV-1241] - Fix misc documentation issues

# Release Notes for Ext JS 4 Beta 3

Release Notes: April 14, 2011
Version Number: 4.0.0beta3

## New In This Release

- New Examples
  - MVC Feed Viewer
  - MVC Nested Data
  - Lazy Loading Data Associations
  - Property Grid
  - HTML Table to ExtJS Grid

- Bug Fixes
  - [EXTJSIV-664][EXTJSIV-645] Fix Organizer and GroupTabs examples
  - Header icon and vertical title text should no longer be focusable
  - [EXTJSIV-550] Fix Column layout to accurately arrange columns, taking scrollbars into account
  - Fixed inheritableStatics for full inheritance tree
  - Removed focus line from buttons in IE
  - [EXTJSIV-177] Fixed disabled toolbar buttons
  - [EXTJSIV-676] Removed icon cls's from buttons in themes examples
  - Add additional CSS class when border is set to false for the HeaderContainer
  - [EXTJSIV-650] Fix double border issue with tree items
  - [EXTJSIV-696] TreeStore nodes no longer use a fixed id
  - [EXTJSIV-688] Fixed focus issue with datepicker
  - [EXTJSIV-683] Fixed collapsed vertical panel header image
  - [EXTJSIV-678] Fixed css issue with the history example
  - [EXTJSIV-603] Work around the brutal IE9 Strict mode subpixel rounding bug which can cause wrapping issues (similar to https://bugzilla.mozilla.org/show_bug.cgi?id=458617)
  - [EXTJSIV-700] XTemplate should now handle dot (.) syntax for date objects as well. Since a date will yield a typeof of "object", we can't distinguish it from other "object" types; so we use the object prototype toString, in Ext.isDate
  - [EXTJSIV-671] TablePanel will not stop the mousewheel browser event when its reached the end of the scroll height/width. Also, the grid will only scroll when scrolling above the scroller and the view (not the headers, panel header, etc.)
  - [EXTJSIV-677] Editor shouldn't be hiding/showing its field, merely itself. This fixes positioning issues as well as the editor being still visible and floating over content, making it impossible to click to the things underneath of it
  - [EXTJSIV-702] RowEditor should vertically align itself to a row based on its y offset to its top-most static parent, not just its immediate parent (table)
  - [EXTJSIV-704] Prevent duplicate tabchange events from firing
  - [EXTJSIV-705] Fix problem with Shadow class calculations
  - [EXTJSIV-706] Fix issue when destroying a grid
  - [EXTJSIV-698] Prevent error in WebKit when destroying a HtmlEditor if its iframe has already been removed from the document
  - [EXTJSIV-713] TableView now only makes the table unselectable, not the entire gridview element
  - [EXTJSIV-442] Allow scrolling of the locked section of locked Grids/Trees
  - [EXTJSIV-720] Series now follows the standard Observable mixin pattern
  - [EXTJSIV-603] Fix Ext.core.Element createChild to support table first child insertion in IE
  - [EXTJSIV-789] Fix issue with window hide callback scope
  - [EXTJSIV-790] Fix an issue with not being able to specify a cls on a tree
  - Fixed the checkChangeEvents in IE6
  - [EXTJSIV-682] Remove a Gecko 3 hack that is no longer necessary
  - [EXTJSIV-689] Fix bug in OS X where grid/tree scrollers would stop responding.
  - [EXTJSIV-648][EXTJSIV-684] Auto-width fields must set the width of their outer element to match the total width of their internal contents, to prevent wrapping of the pieces during layout operations which would cause calculated heights to be too tall. Re-added the getBodyNaturalWidth method to support this, and changed the implementations where possible to avoid querying element sizes for optimum speed
  - [EXTJSIV-709] Grid row height will be preserved even if the row is empty
  - [EXTJSIV-804] Fix cycle button initial positioning in example
  - [EXTJSIV-710] Fix ItemSelector button behaviours
  - [EXTJSIV-797] Handle forceSelection in multiSelect ComboBoxes
  - [EXTJSIV-675] Grid and Tree will now remove/add the scrollOffset spacing when it is necessary
  - [EXTJSIV-817] Fix TablePanel applyState to not setWidth on an unrendered component
  - [EXTJSIV-192] Allow button layout to run when its text has changed; this allows min/maxWidth to be applied based on the new text length
  - [EXTJSIV-553] Fix dragging out of group header
  - [EXTJSIV-275] Fixed position of monthpicker on datepicker
  - [EXTJSIV-802] Fix Summary Grid Example padding
  - [EXTJSIV-826] Ensure that x-grid-cell-first and x-grid-cell-last css classes are added to the TableView markup at creation time
  - [EXTJSIV-590] Infinite Scrolling can now scroll all the way to the bottom in IE9 strict mode
  - [EXTJSIV-822] Support unstyled configuration on Panel
  - [EXTJSIV-833] Fix bug where old selection would jump into focus when performing a multi select on a dataview/grid/tree that was out of view
  - [EXTJSIV-808] Increase default css button padding (6px)
  - [EXTJSIV-809] Add Ext.ns() to the Ext.direct remoting echo
  - [EXTJSIV-828] Fix issue when dragging/dropping onto the same grid
  - [EXTJSIV-841] Fix duplicate method name in plugin
  - [EXTJSIV-842] When show is called on the tab, set it to active. Also ensure listeners are cleaned up when the tab is removed
  - [EXTJSIV-850] Fix issue when using treenode with leaf: false and children
  - [EXTJSIV-635] Prevent two LoadMask indicators showing up when using the Locking plugin and dynamic loading
  - Fix a bug in ComponentQuery.query.is method where it would start searching within a root for a query that contained the root itself
  - [EXTJSIV-801] Fixed issue with rotated axis text
  - [EXTJSIV-11] Made vertical heights and spacing of form fields consistent in all browsers
  - [EXTJSIV-846] Fix combineErrors option in FieldContainer, and prevent prepending of colon to errors for fields without a fieldLabel
  - [EXTJSIV-825] Fix issue with grouptabs titles seen with IE 7
  - [EXTJSIV-819] Fixed auto-height sizing in Body component layout
  - [EXTJSIV-820] Fix issue with Ext.util.Format.usMoney not inserting commas into the returned string
  - [EXTJSIV-862] Fix up shadow/positioning issues in the data view editor example
  - [EXTJSIV-876] Fix an issue where all grid columns can be hidden via the menu
  - [EXTJSIV-879] Move sync to be the last operation for add/remove methods on the store
  - [EXTJSIV-640] Ensure we keep track of the number of fields in the reader. Since the tree decorates the model, it can cause problems when running the extractor functions
  - [EXTJSIV-857] Fix Window autoShow
  - [EXTJSIV-577] Fix up styling to prevent unneeded scrollbar
  - [EXTJSIV-234] Fix up margins on DatView example
  - Fix issues with the file upload example
  - [EXTJSIV-649] Work around quirks mode inability to display margins
  - [EXTJSIV-837] Fixed Tab Scroller Menu Plugin improper access to class prototype from an instance
  - [EXTJSIV-883] Fix all examples which references setIconClass to setIconCls
  - [EXTJSIV-639] Workaround for IE's inability to size position:absolute elements to their content width
  - [EXTJSIV-849] Fixes for editable:false state on ComboBox and other Picker fields
  - [EXTJSIV-890] Fix toolbar separator in Direct example
  - [EXTJSIV-796] Dock layouts within a fit layout will now properly layout
  - [EXTJSIV-867] Fix bug where injected grouping menu would be lost after a refresh of the Grid
  - [EXTJSIV-1] Fix SVG rendering bug in Safari 3.2
  - [EXTJSIV-914] Fix bug where attempting to sort a header with no dataIndex would throw an error
  - [EXTJSIV-871] Fix GridPanel to only add its View after the Grid has achieved its final laid out size
  - [EXTJSIV-892] Added workaround for persistent button element padding in Windows Safari
  - [EXTJSIV-905] Fixed handling of file upload fields to allow uploads across multiple submits
  - [EXTJSIV-843] Fix masking on containers with layout auto
  - [EXTJSIV-906] Ensure the snapshot is kept up to date when receiving a response from the server
  - [EXTJSIV-908] Ensure filtering is set when there's at least one filter
  - [EXTJSIV-371] Fix CellEditing tab navigation in WebKit
  - [EXTJSIV-639] Take frame size into account when sizing vertical docks according to content
  - [EXTJSIV-921] Fix vertical centering of multi-line button text
  - [EXTJSIV-930] Fix validation of Number field when changing from an invalid string to an empty string
  - [EXTJSIV-902] Add markInvalid and clearInvalid methods to Ext.form.Field mixin interface; implement them in CheckboxGroup to prevent errors when Ext.form.Basic tries to call them
  - [EXTJSIV-909] Fix marker strokes disappearing on highlight
  - [EXTJSIV-954] Fixed issue when using disabled: true in a Slider config
  - [EXTJSIV-870] Fixed forceSelection so that it re-selects the last selection rather than clearing the value when the entered value does not match. Fixed remote stores so that the combobox's value is not cleared when the store loads.
  - [EXTJSIV-931] The findRecord method now does an exact search rather than substring search
  - [EXTJSIV-962] Ext.Direct grid money column align: 'right'.
  - [EXTJSIV-940] Make the button layout's test for html tags in button text a little smarter. Fixes error in LiveSearchGridPanel in IE6
  - [EXTJSIV-639] Fix for panel collapse left/right when frame is true
  - [EXTJSIV-872] MessageBox Window prompt now processes the "OK" button when you press return in the prompt field
  - The setSrc now correctly changes the src attribute of the dom property of the Et.core.Element
  - [EXTJSIV-918] RowExpander will not select rows when expanding via the icon by default. This is configurable via the selectRowOnExpand configuration. Fixed a bug with expandOnDblClick configuration
  - [EXTJSIV-964] Resizable Panels are no longer resizable when they are collapsed
  - [EXTJSIV-144] Fix issue with stacked negative bar/column chart axis
  - [EXTJSIV-948] Disable rendering of sprites into the surface if they are not attached to a surface yet
  - [EXTJSIV-969] roundToDecimal has to be explicitly set to false in order to render non numbers in a Numeric axis
  - Decouple Ext.Function.createBuffered from Ext.util.DelayedTask
  - [EXTJSIV-946] Fix an issue where cursors where still being displayed on resizable handles, even if they were disabled
  - [EXTJSIV-965] Fixed Gauge align axis bug
  - [EXTJSIV-912] Resolve misalignment of headers and gridview in IE 6, 7 and 9.
  - [EXTJSIV-973] Fix bug that occurred when there were less records in total than the pageSize when using a PagingScroller

- Performance Changes
  - Optimized Class, ClassManager, and Loader for better performance
  - Optimized Class preprocessors
  - Optimized Array for better performance
  - Optimized Object for better performance
  - Optimized Base for better performance
  - Optimized Ext (core methods) for better performance
  - EventObject's pageX/pageY now performs its calculations only when needed
  - Remove unnecessary closure and callback from Model
  - Removed onpropertychange listener from the input before layout and restore it after, to prevent excessive firing due to attribute/style changes during layout. The was causing a large performance issue IE fields (~300% faster rendering, ~3000% faster resizing).
  - Fixed an issue in the detection of improper native array sorting (bugs in Chrome 5 and Safari 3) which caused the framework to always use a non-native sort. Resulting in a ~500% improvement when sorting (drastic improvement with large data sets such as those used in the BufferedGrid example)
  - Optimized XTemplate compilation to occur at render time
  - Fix an issue with framing templates not being put onto the prototype after compilation and being compiled for every component instance

- Enhancements
  - MVC examples added (feed viewer and nested data), new application architecture guide added
  - [EXTJSIV-661] Ported FeedViewer example to the new MVC structure
  - [EXTJSIV-72] Implemented PropertyGrid as Ext.grid.property.Grid and associated classes in Ext.grid.property
  - Replaced Javascript 'new' with Ext.create throughout library and examples
  - Added onClassExtended callback for the extend pre-processor
  - Update Model class to use onClassExtended and onAfterClass extended instead of postprocessors
  - [EXTJSIV-669] Reinstate the validateOnBlur config option for form fields
  - Added alternateClassName for Ext.form.action.Action
  - Added minor tick example for lines and minor ticks capability for chart axes
  - [EXTJSIV-407] Added basic drag and drop capabilities to sprites
  - [EXTJSIV-685] Added an 'uncheckedValue' config to Ext.form.Checkbox, which allows specifying a value to be submitted in the form when the checkbox is unchecked
  - [EXTJSIV-42] Added href/hrefTarget support for tree nodes
  - [EXTJSIV-644] Remove duplicate code in ElementLoader
  - [EXTJSIV-691] Lockable is now a mixin for any grid
  - Model can now be defined on the store prototype
  - [EXTJSIV-655] RowEditing will work with fields/editors that are object configs with no xtype specified (defaults to textfield), or straight xtype strings (wraps into an object config accordingly)
  - [EXTJSIV-175] Implement expandAll/collapseAll/selectPath/expandPath on tree
  - Cell editing now works with Trees
  - Implement configuration option to disable dblclick toggling on Tree nodes
  - Add standard Ext.Error class to handle error messages
  - [EXTJSIV-711] Add 'scrollToLoadBuffer' configuration to PagingScrollbar. This is the time in milliseconds to buffer load requests when scrolling the PagingScrollbar
  - Element getWidth and getHeight now allows the return of precise measurements (subpixel) for browsers which support subpixels
  - [EXTJSIV-646] Add getHeader method to Panel
  - [EXTJSIV-794] Fix tree destroy issue
  - Updated Ext.Version with extra value checking and docs
  - [EXTJSIV-791] Allow Component.setLoading method to accept a message String as its first argument
  - [EXTJSIV-708] Fix issue when showing tooltips on a scrolled document
  - [EXTJSIV-805] Fix up unstyled css prefix. Also move setting the baseCls before calling the superclass method
  - [EXTJSIV-803] HeaderContainer ColumnLayout fixes for resetting scrollLeft/scrollTop
  - Added beforeComponentLayout template method to Component
  - Ext.DomHelper insertHtml now supports TextNodes properly
  - [EXTJSIV-792] TabPanel will now activate the firstTab by default if no activeTab property is passed
  - [EXTJSIV-690] Set the default minButtonWidth for all Panels to 75 to match Ext3; made minButtonWidth apply as defaults for buttons added via 'fbar' and 'buttons' configs only; updated docs to make minButtonWidth clearer
  - [EXTJSIV-553] Make Header resizing work with flexed Headers, minWidth and forceFit
  - RowEditor is no longer a floating component managed by the zindex manager
  - Chart's factory method for axes is now implemented the same as the series factory method. In addition series and axis types are no longer case sensitive
  - [EXTJSIV-799] Create a processView method in axes that perform aggregation and filtering operations on stores to return a substore to be rendered by the axes
  - Move fadeIn, fadeOut, scale, shift, and pause back into Element. Mark methods for deprecation where appropriate
  - [EXTJSIV-357] Implement support for Drag and Drop of Headers between Locked and Unlocked sections in Grids and Trees
  - [EXTJSIV-844] Allow template to accept member functions/properties when passing an array
  - Add a static create method to Base.js so that you can do Class.create() on any class
  - [EXTJSIV-553] Group headers must have their minWidths synched when child headers are hidden or shown
  - Support inline data on Model definition
  - [EXTJSIV-814] Add setTitle methods to chart axes and series to allow changing titles programmatically
  - Support delayed binding of Stores to DataViews
  - [EXTJSIV-534] PagingScroller will now track the virtualScrollTop and is able to restore it when synchronizing views
  - TreePanel and GridPanel now relay events from their underlying View such as itemclick, itemcontextmenu, etc
  - [EXTJSIV-834] Ext.grid.feature.Grouping tracks expanded/collapsed state after refreshing the view
  - [EXTJSIV-866] Animations will default to 'px' if no units are specified for height, width, top, and left
  - [EXTJSIV-807] Add dynamic grouping to Stores
  - [EXTJSIV-827][EXTJSIV-861] VML now supports image type
  - [EXTJSIV-819] Fix double-margin bug in IE6 for items floated by Column layout
  - [EXTJSIV-793] Fix collapsed Panel still being visible in Accordion layout
  - [EXTJSIV-703] Fix Collapsible border layout not auto collapsing when focus
  - [EXTJSIV-877] Default column.Action to sortable: false
  - [EXTJSIV-174] Implemented getChecked on TreeView and TreePanel
  - [EXTJSIV-878] Fixed an issue when maximizing containers in an ownerCt
  - [EXTJSIV-848] Added a `decimals` option in the Numeric axis that will round to the specified decimals the values in the axis
  - [EXTJSIV-832][EXTJSIV-472] Buttons and tabs: add a span inside the button element to receive the icon styling; prevents the icon from shifting to the northwest when the button is in active state in IE. Other buttons/tabs CSS cleanup as required
  - [EXTJSIV-855] Automatically create an expanded root node if rootVisible is set to false and no root node has been defined
  - [EXTJSIV-816] Added an insert method on NodeInterface
  - [EXTJSIV-869] Added an onRegionTitleChange method to BorderLayout which will update the a header's text whenever a titlechange event is fired
  - [EXTJSIV-829] Support sending back expanded true in Node data. If no children are specified on that node, automatically load the node. Also fixed some bugs related to quickly expanding and collapsing
  - [EXTJSIV-728] Allow the tree to use a proxy as specified on the Model
  - [EXTJSIV-695] Add JsonP class and hook up ScriptTagProxy to use it
  - [EXTJSIV-873] Menu will not show itself if there are no items
  - [EXTJSIV-920] Ext.grid.feature.Grouping disabled configuration will now uncheck the grouping menu item
  - [EXTJSIV-928] Implement qtips on Tree Nodes. Change QuickTips to use the data-qtip attribute instead of ext:qtip. This allows DomQuery to target elements with qtips. This allows us to set qtips on any element on the page instead of just the front most elements
  - Added Ext.Base.borrow method to Borrow another class' members to the prototype of this class
  - [EXTJSIV-967] Remove layout.Manager and override the static create method on Ext.layout.Layout to be like a factory method for any type of layout
  - [EXTJSIV-875] Ext.JSON now supports a 'safe' mode

- API Changes
  - Aliased Ext.value to Ext.valueOf and deprecate the old one
  - isLoading method hoisted to AbstractStore so that it is available on TreeStore and Store
  - Rename DragDropMgr -> DragDropManager
  - Rename ModelMgr -> ModelManager
  - Rename TaskMgr -> TaskManager
  - Rename ComponentMgr -> ComponentManager
  - Rename PluginMgr -> PluginManager
  - Rename StoreMgr -> StoreManager
  - Rename FocusMgr -> FocusManager
  - Rename WindowMgr -> WindowManager
  - Rename themeMgr -> themeManager
  - Rename ButtonToggleMgr -> ButtonToggleManager
  - Rename Ext.menu.MenuMgr -> Ext.menu.manager
  - Remove ReaderMgr
  - Remove WriterMgr
  - In all documentation and examples, Ext.define is now used to define Models, not Ext.regModel
  - Move field implementation classes into Ext.form.field.* namespace
  - Animate mixin's hasActiveFx renamed to getActiveAnimation and stopFx renamed to stopAnimation
  - Removed 'tip' and 'quicktip' xtypes as they should not be added as widgets. QuickTipManager is a singleton. and 'tooltip' is a widget
  - Replaced all superclass syntax with callParent where possible throughout library and examples
  - [EXTJSIV-853] Rename ToolTip initTarget to setTarget
  - Ext.data.JsonReader -> Ext.data.reader.Json
  - Ext.data.ArrayReader -> Ext.data.reader.Array
  - Ext.data.Reader -> Ext.data.reader.Reader
  - Ext.data.XmlReader -> Ext.data.reader.Xml
  - Ext.data.AjaxProxy -> Ext.data.proxy.Ajax
  - Ext.data.ClientProxy -> Ext.data.proxy.Client
  - Ext.data.DirectProxy -> Ext.data.proxy.Direct
  - Ext.data.LocalStorageProxy -> Ext.data.proxy.LocalStorage
  - Ext.data.RestProxy -> Ext.data.proxy.Rest
  - Ext.data.ScriptTagProxy -> Ext.data.proxy.ScriptTag
  - Ext.data.ServerProxy -> Ext.data.proxy.Server
  - Ext.data.SessionStorageProxy -> Ext.data.proxy.SessionStorage
  - Ext.data.WebStorageProxy -> Ext.data.proxy.WebStorage
  - Ext.data.XmlWriter -> Ext.data.writer.Xml
  - Ext.data.Writer -> Ext.data.writer.Writer
  - Ext.chart.Callouts -> Ext.chart.Callout
  - Ext.chart.Labels -> Ext.chart.Label
  - Ext.chart.Highlights -> Ext.chart.Highlight
  - Ext.chart.Tips -> Ext.chart.Tip
  - Ext.chart.Shapes -> Ext.chart.Shape
  - Ext.data.Proxy -> Ext.data.proxy.Proxy
  - Ext.draw.SpriteGroup -> Ext.draw.SpriteComposite
  - Ext.fx.PropHandler -> Ext.fx.PropertyHandler
  - Ext.fx.target.SpriteGroup -> Ext.fx.target.CompositeSprite
  - Ext.data.proxy.ScriptTag -> Ext.data.proxy.JsonP
  - Ext.grid.HeaderContainer -> Ext.grid.header.Container
  - Ext.grid.HeaderDragZone -> Ext.grid.header.DragZone
  - Ext.grid.HeaderDropZone -> Ext.grid.header.DropZone
  - Ext.grid.HeaderReorderer -> Ext.grid.header.Reorderer
  - Ext.grid.GridPanel -> Ext.grid.Panel
  - Ext.menu.DateMenu -> Ext.menu.DatePicker
  - Ext.menu.ColorMenu -> Ext.menu.ColorPicker
  - Ext.menu.MenuManager -> Ext.menu.Manager
  - Ext.panel.TablePanel -> Ext.panel.Table
  - Ext.resizer.ResizeHandle -> Ext.resizer.Handle
  - Ext.grid.CellEditing -> Ext.grid.plugin.CellEditing
  - Ext.grid.Editing -> Ext.grid.plugin.Editing
  - Ext.grid.GridView -> Ext.grid.View
  - Ext.grid.GridViewDropZone -> Ext.grid.ViewDropZone
  - Ext.grid.GridPanel -> Ext.grid.Panel
  - Ext.grid.RowEditing -> Ext.grid.plugin.RowEditing
  - Ext.grid.HeaderReorderer -> Ext.grid.plugin.HeaderReorderer
  - Ext.grid.HeaderResizer -> Ext.grid.plugin.HeaderResizer
  - Ext.grid.GridViewDragDrop -> Ext.grid.plugin.DragDrop
  - Ext.ImageComponent -> Ext.Img
  - Ext.layout.Container -> Ext.layout.container.Container
  - Ext.layout.AbstractContainer -> Ext.layout.container.AbstractContainer
  - Ext.layout.Component -> Ext.layout.component.Component
  - Ext.layout.component.SliderField -> Ext.layout.component.field.Slider
  - Ext.layout.component.form.Field -> Ext.layout.component.field.Field
  - Ext.layout.component.form.File -> Ext.layout.component.field.File
  - Ext.layout.component.form.HtmlEditor -> Ext.layout.component.field.HtmlEditor
  - Ext.layout.component.form.Text -> Ext.layout.component.field.Text
  - Ext.layout.component.form.TextArea -> Ext.layout.component.field.TextArea
  - Ext.layout.component.form.Trigger -> Ext.layout.component.field.Trigger
  - Ext.tip.QuickTips -> Ext.tip.QuickTipManager
  - Ext.toolbar.PagingToolbar -> Ext.toolbar.Paging
  - Ext.tree.SelectionModel -> Ext.selection.TreeModel
  - Ext.tree.TreeColumn -> Ext.tree.Column
  - Ext.tree.TreePanel -> Ext.tree.Panel
  - Ext.tree.TreeView -> Ext.tree.View
  - Ext.tree.TreeViewDragZone -> Ext.tree.ViewDragZone
  - Ext.tree.TreeViewDropZone -> Ext.tree.ViewDropZone
  - Ext.view.TableView -> Ext.view.Table
  - Ext.Container.getIndexOfHeader -> Ext.Container.getHeaderIndex
  - Ext.Container.getHeaderByIndex -> Ext.Contrainer.getHeaderAtIndex
  - Ext,grid.feature.Feature.getTplFragments -> Ext.grid.feature.Feature.getFragmentTpl
  - Ext.grid.feature.Grouping.getTplFragments -> Ext.grid.feature.Grouping.getFragmentTpl
  - Ext,grid.feature.GroupingSummary.getTplFragments -> Ext.grid.feature.GroupingSummary.getFragmentTpl
  - Ext,grid.feature.Summary.getTplFragments -> Ext.grid.feature.Summary.getFragmentTpl
  - Ext,grid.header.Container.getTplFragments -> Ext.grid.header.Container.getFragmentTpl
  - Ext.layout.container.Border.getPlaceHolder -> Ext.layout.container.Border.getPlaceholder
  - Ext.version.getSimplified -> Ext.version.getShortVersion
  - Ext.version.simplified -> Ext.version.shortVersion
  - Ext.Object.keyOf -> Ext.Object.getKey
  - Ext.String.parseQueryString -> Ext.Object.fromQueryString
  - Ext.Version.isSmallerThan -> Ext.Version.isLessThan
  - Ext.draw.Surface.newInstance -> Ext.draw.Surface.create
  - Ext.util.Inflector.isUncountable -> Ext.util.Inflector.isTransnumeral
  - Ext.draw.Surface.positionSpriteInList -> Ext.draw.Surface.normalizeSpriteCollection
  - Ext.util.AbstractMixedCollection.removeByKey -> Ext.util.AbstractMixedCollection.removeAtKey
  - Ext.util.HashMap.removeByKey -> Ext.util.HashMap.RemoveAtKey
  - Ext.FocusManager.removeWhitelistXType -> Ext.FocusManager.removeWhitelistByXType
  - Ext.data.Connection.setupOptions -> Ext.data.Connection.setOptions
  - Ext.FocusManager.removeWhitelistXType -> Ext.FocusManager.removeXTypeFromWhitelist
  - Ext.FocusManager.addWhitelistXtype -> Ext.FocusManager.addXTypeToWhitelist
  - Ext.form.Labelable.applyFieldDefaults -> Ext.form.Lableable.setFieldDefaults
  - Ext.form.field.areValuesEqual -> Ext.form.field.isEqual
  - Ext.ClassManager.assignNamespace -> Ext.ClassManager.setNamespace
  - Ext.menu.Menu.canActivateItem -> Ext.menu.Menu.isActivatable
  - Ext.form.Panel.checkChanges -> Ext.form.Panel.checkChange
  - Ext.form.Basic.checkDirtyChange -> Ext.form.Basic.checkDirty
  - Ext.form.FormPanel -> Ext.form.Panel
  - Ext.chart.LegendItem.createSprites -> Ext.chart.LegendItem.createLegend
  - Ext.chart.axis.Axis.drawLabels -> Ext.chart.axis.Axis.drawLabel
  - Ext.Loader.exist -> Ext.Loader.isCreated
  - Ext.grid.header.Container.getColumnsMenu -> Ext.grid.header.Container.getColumnMenu
  - Ext.form.field.File.buttonCfg -> Ext.form.field.File.buttonConfig
  - Ext.data.proxy.Server.dirParam -> Ext.data.proxy.Server.directionParam
  - Ext.grid.feature.Grouping.groupHdTpl -> Ext.grid.feature.Grouping.groupHeaderTpl
  - Ext.draw.Surface.implOrder -> Ext.draw.Surface.enginePriority
  - Ext.draw.Component.implOrder -> Ext.draw.Component.enginePriority
  - Ext.charts.Series.markerCfg -> Ext.chart.Series.markerConfig
  - FocusManager.placeHolder -> FocusManager.placeholder
  - Panel.placeHolder -> Panel.placeholder
  - Border.placeHolder -> Border.placeholder
  - Ext.chart.series.Bar.xpadding -> Ext.chart.series.Bar.xPadding
  - Ext.chart.series.Bar.ypadding -> Ext.chart.series.Bar.yPadding

- Documentation Changes
  - Added many guides, screenshots, and videos from the Sencha Blog and other sources to the documentation application
  - API documentation screenshots and example updates for (Ext.window.Window, Ext.window.MessageBox, Ext.toolbar.Toolbar, Ext.toolbar.TextItem, Ext.toolbar.Spacer, Ext.toolbar.Separator, Ext.toolbar.Fill, Ext.tab.Panel, Ext.slider.Tip, Ext.slider.Single,Ext.slider.Multi, Ext.resizer.Resizer, Ext.layout.container.Table, Ext.layout.container.Fit, Ext.layout.container.Column, Ext.layout.container.Card, Ext.layout.container.Border, Ext.layout.container.Accordion, Ext.layout.container.Absolute, Ext.form.FormPanel, Ext.form.BaseField, Ext.form.Checkbox, Ext.form.CheckboxGroup, Ext.form.ComboBox, Ext.form.Date, Ext.form.Display, Ext.form.FieldContainer, Ext.form.FieldSet, Ext.form.File, Ext.form.FormPanel, Ext.form.HtmlEditor, Ext.form.Label, Ext.form.Number, Ext.form.Radio, Ext.form.RadioGroup, Ext.form.Text, Ext.form.TextArea, Ext.form.Time
  - Updated AbstractComponent
  - [EXTJSIV-806] Updated AbstractDataView
  - Updated AbstractMixedCollection
  - Updated AbstractPanel
  - Added Application
  - Updated Array
  - Update Axis
  - Update Base
  - Update Cartesian
  - [EXTJSIV-748] Add CellEditing
  - Update Chart Labels
  - Update Chart LineSeries
  - Update Class
  - Update ClassManager
  - Added Controller
  - Update Direct
  - [EXTJSIV-721] Update Direct proxy
  - [EXTJSIV-734] Add DrawComponent
  - Update Ext
  - Added EventBus
  - Added Gauge Chart
  - Added Grid Panel
  - Added Grid Scroller
  - [EXTJSIV-644] Updated Loader
  - [EXTJSIV-723] Update NodeInterface
  - Updated Object
  - Updated Observable
  - Added PropertyGrid
  - Updated field.Number
  - [EXTJSIV-754] Add RowEditing
  - Added RowNumberer
  - Added Sortable
  - Added Sprite
  - [EXTJSIV-726] Add Tree
  - [EXTJSIV-727] Update TreeStore

- Known Issues / Upcoming Changes
  - Desktop Example to be re-implemented
  - Ext.data.BufferStore will be removed and its methods moved up into Ext.data.Store
  - Grid promote from markup script sometimes fails in IE6 and IE7
  - TreePanel has some DnD issues in IE9
  - Several classes missing adequate documentation
  - Small rendering glitches on tabs in Mac Safari 5
  - Buttons can be cropped when sizing a Window to a very small width (e.g. under 150px)
  - Grids can sometimes lose scrollbars when their container is resized
  - Vertical panel headers use the wrong font in IE9
  - Grid state does not save column widths
  - TriggerFields are not aligned flushed to the edge in IE6 and IE7
  - Grid filtering feature doesn't support setting filters via config
  - TreePanel is missing documentation. A guide will be release separately before GA
  - Menu styling in access theme has some imperfections
  - Simple Tasks example is missing
  - Calendar components have not been fully ported yet
  - Tree Filtering will be implemented before GA
  - KeyNav example has inconsistent spacing in some IE versions
  - Tab is not marked selected if it is the only tab in a TabPanel and is set active by default
  - Hovering over the bottom spinner of a NumberField does not highlight it
  - Several small IE9 rendering issues
  - Some slight font inconsistencies between components

# Release Notes for Ext JS 4 Beta 2

Release Notes: April 6, 2011
Version Number: 4.0.0beta2

## New In This Release

- New Examples
  - Gauge Chart example
  - Buffered Grid example
  - Theme example

- Bug Fixes
  - Fix tabs mouseover in GroupTabPanel examples
  - Fix double rendering when quickly expanding / collapsing tree nodes
  - [EXTJSIV-466] Ensure cls config is applied to MessageBoxWindow
  - Fix issue where box layout margins could be improperly calculated
  - [EXTJSIV-470] Remove the permanent CheckHeader editor and place it only on the row editing example
  - Fix Tree keyboard navigation
  - Don't show loading indicator when trying to expand an already expanded tree node
  - [EXTJSIV-504] Fix alignment of fieldset legend checkbox
  - [EXTJSIV-502] Remove persistent scrollbar from Ext.form.Textarea and Ext.form.HtmlEditor source editor
  - [EXTJSIV-213] Fix BoxReorderer issues
  - [EXTJSIV-537] Fix an issue that allows multiple selection on the chart
  - [EXTJSIV-529] Element.highlight() fx function will now function properly, and can handle Anim callbacks
  - [EXTJSIV-539] We no longer allow the tb text field to be orderable in the multisort example
  - [EXTJSIV-540] Buttons will no longer show mouseover effects when disabled
  - [EXTJSIV-545] Fix duplicate id bug in grid -> grid DD example
  - [EXTJSIV-417] Fixed issue with field heights
  - [EXTJSIV-492] Fix application of overCls when the delegate option is used
  - [EXTJSIV-513] Ensure that mouseup when dragging the drag selector, and the subsequent click event does not clear selections in the DataView
  - [EXTJSIV-474] Fix ghosting of Windows during drag on IE < 9
  - [EXTJSIV-213] Fix multiple-sorting issue with BoxReorderer, ensure smooth component reordering, Improve reorderable-tabs examples
  - [EXTJSIV-501] Fix the ability to update floating Components while hidden, and have them run their ComponentLayout upon show
  - [EXTJSIV-530] Fixed bootstrap-release.js to test window.location.hostname instead of window.location.host
  - [EXTJSIV-540] Always attempt to remove the overCls when the mouse leaves the component. If a component is disabled while the mouse is still over it, then the overCls will be stuck on until the component is re-enabled
  - Grid DD Example update so columns aren't crammed together
  - [EXTJSIV-531] Fix MessageBox progress bar display
  - [EXTJSIV-434] Prevent IE6-7 from giving focus to the HtmlEditor iframe when setting its contentEditable=true
  - [EXTJSIV-464] Menu should pass its minWidth down to its child components so it is accounted for in the Box layout. This visually affects all examples that use menus which were only as wide as they needed to be
  - [EXTJSIV-138] Fix no borders on forum search example
  - Fixed column headers in IE
  - [EXTJSIV-561] Fix an issue when creating a tab panel with no items
  - Fix Loader's path resolution
  - [EXTJSIV-557] Locking grid resize indicator shows up regardless of which section you drag from
  - [EXTJSIV-507] Fix gecko3 issue with the first tab in a tabbar
  - [EXTJSIV-356] Prevent selection from scrolling into view when the selection model is refreshed
  - [EXTJSIV-568] RowEditor disables the view's keynav so that editors will get full default key events
  - [EXTJSIV-339] Fixed problematic curly braces in nestedIdRe in AbstractSummaryFeature
  - [EXTJSIV-375] Complete syncing of row heights, after sorting make sure that the scrollTop is synchronized
  - Correct syncRowHeight default config
  - [EXTJSIV-568] Don't allow RowEditor to hijack space
  - [EXTJSIV-409] Add extra path parameter to ensure cookie clearing works
  - [EXTJSIV-7] Fixed shift that appears in IE with large number scaling when you specify viewPort in a Draw Component
  - [EXTJSIV-558] Fixed an issue where setting a date in a model caused the record to become dirty
  - [EXTJSIV-575] Fix Uncaught TypeError: Cannot call method 'apply' of undefined, due to previous onDisable/onEnable changes
  - [EXTJSIV-449] TableView should not steal the focus when a header is resized. The header layouts occurred when a scrollbar was being added and removed by the TablePanel, causing any previously focused item to lose focus, with focusing going to the TableView. So, a "search filter text box", for example, would lose focus at random points
  - [EXTJSIV-167] Fix IE9 Center Layout
  - Fix Ext.form.Combobox select event firing
  - [EXTJSIV-546] Dont allow a parent folder to be dropped on a folder inside itself
  - [EXTJSIV-524] Make sure you can extend Ext.TreePanel and create an instance without passing a configuration
  - Properly relay View events on the TreePanel
  - [EXTJSIV-190] Fix Ext.ux.TabCloseMenu event monitoring
  - [EXTJSIV-535] Fix Multi sorting grid column reorder indicator
  - [EXTJSIV-537] Fix issue where FormDashboard allows multiple chart selection
  - [EXTJSIV-162] Fix TableView/Features collectData implementation
  - [EXTJSIV-544] Fix Bar display when data is of the same value for more than one record
  - [EXTJSIV-515] Clear groupers when disabling the Grouping Feature
  - [EXTJSIV-565] Fix radial axis labels problem
  - [EXTJSIV-469] Correct layout recursion back into an already-running ComponentLayout
  - [EXTJSIV-565] Fix maxValue in drawSeries
  - [EXTJSIV-590] The PagingScroller now calculates rowHeight based off of markup
  - [EXTJSIV-241] Fix bug in event wrapper ordering which meant that delayed or buffered single:true events threw errors
  - [EXTJSIV-583] Fix sorting padding issue with grid headers
  - [EXTJSIV-510] Added grid headers and special cell backgrounds
  - [EXTJSIV-597] Fix issue where Ext.tab.Panel wouldn't enable tabs
  - [EXTJSIV-588] Fix an issue when using scripts: true when loading a component
  - [EXTJSIV-321] Record associated data now also handles parent models
  - [EXTJSIV-566] Fix issues with returning exceptions from DirectProxy
  - [EXTJSIV-585] Fix an issue where Ext.MessgaeBox was dependent on having a title
  - [EXTJSIV-586] Fix an issue when using reset and formBind, the bound item will now be updated correctly
  - [EXTJSIV-591] Fix warning when destroying border layout
  - Fix detection of changes to form fields in IE9 standards mode by making it use the modern events set
  - Fix vertical alignment of checkbox/radio buttons in IE9 standards mode
  - Fix errors when expand/collapse methods are called after a Picker component is destroyed
  - [EXTJSIV-605] Fix an issue where undefined will be set on the editor when resetting
  - [EXTJSIV-569] Fix bug with nodes being inserted in the wrong location in the NodeStore
  - [EXTJSIV-607] Fix z-index of border floated region
  - [EXTJSIV-372] Fix an issue with flickering when using cell editing in FF on Linux
  - [EXTJSIV-608] Fix issue when creating records at a remote source
  - [EXTJSIV-450] FocusManager will only add tabIndex to DOM nodes that really need them for programmatic focusing. This will ensure default tabIndicies will remain in tact
  - [EXTJSIV-589] CellEditing now fires beforeedit, validateedit and afteredit appropriately
  - [EXTJSIV-610] CellModel will now call its base Model's doSelect and doDeselect functions so it is maintaining the selected record along with the selected position (row/column)
  - [EXTJSIV-418] CheckColumn now will handle the Enter/Space keys for toggling its select state
  - [EXTJSIV-609] CellModel fires its select/deselect events now
  - [EXTJSIV-560] Remove focused cls on items in a TableView when deselecting them
  - [EXTJSIV-614] Prevent combobox dropdown from getting closed before the selectOnTab handler has a chance to fire in WebKit
  - [EXTJSIV-622] When IE9 positions an element offscreen via offsets, the offsetWidth is inaccurately reported. For IE9 only, we render on screen before removing. Fixes an issue with Ext.getScrollBarWidth
  - [EXTJSIV-439] Changed images for the DataView examples to gif for IE6
  - [EXTJSIV-615] Fix an issue when using an idProperty other than "id"
  - RowEditor will handle resize, move, show, and hide of columns properly before the editor is brought up for the first time
  - [EXTJSIV-480] Table layout: added work around for a bug in Opera 10.5 where it makes table cells wider than they should be if their child element has border-box sizing and horizontal padding
  - [EXTJSIV-641] Fix an issue with creating items into a local storage object
  - [EXTJSIV-440][EXTJSIV-633] Fix Ext.ux.AnimatedDataView cross-browser issue
  - CellEditing will complete an edit before grabbing critical information about the next edit, since the view is refreshed upon edit completion
  - [EXTJSIV-371] CellEditing and CellModel will continue cell editing on tabs even across cells with no editor, and stop when the editing ends via a non-tab exit point such as blurring the field
  - [EXTJSIV-606] Constrained Windows no longer lose their center positioning
  - [EXTJSIV-508] Give a visual indication of a selected/focused tree node in the check-tree example
  - [EXTJSIV-508] Tree selection model handles enter/space to check any checkbox tree nodes
  - [EXTJSIV-663] Ensure ServerProxy checks if the value is defined as opposed to just truthy
  - [EXTJSIV-593] Numeric axis is now aware of chart substores, that way it can update when grouping/ungrouping time axis
  - [EXTJSIV-401][EXTJSIV-496] Rework active/inactive tab styling to be consistent across all browsers and avoid the floating border strip
- Enhancements
  - [EXTJSIV-73] Optimized class system performance - round 1
  - Added a simple Gauge Chart
  - Add Ext.Array.sort which is a guaranteed stable sort
  - [EXTJSIV-556] Implement a buffered grid example loading thousands records and buffering the rendering. Required minor changes to PagingScroller, BufferStore and related classes
  - [EXTJSIV-193] Put iconCls and tools into ghosted windows
  - [EXTJSIV-471] RowEditing will now scroll the buttons into view when they are out of sight due to being near the bottom. Also will enforce row selection and keeping a row in view when starting an edit for smoother animations
  - [EXTJSIV-426] Remove redundant validation for allowBlank in Ext.form.Text
  - [EXTJSIV-427] Date and Time would always return null from getValue if the raw value could not be parsed as a date; this was resulting in such values being treated as valid during validation and not being seen as dirty. Changed so that getValue will return the raw value if it cannot be parsed. Also added logic to attempt parsing of the 'value' config during init so that originalValue is a valid Date object for dirty comparison
  - [EXTJSIV-448] Implement readOnly and setReadOnly for Checkbox and Radio fields
  - [EXTJSIV-416] Give fields within fieldset an anchor so they get a width in IE6
  - [EXTJSIV-530] Added port number support to localhost detection
  - Add required classes to Chart LiveUpdate example
  - Increase LiveSearchGridPanel reactiveness
  - [EXTJSIV-529] Element.getColor() will properly accept an empty string as a prefix, which is needed for color animations
  - [EXTJSIV-529] Enable afterRepair fx on dd.DragZone and TreeViewDragZone
  - [EXTJSIV-38] TreeViewDropZone will now highlight successfully dropped nodes
  - [EXTJSIV-38] Use the selectedItemCls setting on TableView prototype to handle the quick remove/add of that cls when highlighting a repair
  - [EXTJSIV-38] TreeViewDragZone will highlight all records that were dragged, for the case of multiselect tree sel model
  - [EXTJSIV-185] Removed .png slicer images + changing to gif (we <3 IE6)
  - [EXTJSIV-346] adding gif versions of icons for treegrid example
  - [EXTJSIV-475] LoadMask may now be configured with a Component to mask as an alternative to just an element. If configured with a Component, it masks the Component's contentTarget. If the Component changes size during loading, the mask's message is recentered. DataView configures its LoadMask by passing itself if it is standalone, or its owning Container if it is inside a Container
  - [EXTJSIV-478] Added the empty cls to all browsers, not just browsers that do not support `placeholder`. this is because of a styling issue in webkit
  - [EXTJSIV-540] Button over when disabled will not apply the hover background linear gradient anymore. disabled classes now get cascaded priority over background-image
  - [EXTJSIV-457] The DragZone was triggering a selection change on mousedown, which was resulting in duplicate selection calls when the DataView was configured to select on click. Moved the former from the mousedown handler to the start of the drag to avoid duplicate selection
  - Improved some Loader's alias functions for performance
  - [EXTJSIV-258][EXTJSIV-259]Refactor Shadow for floating Components
  - [EXTJSIV-551] Menu should not fire click, mouseover, or mouseleave events when its disabled. Menu items will not get any interaction when the menu is disabled
  - Menu will only activate items that can be activated, however, always deactivate the active item when applicable
  - [EXTJSIV-502] Add comment in HtmlEditor explaining how forcing documentMode in the Web Developer Tools will override the mode used by the iframe, causing scrollbars in IE8
  - [EXTJSIV-543] Horizontal scrolling does not rely on having records within the body of the grid. It is calculated off of the headercontainer instead
  - [EXTJSIV-547] Added in browser check for Opera for Mousewheel. Found additional information about Opera and its' mousewheel implementation here: http://www.switchonthecode.com/tutorials/javascript-tutorial-the-scroll-wheel To quote the important parts... "The weirdness comes in because IE and Firefox have very different names for the scroll event. In Internet Explorer, the event is called onmousewheel, while in Firefox the event is called DOMMouseScroll. To make it even worse, Opera uses the Internet Explorer event name (without the 'on' part, so just mousewheel), but Opera needs to use the Firefox way of attaching event listeners."
  - [EXTJSIV-564] Implement index support in selectRange rather than requiring the developer to pass a record instance
  - Updated grid row selection stuff to support IE better
  - [EXTJSIV-447] Add fieldStyle config and setFieldStyle method to Ext.form.BaseField, to allow direct manipulation of the inputEl CSS style
  - Legacy code in the widgets directory removed
  - RowEditor offsets itself by using bottom instead of top, in case of tall rows
  - [EXTJSIV-567] Table State implementation now restores width and visibility
  - [EXTJSIV-532] Add tooltip support on Radar series
  - [EXTJSIV-559][EXTJSIV-373]Provide accurate repair position for Header Drag Zones
  - [EXTJSIV-358] HeaderContainer will disable checkbox in column menu when there is only a single header
  - [EXTJSIV-582] Add Ext.Error custom error reporting class
  - [EXTJSIV-574] Add an alias for all series and handle custom series creation and adding them in an imperative way
  - [EXTJSIV-514] Reimplement rendering of Checkbox and Radio to use a custom image rather than native controls, for greater styling control and consistency across browsers
  - [EXTJSIV-241] Lots of cleanup on Component destroy method
  - [EXTJSIV-599] Make node loaded a field in NodeInterface. When appending a child to a node, mark it as loaded
  - Add the ability to pass a url to the load method on a Store with a ServerProxy defined on it
  - [EXTJSIV-394] Added itemTpl support for DataView
  - Add method to allow destroying the field layout's singleton QuickTip instance
  - [EXTJSIV-604] Allow height to be set on text fields
  - The footer toolbar's (fbar/buttons cfg) spacer shouldn't be focusable anymore
  - Button now has a visual state when focused, which currently mirrors the mouseover state. Also removed a focus/blur method in Button that was unnecessary
  - [EXTJSIV-450] FormPanel will provide default tab stops for its fields and buttons, so that all fields are tabbed through first, and then buttons second
  - [EXTJSIV-450] AbstractPanel and AbstractDock will return/render docked items in their visual representative order, respectively. Docked items have a default weighting, so that they are returned/rendered in (t,l,r,b) order. In the case of a Dock layout, the top/left items are rendered before any existing DOM nodes in the render target (body el, in the case of a Panel), and right/bottom items are rendered after the existing DOM nodes. This keeps our DOM nodes in order of their visual representation to support tab stops, ARIA readers, etc. Also, getDockedItems/getRefItems of AbstractPanel will return the same type of ordering by default to support logical ordering of ComponentQuery's and FocusManager navigation
  - Move FocusManager's tabIndex whitelist to the prototype so it's not defined over and over again for each call to setFocus
  - [EXTJSIV-418] Added keydown event handling to DataView
  - [EXTJSIV-600] Allow form fields to display all errors returned from getErrors at once, rather than only displaying the first
  - [EXTJSIV-304] Grid reconfigure method implemented
  - [EXTJSIV-498] Changed DataView to store the internal record IDs on the view DOM nodes for lookup by record and vice versa. This matters since blockRefresh's can happen and the store becomes out of sync with the DOM nodes, such as was the case with the Animated DataView plugin
  - [EXTJSIV-483] Implement expanded cls for rows inside collectData instead of getRowClass. This allows the user to override getRowClass without them having to worry about expanded state
  - [EXTJSIV-628] Added remove and destroy methods in Sprite.
  - [EXTJSIV-55] Add boxLabelAlign config to allow the user to place the boxLabel before or after the checkbox/radio
  - [EXTJSIV-517] Optimized buffering of requests in PagingScroller
  - [EXTJSIV-596] border:false on a Window removes borders from the body. The Window itself remains framed
  - [EXTJSIV-523] Use the verticalScrollers calculated height when available rather than the raw dom
  - [EXTJSIV-315] Updated access theme to have better styling across all components
  - [EXTJSIV-613] Move extraParams onto the object instead of being per request
  - RowEditor now transitions the error summary tip properly on back-to-back invalid records
  - Remove the inline unselectable cls, and instead call unselectable() on the table view's el after it's been rendered. This fixes a selection problem in Chrome when double clicking in a grid
  - [EXTJSIV-527] Add a workaround for the WebKit MarginRight bug with Anchor Layouts to make them much faster
  - [EXTJSIV-527] Componentlayout.afterLayout will now only be called when a ComponentLayout occurs
  - [EXTJSIV-527] Ensure Card.setActiveItem calls onLayout properly
  - Moved all locking behavior out of the LockingGridPanel subclass
  - [EXTJSIV-660] Add startDay to Date Field
  - [EXTJSIV-653] Added DirectStore shortcut
- API Changes
  - [EXTJSIV-276] The "headers" config in GridPanel has been renamed to the 3.x compatible "columns". All supporting classes are now named XxxxxColumn and are in the Ext.grid.column package. Column xtypes are the same as they were in 3.x
  - [EXTJSIV-562] Added hideEmptyLabel config which automatically collapses the label space when fieldLabel is empty. Made this the default behavior everywhere; this is a slight change from the old form layout which defaulted to maintaining the space unless hideLabel=false
  - [EXTJSIV-59] Rename some methods in Menu to be consistent with framework standards
  - Modified field layout to avoid setting styles when not needed. The fieldLabel element's styles are now applied during render in the template and not in the layout. Fields whose size are not managed by a container no longer set their internal element sizes during layout this can result in wrapping since fields are floated
  - Add inverse iteration support to Ext.Array.each
  - Rename hlColor to repairHighlightColor for Tree DragSource
  - [EXTJSIV-38] TreeViewDDPlugin now has "nodeHighlightColor" which is used on repairs and drops, if applicable. Passing it as the "repairHighlightColor" to the drag zone in this commit. Will be passed to drop zone as "dropHighlightColor"
  - [EXTJSIV-38] Renamed hlDrop to nodeHighlightOnDrop and nodeHighlightOnRepair on the TreeViewDDPlugin class. They are routed to the TreeViewDragZone and TreeViewDropZone as repairHighlight and dropHighlight respectively
  - [EXTJSIV-552] Rename MessageBoxWindow to MessageBox
  - Move all locales package from core to extjs
  - [EXTJSIV-548] Add allowDrag config option on NodeInterface. Set it to false by default for root nodes
  - [EXTJSIV-549] Change the names for the relayed events from TreeStore to TreePanel so that they don't collide with Panel's events
  - [EXTJSIV-602] Put GridViewDDPlugin and TreeViewDDPlugin into proper namespaces (Ext.grid.plugin)
  - [EXTJSIV-269] Renamed enableCacheBuster to disableCaching, added disableCachingParam config
  - [EXTJSIV-581] Fixed up the API for TreeStore, TreeView and TreePanel. Also fixed some bugs related to changing the root node dynamically, loading data after TreePanel has already been created and expanding a node while its loading
  - [EXTJSIV-598] We no longer use the global QuickTips singleton for form error tips. We now create a QuickTip singleton just for the field layout, with the proper baseCls for framing, and register it to respond to an 'errorqtip' property
  - [EXTJSIV-534] Refactor Lockable into mixin
  - AbstractSummaryFeature, ChunkingFeature, GroupingFeature, RowSummaryFeature, RowBodyFeature, RowWrapFeature, and SummaryFeature moved to the Ext.grid.feature namespace
  - Rename locked from Header/Column to ddLock so that it doesnt conflict with the new locking functionality
- Compatibility Changes
  - Removed compat reversing of El.down/El.child - There are too many places in Ext itself that use these calls, and reversing them in the compat layer to match 3.x behavior breaks some Ext 4 code. This will have to remain a documented breaking change in the migration guide
  - Set up compat code for TreePanel, AsyncTreeNode, TreeLoader and TreeSorter
  - Moved deprecated TreePanel members to the compat file
- Documentation Changes
  - Guide section added to documentation. Class System and Drawing/Charting Guides added
  - File field updated
  - Model.fields updated
  - Component updated
  - FocusManager updated
  - Viewport updated
  - FormPanel updated
  - ActionHeader updated
  - GridViewDDPlugin updated
  - ColumnLayout updated
  - DateMenu updated
  - Panel updated
  - TabPanel updated
  - TreeViewDDPlugin updated
  - Animate updated
  - ClassLoader updated
  - Animator updated
  - BsicForm updated
  - Label field updated
  - Labelable updated
  - Text field updated
  - ElementLoader updated
  - Sortable updated
  - AbstractComponent updated
  - Locales updated
  - Ext.Number updated
  - Tab updated
  - TabPanel updated
  - StateProvider updated
  - Editing updated
  - Panel updated
  - CheckboxModel (selection) updated
  - TreePanel updated
  - Ext updated
  - Class updated
  - ClassManager updated
  - Array updated
  - Anim updated
  - FieldSet updated
  - Grid Column updated
  - Application updated
  - Controller updated
  - ControllerManager updated
  - ModelManager updated
  - Router updated
  - BufferStore updated
  - JSON Writer updated
  - Charts updated
  - DrawComponent updated
  - Toolbar updated
  - DataView updated
  - Floating updated
  - Resizer updated
  - Store updated
  - ComponentDragger updated
- Known Issues / Upcoming Changes
  - MVC Example applications and guide
  - Collapsed vertical headers need to be restyled in IE
  - Toolips in IE8 have too much padding on the header which can cause it to clip text
  - Tab Scroller is not working properly in FF < 4
  - GridFilter example is not laying out properly on first render
  - Deprecated (methods slated for deprecation) and Since (what version methods were introduced) implemented within the documentation
  - Column Layout has some performance issues which will be addressed in the next release
  - API naming consistency implementation
  - Field Layout performance has improved, but is not where it should be for IE
  - IE9 Strict mode subpixel rounding can cause wrapping issues (similar to https://bugzilla.mozilla.org/show_bug.cgi?id=458617)

# Release Notes for Ext JS 4 Beta 1

Release Notes: March 30, 2011
Version Number: 4.0.0beta1

## New In This Release

- New Examples
  - Spotlight example
  - Ext.Direct Grid Integration
  - Binding a Grid to a Form
  - Grid Cell Editing
  - Grid Grouping
  - Grid Grouping with Summaries
  - Grid 'Infinite' Scrolling
  - Live Search Grid
  - Grid Locking
  - Grid Remote Group Summary
  - Grid Row Editing
  - Column Layout
  - Actions
  - Overflow Tabs to a Menu
  - Tree with CheckBox selection
  - Drag and Drop between Trees
  - Animated DataView
  - MultiSort DataView
  - Locally Filtered Grid
  - RESTful Store with GridPanel and RowEditor
  - Localization (static)
  - Localization (dynamic)
  - Browser State
  - Data.writer
- Bug Fixes
  - Fixed an issue where menu items would not respect the cls property
  - Fixed improper variable in RemotingProvider
  - Fixed param logic in DirectProxy
  - Fixed an issue when reloading stores with different data sets
  - Added a finite check for a DrawComponent's bounding box
  - Pass the correct parameter to ServerProxy.afterRequest
  - Fix indexOf reference in ListMenu
  - When a date is chosen for a date filter, hide its parent menu
  - Add autocomplete="off" to Button template to prevent Firefox from remembering its disabled state between page reloads
  - Prevent NumericFilter's menu fields from getting focused when mousing over them
  - Fix form submission when using direct
  - Fixed an issue where phantom records were being duplicated in the store when returned from a remote data source
  - Fixed an issue when clearing a client data proxy
  - Fixed Model dependencies
  - Removed redundant requires in Component
  - Fix to make sure initExtCss always executes after Ext.supports.init
  - Fix an issues where the expander icons are hidden when lines: false is used
  - Ensure that the grid doesn't trigger a sort on the store when it renders
  - Fix setValue method and initial value config on HtmlEditor
  - Fixed recursive cloning of a non "plain" object (the constructor of which is !== Object)
  - Ensure a layout isn't triggered if the container is destroying
  - Fixed the styling of forms in a toolbar
  - Fixed Window restore issue
  - Fixed Grid dependencies
  - Fix Accordion layout when initially layed out with no child items
  - Updating $font-size dynamic variable's to use ceil to fix sub-pixel (ex: 10.4px) font-sizes
  - Fixed multiple issues with rotated labels on category axis
  - Fix TabPanel dependencies
  - Fix typo in alternateClassName definitions
  - If the panel has a re-expander, make sure the title is set when setTitle is called
  - Fix an issue where panels would not be collapsed initially when not in a container
  - Allow the combo store to be bound using a single flat array
  - Fix autoCreated Store setup in StoreManager
  - Fix unreachable code in Ext.getDom
  - Properly clear managedListeners array in Observable
  - Fix problem with the animate config option replacing the animate method
  - Fixed grid scroll options 'horizontal' and 'none'
  - Fix problem with autoHeighting TabPanels by their child items
  - Fix menu box overflow handler on IE
  - Fixed stacked bar chart axis calculation issue
  - Fix scaling re-calculation issue for Bar, Line, Scatter series
  - Fire change event when ComboBox value is changed
  - Update alignment of ComboBox dropdown when its content changes, so it can flip from below to above or vice versa as the user types
  - Clear selection in ComboBox.BoundList if it no longer matches the value in the field, so that the old value can be re-selected
  - Fix bug with ComboBox where the value in the field would be blanked out while the user was typing with typeAhead:true
  - Fix ComboBox scrolling selected item into view when list is expanded
  - Set ComboBox selection in list when it is first created, if the ComboBox has an initial 'value' config
  - Fix Scatter series shadow issue
  - Don't reinsert a node into the NodeStore if its new parent is not part of the NodeStore
  - Fixed issue with Element.destroy not being properly called resulting in memory problems for IE
  - Fixed Ext.require() not firing callbacks after a failure
  - Fixed Ext.Loader.getPath() not returning properly value for unknown namespace
  - Forced setting the Axis minimum and maximum values specified by the configuration
  - Fixed cropped window titles in various browsers
  - Firefox fix for getNextId method in WebStorageProxy
  - Fixed an issue with the id not being sent when calling load directly on the model
  - Fixed a bug in previousNode and nextNode. They were not being checked before walking up the hierarchy and therefore triggered a cousin to always be returned
  - Fixed discontinuous tree selection
  - Field component onLayout was being run while the field was hidden but not after, so trigger width was always calcualted as zero. Changed order so layout occurs after show
  - Fix reset method on sliders
  - Fix application of emptyText in IE when ComboBox value is set
  - Fix the setTitle text in windows with vertical headers
  - Make empty ComboBox list item hoverable/clickable in IE quirks mode
  - Fixes Sprite item Bounding Box offset in Opera
  - Fix "Member not found" error in IE by preventing native event object from getting passed and used across the specialkey buffered listener
  - Fix individual record update in Ext.grid.GroupingFeature
  - Surface has now the ability to add in instances of Sprite and configuration objects
  - Ensure datachanged event is fired when filtering the Store without sorters
  - Adjust alignment styles for checkboxes and radios to match Ext3
  - Fixed checkbox spacing + positioning in IE
  - Fixed a bug in DataView Draggable where items in the ghost dataview would not be correctly removed
  - Fix vertical clipping of CheckboxGroup columns without fixed widths in IE quirks mode
  - Fix bug with Radial Axis scaling
  - Fix an issue when retrieving the previous sibling of a component
  - Fix sorter issue with DirectProxy
  - Fix setReadOnly method in HtmlEditor
  - Fix issue with looking up a store by id
  - Fix problem hiding modal mask after modal window hide
  - Fix support for passing a dom element as a target to an animation
- Enhancements
  - Locking GridPanel implemtented
  - Accessibility theme added
  - Numeric Axis majorTickSteps added to set the number of major ticks between a `maximum` and a `minimum` value
  - Implement the animate configuration option on TreePanel
  - Implement singleExpand on TreePanel
  - Store aggregation functions moved to the prototype
  - Implemented checked field in NodeInterface. Have renderer add a checkbox if a value other then null is set in checked
  - Implemented state support as a mixin
  - Added html to each tab in the history example to make it clearer which tab is currently activated
  - Refactored the GridFilters plugin UX as FiltersFeature, a Ext.grid.Feature subclass, and ported it to work with the new Ext4 grid architecture. Reworked the grid-filters example to match
  - Inject the TableView instance into each grid filter, even if it is an already instantiated Filter rather than a filter config object
  - Allow month picker items to wrap properly when inside components with white-space:nowrap like menus
  - Refactoring a Theming so it is easier to customize
  - Updated the themes example to include more components
  - Added HTTP error info to the data operation when a request fails
  - Added load event in preference of read event on TreeStore
  - Grid headers now support grouping in which a header may be configured with a nested headers config object as well as a text/header string
  - The Ext 3.x class ActionColumn has been implemented in 4.x as ActionHeader
  - Cleaned all locale packages files
  - Introduced a new getAssociatedData method on Model to make it easier to aggregate model data
  - Added window state management
  - Added state support for border layout
  - Removed extraneous layout in Card.setActiveItem
  - Made Ext.override proxy to Ext.Base.override if the class was created with Ext.define
  - added Ext.Base.getName method
  - Add animateTarget to show/hide of floating Components (such as Windows and Tooltips, or anything else that floats
  - Allow the aggregation function to be called with the grouped parameter for consistency
  - Added total summary and group summary support for the grid
  - Fix combos example to make getInnerTpl work properly - now must be part of listConfig
  - Implemented Ext.form.File, a custom field widget for file uploads
  - Properly set class on field error quicktips
  - Added grid state support
  - Relay view and tree events to the TreePanel and TreeStore
  - Added a new LocalStorage state provider
  - Allow the model to be defined in the store prototype
  - Implemented Sutherland–Hodgman algorithm and use it for our render label axis implementation
  - Implemented animate config option
  - Styled invalid form qtips
  - Implemented Tree sorting
  - Add additional check in setStyle to ensure the dom node still exists before setting style on it
  - FocusManager enhancements to support Containers being able to subscribe for keyboard navigation
  - Implemented Ext.menu.DatePicker class
  - Implemented Ext.menu.ColorPicker class
  - Cleanup FocusManager's handling of component add/destroy when enabled
  - Convert TabBar to use FocusManager.subscribe instead of its own KeyNav
  - Grid Header needs to give visual indication when it is focused, which will show the menu trigger. This supports key navigation on grid headers and the ability to press down to open the header menu. The menu needs the trigger to be shown since it aligns itself to the trigger
  - Add deep copy operation to NodeInterface
  - Allow Ext.form.Basic#markInvalid to accept a Ext.data.Errors object
  - Added logic to reduce/increase the number of columns in the shadowCt to match the number of items if columns:'auto'
  - Updated MVC to work with dynamic loading
  - Implemented CheckBox selection for Trees
  - Prevent ComboBox from querying and expanding list on keyup if readOnly=true.
  - HeaderDropZone will intelligently move a Header within the same container rather than add/remove, which will perform better as well as prevent add/remove events from firing unnecessarily on the HeaderContainer
  - Trigger fields no longer reserve space for trigger when it is hidden due to readOnly=true
  - Number field value can no longer be modified by up/down arrows or mousewheel when readOnly=true
  - Implemented scrolling while dragging
  - Implemented Grid Editing support as a plugin
  - Clean html entities when setting text to an Surface Sprite
  - Enhanced htmlDecode and htmlEncode methods in Ext.String
  - Scatter and Line series now skip records with undefined yValues
  - ComboBox now automatically set queryMode='local' for auto-generated array stores
  - Ext.form.BaseField now rewraps the browser event object when firing the specialkey event, to prevent issues with buffered specialkey listeners
  - Extended the useNull option to apply to boolean/string types for data stores
  - Added deferredRender back to Card Layout (currently defaulted to true for TabPanel)
  - Updated FeedViewer to be smarter about how it opened many tabs at once
  - Modify Proxy so batching is configurable
  - Allow a store configuration to be passed to data bound objects
  - Add beginEdit/cancelEdit/endEdit functionality to Model
  - Added isValid to Model for a shortcut
  - Added autoSave support for Data writers
  - Ensure writer always passes the id if we have a non phantom
  - Made Tips constrain within their zIndexManager's client element. Change the constrain default to true
  - Button will now use an anchor element when configured with an href
  - Make Ext.form.Field.resetOriginalValue update the field's dirty state to match
  - Automatically convert objects into records with NodeInterface
  - Make ComboBox.getValue return the raw text field value if it does not match the display value from the last list selection or setValue call. Allows submitting values that do not appear in the store
  - Enhance the appendChild, removeChild, insertBefore code on the NodeInterface with suppressEvents capabilities. This optimizes the performance of the initial Tree rendering drastically
  - Implemented Grid RowEditing
  - Basic.updateRecord() will now use the actual field data for updating the Model fields rather than the submit-friendly string equivalent of the form field data. Certain string encodings are not compatible with Model field covert methods if they are not in the exact/proper format, e.g. Date fields
  - Remove Canvas support as it is not ready for release. SVG/VML still covers all desktop platforms.
- API Changes
  - Moved methods slated for deprecation to the compat layer
  - Added a new ElementLoader class that is the superclass of ComponentLoader. The purpose of this class is to replace Ext.Updater. Updater is removed and the load method now points to the new loader
  - Move model creation into the model itself, essentially deprecates regModel
  - Time axis now works with Dates and not formatted strings
  - Move Ext.util.Date methods over to Ext.Date. Changed all references to Ext.Date in code, examples and tests
  - Add workaround to Ext.core.Element#getWidth to avoid Gecko bug where it returns an offsetWidth that rounds down the actual width due to subpixel font rendering. This logic was previously in a couple of components, this commit moves that up to Element.getWidth
  - Fix AbstractPanel.bodyCls to also support array values
  - Created an AbstractMixedCollection which MixedCollection extends from
  - Sortable refactored as a mixin
  - Refactored Sorting on MixedCollection, TreeStore, and TreePanel to use the new Sortable mixin
  - Absolute Layout will now always use setItemSize even if an anchor property isn't specified
  - Ensure the page parameter gets sent on remote data loading
  - Remove any trace of applyTo throughout the framework
  - Updating the BoundList selection on setValue for ComboBox is now the default behavior
  - Selection models are now consistent: Moved grid/CellSelectionModel.js to selection/CellModel.js, grid/RowSelectionModel.js to selection/RowModel.js, and grid/CheckBoxSelectionModel to selection/CheckBoxModel.js. Namespace moved to Ext.selection as well
  - Set AjaxProxy as the default proxy
  - Normalize store aliases to be store.name. Added the ability to specify a store configuration when creating a data bound class. Note that this requires all of the stores to be looked up using StoreManager.lookup so that we can determine whether we have received an id, a config or an instance
  - Enhance DataView UI event handling
  - Remove dependency of CellEditing on CellSelectionModel
- Compatibility Changes
  - Implemented compat layer for PagingToolbar and MemoryProxy
  - Significant update to AbstractStore compat layer to handle different store/proxy/reader config setups
  - Updates to compat layer for AbstractStore and MemoryProxy to support filtering correctly
  - Aliased row[de]select to [de]select
  - Tweaked message formatting in compat layer for deprecating events
  - The bodyStyle config types from 3.x are all now fully supported on Panel
  - Compat code was using Array.indexOf, which did not agree with IE6. Switched to use Ext.Array.indexOf
  - Alias Panel.bodyCssClass config to bodyCls
  - Added Slider compat override to convert the SliderTip plugin to tipText config
- Documentation Changes
  - Updated Ext.Date
  - Fix the link to Ext Direct specification
  - Correct spelling of 'resizable' and not 'resizeable'
  - Updated Controller
  - Updated Advanced DataView
  - Update Ext.Window
  - Added ActionHeader
  - Added Ext.Base.override
  - Updated AbstractDataView
  - Updated Draw.Component
  - Fix ComboBox docs error
- Known Issues
  - Various styling fixes are ongoing
  - Buttons are not part of the focusable items in a form
  - Shadows to be implemented in the next release
  - Tree Filtering and Editing to be implemented in the next release
  - Performance and memory optimizations to be implemented in the next release
  - Cleanup of API naming conventions to be implemented in the next release
  - IE9 is not detected as supporting CSS3BorderRadius, which it only does in strict mode.

# Release Notes for Ext JS 4 PR5

Release Notes: March 18, 2011
Version Number: 4.0.0pr5

## New In This Release

- New Examples
  - Ext.Direct Named Arguments
  - Registration Form
  - StatusBar
  - Advanced StatusBar
  - Tree Reporder
  - XML Tree
  - TreeGrid
- Bug Fixes
  - Fix bug on FF for Mac where an initial layout of boxes causes the innerCt to scroll, and it becomes stuck at the scrollPosition. Manifesting in layout-browser example
  - Fix the problem in IE where the margin-bottom of the last item was not being included in the "auto" height of its Container
  - Fix issue where dragging a child to become the last child in a folder would insert it in the wrong position
  - Fix an issue where the sortType was not being honored when local sorting in a grid
  - Fix issue when calling setProxy on a model subclass
  - Fix Ext.panel.Table hideHeaders configuration option
  - Fix button layout in IE7 when minWidth is set
  - Fix minButtonWidth in FormPanels
  - Fix bug where StoreManager would not be able to create a Store from a store config object
  - Fix layout/alignment issues in fieldset legends with IE
  - Fix for IE6 repaint bug on right edge of framed panel
  - Fix display of tooltip anchor arrow
  - Fix scope for custom validator method
  - Fix icon position of grid header when align:right
  - Fix issue with dateRenderer when dealing with null values
  - Fix issue with masking in IE6-9 Quirks and IE6 strict
  - Fix problem with Panel's initial collapse state setting, and subsequent expansion by the Accordion layout
  - Fix ComboBox setValue to handle empty values
  - Fix issue with Line Series shadows which weren't refreshed when animations were not enabled on
- Enhancements
  - Refactored the Tree code. Working features as of this point are Tree rendering, expanding & collapsing, drag and drop, loading a tree from memory, have multiple columns, keyboard navigation and selection model
  - Added support for named arguments in Ext.Direct methods
  - Every Record registers itself with the ModelManager
  - Implemented Tree collapse and expand animations
  - Implement loading nodes in a sorted TreeStore
  - Added a lastframe event to the animation that only fires when the animation actually reaches its end
  - Define getters for getting the computed height and width from an animations target to use as the from values
  - Refactor Tree collapse and expand animations. This fixes quickly collapsing and expanding nodes
  - Added a new transform option for Sorter
  - Panel's getDockedItems now accepts a ComponentQuery selector string
  - Add setSrc method to ImageComponent for changing the image src after initialization
  - Added 'none' as a possible value for msgTarget, to prevent all error message rendering. Only fire errorchange event when the error message actually changes
  - Add hideGroupedHeader support to Ext.grid.GroupingFeature
  - FormPanel and FieldContainer both contained logic to handle the addition and removal of Labelable and Field instances within their items subtree; factored that common logic out into a FieldAncestor mixin for both to use. The new mixin also adds new events 'fieldvaliditychange' and 'fielderrorchange' that allow listening for changes at the parent container level
  - Allow checkbox fields to display errors
  - All the old config properties that controlled the dropdown list have been removed in favor of a single listConfig object, which gets passed along to the BoundList's config. This is much simpler and provides total control over all aspects of the list
  - Implemented valueNotFoundText
  - Enhanced BoundList layout to handle min/max for both width and height
  - Implement ComboBox pageSize option
  - elasticOut and bounceIn easing added for animations
  - Added support for rootVisible. Also moved the creation of the NodeStore from TreeStore to the TreeView
  - Added support for the 'root' configuration option on TreeStore. It supports the 3.3 way of specifying root and children. Automatically figures out whether to load children on expand from the server or memory. Also removed requirement to specify a proxy on a TreeStore. Removed requirement to specify store on TreePanel and support the 'root' config option on TreePanel automatically creating a TreeStore
  - Modified TreeView so that it expands the root node if it's not visible
  - Modified getSourceFiles to include support for writing XML documents
  - Moved additional class for VML from javascript into the stylesheet
  - Add in support for icon and iconCls on tree nodes
  - Support loading flat json data while still loading children from the root property
- API Changes
  - Refactored Tree to be able to decorate records with a Node API
  - Reimplemented TreeStore and created new class called NodeStore
  - Border layout is now responsible for performing a mini-collapse of a child Panel
  - Panel now performs a collapse to leave its header (or a newly generated, injected header) visible. It does not perform a mini-collapse
  - Renamed FlatTreeView to TreeView
  - Correct getRefItems implementation in light of ComponentQuery selector being available in getDockedItems
  - Add boxLabelEl as render selector for checkbox fields
  - Ext.data.Model.id now assigns the new id to the record
- Compatibility Changes
  - Added an alias for Ext.data.Field
  - Added an alert when there are compat errors and no console
  - Added compat code for GridView & JsonStore
  - Modified paging example to switch getRowClass to PreviewPlugin
  - Added internal Ext 3 > 4 class mapping utility
- Documentation Refactors
  - Charting overview document
  - Ext3 Legacy
  - Ext.form.TextArea
  - Ext.form.Checkbox
  - Ext.form.Radio
  - Ext.form.Field
  - Ext.form.FieldContainer
  - Ext.form.FieldSet
  - Ext.form.Panel
  - Ext.form.Labelable
  - Ext.Base
  - Ext.Button
  - Ext.Component#draggable
  - Ext.ComponentDragger
  - Ext.Loader
  - Ext.Array
  - Ext.TabPanel
  - Ext.TabPanel
  - Ext.form.BaseField
  - Ext.form.ComboBox
  - Ext.form.Text
  - Ext.form.Basic
  - Ext.Toolbar
  - Ext.data.SortTypes
  - Ext.data.StoreManager
  - Ext.state.Manager
  - Ext.util.Animate
  - Ext.form.Date
  - Ext.form.Label
  - Ext.form.Number
  - Ext.Viewport
  - Ext.Window
  - Ext.ComponentQuery
  - Ext.Panel
  - Ext.form.FieldAncestor
  - Ext.Container
  - Ext.Component
  - Ext.grid.ViewDDPlugin
- Known Issues
  - Portal example not correct in IE6
  - Toolbar menu overflow not styled in IE6
  - Charts do not render properly in Safari 3.2
  - Menu links (anchor tags) need styling
  - Minor clipping of panel header text in Opera and IE6/7

# Release Notes for Ext JS 4 Preview Release 4

Release Notes: March 15, 2011
Version Number: 4.0.0pr4

## New In This Release

- New Examples
  - Miscellaneous
    - Grid/Form/Chart Combo
    - Rich tooltips (Chart/Grid)
    - Accessible Feed Viewer using keyboard navigation
    - Key Nav
  - Drag and Drop
    - Grid to form DnD
    - Field to grid cell DnD
    - Grid to Grid DnD
    - DataView to grid DnD
  - Forms
    - A common "contact us" popup form
    - A shopping cart checkout form
    - Advanced validations
  - Toolbars
    - Simple toolbar with menus
    - Reorderable toolbar items
  - Layouts
    - Accordion layout example
    - VBox layout manager examples
  - Ext.Direct
    - Simple generic Direct example
    - Form submission using Direct
- Bug Fixes
  - Fix error in slideIn/slideOut when optional duration is not specified
  - Fix and issue that can happen if only a single axis point is used in a bar chart
  - Ensure lastFocused is reset when refreshing the selection model
  - Fix EventManager issues with mouseenter/mouseleave events
  - Fix {memberExpression} selector parsing
  - Fix up alias for ArrayStore
  - Fix currency function to accept and convert a numeric String input value
  - Fix an issue where legend items don't remember their state between reload
  - Fix up allowEl option for within, it should be used as a fallback if the element isn't contained within the parent
  - Fix a highlighting issues with Pie
  - Correct use of "float" keyword as object property name
  - Fix buttons with noLinearGradients
  - Change how field layout handles horizontal sizing when no set width is specified It now uses the shrink-wrapped natural size of its body content plus label, rather than the width of the outermost element. This fixes layout issues when fields are used as hbox items, since the outer element has zero width during initial layout. It also prevents fields from expanding to the full width of their container by default, which is more consistent with the Ext3 behavior
  - Fix Box layout for when margins are specified in object for, but without all 4 properties. Default to zero
  - Remove extraneous quote in GroupingFeature template
  - Fix an issue when using autoHide and delegate with ToolTip
  - Fix Combo hiding when using the scroller in FireFox
  - Fix specificity of .x-form-invalid-field selector for textareas so the proper styling is shown
  - Fixed width of slider tips, and tips in general, in IE quirks mode. Switches tips to use the table framing so they don't expand to full viewport width. Removes the bad width-setting logic from Ext.slider.Tip so it is properly handled by the layout class
  - Fix box layout to correctly calculate middle alignment
  - Correctly autosize the innerCt according to max component size (now takes innerCt's borders into account)
  - Fix an issue when using a defaultValue with Boolean fields
  - Fix an issue when saving/loading a model and the request fails
  - Fix for improper font measurement in VML. Vertical header text should display more reliably. Still some work to do on adjusting for the font baseline.
  - Ensure button does not show mouseover when disabled
  - Fix call to cloneNode so it happens on the raw HTMLELement
  - Fix up a typo in the RemotingProvider
  - Fix an issue with form submissions with uploads
  - Fix typo that caused file uploads to fail
  - An autosized Panel which has been collapsed should now expand back properly
  - Fix an issue where the store would not reload when filters are cleared while using remoteFilter
  - Fix an issue where Model.setProxy would not accept a Proxy instance
  - Fix a problem in the ZIndexManager where if a modal Window showed another floating Component (such as the BoundList of a Picker Field), the modal mask is hidden during the period that the Window is not at the topmost position in the z-index stack. Now the modal mask is only hidden when there are no Modal floating Components (usually modal Windows) displayed
  - Fixed some IE 6/7/8 styles in Menu. IE6 had a "slit" in the item separator that is no longer there. Browsers without linear gradient support now use a nice looking background image for active items
  - Fix for Menu in Opera 10, which does not report an element's width if it is not a part of a render box. We have to temporarily add it to the body to perform a measurement
  - Change ReloadChart example to bind to the correct (left) axis
  - Fix issue where the bounding box cache in VML was not getting cleared when it's path changes
  - Fix toolbar button spacing in IE7 strict mode
  - Fix an issue with split buttons where the arrow wasn't completely clickable
  - Fix some issues with state track in Model
  - Fix Box Layout calculation effecting margins
  - Fix endDrag call to afterBoxReflow
  - Fix an issue rendering bar chart categories in the wrong order
  - Fix an issue when trying to position a floating component at 0,0
  - Fix a chart display issue when using a single series in a vertical legend
  - Fix an issue where the chart legend would move on redraw when using position: float
  - Ensure hidden fields don't have any effect on form display
  - Fix vertical alignment of paging toolbar number field
  - Fix a problem where Windows do no display an icon when configured with a valid iconCls
  - Fix bug in ComponentQuery, when using {expression} matching. Only the first {expression} used would ever be matched resulting in incorrect results.
  - Fix styling of fieldset legends
  - Fix height of text/trigger fields in IE quirks mode
  - Fix spinner button sprite states when field is focused
  - Fix an issue where viewports in IE6/7 would show a scrollbar by default
  - Fix dependencies for Border Layout and Splitter classes
  - Fix an issue when using non-string values in combo
  - Fix an issue when using a belongsTo association and loading the parent object
  - Fix an issue where RestProxy requests were being batched
  - Fix sizes of Buttons in ButtonGroup
  - Fix an issue when using an itemId in a border layout region
  - Fix an issue where space was being reserved in IE7 for side error icon when there is no error
  - Fix typo in throw error message in initframe

- Enhancements
  - Introduced a TreePanel capable of supporting multiple headers. Abstracted shared logic between the Tree and Grid into a TablePanel class.
  - Tab overflow implemented
  - Menu overflow implemented
  - Drag and Drop for Dataviews implemented
  - Implemented Tree and Grid drag and drop
  - FocusManager implemented (Jarred ELABORATE)
  - HTMLEditor implemented
  - Ext Direct implemented, with a new DirectProxy
  - Add support to ComponentQuery to accept member expression selectors in pseudo-class selectors
  - Support member expression selectors for ComponentQuery in the same way as attribute selectors, by allowing them to occur anywhere within a single selector chain to further filter the working group of items
  - Added inheritable statics for Classes
  - Refactor cleanup for Scatter Series
  - Ensure doLayout doesn't run a layout that is already in progress
  - Implement pruneRemoved for Ext.selection.Model
  - Ensure selection model is refreshed when DataView is refreshed or records are added
  - Create a reference to the Ext sandbox instance in generated functions
  - Increment snap ends `to` argument properly
  - Add feed viewer icon
  - Box layout. Correct allocation of spare space to non-flexed items after a shortfall has caused a reduction to minSize
  - Button layout: Now sets the outer element width if a numeric width passed
  - Added "focusable: false" to menu & toolbar separators so they are not candidates for gaining focus
  - Updated Ext.menu.* to play nicely with Ext.FocusManager when enabled
  - Menu: Constrain to within browser viewport and use box layout scroll overflow handler
  - Implement disabled style for horizontal scroller
  - Implement Ext.selection.TreeModel handling for left/right in the flattreeview. Turn it on in the TreePanel
  - Enforce that user clicks expander to toggle a record
  - Ensure that collapsed region placeholders are z-indexed above slide-ins
  - Border layout now honors the floatable: false config
  - Menus no longer access elements that are not rendered
  - MenuManager now uses Ext.Array.remove instead of calling remove on the Array instance
  - Ensure a region isn't floated if floatable: false is specified.
  - DataView now ensures the selections get refreshed when the view does
  - Implemented button as a link when an href/url is configured
  - Implementes initial collapse state to collapse when the outermost Container (usually a Viewport) has been layed out, or, if no Container, on first component layout
  - Removed legacy images file
  - The framing method for non-CSS3 browsers which uses a table is necessary for proper width of floated components in IE quirks mode. Some floated components, such as Tip, have Dock layout which requires being able to insert docked items directly into the outermost element; this was failing when the outermost element was the table element. Changed to have a div as the outermost element with the table as an immediate child
  - Prevent validation when initializing the field value, rather than validating but then clearing errors
  - Apply correct CSS classes to Panel headers within collapsed Panels so that bordering can be kept consistent
  - Add rule for column layout child items. They must float:left
  - Implement 3.x style Column layout where child items float across the Container (Note this API is not finalized and may change)
  - Labels for vertical axis are now hidden when they're too close to each other (or overlapping)
  - Implemented weighting on docked items by returning a sorted array based on a weight property in AbstractPanel's getDockedItems method. Default weight is 0
  - Addition code to ensure the data proxy gets its params correctly
  - A parent menu's hide timer (on mouse leave) will be cancelled when hovering over a submenu
  - Add x-quirks to when we're in quirks mode (!Ext.isStrict), useful for CSS that must know whether or not in quirks mode, as x-border-box is applied on all browsers that aren't IE6/7 in both quirks and strict modes
  - Implemented hideHeaders and provide backwards compat layer for preventHeaders
  - Implement fill:false in Accordion layout which means that expanded child Panels are not fitted within the accordion Container, but assume their natural height. Implement multi:true which allows multiple items to be opened at once when using fill:true. The opened Panels share available space by using the Box layout flex config
  - Implement a Component click event in Header. This is for use by Panel's titleCollapse configuration
  - Accordion layout now propagates its Panel-specific configurations to child Panels
  - Implement titleCollapse for Panel
  - Added writeAllFields method to the data writers
  - Add beforeselect event to DataViewModel
  - Restored original fonts and font-weights in the default theme to be the same as of 3.3
  - Class.override now adds an owner reference to methods that didn't exist in the superclass yet
  - Users can now override the sortParam used when sorting a particular Header
  - Ensure we use the browser normalized array methods for DataView
  - Add a findLayoutController method which goes up the ownerCt chain to find the highest currently active layout so that afterlayout events may be tracked to fire when a final size has been arrived at
  - Card layout now calls afterLayout on the card Container after card activation
  - Refactor getWidth, getHeight, and getViewSize to account for IE quirks mode measurement issues when a container is overflowed
  - TabBar now scrolls the active tab into view upon set of active tab
  - Added new isIEQuirks flag
  - Tweak bar/column chart starting points so they don't overlap the axis
  - Ensure box layout takes border space of the innerCt into account when centering
  - Tooltips no longer get focus when they call toFront()
  - Users may now provide their own CSS rules for enabling overflow on other box layout Containers. Currently we support Menu, Toolbar and TabBar overflowing.
  - Window will now force the header creation if draggable is set to true
  - Added a new Body Component layout for Components which maintain an inner body element which must synchronize its size with the encapsulating element
  - FieldSet now uses a Component layout to synchronize the size of its body element with the size available within its main, encapsulating element
  - Due to the use of the descendant selector for setting float/etc on field labels, fields nested within a FieldContainer would always get the styles corresponding to the container's labelAlign, even if their own labelAlign was different. Changed it so the label alignment className is now given directly to the label element rather than the parent, so the CSS no longer has to use descendant selectors
  - The Trigger component layout was setting the height of the input field based on the incoming requested height; single-line input fields should always get their height from the CSS and ignore the layout's height
  - Made AbstractDataView less strict in the type of parameter it accepts as a target for getRecord. It may now be an HtmlElement or an Ext.Element
  - Added a frameHeader config which turns on/off framing on the Panel Header
  - Added a ComponentLayout for Editor
  - Ensure formBind is updated when the form is first created & when items are added/removed
  - Added the ability to assign a custom reader for reading associations
- API Changes
  - Added destroy method to Model
  - Move getItemForPoint up to Series and implement isItemInPoint in each series
  - Added static methods for DataView
  - Containers calls to doLayout will call ComponentLayout instead of ContainerLayout when they don't have dimensions (autosized)
  - Change ComponentQuery's member expression filter function to use an "items" argument rather then accessing arguments.callee.caller.arguments, to be ES5/strict compliant and more straightforward
  - Remove the use of arguments.callee from EventManager.createListenerWrap, and instead give a named reference to the return function. ES5/strict compliant, and works in all browsers
  - Ensure DataView uses getItemSelector() when firing events
  - Changed $prefix in scss to include `x-` not just `x`
  - Remove box scroller subclasses. There's only one now which handles perpendicular/parallel
  - Box layouts: new properties for use by box layout overflow handlers
  - All box layout overflow scrolling is handled by a single class: Scroller
  - TabBar now removes header text item and tool spacer. Use scroller overflow handler
  - Added a new preventDefault option to button
  - Remove HorizontalMenu class. There is only one Menu overflow handler
  - Move scroll-specific methods out of overflow handler base class into the Scroll handler
  - Added extra menu-active cls with btn.ui into menuShow
  - Added menu-active cls to css
  - Add slider layout class as dependency
  - Not all floating components should be automatically focused when they are brought to the front; this adds a focusOnToFront config to control that behavior on a class or instance basis. Defaults to true, but is overridden to false in Tip and in the BoundList instances created by ComboBox and Time fields, to prevent losing field focus
  - Ext.grid.View renamed to Ext.view.Table
  - Throw an error message when trying to bind to an event handler that doesn't exist
  - Add a border to collapsed panel headers depending on their docked position
  - Renamed the legacySortMode config to simpleSortMode
  - Added new API config for Server proxy and subclasses
  - Removed Class.extend method (not to be confused with Ext.extend)
  - Removed unused getHead method from Ext.data
  - Ext.Date.parseDate changed to Ext.Date.parse. Add deprecaton for the older parseDate API.
  - Unified Element and Element.static addUnits method which checks for a valid number or unitized String and throws a wraning message if a NaN is passed
  - Changed "operation-complete" event in Batch to "operationcomplete"
- Compatibility Changes
  - Added Ext.lib.Ajax compat
  - Added Ext.reg / ComponentManager.regiserType aliases
  - Fixed editor example's Panel.header reference
  - Include css for message box example
  - Alias Ext.lib.Dom.* to Element
  - Fixed registerType/reg aliases, added registerPlugin/preg
  - Moved legacy-only fx methods to compat file
  - Moved Component overrides from core-compat to compat
  - Added console msg about setting showErrors flag
  - Compat fix for loading stores with an inline data object
  - Moved xtype aliases from core-compat to compat
  - Added additional non-Core JS object prototype aliases
  - Ext.Date compat overrides
  - Additional msg for instance methods becoming statics
  - Added Ext.extend to the compat file, fixed a null error if members arg is not passed
  - Added Store.setDefaultSort compat override
  - Added GridPanel and Model compat overrides
  - Added applyTo message to Ext.Component
  - Added Ext.Compat.breaking() to show breaking changes
  - Added appropriate messaging for most of the compat configs
  - Moved compat items from combobox into the compat file
  - Renamed Ext.Base.extend -> Ext.Base.addStatics, deprecated Ext.Base.implement for Ext.Base.extend. In short, from now on, use MyClass.addStatics for statics members, MyClass.extend for prototype members
  - Fixed tpl alias to implement the getInnerTpl method correctly
  - Added isDef checks where needed to log messages only for defined configs
  - Add compatibility for overriding Ext.form.Field.prototype.msgTarget
  - Add compatibility handler for old implicit column containers in the CheckboxGroup/RadioGroup items
  - AbstractStore and Store overrides for reconfiguring reader/proxy config if needed
  - Aliased store.url support
  - Reader support for optional recordType 2nd arg to constructor
  - XmlReader constructor override to alias configs
- Known Issues
  - Portal example not correct in IE6
  - Toolbar menu overflow not styled in IE6
  - Charts do not render properly in Safari 3.2
  - Minor styling issues with forms/tabs/buttons (primarily in IE6/7)
  - Menu links still need styling
  - Minor clipping of panel header text in Opera and IE6/7

# Release Notes for Ext JS 4 PR3

Release Notes: March 3, 2011
Version Number: 4.0.0pr3

## New In This Release

- Bug Fixes
  - Across the board documentation updates and fixes
  - Fix and implement CycleButton
  - Detect that getAttributeNS is only available in IE9 when it is in IE9 standards mode
  - Fix type in formatContainsHourInfo
  - Fix shrinking problem on the y axis with line charts
  - Fixed sandboxing for EventManager createListenerWrap, reported from
  - Replaced all "new Function(...)" with Ext.functionFactory(...), which solves the sandboxing issues
  - Fix reload of legends and hiding of pie slices shadows when changing the number of pie slices
  - Fix bug in stateful where changes were not being tracked
  - Fixed up slideIn and slideOut animation
  - The code to get viewport width had been changed incorrectly while looking at another layout issue. It's been reverted to how it was before
  - Various fixes for synchronous dynamic loading
  - For data validations, fix inclusion and exclusion method by replacing array indexOf method that is not supported in IE by Ext.Array.indexOf
  - Fix that allow to run Dispatcher spec without context, more precisely without Ext.History object
  - IE fix for Ext.data.store, use Ext.Array.indexOf instead of indexOf native Array method which is not supported by IE
  - IE fix for Ext.Number.toFixed
  - Fix mouseenter and mouseleave events for SVG
  - Specialized IE removeNode now specific to IE6 and IE7
  - Fixed the zero gap issue for barchart as well as a anti-aliasing in the legend
  - Fix framing for components with no bottom or top corners
  - Improved Ext.extend backwards compatibility
  - Fix XHR bug with timeout requests
  - Fix a bug that only allows string values to be used with the {.} operator
  - Fixed a bug with onAvailable in AbstractManager
  - Fixed a bug in HashMap detecting an existing key when adding a new item
  - Ext.Array.merge now properly acts like a true union set operation
  - Fix padding on toolbar-text
  - Fix css issues with tabs
  - Fix css issues with grid
  - Fix accordion header styling to match 3.x
  - Fix portal example to use recently implemented accordion layout
  - Set the collapsed flag before re-layouting the fieldset, so it can be used in isVisible calculations
  - Fix date picker when using dynamic loading
  - Fix welcome html files
  - Fix border styling for DatePicker
  - Fix class definition to set prototype properties when the Ext.Date class has been loaded in DatePicker
  - Fix tag error in the RotateText example
  - Fix styling of MenuItems' icons, checked/unchecked style rules target the *icon*, not the element
  - Fix defaultFocus config when a number
  - Fix incorrect expand icon in header of collapsed Panel in Accordion layout
  - Fix bug in Time field's parsing
  - Fix ComponentQuery member expression feature (e.g. '{isHidden()}' ) so it works as expected
  - Fix framed panels header when collapsed
  - Fix bottom tabsplit height with IE browsers
  - Fix button padding when the icon is to the right
  - Fix the width of grid sort indicators so they don't wrap as easily
  - Fix arrow bottom buttons
  - Fix form and triggerfield styling
  - Fix styling issues with form/checkboxgroup
  - Fix a bug with button, now using neutral color and not base
  - Fix differently scaled buttons in a toolbar
  - Fix cross browser issues with paging toolbar
  - Fix for IE Ext.Array.toArray
  - Fix Component.animate to ensure the component is returned and optimize when not animating height or width
  - Fix styling for bottom tabs
  - Fix tips so they no longer focus themselves when shown. In IE, it was taking focus from form fields
  - Fix stroke widths in VML
- Enhancements
  - A plethora of updates to the backward compatibility legacy files and guide
  - Implemented combineErrors and combineLabels features in FieldContainer
  - Added server-side usage support for Ext4: hammerJS and nodeJS tested
  - Selection Model will now maintain last focused element in the View
  - Add the ability to be able to load a single record with data reader
  - Change shortcut easing functions to match CSS ones and added easeInOut. Benchmarked to be 300% faster at a minimum
  - Add setItemSize method for Containers as a central method for all child item sizing
  - Implement framing using background-position instead of background-image. This resolves the issue with the browser making a request to a 404 page for each framed component that doesn't have any generated framing css
  - Preliminary support for onClick added for charts
  - Implement Chart Mask mixin. Allows for selection of an area of a chart. This will be mixed into Axes as well for the next release.
  - Add a new parseStyles method to transform a css string to an object with a bunch of properties. Use this new method in applyStyles in DomHelper and also in AbstractComponent
  - Add new function to check if the format contains date/day info (ie. not time) - used in TimeField
  - Add withinBox method to Draw
  - Ext.Array.intersect method added
  - Ext.Array.difference method added
  - Ext.Array.union shortcut method for merge
  - Begin clip-rect support in SVG and VML (incomplete)
  - Change HashMap to no longer throw error when adding an existing key. Warn instead
  - Added a cls into the rowexpander header cell and row cell for the first cell
  - Added x-hidden cls for backward compatibility
  - Update css for grids so it now uses css3 throughout
  - Added images for special cells in grid
  - All tabs have a font-weight of bold
  - Move caching logic out of Anchor layout's anchorSpec functions to the base layout engine
  - Add floor argument for example-data generator
  - Removed deprecated layouts
  - Accordion layout only animates during expand/collapse of child Panels
  - Button layout caches measured styles for efficiency
  - Feed Viewer uses CycleButton to cycle through the preview pane options
  - Bringing a floating Component (such as a Window) to the front of its ZIndex stack now focuses it on a 10ms delay. Focusing several Windows in succession results in only the last Window actually receiving focus
  - Refactor Border layout to use new Element effects methods to slide regions in and out
  - TabBar now overrides the layout align option set by the Header superclass
  - Changed tabs to use the base-color and not hard coded colors
  - Changed button to no longer use hardcoded variables
  - Make TabPanel dock the TabBar according to the tabPosition config
  - SVG text is now unselectable
  - A new 'errorchange' event has been added to Ext.form.Labelable, fired whenever set/unsetActiveError is called. This is similar to the 'validitychange' event on Ext.form.Field but is fired by Labelable components which are not Fields, such as FieldContainer. It also fires when the validity is staying invalid but the message changes, which is more useful in some cases
  - BaseField now adds a .x-form-field-invalid class to the inputEl, and this is used in the CSS rather than using the outer .x-form-invalid and a descendant selector; this allows proper styling of child fields of a FieldContainer when the container has an error message displayed
  - ComboBox clearValue method added back in
  - Toolbar now uses the base-color
  - Add extra checks to figure out whether we need to do DST parsing or not for Date function
  - Add triggerNCls-over and triggerNCls-click classes to individual trigger buttons, so each one can be given interaction styling independently rather than requiring compound class selectors. Fixes spinner button states in IE
  - FeedViewer example: Button icon CSS rules should only override the background image. Otherwise Ext-specific styling rules will not apply
  - Group class attached to the icon element for style targeting in CheckItem
  - ComponentQuery can now accept back-to-back pseudo-class selectors, like :not():not():custom
  - Move back to setInterval instead of setTimer as a base for animation timing.
  - Allow for binding of multiple axes to a series via an array
- API Changes
  - AbstractLayout removed, Layout remains the base class now all AbstractLayout dependencies to Layout
  - AbstractDataView has new getter method getItemSelector
  - afteranimate event now fired as the last operation of the Anim.end method (instead of the beginning of the end)
  - layoutItem moved to ContainerLayout from Layout
  - Move resizeHandles config out of Window to Component
  - Box will no longer use CSS margins. It reads CSS margins and adds them to the configured margins, and clears CSS margins. This allows for more accurate positioning
  - Ext.form.CompositeField has been deprecated, as FieldContainer is now at feature parity. Alias has been added to compat file
  - Ext.form.Field#checkValidityChange has been removed, its logic has been moved into the validate method so it gets run when validate is called directly
  - Chart zoom functionality being changed to zoom the appropriate portions of the chart instead of everything

# Release Notes for Ext JS 4 PR2

Release Notes: February 23, 2011
Version Number: 4.0.0pr2

## New In This Release

- Bug Fixes
  - Across the board documentation updates and fixes
  - Fixed a bug that caused an error when hovering over a SplitButton
  - Fixed a bug with setting Proxies on Models
  - Slider movement no longer lags behind the mouse
  - Search now works on the generated documentation
  - Fixed issues regarding date formatting
  - Fixed chart destroy code
  - Fixed an issue when entering a value into the PagingToolbar field
  - Fixed positioning of the editor in the editor sample
  - Change the order and ActiveX Objects that we use. This fixes XML Parsing via DomQuery in IE
  - The last frame of an animation will account for any rounding issues
  - Fix various Slider Tip issues
  - Fix various Slider Field issues
  - Border layout now calls setCalculatedSize when sliding in a hidden Component so that the Component's size does not get fixed and the "other" dimension that is not being set is not to auto by the ComponentLayout
  - Fix preserving ratio to ensure that the largest minSize is honored.
  - Fixed dependency issue with DatePicker
  - Fix removing of current active tab
  - Fix Ext.tab.Bar css sizing issue when the TabPanel has no items
  - Ensure that there is at least one active tab if the tabpanel has items
  - Fix issue with maintaining the constrain parameters in stretch and stretchmax
  - Fix Firefox Ext.tab.Bar css sizing issue
  - Remove tab focus outline on tabpanel tabs
  - Fix icon rendering issue of TabPanel items
  - Corrected styling of toolbar spacers
  - Correct vertical alignment of text on most browsers
  - Fix bug when entering a number into the PagingToolbar
  - Fix MessageBoxWindow's initial laying out problem on FF
  - Ensure RowSelectionModel fires select/deselect events.
  - Fix issue where the parentMenu isn't set correctly if you pass an xtype
  - Fix styling in resizer example
  - Fix up the expand/collapse tool on FieldSet, it wasn't being toggled.
  - Fix initially collapsed Panels in a border layout
  - Border correctly hides hidden floated Panel after it's moved out of view
  - Sandbox chart example now scopes all it's css, no more broken menus
  - Set the background position correctly for progress bar background image
  - Fix text alignment issue in progressbar.
  - Fix element size issue for ie6 and ie7 in strict mode
  - Resolved fighting of drag and drop resizing vs reordering
  - Fixed an issue when submitting combo values
  - Remove default minimum width on BoundList
  - fix IE 7 icon separator zindex issue for Menu
  - Fix problem where grids would incorrectly calculate the width of columns when they were not currently visible due to a layout. Like when they were in a TabPanel
- Enhancements
  - All animations now support WC3 Timing control for script-based animations. When available, else fall back to standard javascript timers.
  - Implement optional scoping for border box CSS rules
  - Implement optional scoping for reset CSS
  - Tabs are now closable
  - Basic form's getValues now handle fields whose getSubmitValue method returns an array of multiple values
  - Several animation examples updated
  - Fixed links on the welcome page
  - Several updates to class documentation
  - Menus now have full keyboard navigation support
  - Menus now extend Panel to support docked items
  - Menu SCSS improved by moving hardcoded theme variables to the variables SCSS file
  - Ext.util.KeyNav can accept space key input
  - HashMap.add may now take a single argument similar to MixedCollection.add
  - Fx queue methods are now handled in the Fx.Queue mixin.
  - fxStack removed from Element.cache, this is now maintained within Fx.Manager.
  - Animate methods (animate, stopAnimation, syncFx, sequenceFx, and getActiveAnimation) now applied via a mixin to Element/CompositeElement/Component/Sprite/SpriteGroup
  - Chart Series.js changed to use animate API. Rest of charts to follow
  - Element translatePoints method refactored to handle undefined passed sizes gracefully
  - EventManager preventDefault fix for IE Link
  - Fix observable so it normalizes the event name in hasListener
  - Ensure component cls and style properties are maintained on framed components
  - Animator (keyframes) now fully support the iterations property
  - Animator now properly supports stopping if beforeanimate returns false
  - Normalize API differences between Element's addCls and removeCls. Both now allow space separated strings
  - Implement endDrag method in DragTracker
  - Handle mouse entering and leaving the arrow area of the Button
  - Button now has a overMenuTrigger flag
  - Split Button now uses the menuTriggerOver flag
  - BorderLayout destroys its embedded Container upon destroy
  - Allow setPagePosition to be passed one or other coordinates as undefined
  - Border layout now implements parameter indices for setting size arguments in VBox and HBox
  - Changing an error message will now be accounted for when errors are re-displayed
  - Improved Grid CSS3 usage when available
  - Component.setPosition method now uses component.animate
  - Cleanup setPagePosition logic and account for NaN issues
  - Rename string vars in Box to be more descriptive
  - Add Toggle buttons to the chart examples
  - Percentage width/height now supported in Border layout
  - ZIndexManager now tracks browser resizes when the modal mask visible
  - Border layout uses Component's animate method
  - Border layout now correctly syncs size of hidden Components before sliding them into view
  - Increase minWidth/minHeight of Resizer to 20
  - Remove charts.swf as it is not needed anymore for the new Charts
  - Added ResizeTracker: A multi-corner, constraining, aspect ratio preserving resize algorithm
  - DragTracker will now process mouseout events correctly: Defer until mouseup if they happen during a drag
  - Ensure RowSelectionModel select/deselect events are fired
  - Fix bug where the parent menu wasn't getting assigned properly when specifying an xtype
  - Adjust grid scrolling speed to be more consistent with the browser scroll speed
  - Fix an issue with using initially collapsed regions in a border layout
  - The Ext.JSON.encode method will now gracefully handle object types that it does not recognize by returning undefined as the value of unknown properties
  - Sprite methods will all return the sprite upon completion
  - Added backwards compatible Ext.extend that delegates to Ext.Class
  - Keyframed animation's (Animator.js) start method is now controlled by fx.Manager
  - Keyframed animations can now be properly queued and integrated with the Animate mixin
  - Adjust the scroll delay algorithm to make the scrollbar more like the normal browser scrollbar
  - Menu now extends Panel to support docking
  - Grid now supports expand to fit
  - Eliminate need for grid reorderer and resizer to be order dependent
  - Added a submitFormat option for Date Field
  - Cleaned up some undefined variables
  - Charts now check for empty stores properly
  - Element.addCls now more intelligent about adding a preceding space
  - CheckboxGroup and RadioGroup implemented
  - Add 'widget.grid' as a second alias
  - Added private CheckboxManager class for managing checkboxes grouped by name, just like RadioManager
  - BoxLayout now uses component.animate instead of Anim directly
  - Add dirtyCls (defined in BaseField) to a field's outer element when it has a dirty value. CSS to display a marker not yet implemented

## API Changes

- All top level CSS classes are now prefixed with 'x-' by default instead of 'ext-' and can now be scoped. This is now consistent with all other Ext CSS classes.
- HashMap.add may now take a single argument similar to MixedCollection.add
- Animate methods (animate, stopAnimation, syncFx, sequenceFx, and getActiveAnimation) now applied via a mixin to Element/CompositeElement/Component/Sprite/SpriteGroup
- Keyframed animations (Animator.js) now fully support the iterations property
- Normalized API differences between Element's addCls and removeCls. Both now allow space separated strings
- Implement endDrag method in DragTracker
- Button now has a overMenuTrigger flag
- Rename pressClass to pressedCls and add check before cls removal in ClickRepeater
- Remove unecessary onDisable/onEnable override in menu.Item and Button
- Rename disabledClass to disableCls in Component
- Removed the positionAnimation property since it is no longer necessary with the Component.animate API
- Removed reverse parameter from keyframed animations
- The pause and running flags now maintained within keyframed animations (Animator.js)
- Update the RowSelectionModel constructor so we can add more useful contextual information to the event
- Menu now extends Panel to support docking
- Add isOnLeftEdge and isOnRightEdge for Grid Header events
- Grid HeaderContainer dragging property now defaults to false
- Animate's getActiveAnimation will now return the current fx.Anim object if there is one or return false if none are active
- Renamed tab reorderer plugin to TabReorderer
- Renamed MenuManager to MenuManager
- Remove Ext.isForcedBorderBox property
- Remove the experimental enableForcedBoxModel property
- Ext.isBorderBox logic now reflects the use of css box model
- CheckboxGroup/RadioGroup setValue method has been simplified; it now only accepts a single format of an object of name-value mappings. The old additional formats will be added to the legacy compatibility layer as an override
- CheckboxGroup/RadioGroup getValue method has been changed to return an object of similar format to what is accepted by setValue for internal consistency. The old behavior has been moved to a new getChecked() method
- The methods setRawValue, getRawValue, valueToRaw, and rawToValue have been moved out of Field and into BaseField; this is to make the main Field interface simpler and more easily implemented on components which do not have the concept of an underlying "raw value" like CheckboxGroup
- Field now has a isEqual method which compares values returned from getValue() for logical equality, and is used anywhere a comparison is necessary such as checkChange() and isDirty(). The base implementation is a simple string comparison, but can be overridden by fields with more complex values
- Field now has a resetOriginalValue method which is called by the form when trackResetOnLoad=true instead of setting originalValue directly, this allows the behavior to be overridden by field subclasses
- Field's getSubmitValue method has been changed to a more powerful getSubmitData method, which returns a mapping object of name-value pairs; this allows single fields to return multiple values under different names rather than being limited to a single name per field. The getSubmitValue method has been retained as a helper but moved down to BaseField
- Introduced a batchChanges method on field as a utility for preventing excessive firing of change events in fields such as CheckboxGroup that have many sub-fields who may be updated as a batch
- Basic's isValid method has been changed back to its old behavior where it iterates through all fields in the form and triggers error markings. A new hasInvalidField method has been added to retain the more efficient short-circuited validity checking and preventing error markings

## Known Issues

- Tab heights not consistent across all browsers

# Release Notes for Ext JS 4 PR1

Release Notes: February 16, 2011
Version Number: 4.0.0pr1

## New In This Release

This is the first public release of Ext JS 4 (preview). We've prepared a full release overview guide to explore all of the changes made so far.