[qo-modules-dev] [37] Clean up of garbage files, small update to Ext3 from svn.

[ Thread Index | Date Index | More lists.tuxfamily.org/qo-modules-dev Archives ]


Revision: 37
Author:   mjlecomte
Date:     2008-12-03 14:02:33 +0100 (Wed, 03 Dec 2008)

Log Message:
-----------
Clean up of garbage files, small update to Ext3 from svn.

Modified Paths:
--------------
    mickael/trunk/ext/v3.0.0-a1/build/widgets/Button-min.js
    mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.html
    mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.js
    mickael/trunk/ext/v3.0.0-a1/examples/dd/field-to-grid-dd.js
    mickael/trunk/ext/v3.0.0-a1/examples/desktop/desktop.html
    mickael/trunk/ext/v3.0.0-a1/examples/feed-viewer/FeedWindow.js
    mickael/trunk/ext/v3.0.0-a1/examples/form/combos.html
    mickael/trunk/ext/v3.0.0-a1/examples/form/combos.js
    mickael/trunk/ext/v3.0.0-a1/examples/form/xml-form.js
    mickael/trunk/ext/v3.0.0-a1/examples/grid/PanelResizer.js
    mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.js
    mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.html
    mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.js
    mickael/trunk/ext/v3.0.0-a1/examples/layout/column.html
    mickael/trunk/ext/v3.0.0-a1/examples/layout-browser/layouts/combination.js
    mickael/trunk/ext/v3.0.0-a1/examples/locale/dutch-form.js
    mickael/trunk/ext/v3.0.0-a1/examples/locale/multi-lang.js
    mickael/trunk/ext/v3.0.0-a1/examples/menu/actions.html
    mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.css
    mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.js
    mickael/trunk/ext/v3.0.0-a1/examples/samples.html
    mickael/trunk/ext/v3.0.0-a1/examples/tasks/classes.js
    mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.html
    mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.js
    mickael/trunk/ext/v3.0.0-a1/examples/view/chooser.js
    mickael/trunk/ext/v3.0.0-a1/examples/view/get-images.php
    mickael/trunk/ext/v3.0.0-a1/ext-all-debug.js
    mickael/trunk/ext/v3.0.0-a1/ext-all.js
    mickael/trunk/ext/v3.0.0-a1/package/button/button-debug.js
    mickael/trunk/ext/v3.0.0-a1/package/button/button.js
    mickael/trunk/ext/v3.0.0-a1/source/widgets/Button.js
    mickael/trunk/ext/v3.0.0-a1/src/core/DomQuery.js
    mickael/trunk/ext/v3.0.0-a1/src/core/Ext.js
    mickael/trunk/ext/v3.0.0-a1/src/core/Fx.js
    mickael/trunk/ext/v3.0.0-a1/src/data/GroupingStore.js
    mickael/trunk/ext/v3.0.0-a1/src/data/JsonReader.js
    mickael/trunk/ext/v3.0.0-a1/src/data/JsonStore.js
    mickael/trunk/ext/v3.0.0-a1/src/data/Record.js
    mickael/trunk/ext/v3.0.0-a1/src/data/Store.js
    mickael/trunk/ext/v3.0.0-a1/src/data/XmlStore.js
    mickael/trunk/ext/v3.0.0-a1/src/dd/DragTracker.js
    mickael/trunk/ext/v3.0.0-a1/src/ext.jsb
    mickael/trunk/ext/v3.0.0-a1/src/util/Observable.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/Button.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/Component.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/PagingToolbar.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/Panel.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/SplitBar.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/TabPanel.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/Toolbar.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/Window.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Action.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/BasicForm.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Checkbox.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/CheckboxGroup.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Combo.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Field.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Form.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/NumberField.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Radio.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TextField.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TimeField.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TriggerField.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/form/VTypes.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/Column.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/ColumnModel.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/GridPanel.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/GridView.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/layout/ContainerLayout.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/tips/QuickTips.js
    mickael/trunk/ext/v3.0.0-a1/src/widgets/tree/TreeNode.js

Added Paths:
-----------
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/css/
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/css/extjs.css
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/arrow.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/bd-bg.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/big-box.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/c-sep-l.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/c-sep.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/check.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/checked.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/corners-sprite.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/extanim32.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/extjs2.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/ft-bg.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/ft.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/full-box.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/gxt.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/inner-hd.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/left-right.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/med-box.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/med-shd.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/msg-bg.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left-over.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left-over.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-over.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right-over.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right-over.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-spacer.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/pdf.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/sample-over.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/side-box.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/top-bottom.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/topbar.png
    mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/site.js
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/blank.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-gridtoformpanel.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-gridtogrid.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-zones.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-adv-vtypes.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-check-radio.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-file-upload.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-grid-binding.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-multiselect.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-data-binding.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-filter.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-from-markup.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/layout-browser.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/locale-dutch.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/locale-switch.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/qtips.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/slider.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/spotlight.gif
    mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/tree-xml-loader.gif
    mickael/trunk/ext/v3.0.0-a1/src/data/ArrayStore.js

Removed Paths:
-------------
    mickael/trunk/ext/v3.0.0-a1/learn/desktop/delete/
    mickael/trunk/ext/v3.0.0-a1/learn/desktop/js/archive/
    mickael/trunk/ext/v3.0.0-a1/learn/desktop/system/


Modified: mickael/trunk/ext/v3.0.0-a1/build/widgets/Button-min.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/build/widgets/Button-min.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/build/widgets/Button-min.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -7,7 +7,7 @@
  */
 
 
-Ext.Button=Ext.extend(Ext.BoxComponent,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:'button',menuClassTarget:'tr:nth(2)',clickEvent:'click',handleMouseEvents:true,tooltipType:'qtip',buttonSelector:"button:first",scale:'small',iconAlign:'left',arrowAlign:'right',initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle",'mouseover','mouseout','menushow','menuhide','menutriggerover','menutriggerout');if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}
+Ext.Button=Ext.extend(Ext.BoxComponent,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:'button',menuClassTarget:'tr:nth(2)',clickEvent:'click',handleMouseEvents:true,tooltipType:'qtip',buttonSelector:"button:first-child",scale:'small',iconAlign:'left',arrowAlign:'right',initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle",'mouseover','mouseout','menushow','menuhide','menutriggerover','menutriggerout');if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}
 if(typeof this.toggleGroup==='string'){this.enableToggle=true;}},getTemplateArgs:function(){var cls=(this.cls||'');cls+=this.iconCls?(this.text?' x-btn-text-icon':' x-btn-icon'):' x-btn-noicon';if(this.pressed){cls+=' x-btn-pressed';}
 return[this.text||'&#160;',this.type,this.iconCls||'',cls,'x-btn-'+this.scale+' x-btn-icon-'+this.scale+'-'+this.iconAlign,this.getMenuClass()];},getMenuClass:function(){return this.menu?(this.arrowAlign!='bottom'?'x-btn-arrow':'x-btn-arrow-bottom'):'';},onRender:function(ct,position){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template('<table cellspacing="0" class="x-btn {3}"><tbody class="{4}">','<tr><td class="x-btn-tl"><i>&#160;</i></td><td class="x-btn-tc"></td><td class="x-btn-tr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-ml"><i>&#160;</i></td><td class="x-btn-mc"><em class="{5}" unselectable="on"><button class="x-btn-text {2}" type="{1}">{0}</button></em></td><td class="x-btn-mr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-bl"><i>&#160;</i></td><td class="x-btn-bc"></td><td class="x-btn-br"><i>&#160;</i></td></tr>',"</tbody></table>");Ext.Button.buttonTemplate.compile();}
 this.template=Ext.Button.buttonTemplate;}

Modified: mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.html	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.html	2008-12-03 13:02:33 UTC (rev 37)
@@ -9,7 +9,7 @@
     <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
     <!-- ENDLIBS -->
 
-    <script type="text/javascript" src="../../ext-all-debug.js"></script>
+    <script type="text/javascript" src="../../ext-all.js"></script>
 
     <script type="text/javascript" src="../form/states.js"></script>
     <script type="text/javascript" src="buttons.js"></script>

Modified: mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/button/buttons.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,15 +1,5 @@
 Ext.onReady(function(){
 
-var btn = new Ext.Button({
-    xtype:'button',
-    text: 'Add User',
-    iconCls: 'add24',
-    scale: 'medium'
-    //arrowAlign:'bottom',
-    //menu: [{text: 'Ribbons are hideous'}]
-});
-btn.render('docbody');
-/*
     // This function renders a block of buttons
     function renderButtons(title){
 
@@ -185,5 +175,4 @@
             items: items
         });
     }
-*/    
 });
\ No newline at end of file

Modified: mickael/trunk/ext/v3.0.0-a1/examples/dd/field-to-grid-dd.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/dd/field-to-grid-dd.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/dd/field-to-grid-dd.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -218,7 +218,7 @@
     }
 
     // create the data store
-    var store = new Ext.data.SimpleStore({
+    var store = new Ext.data.ArrayStore({
         fields: [
            {name: 'company'},
            {name: 'price', type: 'float'},

Modified: mickael/trunk/ext/v3.0.0-a1/examples/desktop/desktop.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/desktop/desktop.html	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/desktop/desktop.html	2008-12-03 13:02:33 UTC (rev 37)
@@ -9,7 +9,7 @@
  	<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
  	<!-- ENDLIBS -->
 
-    <script type="text/javascript" src="../../ext-all-debug.js"></script>
+    <script type="text/javascript" src="../../ext-all.js"></script>
 
     <!-- DESKTOP -->
     <script type="text/javascript" src="js/StartMenu.js"></script>

Modified: mickael/trunk/ext/v3.0.0-a1/examples/feed-viewer/FeedWindow.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/feed-viewer/FeedWindow.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/feed-viewer/FeedWindow.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -21,7 +21,7 @@
                 '<em>{url}</em><strong>{text}</strong>',
                 '<div class="x-clear"></div>',
                 '</div></tpl>'),
-        store: new Ext.data.SimpleStore({
+        store: new Ext.data.ArrayStore({
             fields: ['url', 'text'],
             data : this.defaultFeeds
         })

Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/combos.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/combos.html	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/combos.html	2008-12-03 13:02:33 UTC (rev 37)
@@ -38,7 +38,7 @@
 </div>
 <div id="state-combo-code-panel" style="margin-top:10px">
 <pre id="state-combo-code" class="code"><code>// simple array store
-var store = new Ext.data.SimpleStore({
+var store = new Ext.data.ArrayStore({
     fields: ['abbr', 'state'],
     data : exampleData
 });
@@ -65,7 +65,7 @@
 </div>
 <div id="state-combo-qtip-code-panel" style="margin-top:10px">
 <pre id="state-combo-qtip-code" class="code"><code>// simple array store
-var store = new Ext.data.SimpleStore({
+var store = new Ext.data.ArrayStore({
     fields: ['abbr', 'state', 'nick'],
     data : exampleData
 });
@@ -85,7 +85,7 @@
 
 <p>
 The combo box can also use plain array data directly as its data source, wrapping the array internally
-with a SimpleStore as needed.  You can pass a 1-dimensional or multi-dimensional array as the store config:</p>
+with a ArrayStore as needed.  You can pass a 1-dimensional or multi-dimensional array as the store config:</p>
 <div>
     <input type="text" id="array-states" size="20"/>
 </div>

Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/combos.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/combos.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/combos.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -2,7 +2,7 @@
     Ext.QuickTips.init();
 
     // simple array store
-    var store = new Ext.data.SimpleStore({
+    var store = new Ext.data.ArrayStore({
         fields: ['abbr', 'state', 'nick'],
         data : Ext.exampledata.states // from states.js
     });

Modified: mickael/trunk/ext/v3.0.0-a1/examples/form/xml-form.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/form/xml-form.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/form/xml-form.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -54,7 +54,7 @@
                     new Ext.form.ComboBox({
                         fieldLabel: 'State',
                         hiddenName:'state',
-                        store: new Ext.data.SimpleStore({
+                        store: new Ext.data.ArrayStore({
                             fields: ['abbr', 'state'],
                             data : Ext.exampledata.states // from states.js
                         }),

Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/PanelResizer.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/PanelResizer.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/PanelResizer.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -49,4 +49,5 @@
         this.dragging = false;
         this.fireEvent('dragend', this, e);
     }
-});
\ No newline at end of file
+});
+Ext.preg('panelresizer', Ext.ux.PanelResizer);
\ No newline at end of file

Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/array-grid.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -59,7 +59,7 @@
     }
 
     // create the data store
-    var store = new Ext.data.SimpleStore({
+    var store = new Ext.data.ArrayStore({
         fields: [
            {name: 'company'},
            {name: 'price', type: 'float'},

Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.html	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.html	2008-12-03 13:02:33 UTC (rev 37)
@@ -10,7 +10,7 @@
  	<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
  	<!-- ENDLIBS -->
 
-    <script type="text/javascript" src="../../ext-all-debug.js"></script>
+    <script type="text/javascript" src="../../ext-all.js"></script>
 
     <script type="text/javascript" src="GroupingView.js"></script>
     <script type="text/javascript" src="edit-grid.js"></script>

Modified: mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/grid/edit-grid.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -104,7 +104,7 @@
         frame:true,
         plugins:checkColumn,
         clicksToEdit:1,
-        selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),
+
         tbar: [{
             text: 'Add Plant',
             handler : function(){
@@ -119,59 +119,6 @@
                 store.insert(0, p);
                 grid.startEditing(0, 0);
             }
-        },{
-            text: 'Save Changes',
-            handler: function(){
-                //returns array of record objects for selected rows
-                var s = grid.getSelectionModel().getSelections();
-                
-                var n = s.length;
-                if (n > 0) {
-                    //specify a refresh limit to control whether the entire
-                    //grid is updated or just update rows individually
-                    //it may be beneficial to update entire view if number
-                    //of selections are high
-                    var refreshLimit = 5; // you decide
-                    //this sequence only removes records from the client's store
-                    //you may want to update the server via ajax as well
-                    //so the following sequence would be executed inside
-                    //the success callback...
-                    
-                    //suspend the Grid's events and resume after tasks completed
-                    //(helps with performance, otherwise would be much slower)
-                    grid.suspendEvents();
-                    
-                    //get the store associated with the grid:
-                    var store = grid.getStore();
-                    
-                    //show message box to confirm delete?
-                    
-                    //loop through each record and delete
-                    for (var i = 0; i < s.length; i++) {
-                        //remove record from the cache
-                        //store.remove(s[i]);//record = selected[i]
-                        //refresh row if under limit
-                        if (n <= refreshLimit) {
-                            store.fireEvent("update", store, s[i], Ext.data.Record.COMMIT);
-                        }
-                    }//end for
-                    //turn events back on now that the work has been done
-                    grid.resumeEvents();
-                    
-                    //since events were disabled, gridView does not know that the
-                    //data has changed. We turned events back on, but we need to
-                    //manually fire the datachanged event to refresh entire grid
-                    //this ends up calling the "onDataChange" method of Ext.grid.gridView
-                    if (n > refreshLimit) {
-                        store.fireEvent("datachanged", store);
-                    }
-                }
-                else {
-                    //show message box?
-                    console.warn('no rows selected');
-                    return false;
-                }
-            }
         }]
     });
 

Modified: mickael/trunk/ext/v3.0.0-a1/examples/layout/column.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/layout/column.html	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/layout/column.html	2008-12-03 13:02:33 UTC (rev 37)
@@ -8,7 +8,7 @@
  	<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
  	<!-- ENDLIBS -->
 
-    <script type="text/javascript" src="../../ext-all-detail.js"></script>
+    <script type="text/javascript" src="../../ext-all.js"></script>
 
     <!--<script language="javascript" src="../grid/PropsGrid.js"></script>-->
 	<style type="text/css">
@@ -57,7 +57,6 @@
                 minSize: 175,
                 maxSize: 400,
                 collapsible: true,
-                collapseMode: 'mini',
                 margins:'35 0 5 5',
                 cmargins:'35 5 5 5',
                 layout:'accordion',

Modified: mickael/trunk/ext/v3.0.0-a1/examples/layout-browser/layouts/combination.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/layout-browser/layouts/combination.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/layout-browser/layouts/combination.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -108,7 +108,7 @@
 						title: 'Nested Grid',
 						xtype: 'grid',
 						layout: 'fit',
-				        store: new Ext.data.SimpleStore({
+				        store: new Ext.data.ArrayStore({
 					        fields: [
 					           {name: 'company'},
 					           {name: 'price', type: 'float'},

Modified: mickael/trunk/ext/v3.0.0-a1/examples/locale/dutch-form.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/locale/dutch-form.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/locale/dutch-form.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -37,7 +37,7 @@
             },  new Ext.form.ComboBox({
             fieldLabel: 'Provincie',
             hiddenName: 'state',
-            store: new Ext.data.SimpleStore({
+            store: new Ext.data.ArrayStore({
                 fields: ['provincie'],
                 data : Ext.exampledata.dutch_provinces // from dutch-provinces.js
             }),

Modified: mickael/trunk/ext/v3.0.0-a1/examples/locale/multi-lang.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/locale/multi-lang.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/locale/multi-lang.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -4,7 +4,7 @@
     Ext.form.Field.prototype.msgTarget = 'side';
     
     /* Language chooser combobox  */
-    var store = new Ext.data.SimpleStore({
+    var store = new Ext.data.ArrayStore({
         fields: ['code', 'language', 'charset'],
         data : Ext.exampledata.languages // from languages.js
     });

Modified: mickael/trunk/ext/v3.0.0-a1/examples/menu/actions.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/menu/actions.html	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/menu/actions.html	2008-12-03 13:02:33 UTC (rev 37)
@@ -10,7 +10,7 @@
  	<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
  	<!-- ENDLIBS -->
 
-    <script type="text/javascript" src="../../ext-all-debug.js"></script>
+    <script type="text/javascript" src="../../ext-all.js"></script>
 
     <script type="text/javascript" src="actions.js"></script>
     <link rel="stylesheet" type="text/css" href="menus.css" />

Modified: mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.css
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.css	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.css	2008-12-03 13:02:33 UTC (rev 37)
@@ -17,8 +17,11 @@
 }
 
 .menu-title{
-    background: #ebeadb url(../../resources/images/default/grid/grid3-hrow.gif) repeat-x;
-    border-bottom:1px solid #99bbe8;
+    background: #D6E3F2;
+    border-style: solid;
+    border-color:#DAE6F4 #99bbe8 #99bbe8 #DAE6F4;
+    border-width: 1px;
+    margin:-2px -2px 0;
     color:#15428b;
     font:bold 10px tahoma,arial,verdana,sans-serif;
     display:block;

Modified: mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/menu/menus.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -21,16 +21,6 @@
                 text: 'I like Ext',
                 checked: true,       // when checked has a boolean value, it is assumed to be a CheckItem
                 checkHandler: onItemCheck
-            },
-            {
-                text: 'Ext for jQuery',
-                checked: true,
-                checkHandler: onItemCheck
-            },
-            {
-                text: 'I donated!',
-                checked:false,
-                checkHandler: onItemCheck
             }, '-', {
                 text: 'Radio Options',
                 menu: {        // <-- submenu by nested config object
@@ -132,7 +122,7 @@
     }, '-');
 
     // add a combobox to the toolbar
-    var store = new Ext.data.SimpleStore({
+    var store = new Ext.data.ArrayStore({
         fields: ['abbr', 'state'],
         data : Ext.exampledata.states // from states.js
     });
@@ -148,6 +138,8 @@
     });
     tb.addField(combo);
 
+    tb.doLayout();
+
     // functions to display feedback
     function onButtonClick(btn){
         Ext.example.msg('Button Click','You clicked the "{0}" button.', btn.text);

Modified: mickael/trunk/ext/v3.0.0-a1/examples/samples.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/samples.html	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/samples.html	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,6 +1,6 @@
 <html>
 <head>
-	<title>Ext JS 2.2 Samples</title>
+	<title>Ext JS 3.0 Samples</title>
 
     <style type="text/css">
     #all-demos {
@@ -123,13 +123,13 @@
 
 	<table cellspacing="0" class="sub-nav">
 		<tr>
-		<td><a href="http://extjs.com/";>Home</a></td><td class="spacer"><img src="shared/extjs/images/c-sep.gif"></td><td><a href="http://extjs.com/products";>Products</a></td><td class="spacer"><img src="shared/extjs/images/c-sep.gif"></td><td><a href="http://extjs.com/products/extjs/";>Ext JS</a></td><td class="spacer"><img src="shared/extjs/images/c-sep.gif"></td><td>2.2 Samples</td></tr>
+		<td><a href="http://extjs.com/";>Home</a></td><td class="spacer"><img src="shared/extjs/images/c-sep.gif"></td><td><a href="http://extjs.com/products";>Products</a></td><td class="spacer"><img src="shared/extjs/images/c-sep.gif"></td><td><a href="http://extjs.com/products/extjs/";>Ext JS</a></td><td class="spacer"><img src="shared/extjs/images/c-sep.gif"></td><td>3.0 Samples</td></tr>
 	</table>
 </div>
 
 <div id="bd">
     <div class="left-column">
-	    <h3>Ext JS 2.2 Samples</h3>
+	    <h3>Ext JS 3.0 Samples</h3>
         <br/>
         <div id="sample-spacer" style="height:800px;"></div>
 

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/css/extjs.css
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/css/extjs.css	                        (rev 0)
+++ mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/css/extjs.css	2008-12-03 13:02:33 UTC (rev 37)
@@ -0,0 +1,595 @@
+/*
+ * Ext JS Library 2.2
+ * Copyright(c) 2006-2008, Ext JS, LLC.
+ * licensing@xxxxxxxxx
+ * 
+ * http://extjs.com/license
+ */
+
+body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote{margin:0;padding:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym {border:0;}
+
+body {
+	/*font-family: helvetica,arial,tahoma,sans-serif;*/
+	font-family:verdana, geneva, lucida, 'lucida grande', arial, helvetica, sans-serif;
+	font-size:13px;
+	color:#555;
+	line-height:20px;
+	background-color:#fff;
+	text-align:center;
+	margin:0;padding:0;border:0;
+}
+
+td {
+	font-size:13px;
+}
+
+a:link, a:visited, a:active {
+	color: #0464BB;
+	text-decoration:none;
+}
+a:hover {
+	color: #1C417C;
+	text-decoration: underline;
+}
+
+/* main document center */
+#viewport {
+	margin:auto;
+	text-align:left;
+	width:960px;
+}
+
+/* header styles */
+#hd {
+	background:transparent url(../images/topbar.png) no-repeat 10px bottom;
+   	height:95px;
+   	position:relative;
+}
+
+#hd table.nav {
+	position:absolute;
+	margin-left:0;
+}
+#hd table.nav tr {
+}
+#hd table.nav tr td {
+	padding-top:1px;
+	padding-left:0;
+	padding-right:0;
+}
+#hd table.nav a, #hd table.main-nav a:hover, #hd table.main-nav a:visited {
+	color: #fff;
+}
+
+#hd table.nav a, #hd table.main-nav a span {
+	color: #fff;
+	display:block;
+}
+#hd table.nav a {
+	line-height:14px;
+}
+#hd table.nav a span {
+	padding:6px 15px 7px 15px;
+}
+#hd table.nav a span {
+	font-family:tahoma,helvetica,arial,sans-serif;
+	font-size:12px;
+}
+
+/* Main nav */
+
+
+#hd table.main-nav {
+	left:15px;
+	top:40px;
+}
+#hd table.main-nav tr {
+	height:28px;
+}
+
+#hd table.main-nav a:hover {
+	text-decoration:underline;
+}
+
+#hd table.main-nav a:hover span {
+	text-decoration:underline;
+}
+
+#hd table.main-nav td.active a {
+	background:transparent url(../images/nav-left.png) repeat-x;
+	text-decoration:none;
+}
+
+#hd table.main-nav td.active a span {
+	background:transparent url(../images/nav-right.png) no-repeat right 0;
+	font-weight:bold;
+	padding:7px 15px 6px 15px;
+	text-decoration:none;
+}
+
+/* Sub nav */
+
+#hd .sub-nav {
+	position:absolute;
+	left:25px;
+	top:72px;
+	height:21px;
+}
+#hd .sub-nav td {
+	font-size:11px;
+	color:#777;
+	font-family:tahoma,helvetica,arial,sans-serif;
+}
+#hd .sub-nav td span {
+	color:#777;
+}
+#hd .sub-nav td a {
+	color:#046BCA;
+	font-family:tahoma,helvetica,arial,sans-serif;
+}
+#hd .sub-nav td.spacer {
+	padding:0 5px;
+}
+/* Main header image */
+
+#hd h1 a {
+	background:transparent url(../images/extjs2.png) no-repeat;
+    position:relative;
+    float:left;
+    top: 12px;
+    left: 20px;
+    height:18px;
+    width:227px;
+}
+#hd h1 a span {
+	display:none;
+}
+
+/* body styles */
+
+#bd {
+	margin:5px 15px 0;
+	zoom:1;
+}
+
+#bd p {
+	margin-top:8px;
+	margin-bottom:8px;
+}
+
+#bd br {
+	font-size:10px;
+	line-height:10px;
+}
+
+#bd .left-column {
+	width:700px;
+	float:left;
+}
+#bd .right-column {
+	width:200px;
+	float:left;
+	margin-left:20px;
+}
+#bd .right-column p {
+	margin:5px;
+	font-size:12px;
+}
+
+#bd h3 {
+	font-family: "Trebuchet MS", Tahoma,arial,sans-serif;
+	font-size:18px;
+	font-weight:normal;
+	color: #385F95;
+	margin:7px 0;
+}
+#bd h4 {
+	font-family: "Trebuchet MS", Tahoma,arial,sans-serif;
+	font-size:14px;
+	font-weight:bold;
+	color: #555;
+	margin:5px 0;
+}
+#bd h5 {
+	font-family: "Trebuchet MS", Tahoma,arial,sans-serif;
+	background-color:#F1F1F1;
+	padding:3px;
+	color:#789030;
+	font-size:11px;
+	font-weight:bold;
+	text-transform:uppercase;
+}
+
+#bd .big-box h5.alt {
+	text-align:center;
+	font-size:13px;
+	border-bottom:1px solid #eee;
+	color:#385F95;
+}
+
+#bd .box {
+	padding: 3px 5px 15px;
+}
+
+/* footer */
+#ft {
+	margin-top:25px;
+	text-align:center;
+	background: transparent url(../images/ft-bg.png) no-repeat center 0;
+	padding-top:5px;
+}
+#ft table.nav {
+	margin: 0 auto;
+}
+
+#ft table.nav a, #ft table.nav a:hover, #ft table.nav a:visited {
+	color:#789030;
+	font-size:12px;
+	display:block;
+	padding:5px 15px 0;
+}
+
+#ft div.copy {
+	margin: 0 auto;
+	padding:10px 0 25px;
+	color:gray;
+}
+
+/* feature list */
+ul.features, .content-box ul, .side-box ul {
+	margin-left:15px;
+	list-style-image: url(../images/c-sep-l.gif);
+}
+ul.features li,  .content-box ul li, .side-box ul li {
+	margin-top:5px;
+	margin-bottom:5px;
+}
+/* flyout menus */
+.flyout-menu {
+	position:absolute;
+	left:-200px;
+	top:-200px;
+	background:#fff;
+	padding:10px 15px;
+	text-align:left;
+	border:1px solid #aaa;
+	font-family: helvetica,arial,tahoma,sans-serif;
+}
+.flyout-menu a {
+	color:#046BCA;
+}
+.flyout-menu p {
+	margin:4px 0;
+	font-size:11px;
+	color:#555;
+	line-height:16px;
+}
+.flyout-menu br {
+	line-height:10px;
+}
+.flyout-menu h3 {
+	font-size:12px;
+	font-weight:bold;
+	line-height:16px;
+}
+.flyout-menu ul {
+	font-size:11px;
+	list-style-type: square;
+	margin-left:15px;
+}
+.flyout-menu li {
+	color:#ccc;
+	line-height:16px;
+}
+
+/* rss feeds */
+
+.rss {
+	float:right;
+	margin: 3px 3px 0 0;
+}
+.rss a {
+	display:block;
+	width:14px;
+	height:14px;
+	background: transparent url(../images/home/rss.gif) no-repeat 0 -14px;
+}
+.rss a:hover {
+	background-position: 0 0;
+}
+
+/* side boxes */
+
+div.side-box {
+	background: transparent url(../images/side-box.png) no-repeat;
+	padding-top:9px;
+	width:200px;
+	margin-bottom:20px;
+	zoom:1;
+}
+div.side-box-inner {
+	background: transparent url(../images/side-box.png) no-repeat 0 bottom;
+	padding:0 15px 5px;
+	font-size:12px;
+	zoom:1;
+}
+#bd div.side-box-inner h5 {
+	background:transparent !important;
+	padding-top:0;
+}
+
+
+div.big-box {
+	background: transparent url(../images/big-box.png) no-repeat;
+	padding-top:12px;
+	width:700px;
+	margin-bottom:20px;
+}
+div.big-box-inner {
+	background: transparent url(../images/big-box.png) no-repeat 0 bottom;
+	padding:0 15px 12px;
+	font-size:12px;
+}
+#bd div.big-box-inner h5 {
+	background:transparent !important;
+	padding-top:0;
+}
+
+div.full-box {
+	background: transparent url(../images/full-box.png) no-repeat;
+	padding-top:12px;
+	width:920px;
+}
+div.full-box-inner {
+	background: transparent url(../images/full-box.png) no-repeat 0 bottom;
+	padding:0 15px 10px;
+	font-size:12px;
+}
+
+
+div.content-box {
+	width:700px;
+}
+div.content-box p {
+	margin-left:5px;
+	margin-right:5px;
+}
+#bd div.content-box ul.features {
+	margin-left:20px;
+}
+#bd .content-box h5 {
+	background-image: url(../images/med-shd.png);
+	padding-left:10px;
+}
+
+/* Store */
+
+#commercial strong {
+	font-size: 12px;
+	margin: 0 0 0 0;
+	font-family:tahoma,verdana,helvetica,sans-serif;
+	color: #083772;
+	font-weight:bold;
+}
+table.license {
+   margin-left:5px;
+}
+table.license, table.license td {
+   border-collapse: separate;
+   border: 0 none !important;
+   font-size:12px;
+}
+table.license td {
+   padding:0 5px 5px;
+}
+
+.order-type {
+   float:left;
+   width:300px;
+   margin:10px;
+   font-size:11px;
+}
+
+#bd .order-complete {
+
+}
+#bd .order-complete p {
+   margin-left:0;
+}
+
+#commercial table.order-review {
+   border-collapse: separate;
+   margin-left:10px;
+   font-size:12px;
+}
+#commercial table.order-review td {
+   padding:5px 20px 5px 5px;
+   vertical-align:top;
+}
+#commercial table.order-review tr.tsep td {
+   border-top:1px dotted #ddd;
+}
+#commercial h3 {
+	margin:0 0 5px;
+	font-size:16px;
+}
+#store .big-box h4 {
+	font-size:12px;
+	font-weight:bold;
+	color: #222;
+	padding:4px;
+	background:#efefef url(../images/inner-hd.png) repeat-x;
+	border: 1px solid #efefef;
+}
+
+
+a.buynow {
+    text-decoration:none;
+    padding:4px 7px;
+    border:1px solid;
+    border-color:#ddd #bbb #bbb #ddd;
+    background:#eee;
+    font:bold 11px tahoma, arial, helvetica, sans-serif;
+    color:#333 !important;
+    cursor:pointer;
+    margin:0 2px;
+    display:block;
+    float:right;
+}
+
+a.buynow:hover, a.buynow:hover {
+    text-decoration:none;
+    border-color:#ccc #bbb #bbb #ccc;
+    background-position:0 2px;
+    background-color:#fafafa;
+}
+
+.saleprice, b.sale, .sale-msg strong{
+	color: #c33;
+}
+
+/* comparison table */
+
+.compare {
+
+}
+.compare th {
+	padding:5px 12px;
+	font-weight:bold;
+	text-align:center;
+	border:1px solid #dddddd;
+	color:#fff;
+	background:#083772;
+	font-size:12px;
+}
+.compare td {
+	padding:5px;
+	text-align:center;
+	border:1px solid #dddddd;
+	font-size:12px;
+}
+.compare th.cfirst {
+	padding-left:8px;
+}
+.compare td.cfirst, .compare th.cfirst {
+	text-align:left;
+}
+.compare td.cfirst {
+	padding-left:20px;
+}
+.compare td.ctitle {
+	text-align:left;
+	font-weight:bold;
+	background:#ececec;
+	padding-left:12px;
+	font-size:12px;
+}
+
+.compare tr.cprice td,.compare tr.cfoot td {
+	padding:5px 12px;
+	font-weight:bold;
+	border:1px solid #dddddd;
+	border-collapse:collapse;
+	color:#083772;
+	background:#c3daf9 url(/themes/ext/resources/images/grid-hrow.gif) repeat-x;
+	vertical-align:top;
+}
+.compare tr.cfoot td {
+    background:#fff;
+    padding-left:2px;
+    padding-right:2px;
+	border-color:#fff;
+}
+.compare tr.cfoot td a {
+    margin-top:0;
+    margin-right:25px;
+}
+.compare tr.corder-note td {
+	background: #eee;
+}
+
+.compare sup {
+	margin-left:3px;
+	font-size:10px;
+}
+.compare-info {
+	font-size:11px;
+	padding:10px;
+}
+
+/* downloads */
+
+table.dl {
+	width:650px;
+}
+
+table.dl td {
+	padding:5px;
+	vertical-align:top;
+}
+
+.expandable {
+	background:#F7F7F7;
+	padding:4px;
+	border:1px solid #DEDEDE;
+}
+
+.expandable-body{
+	background:#fff;
+	padding:5px;
+	zoom:1;
+}
+.expandable-body-inner{
+	zoom:1;
+}
+
+.expandable-body dd {
+	float:left;
+	width:300px;
+	padding:5px;
+}
+
+.training-info {
+	font-size:11px;
+}
+
+a.link {
+	font-family:tahoma,helvetica,arial,sans-serif;
+	font-size:12px;
+	font-weight:bold;
+	line-height:19px;
+}
+
+#msg-ct {
+	position:absolute;
+	left:680px;
+	top:17px;
+	width:217px;
+	height:22px;
+}
+
+#msg {
+	width:217px;
+	height:22px;
+	background-image:url(../images/msg-bg.png);
+	color:#777;
+	font-family:tahoma,helvetica,arial,sans-serif;
+	font-size:11px;
+	cursor:pointer;
+	visibility:hidden;
+}
+#msg-inner {
+	padding:5px 10px 0;
+	zoom:1;
+	line-height:12px;
+	text-align:center;
+}
+.msg-over {
+	color:#789030 !important;
+}
+
+#msg img {
+	width:19px;
+	height:19px;
+}
+

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/arrow.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/arrow.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/bd-bg.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/bd-bg.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/big-box.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/big-box.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/c-sep-l.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/c-sep-l.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/c-sep.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/c-sep.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/check.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/check.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/checked.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/checked.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/corners-sprite.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/corners-sprite.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/extanim32.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/extanim32.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/extjs2.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/extjs2.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/ft-bg.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/ft-bg.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/ft.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/ft.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/full-box.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/full-box.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/gxt.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/gxt.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/inner-hd.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/inner-hd.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/left-right.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/left-right.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/med-box.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/med-box.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/med-shd.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/med-shd.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/msg-bg.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/msg-bg.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left-over.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left-over.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left-over.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left-over.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-left.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-over.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-over.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right-over.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right-over.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right-over.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right-over.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-right.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-spacer.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/nav-spacer.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/pdf.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/pdf.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/sample-over.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/sample-over.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/side-box.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/side-box.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/top-bottom.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/top-bottom.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/topbar.png
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/images/topbar.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/site.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/site.js	                        (rev 0)
+++ mickael/trunk/ext/v3.0.0-a1/examples/shared/extjs/site.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -0,0 +1,103 @@
+/*
+ * Ext JS Library 2.2
+ * Copyright(c) 2006-2008, Ext JS, LLC.
+ * licensing@xxxxxxxxx
+ * 
+ * http://extjs.com/license
+ */
+
+Ext.onReady(function(){
+
+	var activeMenu;
+
+	function createMenu(name){
+		var el = Ext.get(name+'-link');
+		var tid = 0, menu, doc = Ext.getDoc();
+
+		var handleOver = function(e, t){
+			if(t != el.dom && t != menu.dom && !e.within(el) && !e.within(menu)){
+				hideMenu();
+			}
+		};
+
+		var hideMenu = function(){
+			if(menu){
+				menu.hide();
+				el.setStyle('text-decoration', '');
+				doc.un('mouseover', handleOver);
+				doc.un('mousedown', handleDown);
+			}
+		}
+
+		var handleDown = function(e){
+			if(!e.within(menu)){
+				hideMenu();
+			}
+		}
+
+		var showMenu = function(){
+			clearTimeout(tid);
+			tid = 0;
+
+			if (!menu) {
+				menu = new Ext.Layer({shadow:'sides',hideMode: 'display'}, name+'-menu');
+			}
+			menu.hideMenu = hideMenu;
+
+			menu.el = el;
+			if(activeMenu && menu != activeMenu){
+				activeMenu.hideMenu();
+			}
+			activeMenu = menu;
+
+			if (!menu.isVisible()) {
+				menu.show();
+				menu.alignTo(el, 'tl-bl?');
+				menu.sync();
+				el.setStyle('text-decoration', 'underline');
+
+				doc.on('mouseover', handleOver, null, {buffer:150});
+				doc.on('mousedown', handleDown);
+			}
+		}
+
+		el.on('mouseover', function(e){
+			if(!tid){
+				tid = showMenu.defer(150);
+			}
+		});
+
+		el.on('mouseout', function(e){
+			if(tid && !e.within(el, true)){
+				clearTimeout(tid);
+				tid = 0;
+			}
+		});
+	}
+
+	createMenu('products');
+	createMenu('support');
+	createMenu('store');
+
+	// expanders
+	Ext.getBody().on('click', function(e, t){
+		t = Ext.get(t);
+		e.stopEvent();
+
+		var bd = t.next('div.expandable-body');
+		bd.enableDisplayMode();
+		var bdi = bd.first();
+		var expanded = bd.isVisible();
+
+		if(expanded){
+			bd.hide();
+		}else{
+			bdi.hide();
+			bd.show();
+			bdi.slideIn('l', {duration:.2, stopFx: true, easing:'easeOut'});
+		}
+
+		t.update(!expanded ? 'Hide details' : 'Show details');
+
+	}, null, {delegate:'a.expander'});
+});

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/blank.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/blank.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-gridtoformpanel.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-gridtoformpanel.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-gridtogrid.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-gridtogrid.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-zones.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/dd-zones.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-adv-vtypes.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-adv-vtypes.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-check-radio.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-check-radio.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-file-upload.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-file-upload.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-grid-binding.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-grid-binding.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-multiselect.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/form-multiselect.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-data-binding.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-data-binding.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-filter.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-filter.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-from-markup.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/grid-from-markup.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/layout-browser.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/layout-browser.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/locale-dutch.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/locale-dutch.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/locale-switch.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/locale-switch.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/qtips.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/qtips.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/slider.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/slider.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/spotlight.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/spotlight.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/tree-xml-loader.gif
===================================================================
(Binary files differ)


Property changes on: mickael/trunk/ext/v3.0.0-a1/examples/shared/screens/tree-xml-loader.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: mickael/trunk/ext/v3.0.0-a1/examples/tasks/classes.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/tasks/classes.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/tasks/classes.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -89,7 +89,7 @@
     });
 }
 
-Ext.extend(CategoryStore, Ext.data.SimpleStore, {
+Ext.extend(CategoryStore, Ext.data.ArrayStore, {
     init : function(store){
         var cats = store.collect('category', false, true);
         this.loadData(cats);

Modified: mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.html
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.html	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.html	2008-12-03 13:02:33 UTC (rev 37)
@@ -9,7 +9,7 @@
     <script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
     <!-- ENDLIBS -->
 
-    <script type="text/javascript" src="../../ext-all-detail.js"></script>
+    <script type="text/javascript" src="../../ext-all.js"></script>
 
     <script type="text/javascript" src="overflow.js"></script>
     <link rel="stylesheet" type="text/css" href="toolbars.css"/>

Modified: mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/toolbar/overflow.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -29,15 +29,15 @@
             iconCls: 'add16',
             handler: handleAction.createCallback('Copy')
         },{
-//            text: 'Paste',
+            text: 'Paste',
             iconCls: 'add16',
             menu: [{text: 'Paste menu', handler: handleAction.createCallback('Paste menu')}]
         },'-',{
-//            text: 'Format',
+            text: 'Format',
             iconCls: 'add16',
             handler: handleAction.createCallback('Format')
         },'->',{
-//            text: 'Right',
+            text: 'Right',
             iconCls: 'add16',
             handler: handleAction.createCallback('Right')
         }]

Modified: mickael/trunk/ext/v3.0.0-a1/examples/view/chooser.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/view/chooser.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/view/chooser.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -108,7 +108,7 @@
 				        valueField: 'name',
 				        lazyInit: false,
 				        value: 'name',
-				        store: new Ext.data.SimpleStore({
+				        store: new Ext.data.ArrayStore({
 					        fields: ['name', 'desc'],
 					        data : [['name', 'Name'],['size', 'File Size'],['lastmod', 'Last Modified']]
 					    }),

Modified: mickael/trunk/ext/v3.0.0-a1/examples/view/get-images.php
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/examples/view/get-images.php	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/examples/view/get-images.php	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,4 +1,4 @@
-<?php
+<?
 $dir = "images/thumbs/";
 $images = array();
 $d = dir($dir);

Modified: mickael/trunk/ext/v3.0.0-a1/ext-all-debug.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/ext-all-debug.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/ext-all-debug.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -21625,7 +21625,7 @@
     
     tooltipType : 'qtip',
 
-    buttonSelector : "button:first",
+    buttonSelector : "button:first-child",
 
     scale: 'small',
     iconAlign : 'left',

Modified: mickael/trunk/ext/v3.0.0-a1/ext-all.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/ext-all.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/ext-all.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -1503,7 +1503,7 @@
 Ext.TabPanel.superclass.beforeDestroy.apply(this);}});Ext.reg('tabpanel',Ext.TabPanel);Ext.TabPanel.prototype.activate=Ext.TabPanel.prototype.setActiveTab;Ext.TabPanel.AccessStack=function(){var items=[];return{add:function(item){items.push(item);if(items.length>10){items.shift();}},remove:function(item){var s=[];for(var i=0,len=items.length;i<len;i++){if(items[i]!=item){s.push(items[i]);}}
 items=s;},next:function(){return items.pop();}};};
 
-Ext.Button=Ext.extend(Ext.BoxComponent,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:'button',menuClassTarget:'tr:nth(2)',clickEvent:'click',handleMouseEvents:true,tooltipType:'qtip',buttonSelector:"button:first",scale:'small',iconAlign:'left',arrowAlign:'right',initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle",'mouseover','mouseout','menushow','menuhide','menutriggerover','menutriggerout');if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}
+Ext.Button=Ext.extend(Ext.BoxComponent,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:'button',menuClassTarget:'tr:nth(2)',clickEvent:'click',handleMouseEvents:true,tooltipType:'qtip',buttonSelector:"button:first-child",scale:'small',iconAlign:'left',arrowAlign:'right',initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle",'mouseover','mouseout','menushow','menuhide','menutriggerover','menutriggerout');if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}
 if(typeof this.toggleGroup==='string'){this.enableToggle=true;}},getTemplateArgs:function(){var cls=(this.cls||'');cls+=this.iconCls?(this.text?' x-btn-text-icon':' x-btn-icon'):' x-btn-noicon';if(this.pressed){cls+=' x-btn-pressed';}
 return[this.text||'&#160;',this.type,this.iconCls||'',cls,'x-btn-'+this.scale+' x-btn-icon-'+this.scale+'-'+this.iconAlign,this.getMenuClass()];},getMenuClass:function(){return this.menu?(this.arrowAlign!='bottom'?'x-btn-arrow':'x-btn-arrow-bottom'):'';},onRender:function(ct,position){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template('<table cellspacing="0" class="x-btn {3}"><tbody class="{4}">','<tr><td class="x-btn-tl"><i>&#160;</i></td><td class="x-btn-tc"></td><td class="x-btn-tr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-ml"><i>&#160;</i></td><td class="x-btn-mc"><em class="{5}" unselectable="on"><button class="x-btn-text {2}" type="{1}">{0}</button></em></td><td class="x-btn-mr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-bl"><i>&#160;</i></td><td class="x-btn-bc"></td><td class="x-btn-br"><i>&#160;</i></td></tr>',"</tbody></table>");Ext.Button.buttonTemplate.compile();}
 this.template=Ext.Button.buttonTemplate;}

Modified: mickael/trunk/ext/v3.0.0-a1/package/button/button-debug.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/package/button/button-debug.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/package/button/button-debug.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -44,7 +44,7 @@
     
     tooltipType : 'qtip',
 
-    buttonSelector : "button:first",
+    buttonSelector : "button:first-child",
 
     scale: 'small',
     iconAlign : 'left',

Modified: mickael/trunk/ext/v3.0.0-a1/package/button/button.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/package/button/button.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/package/button/button.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -7,7 +7,7 @@
  */
 
 
-Ext.Button=Ext.extend(Ext.BoxComponent,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:'button',menuClassTarget:'tr:nth(2)',clickEvent:'click',handleMouseEvents:true,tooltipType:'qtip',buttonSelector:"button:first",scale:'small',iconAlign:'left',arrowAlign:'right',initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle",'mouseover','mouseout','menushow','menuhide','menutriggerover','menutriggerout');if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}
+Ext.Button=Ext.extend(Ext.BoxComponent,{hidden:false,disabled:false,pressed:false,enableToggle:false,menuAlign:"tl-bl?",type:'button',menuClassTarget:'tr:nth(2)',clickEvent:'click',handleMouseEvents:true,tooltipType:'qtip',buttonSelector:"button:first-child",scale:'small',iconAlign:'left',arrowAlign:'right',initComponent:function(){Ext.Button.superclass.initComponent.call(this);this.addEvents("click","toggle",'mouseover','mouseout','menushow','menuhide','menutriggerover','menutriggerout');if(this.menu){this.menu=Ext.menu.MenuMgr.get(this.menu);}
 if(typeof this.toggleGroup==='string'){this.enableToggle=true;}},getTemplateArgs:function(){var cls=(this.cls||'');cls+=this.iconCls?(this.text?' x-btn-text-icon':' x-btn-icon'):' x-btn-noicon';if(this.pressed){cls+=' x-btn-pressed';}
 return[this.text||'&#160;',this.type,this.iconCls||'',cls,'x-btn-'+this.scale+' x-btn-icon-'+this.scale+'-'+this.iconAlign,this.getMenuClass()];},getMenuClass:function(){return this.menu?(this.arrowAlign!='bottom'?'x-btn-arrow':'x-btn-arrow-bottom'):'';},onRender:function(ct,position){if(!this.template){if(!Ext.Button.buttonTemplate){Ext.Button.buttonTemplate=new Ext.Template('<table cellspacing="0" class="x-btn {3}"><tbody class="{4}">','<tr><td class="x-btn-tl"><i>&#160;</i></td><td class="x-btn-tc"></td><td class="x-btn-tr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-ml"><i>&#160;</i></td><td class="x-btn-mc"><em class="{5}" unselectable="on"><button class="x-btn-text {2}" type="{1}">{0}</button></em></td><td class="x-btn-mr"><i>&#160;</i></td></tr>','<tr><td class="x-btn-bl"><i>&#160;</i></td><td class="x-btn-bc"></td><td class="x-btn-br"><i>&#160;</i></td></tr>',"</tbody></table>");Ext.Button.buttonTemplate.compile();}
 this.template=Ext.Button.buttonTemplate;}

Modified: mickael/trunk/ext/v3.0.0-a1/source/widgets/Button.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/source/widgets/Button.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/source/widgets/Button.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -113,7 +113,7 @@
      */
     tooltipType : 'qtip',
 
-    buttonSelector : "button:first",
+    buttonSelector : "button:first-child",
 
     scale: 'small',
     iconAlign : 'left',

Modified: mickael/trunk/ext/v3.0.0-a1/src/core/DomQuery.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/core/DomQuery.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/core/DomQuery.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -453,7 +453,8 @@
          * Selects a group of elements.
          * @param {String} selector The selector/xpath query (can be a comma separated list of selectors)
          * @param {Node} root (optional) The start of the query (defaults to document).
-         * @return {Array}
+         * @return {Array} An Array of DOM elements which match the selector. If there are
+         * no matches, and empty Array is returned.
          */
         select : function(path, root, type){
             if(!root || root == document){
@@ -487,7 +488,7 @@
          * Selects a single element.
          * @param {String} selector The selector/xpath query
          * @param {Node} root (optional) The start of the query (defaults to document).
-         * @return {Element}
+         * @return {Element} The DOM element which matched the selector.
          */
         selectNode : function(path, root){
             return Ext.DomQuery.select(path, root)[0];
@@ -544,7 +545,8 @@
          * @param {String} selector The simple selector to test
          * @param {Boolean} nonMatches If true, it returns the elements that DON'T match
          * the selector instead of the ones that match
-         * @return {Array}
+         * @return {Array} An Array of DOM elements which match the selector. If there are
+         * no matches, and empty Array is returned.
          */
         filter : function(els, ss, nonMatches){
             ss = ss.replace(trimRe, "");

Modified: mickael/trunk/ext/v3.0.0-a1/src/core/Ext.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/core/Ext.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/core/Ext.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -341,7 +341,8 @@
         },
 
         /**
-         * Takes an encoded URL and and converts it to an object. e.g. Ext.urlDecode("foo=1&bar=2"); would return {foo: 1, bar: 2} or Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", true); would return {foo: 1, bar: [2, 3, 4]}.
+         * Takes an encoded URL and and converts it to an object. e.g. Ext.urlDecode("foo=1&bar=2"); would return {foo: "1", bar: "2"}
+         * or Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", false); would return {foo: "1", bar: ["2", "3", "4"]}.
          * @param {String} string
          * @param {Boolean} overwrite (optional) Items of the same name will overwrite previous values instead of creating an an array (Defaults to false).
          * @return {Object} A literal with members
@@ -578,15 +579,23 @@
         },
 
         /**
-         * Returns true if the passed value is null, undefined or an empty string (optional).
+         * Returns true if the passed value is null, undefined or an empty string.
          * @param {Mixed} value The value to test
-         * @param {Boolean} allowBlank (optional) Pass true if an empty string is not considered empty
+         * @param {Boolean} allowBlank (optional) true to allow empty strings (defaults to false)
          * @return {Boolean}
          */
         isEmpty : function(v, allowBlank){
             return v === null || v === undefined || (!allowBlank ? v === '' : false);
         },
 
+        /**
+         * Utility method for validating that a value is non-empty (i.e. i) not null, ii) not undefined, and iii) not an empty string), 
+         * returning the specified default value if it is.
+         * @param {Mixed} value The value to test
+         * @param {Mixed} defaultValue The value to return if the original value is empty
+         * @param {Boolean} allowBlank (optional) true to allow empty strings (defaults to false)
+         * @return {Mixed} value, if non-empty, else defaultValue
+         */
         value : function(v, defaultValue, allowBlank){
             return Ext.isEmpty(v, allowBlank) ? defaultValue : v;
         },

Modified: mickael/trunk/ext/v3.0.0-a1/src/core/Fx.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/core/Fx.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/core/Fx.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -48,7 +48,7 @@
  * a function which returns such a specification that will be applied to the Element after the effect finishes
  * @cfg {Boolean} block Whether the effect should block other effects from queueing while it runs
  * @cfg {Boolean} concurrent Whether to allow subsequently-queued effects to run at the same time as the current effect, or to ensure that they run in sequence
- * @cfg {Boolean} stopFx Whether subsequent effects should be stopped and removed after the current effect finishes
+ * @cfg {Boolean} stopFx Whether preceding effects should be stopped and removed before running current effect (only applies to non blocking effects)
  */
 Ext.Fx = {
 	/**
@@ -469,7 +469,7 @@
 
 // common config options shown with default values
 el.frame("C3DAF9", 1, {
-    duration: 1 //duration of entire animation (not each individual ripple)
+    duration: 1 //duration of each individual ripple.
     // Note: Easing is not configurable and will be ignored if included
 });
 </code></pre>

Added: mickael/trunk/ext/v3.0.0-a1/src/data/ArrayStore.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/data/ArrayStore.js	                        (rev 0)
+++ mickael/trunk/ext/v3.0.0-a1/src/data/ArrayStore.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -0,0 +1,33 @@
+/**
+ * @class Ext.data.ArrayStore
+ * @extends Ext.data.Store
+ * Small helper class to make creating Stores from Array data easier.
+ * @cfg {Number} id The array index of the record id. Leave blank to auto generate ids.
+ * @cfg {Array} fields An array of field definition objects, or field name strings.
+ * @cfg {Array} data The multi-dimensional array of data
+ * @constructor
+ * @param {Object} config
+ */
+Ext.data.ArrayStore = Ext.extend(Ext.data.Store, {
+    constructor: function(config){
+        Ext.data.ArrayStore.superclass.constructor.call(this, Ext.apply(config, {
+            reader: new Ext.data.ArrayReader(config)
+        }));
+    },
+
+    loadData : function(data, append){
+        if(this.expandData === true){
+            var r = [];
+            for(var i = 0, len = data.length; i < len; i++){
+                r[r.length] = [data[i]];
+            }
+            data = r;
+        }
+        Ext.data.ArrayStore.superclass.loadData.call(this, data, append);
+    }
+});
+Ext.reg('arraystore', Ext.data.ArrayStore);
+
+// backwards compat
+Ext.data.SimpleStore = Ext.data.ArrayStore;
+Ext.reg('simplestore', Ext.data.SimpleStore);
\ No newline at end of file

Modified: mickael/trunk/ext/v3.0.0-a1/src/data/GroupingStore.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/data/GroupingStore.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/data/GroupingStore.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,7 +1,9 @@
 /**
  * @class Ext.data.GroupingStore
  * @extends Ext.data.Store
- * A specialized store implementation that provides for grouping records by one of the available fields.
+ * A specialized store implementation that provides for grouping records by one of the available fields. This
+ * is usually used in conjunction with an {@link Ext.grid.GroupingView} to proved the data model for
+ * a grouped GridPanel.
  * @constructor
  * Creates a new GroupingStore.
  * @param {Object} config A config object containing the objects needed for the Store to access data,

Modified: mickael/trunk/ext/v3.0.0-a1/src/data/JsonReader.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/data/JsonReader.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/data/JsonReader.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -29,8 +29,13 @@
 </code></pre>
  * <p>It is possible to change a JsonReader's metadata at any time by including a
  * <b><tt>metaData</tt></b> property in the data object. If this is detected in the
- * object, a {@link Ext.data.Store Store} object using this Reader will fire its
- * {@link Ext.data.Store#metachange metachange} event.</p>
+ * object, a {@link Ext.data.Store Store} object using this Reader will reconfigure
+ * itself to use the newly provided field definition and fire its
+ * {@link Ext.data.Store#metachange metachange} event. In
+ * undergoing this change, the Store sets its {@link Ext.data.Store#sortInfo sortInfo} property
+ * from the <tt>sortInfo</tt> property in the new metadata. Note that reconfiguring a Store
+ * potentially invalidates objects which may refer to Fields or Records which no longer exist.</p>
+ *
  * <p>The <b><tt>metaData</tt></b> property may contain any of the configuration
  * options for this class. Additionally, it may contain a <b><tt>fields</tt></b>
  * property which the JsonReader will use as an argument to {@link Ext.data.Record#create}
@@ -40,6 +45,7 @@
  * event handler may interrogate the <b><tt>metaData</tt></b> property (which
  * may contain any user-defined properties needed) and the <b><tt>metaData.fields</tt></b>
  * property to perform any configuration required.</p>
+ *
  * <p>To use this facility to send the same data as the above example without
  * having to code the creation of the Record constructor, you would create the
  * JsonReader like this:</p><pre><code>

Modified: mickael/trunk/ext/v3.0.0-a1/src/data/JsonStore.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/data/JsonStore.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/data/JsonStore.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -28,22 +28,23 @@
  * @cfg {Object} data  A data object readable by this object's JsonReader. Either this
  * option, or the {@link #url} option must be specified.
  * @cfg {Array} fields  Either an Array of field definition objects as passed to
- * {@link Ext.data.Record#create}, or a {@link Ext.data.Record Record} constructor created using {@link Ext.data.Record#create}.
+ * {@link Ext.data.Record#create}, or a {@link Ext.data.Record Record} constructor created using {@link Ext.data.Record#create}.<br>
+ * <p>This config is used to create the <tt>recordType</tt> parameter to the {@link Ext.data.JsonReader#JsonReader JsonReader}
+ * constructor that is implicitly called, and creates the {@link Ext.data.Record Record definition} used by the Store.
  * @constructor
  * @param {Object} config
  */
-Ext.data.JsonStore = function(c){
+Ext.data.JsonStore = Ext.extend(Ext.data.Store, {
+    constructor: function(config){
+        Ext.data.JsonStore.superclass.constructor.call(this, Ext.apply(config, {
+            reader: new Ext.data.JsonReader(config)
+        }));
+    }
     /**
      * @cfg {Ext.data.DataReader} reader @hide
      */
     /**
      * @cfg {Ext.data.DataProxy} proxy @hide
      */
-    Ext.data.JsonStore.superclass.constructor.call(this, Ext.apply(c, {
-        proxy: c.proxy || (!c.data ? new Ext.data.HttpProxy({url: c.url}) : undefined),
-        reader: new Ext.data.JsonReader(c, c.fields)
-    }));
-};
-Ext.extend(Ext.data.JsonStore, Ext.data.Store);
-
+});
 Ext.reg('jsonstore', Ext.data.JsonStore);
\ No newline at end of file

Modified: mickael/trunk/ext/v3.0.0-a1/src/data/Record.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/data/Record.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/data/Record.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -42,7 +42,8 @@
  * <li>float</li>
  * <li>boolean</li>
  * <li>date</li></ul></div></li>
- * <li><b>sortType</b> : Mixed<div class="sub-desc">(Optional) A member of {@link Ext.data.SortTypes}.</div></li>
+ * <li><b>sortType</b> : Function<div class="sub-desc">(Optional) A function which converts a Field's value to a comparable value
+ * in order to ensure correct sort ordering. Predefined functions are provided in {@link Ext.data.SortTypes}.</div></li>
  * <li><b>sortDir</b> : String<div class="sub-desc">(Optional) Initial direction to sort. "ASC" or "DESC"</div></li>
  * <li><b>convert</b> : Function<div class="sub-desc">(Optional) A function which converts the value provided
  * by the Reader into an object that will be stored in the Record. It is passed the
@@ -178,7 +179,7 @@
      */
     beginEdit : function(){
         this.editing = true;
-        this.modified = {};
+        this.modified = this.modified || {};
     },
 
     /**

Modified: mickael/trunk/ext/v3.0.0-a1/src/data/Store.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/data/Store.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/data/Store.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -25,7 +25,24 @@
      * @property
      */
     this.baseParams = {};
-    // private
+    /**
+     * <p>An object containing properties which specify the names of the paging and
+     * sorting parameters passed to remote servers when loading blocks of data. By default, this
+     * object takes the following form:</p><pre><code>
+{
+    start : "start",    // The parameter name which specifies the start row
+    limit : "limit",    // The parameter name which specifies number of rows to return
+    sort : "sort",      // The parameter name which specifies the column to sort on
+    dir : "dir"         // The parameter name which specifies the sort direction
+}
+</code></pre>
+     * <p>The server must produce the requested data block upon receipt of these parameter names.
+     * If different parameter names are required, this property can be overriden using a configuration
+     * property.</p>
+     * <p>A {@link Ext.PagingToolbar PagingToolbar} bound to this grid uses this property to determine
+     * the parameter names to use in its requests.
+     * @property
+     */
     this.paramNames = {
         "start" : "start",
         "limit" : "limit",
@@ -182,8 +199,9 @@
     * on any HTTP request
     */
     /**
-    * @cfg {Object} sortInfo A config object in the format: {field: "fieldName", direction: "ASC|DESC"}.  The direction
-    * property is case-sensitive.
+    * @cfg {Object} sortInfo A config object in the format: {field: "fieldName", direction: "ASC|DESC"} to 
+    * specify the sort order in the request of a remote Store's {@link #load} operation.  Note that for
+    * local sorting, the direction property is case-sensitive.
     */
     /**
     * @cfg {boolean} remoteSort True if sorting is to be handled by requesting the
@@ -388,9 +406,12 @@
     },
 
     /**
-     * Reloads the Record cache from the configured Proxy using the configured Reader and
-     * the options from the last load operation performed.
-     * @param {Object} options (optional) An object containing properties which may override the options
+     * <p>Reloads the Record cache from the configured Proxy using the configured Reader and
+     * the options from the last load operation performed.</p>
+     * <p><b>It is important to note that for remote data sources, loading is asynchronous,
+     * and this call will return before the new data has been loaded. Perform any post-processing
+     * in a callback function, or in a "load" event handler.</b></p>
+     * @param {Object} options (optional) An object containing loading options which may override the options
      * used in the last load operation. See {@link #load} for details (defaults to null, in which case
      * the most recently used options are reused).
      */

Modified: mickael/trunk/ext/v3.0.0-a1/src/data/XmlStore.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/data/XmlStore.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/data/XmlStore.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,15 +1,14 @@
-Ext.data.XmlStore = function(c){
+Ext.data.XmlStore = Ext.extend(Ext.data.Store, {
+    constructor: function(config){
+        Ext.data.XmlStore.superclass.constructor.call(this, Ext.apply(config, {
+            reader: new Ext.data.XmlReader(config)
+        }));
+    }
     /**
      * @cfg {Ext.data.DataReader} reader @hide
      */
     /**
      * @cfg {Ext.data.DataProxy} proxy @hide
      */
-    Ext.data.XmlStore.superclass.constructor.call(this, Ext.apply(c, {
-        proxy: c.proxy || (!c.data ? new Ext.data.HttpProxy({url: c.url}) : undefined),
-        reader: new Ext.data.XmlReader(c, c.fields)
-    }));
-};
-Ext.extend(Ext.data.XmlStore, Ext.data.Store);
-
+});
 Ext.reg('xmlstore', Ext.data.XmlStore);
\ No newline at end of file

Modified: mickael/trunk/ext/v3.0.0-a1/src/dd/DragTracker.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/dd/DragTracker.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/dd/DragTracker.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -71,11 +71,14 @@
         doc.un('selectstart', this.stopSelect, this);
         e.preventDefault();
         this.clearStart();
+        var wasActive = this.active;
         this.active = false;
         delete this.elRegion;
         this.fireEvent('mouseup', this, e);
-        this.onEnd(e);
-        this.fireEvent('dragend', this, e);
+        if(wasActive){
+            this.onEnd(e);
+            this.fireEvent('dragend', this, e);
+        }
     },
 
     triggerStart: function(isTimer){

Modified: mickael/trunk/ext/v3.0.0-a1/src/ext.jsb
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/ext.jsb	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/ext.jsb	2008-12-03 13:02:33 UTC (rev 37)
@@ -56,9 +56,9 @@
     <include name="data\Record.js" />
     <include name="data\StoreMgr.js" />
     <include name="data\Store.js" />
-    <include name="data\SimpleStore.js" />
     <include name="data\JsonStore.js" />
     <include name="data\XmlStore.js" />
+    <include name="data\ArrayStore.js" />
     <include name="data\DataField.js" />
     <include name="data\DataReader.js" />
     <include name="data\DataProxy.js" />
@@ -561,6 +561,7 @@
   <file name="license.txt" path="" />
   <file name="data\Direct.js" path="data" />
   <file name="data\DirectProvider.js" path="data" />
+  <file name="data\SimpleStore.js" path="data" />
   <file name="adapter\ext-base.js" path="adapter" />
   <file name="adapter\jquery-bridge.js" path="adapter" />
   <file name="adapter\prototype-bridge.js" path="adapter" />
@@ -581,6 +582,7 @@
   <file name="core\Template.js" path="core" />
   <file name="core\UpdateManager.js" path="core" />
   <file name="data\ArrayReader.js" path="data" />
+  <file name="data\ArrayStore.js" path="data" />
   <file name="data\Connection.js" path="data" />
   <file name="data\DataField.js" path="data" />
   <file name="data\DataProxy.js" path="data" />
@@ -594,7 +596,6 @@
   <file name="data\MemoryProxy.js" path="data" />
   <file name="data\Record.js" path="data" />
   <file name="data\ScriptTagProxy.js" path="data" />
-  <file name="data\SimpleStore.js" path="data" />
   <file name="data\SortTypes.js" path="data" />
   <file name="data\Store.js" path="data" />
   <file name="data\StoreMgr.js" path="data" />
@@ -648,6 +649,7 @@
   <file name="locale\ext-lang-pl.js" path="locale" />
   <file name="locale\ext-lang-pt.js" path="locale" />
   <file name="locale\ext-lang-pt_BR.js" path="locale" />
+  <file name="locale\ext-lang-pt_PT.js" path="locale" />
   <file name="locale\ext-lang-ro.js" path="locale" />
   <file name="locale\ext-lang-ru.js" path="locale" />
   <file name="locale\ext-lang-sk.js" path="locale" />

Modified: mickael/trunk/ext/v3.0.0-a1/src/util/Observable.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/util/Observable.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/util/Observable.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -16,7 +16,7 @@
  */
 Ext.util.Observable = function(){
     /**
-     * @cfg {Object} listeners A config object containing one or more event handlers to be added to this
+     * @cfg {Object} listeners (optional) A config object containing one or more event handlers to be added to this
      * object during initialization.  This should be a valid listeners config object as specified in the
      * {@link #addListener} example for attaching multiple handlers at once.
      */

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/Button.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/Button.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/Button.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -13,8 +13,7 @@
  * @cfg {Boolean} hidden True to start hidden (defaults to false)
  * @cfg {Boolean} disabled True to start disabled (defaults to false)
  * @cfg {Boolean} pressed True to start pressed (only if enableToggle = true)
- * @cfg {String} toggleGroup The group this toggle button is a member of (only 1 per group can be pressed, only
- * applies if enableToggle = true)
+ * @cfg {String} toggleGroup The group this toggle button is a member of (only 1 per group can be pressed)
  * @cfg {Boolean/Object} repeat True to repeat fire the click event while the mouse is down. This can also be
   an {@link Ext.util.ClickRepeater} config object (defaults to false).
  * @constructor
@@ -106,7 +105,7 @@
      */
     tooltipType : 'qtip',
 
-    buttonSelector : "button:first",
+    buttonSelector : "button:first-child",
 
     scale: 'small',
     iconAlign : 'left',

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/Component.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/Component.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/Component.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -130,11 +130,17 @@
         'beforerender',
         /**
          * @event render
-         * Fires after the component is rendered.
+         * Fires after the component markup is rendered.
          * @param {Ext.Component} this
          */
         'render',
         /**
+         * @event afterrender
+         * Fires after the component rendering is finished.
+         * @param {Ext.Component} this
+         */
+        'afterrender',
+        /**
          * @event beforedestroy
          * Fires before the component is destroyed. Return false to stop the destroy.
          * @param {Ext.Component} this
@@ -632,6 +638,7 @@
                 this.initStateEvents();
             }
             this.initRef();
+            this.fireEvent("afterrender", this);
         }
         return this;
     },

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/PagingToolbar.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/PagingToolbar.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/PagingToolbar.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,7 +1,9 @@
 /**
  * @class Ext.PagingToolbar
  * @extends Ext.Toolbar
- * A specialized toolbar that is bound to a {@link Ext.data.Store} and provides automatic paging controls.
+ * <p>A specialized toolbar that is bound to a {@link Ext.data.Store} and provides automatic paging control. This
+ * Component {@link Ext.data.Store#load load}s blocks of data into the Store passing parameters who's names are
+ * specified by the store's {@link Ext.data.Store#paramNames paramNames} property.</p>
  * @constructor
  * Create a new PagingToolbar
  * @param {Object} config The config object

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/Panel.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/Panel.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/Panel.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -766,6 +766,7 @@
         }
         if(this.fbar){
             this.fbar = Ext.create(this.fbar, 'toolbar');
+            this.fbar.enableOverflow = false;
             if(this.fbar.items){
                 this.fbar.items.each(function(c){
                     c.minWidth = this.minButtonWidth;
@@ -1187,7 +1188,7 @@
 	                        this.bottomToolbar.setSize(w);
 	                    }
 	                }
-					if(this.fbar){
+					if(this.fbar && this.buttonAlign != 'center'){
 	                    this.fbar.setSize(w - this.fbar.container.getFrameWidth('lr'));
 	                }
                     this.body.setWidth(w);
@@ -1242,7 +1243,7 @@
      * @return {Number} The frame width
      */
     getFrameWidth : function(){
-        var w = this.el.getFrameWidth('lr');
+        var w = this.el.getFrameWidth('lr')+this.bwrap.getFrameWidth('lr');
 
         if(this.frame){
             var l = this.bwrap.dom.firstChild;
@@ -1259,7 +1260,7 @@
      * @return {Number} The frame height
      */
     getFrameHeight : function(){
-        var h  = this.el.getFrameWidth('tb');
+        var h  = this.el.getFrameWidth('tb')+this.bwrap.getFrameWidth('tb');
         h += (this.tbar ? this.tbar.getHeight() : 0) +
              (this.bbar ? this.bbar.getHeight() : 0);
 
@@ -1307,7 +1308,10 @@
     },
 
     /**
-     * Sets the title text for the panel and optionally the icon class.
+     * <p>Sets the title text for the panel and optionally the icon class.</p>
+     * <p>In order to be able to set the title, a header element must have been created
+     * for the Panel. This is triggered either by configuring the Panel with a non-blank title,
+     * or configuring it with <tt><b>{@link #header}: true</b></tt>.</p>
      * @param {String} title The title text to set
      * @param {String} iconCls (optional) iconCls A user-defined CSS class that provides the icon image for this panel
      */

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/SplitBar.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/SplitBar.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/SplitBar.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -136,8 +136,8 @@
         this.overlay.show();
         Ext.get(this.proxy).setDisplayed("block");
         var size = this.adapter.getElementSize(this);
-        this.activeMinSize = this.getMinimumSize();;
-        this.activeMaxSize = this.getMaximumSize();;
+        this.activeMinSize = this.getMinimumSize();
+        this.activeMaxSize = this.getMaximumSize();
         var c1 = size - this.activeMinSize;
         var c2 = Math.max(this.activeMaxSize - size, 0);
         if(this.orientation == Ext.SplitBar.HORIZONTAL){

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/TabPanel.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/TabPanel.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/TabPanel.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -35,7 +35,7 @@
         myTabPanel.setActiveTab(newComponent);
     },
     failure: function() {
-    	Ext.Msg.alert("Grid create failed", "Server communication failure");
+        Ext.Msg.alert("Grid create failed", "Server communication failure");
     }
 });
 </code></pre>
@@ -52,7 +52,7 @@
         baseParams: {
             startDate: '01/01/2008',
             endDate: '01/31/2008'
-        }
+        },
         reader: new Ext.data.JsonReader({
             record: 'transaction',
             id: 'id',

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/Toolbar.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/Toolbar.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/Toolbar.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -82,6 +82,9 @@
     },
 
     fitToSize :function(t){
+        if(this.container.enableOverflow === false){
+            return;
+        }
         var w = t.dom.clientWidth;
         var lw = this.lastWidth || 0;
         this.lastWidth = w;

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/Window.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/Window.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/Window.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -53,6 +53,10 @@
      * {@link #expandOnShow} is true (the default) it will override the <tt>collapsed</tt> config and the window 
      * will always be expanded when shown.
      */
+    /**
+     * @cfg {Boolean} maximized
+     * True to initially display the window in a maximized state. (Defaults to false).
+     */
     
     /**
     * @cfg {String} baseCls

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Action.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Action.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Action.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -71,7 +71,7 @@
  */
 /**
  * @cfg {Number} timeout The number of milliseconds to wait for a server response before
- * failing with the {@link #failureType} as {@link #CONNECT_FAILURE}.
+ * failing with the {@link #failureType} as {@link #Action.CONNECT_FAILURE}.
  */
 /**
  * @cfg {Function} success The function to call when a valid success return packet is recieved.
@@ -111,8 +111,9 @@
  */
     type : 'default',
 /**
- * The type of failure detected. See {@link #CLIENT_INVALID}, {@link #SERVER_INVALID},
- * {@link #CONNECT_FAILURE}, {@link #LOAD_FAILURE}
+ * The type of failure detected. See {@link link Ext.form.Action#Action.CLIENT_INVALID CLIENT_INVALID},
+ * {@link link Ext.form.Action#Action.SERVER_INVALID SERVER_INVALID},
+ * {@link #link Ext.form.ActionAction.CONNECT_FAILURE CONNECT_FAILURE}, {@link Ext.form.Action#Action.LOAD_FAILURE LOAD_FAILURE}
  * @property failureType
  * @type {String}
  */

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/BasicForm.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/BasicForm.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/BasicForm.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,10 +1,28 @@
 /**
  * @class Ext.form.BasicForm
  * @extends Ext.util.Observable
- * Supplies the functionality to do "actions" on forms and initialize Ext.form.Field types on existing markup.
- * <br><br>
- * By default, Ext Forms are submitted through Ajax, using {@link Ext.form.Action}.
- * To enable normal browser submission of an Ext Form, use the {@link #standardSubmit} config option.
+ * <p>Encapsulates the DOM &lt;form> element at the heart of the {@link Ext.form.FormPanel FormPanel} class, and provides
+ * input field management, validation, submission, and form loading services.</p>
+ * <p>By default, Ext Forms are submitted through Ajax, using an instance of {@link Ext.form.Action.Submit}.
+ * To enable normal browser submission of an Ext Form, use the {@link #standardSubmit} config option.</p>
+ * <p><h3>File Uploads</h3>{@link #fileUpload File uploads} are not performed using Ajax submission, that
+ * is they are <b>not</b> performed using XMLHttpRequests. Instead the form is submitted in the standard
+ * manner with the DOM <tt>&lt;form></tt> element temporarily modified to have its
+ * <a href="http://www.w3.org/TR/REC-html40/present/frames.html#adef-target";>target</a> set to refer
+ * to a dynamically generated, hidden <tt>&lt;iframe></tt> which is inserted into the document
+ * but removed after the return data has been gathered.</p>
+ * <p>The server response is parsed by the browser to create the document for the IFRAME. If the
+ * server is using JSON to send the return object, then the
+ * <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17";>Content-Type</a> header
+ * must be set to "text/html" in order to tell the browser to insert the text unchanged into the document body.</p>
+ * <p>Characters which are significant to an HTML parser must be sent as HTML entities, so encode
+ * "&lt;" as "&amp;lt;", "&amp;" as "&amp;amp;" etc.</p>
+ * <p>The response text is retrieved from the document, and a fake XMLHttpRequest object
+ * is created containing a <tt>responseText</tt> property in order to conform to the
+ * requirements of event handlers and callbacks.</p>
+ * <p>Be aware that file upload packets are sent with the content type <a href="http://www.faqs.org/rfcs/rfc2388.html";>multipart/form</a>
+ * and some server technologies (notably JEE) may require some custom processing in order to
+ * retrieve parameter names and parameter values from the packet content.</p>
  * @constructor
  * @param {Mixed} el The form element or its id
  * @param {Object} config Configuration options
@@ -110,7 +128,10 @@
 
     /**
      * @cfg {Boolean} standardSubmit If set to true, standard HTML form submits are used instead of XHR (Ajax) style
-     * form submissions. (defaults to false)
+     * form submissions. (defaults to false)<br>
+     * <p><b>Note:</b> When using standardSubmit, any the options to {@link #submit} are
+     * ignored because Ext's Ajax infrastracture is bypassed. To pass extra parameters, you will need to create
+     * hidden fields within the form.</p>
      */
     /**
      * By default wait messages are displayed with Ext.MessageBox.wait. You can target a specific
@@ -143,16 +164,16 @@
     },
 
     // private
-	destroy: function() {
+    destroy: function() {
         this.items.each(function(f){
             Ext.destroy(f);
         });
         if(this.el){
-			this.el.removeAllListeners();
-			this.el.remove();
+            this.el.removeAllListeners();
+            this.el.remove();
         }
-		this.purgeListeners();
-	},
+        this.purgeListeners();
+    },
 
     /**
      * Returns true if client-side validation on the form is successful.
@@ -204,7 +225,8 @@
      * <li><b>success</b> : Function<p style="margin-left:1em">The callback that will
      * be invoked after a successful response. The function is passed the following parameters:<ul>
      * <li><code>form</code> : Ext.form.BasicForm<div class="sub-desc">The form that requested the action</div></li>
-     * <li><code>action</code> : Ext.form.Action<div class="sub-desc">The Action class. The {@link Ext.form.Action#result result}
+     * <li><code>action</code> : Ext.form.Action<div class="sub-desc">The {@link Ext.form.Action Action} object which
+     * performed the operation. The {@link Ext.form.Action#result result}
      * property of this object may be examined to perform custom postprocessing.</div></li>
      * </ul></p></li>
      * <li><b>failure</b> : Function<p style="margin-left:1em">The callback that will
@@ -213,7 +235,8 @@
      * Which type of failure is indicated in the Action's {@link Ext.form.Action#failureType failureType}.
      * The function is passed the following parameters:<ul>
      * <li><code>form</code> : Ext.form.BasicForm<div class="sub-desc">The form that requested the action</div></li>
-     * <li><code>action</code> : Ext.form.Action<div class="sub-desc">The Action class. The failure type
+     * <li><code>action</code> : Ext.form.Action<div class="sub-desc">The {@link Ext.form.Action Action} object which
+     * performed the operation. The failure type
      * will be in {@link Ext.form.Action#failureType failureType}. The {@link Ext.form.Action#result result}
      * property of this object may be examined to perform custom postprocessing.</div></li>
      * </ul></p></li>
@@ -238,7 +261,44 @@
 
     /**
      * Shortcut to do a submit action.
-     * @param {Object} options The options to pass to the action (see {@link #doAction} for details)
+     * @param {Object} options The options to pass to the action (see {@link #doAction} for details).<br>
+     * <p><b>Note:</b> this is ignored when using the {@link #standardSubmit} option.</p>
+     * <p>The following code:</p><pre><code>
+myFormPanel.getForm().submit({
+    clientValidation: true,
+    url: 'updateConsignment.php',
+    params: {
+        newStatus: 'delivered'
+    },
+    success: function(form, action) {
+       Ext.Msg.alert("Success", action.result.msg);
+    },
+    failure: function(form, action) {
+        switch (action.failureType) {
+            case Ext.form.Action.CLIENT_INVALID:
+                Ext.Msg.alert("Failure", "Form fields may not be submitted with invalid values");
+                break;
+            case Ext.form.Action.CONNECT_FAILURE:
+                Ext.Msg.alert("Failure", "Ajax communication failed");
+                break;
+            case Ext.form.Action.SERVER_INVALID:
+               Ext.Msg.alert("Failure", action.result.msg);
+       }
+    }
+});
+</code></pre>
+     * would process the following server response for a successful submission:<pre><code>
+{
+    success: true,
+    msg: 'Consignment updated'
+}
+</code></pre>
+     * and the following server response for a failed submission:<pre><code>
+{
+    success: false,
+    msg: 'You do not have permission to perform this operation'
+}
+</code></pre>
      * @return {BasicForm} this
      */
     submit : function(options){
@@ -417,8 +477,12 @@
     },
 
     /**
-     * Returns the fields in this form as an object with key/value pairs as they would be submitted using a standard form submit.
-     * If multiple fields exist with the same name they are returned as an array.
+     * <p>Returns the fields in this form as an object with key/value pairs as they would be submitted using a standard form submit.
+     * If multiple fields exist with the same name they are returned as an array.</p>
+     *
+     * <p><b>Note:</b> The values are collected from all enabled HTML input elements within the form, <u>not</u> from
+     * the Ext Field objects. This means that all returned values are Strings (or Arrays of Strings) and that the the
+     * value can potentionally be the emptyText of a field.</p>
      * @param {Boolean} asString (optional) false to return the values as an object (defaults to returning as a string)
      * @return {String/Object}
      */

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Checkbox.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Checkbox.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Checkbox.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -8,55 +8,30 @@
  */
 Ext.form.Checkbox = Ext.extend(Ext.form.Field,  {
     /**
-     * @cfg {String} checkedCls The CSS class to use when the control is checked (defaults to 'x-form-check-checked').
-     * Note that this class applies to both checkboxes and radio buttons and is added to the control's wrapper element.
+     * @cfg {String} focusClass The CSS class to use when the checkbox receives focus (defaults to undefined)
      */
-    checkedCls: 'x-form-check-checked',
+    focusClass : undefined,
     /**
-     * @cfg {String} focusCls The CSS class to use when the control receives input focus (defaults to 'x-form-check-focus').
-     * Note that this class applies to both checkboxes and radio buttons and is added to the control's wrapper element.
+     * @cfg {String} fieldClass The default CSS class for the checkbox (defaults to "x-form-field")
      */
-    focusCls: 'x-form-check-focus',
+    fieldClass: "x-form-field",
     /**
-     * @cfg {String} overCls The CSS class to use when the control is hovered over (defaults to 'x-form-check-over').
-     * Note that this class applies to both checkboxes and radio buttons and is added to the control's wrapper element.
+     * @cfg {Boolean} checked True if the the checkbox should render already checked (defaults to false)
      */
-    overCls: 'x-form-check-over',
-    /**
-     * @cfg {String} mouseDownCls The CSS class to use when the control is being actively clicked (defaults to 'x-form-check-down').
-     * Note that this class applies to both checkboxes and radio buttons and is added to the control's wrapper element.
-     */
-    mouseDownCls: 'x-form-check-down',
-    /**
-     * @cfg {Number} tabIndex The tabIndex for this field. Note this only applies to fields that are rendered,
-     * not those which are built via applyTo (defaults to 0, which allows the browser to manage the tab index).
-     */
-    tabIndex: 0,
-    /**
-     * @cfg {Boolean} checked True if the checkbox should render already checked (defaults to false)
-     */
     checked: false,
     /**
      * @cfg {String/Object} autoCreate A DomHelper element spec, or true for a default element spec (defaults to
-     * {tag: "input", type: "checkbox", autocomplete: "off"}).
+     * {tag: "input", type: "checkbox", autocomplete: "off"})
      */
-    defaultAutoCreate: {tag: 'input', type: 'checkbox', autocomplete: 'off'},
+    defaultAutoCreate : { tag: "input", type: 'checkbox', autocomplete: "off"},
     /**
-     * @cfg {String} boxLabel The text that appears beside the checkbox (defaults to '')
+     * @cfg {String} boxLabel The text that appears beside the checkbox
      */
     /**
      * @cfg {String} inputValue The value that should go into the generated input element's value attribute
-     * (defaults to undefined, with no value attribute)
      */
-    /**
-     * @cfg {Function} handler A function called when the {@link #checked} value changes (can be used instead of 
-     * handling the check event)
-     */
 
-    // private
-    baseCls: 'x-form-check',
-
-    // private
+	// private
     initComponent : function(){
         Ext.form.Checkbox.superclass.initComponent.call(this);
         this.addEvents(
@@ -71,122 +46,23 @@
     },
 
     // private
-    initEvents : function(){
-        Ext.form.Checkbox.superclass.initEvents.call(this);
-        this.initCheckEvents();
-    },
-
-    // private
-    initCheckEvents : function(){
-        this.innerWrap.removeAllListeners();
-        this.innerWrap.addClassOnOver(this.overCls);
-        this.innerWrap.addClassOnClick(this.mouseDownCls);
-        this.innerWrap.on('click', this.onClick, this);
-        this.innerWrap.on('keyup', this.onKeyUp, this);
-    },
-
-    // private
-    onRender : function(ct, position){
-        Ext.form.Checkbox.superclass.onRender.call(this, ct, position);
-        if(this.inputValue !== undefined){
-            this.el.dom.value = this.inputValue;
-        }
-        this.el.addClass('x-hidden');
-
-        this.innerWrap = this.el.wrap({
-            tabIndex: this.tabIndex,
-            cls: this.baseCls+'-wrap-inner'
-        });
-        this.wrap = this.innerWrap.wrap({cls: this.baseCls+'-wrap'});
-
-        if(this.boxLabel){
-            this.labelEl = this.innerWrap.createChild({
-                tag: 'label',
-                htmlFor: this.el.id,
-                cls: 'x-form-cb-label',
-                html: this.boxLabel
-            });
-        }
-
-        this.imageEl = this.innerWrap.createChild({
-            tag: 'img',
-            src: Ext.BLANK_IMAGE_URL,
-            cls: this.baseCls
-        }, this.el);
-
-        if(this.checked){
-            this.setValue(true);
-        }else{
-            this.checked = this.el.dom.checked;
-        }
-        this.originalValue = this.checked;
-    },
-
-    // private
-    onDestroy : function(){
-        if(this.rendered){
-            Ext.destroy(this.imageEl, this.labelEl, this.innerWrap, this.wrap);
-        }
-        Ext.form.Checkbox.superclass.onDestroy.call(this);
-    },
-
-    // private
-    onFocus: function(e) {
-        Ext.form.Checkbox.superclass.onFocus.call(this, e);
-        this.el.addClass(this.focusCls);
-    },
-
-    // private
-    onBlur: function(e) {
-        Ext.form.Checkbox.superclass.onBlur.call(this, e);
-        this.el.removeClass(this.focusCls);
-    },
-
-    // private
     onResize : function(){
         Ext.form.Checkbox.superclass.onResize.apply(this, arguments);
-        if(!this.boxLabel && !this.fieldLabel){
+        if(!this.boxLabel){
             this.el.alignTo(this.wrap, 'c-c');
         }
     },
 
     // private
-    onKeyUp : function(e){
-        if(e.getKey() == Ext.EventObject.SPACE){
-            this.onClick(e);
-        }
+    initEvents : function(){
+        Ext.form.Checkbox.superclass.initEvents.call(this);
+        this.el.on("click", this.onClick,  this);
+        this.el.on("change", this.onClick,  this);
     },
 
-    // private
-    onClick : function(e){
-        if (!this.disabled && !this.readOnly) {
-            this.toggleValue();
-        }
-        e.stopEvent();
-    },
-
-    // private
-    onEnable : function(){
-        Ext.form.Checkbox.superclass.onEnable.call(this);
-        this.initCheckEvents();
-    },
-
-    // private
-    onDisable : function(){
-        Ext.form.Checkbox.superclass.onDisable.call(this);
-        this.innerWrap.removeAllListeners();
-    },
-
-    toggleValue : function(){
-        this.setValue(!this.checked);
-    },
-
-    // private
+	// private
     getResizeEl : function(){
-        if(!this.resizeEl){
-            this.resizeEl = Ext.isSafari ? this.wrap : (this.wrap.up('.x-form-element', 5) || this.wrap);
-        }
-        return this.resizeEl;
+        return this.wrap;
     },
 
     // private
@@ -194,11 +70,6 @@
         return this.wrap;
     },
 
-    // private
-    getActionEl : function(){
-        return this.wrap;
-    },
-
     /**
      * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
      * @method
@@ -211,6 +82,31 @@
     clearInvalid : Ext.emptyFn,
 
     // private
+    onRender : function(ct, position){
+        Ext.form.Checkbox.superclass.onRender.call(this, ct, position);
+        if(this.inputValue !== undefined){
+            this.el.dom.value = this.inputValue;
+        }
+        this.wrap = this.el.wrap({cls: "x-form-check-wrap"});
+        if(this.boxLabel){
+            this.wrap.createChild({tag: 'label', htmlFor: this.el.id, cls: 'x-form-cb-label', html: this.boxLabel});
+        }
+        if(this.checked){
+            this.setValue(true);
+        }else{
+            this.checked = this.el.dom.checked;
+        }
+    },
+
+    // private
+    onDestroy : function(){
+        if(this.wrap){
+            this.wrap.remove();
+        }
+        Ext.form.Checkbox.superclass.onDestroy.call(this);
+    },
+
+    // private
     initValue : Ext.emptyFn,
 
     /**
@@ -221,42 +117,27 @@
         if(this.rendered){
             return this.el.dom.checked;
         }
-        return this.checked;
+        return false;
     },
 
+	// private
+    onClick : function(){
+        if(this.el.dom.checked != this.checked){
+            this.setValue(this.el.dom.checked);
+        }
+    },
+
     /**
      * Sets the checked state of the checkbox.
      * @param {Boolean/String} checked True, 'true', '1', or 'on' to check the checkbox, any other value will uncheck it.
      */
-    setValue : function(v) {
-        var checked = this.checked;
+    setValue : function(v){
         this.checked = (v === true || v === 'true' || v == '1' || String(v).toLowerCase() == 'on');
-        
-        if(this.rendered){
+        if(this.el && this.el.dom){
             this.el.dom.checked = this.checked;
             this.el.dom.defaultChecked = this.checked;
-            this.wrap[this.checked? 'addClass' : 'removeClass'](this.checkedCls);
         }
-        
-        if(checked != this.checked){
-            this.fireEvent("check", this, this.checked);
-            if(this.handler){
-                this.handler.call(this.scope || this, this, this.checked);
-            }
-        }
+        this.fireEvent("check", this, this.checked);
     }
-
-    /**
-     * @cfg {Mixed} value
-     * @hide
-     */
-    /**
-     * @cfg {String} disabledClass
-     * @hide
-     */
-    /**
-     * @cfg {String} focusClass
-     * @hide
-     */
 });
-Ext.reg('checkbox', Ext.form.Checkbox);
+Ext.reg('checkbox', Ext.form.Checkbox);
\ No newline at end of file

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/CheckboxGroup.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/CheckboxGroup.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/CheckboxGroup.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -8,6 +8,10 @@
  */
 Ext.form.CheckboxGroup = Ext.extend(Ext.form.Field, {
     /**
+     * @cfg {Array} items An Array of {@link Ext.form.Checkbox Checkbox}es or Checkbox config objects
+     * to arrange in the group.
+     */
+    /**
      * @cfg {String/Number/Array} columns Specifies the number of columns to use when displaying grouped
      * checkbox/radio controls using automatic layout.  This config can take several types of values:
      * <ul><li><b>'auto'</b> : <p class="sub-desc">The controls will be rendered one per column on one row and the width

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Combo.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Combo.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Combo.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -27,7 +27,7 @@
     /**
      * @cfg {Ext.data.Store/Array} store The data source to which this combo is bound (defaults to undefined).  This can be
      * any {@link Ext.data.Store} subclass, a 1-dimensional array (e.g., ['Foo','Bar']) or a 2-dimensional array (e.g.,
-     * [['f','Foo'],['b','Bar']]).  Arrays will be converted to a {@link Ext.data.SimpleStore} internally.
+     * [['f','Foo'],['b','Bar']]).  Arrays will be converted to a {@link Ext.data.ArrayStore} internally.
      * 1-dimensional arrays will automatically be expanded (each array item will be the combo value and text) and
      * for multi-dimensional arrays, the value in index 0 of each item will be assumed to be the combo value, while
      * the value at index 1 is assumed to be the combo text.
@@ -248,7 +248,7 @@
                     }
                     d.push([value, o.text]);
                 }
-                this.store = new Ext.data.SimpleStore({
+                this.store = new Ext.data.ArrayStore({
                     'id': 0,
                     fields: ['value', 'text'],
                     data : d
@@ -269,13 +269,13 @@
         //auto-configure store from local array data
         else if(Ext.isArray(this.store)){
 			if (Ext.isArray(this.store[0])){
-				this.store = new Ext.data.SimpleStore({
+				this.store = new Ext.data.ArrayStore({
 				    fields: ['value','text'],
 				    data: this.store
 				});
 		        this.valueField = 'value';
 			}else{
-				this.store = new Ext.data.SimpleStore({
+				this.store = new Ext.data.ArrayStore({
 				    fields: ['text'],
 				    data: this.store,
 				    expandData: true
@@ -346,7 +346,9 @@
             this.list.setWidth(lw);
             this.list.swallowEvent('mousewheel');
             this.assetHeight = 0;
-
+            if(this.syncFont !== false){
+                this.list.setStyle('font-size', this.el.getStyle('font-size'));
+            }
             if(this.title){
                 this.header = this.list.createChild({cls:cls+'-hd', html: this.title});
                 this.assetHeight += this.header.getHeight();

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Field.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Field.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Field.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -450,7 +450,7 @@
     // private
     adjustWidth : function(tag, w){
         tag = tag.toLowerCase();
-        if(typeof w == 'number' && !Ext.isSafari){
+        if(typeof w == 'number' && !Ext.isSafari && !this.normalWidth){
             if(Ext.isIE && (tag == 'input' || tag == 'textarea')){
                 if(tag == 'input' && !Ext.isStrict){
                     return this.inEditor ? w : w - 3;

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Form.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Form.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Form.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -32,6 +32,13 @@
      * @cfg {String} itemCls A css class to apply to the x-form-item of fields. This property cascades to child containers.
      */
     /**
+     * @cfg {Array} buttons
+     * An array of {@link Ext.Button}s or {@link Ext.Button} configs used to add buttons to the footer of this FormPanel.<br>
+     * <p>Buttons in the footer of a FormPanel may be configured with the option <tt>formBind: true</tt>. This causes
+     * the form's {@link #monitorValid valid state monitor task} to enable/disable those fields depending on
+     * the form's valid/invalid state.</p>
+     */
+    /**
      * @cfg {String} buttonAlign Valid values are "left," "center" and "right" (defaults to "center")
      */
     buttonAlign:'center',
@@ -49,9 +56,11 @@
     labelAlign:'left',
 
     /**
-     * @cfg {Boolean} monitorValid If true the form monitors its valid state <b>client-side</b> and
-     * fires a looping event with that state. This is required to bind buttons to the valid
-     * state using the config value formBind:true on the button.
+     * @cfg {Boolean} monitorValid If true, the form monitors its valid state <b>client-side</b> and
+     * regularly fires the {@link #clientvalidation} event passing that state.<br>
+     * <p>When monitoring valid state, the FormPanel enables/disables any of its configured
+     * {@link #button}s which have been configured with <tt>formBind: true<tt> depending
+     * on whether the form is valid or not.</p>
      */
     monitorValid : false,
 
@@ -239,9 +248,10 @@
                 return false;
             }
         });
-        if(this.buttons){
-            for(var i = 0, len = this.buttons.length; i < len; i++){
-                var btn = this.buttons[i];
+        if(this.fbar){
+            var fitems = this.fbar.items.items;
+            for(var i = 0, len = fitems.length; i < len; i++){
+                var btn = fitems[i];
                 if(btn.formBind === true && btn.disabled === valid){
                     btn.setDisabled(!valid);
                 }

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/NumberField.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/NumberField.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/NumberField.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -8,6 +8,9 @@
  */
 Ext.form.NumberField = Ext.extend(Ext.form.TextField,  {
     /**
+     * @cfg {RegExp} stripCharsRe @hide
+     */
+    /**
      * @cfg {String} fieldClass The default CSS class for the field (defaults to "x-form-field x-form-num-field")
      */
     fieldClass: "x-form-field x-form-num-field",

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Radio.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Radio.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/Radio.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -8,65 +8,58 @@
  * @param {Object} config Configuration options
  */
 Ext.form.Radio = Ext.extend(Ext.form.Checkbox, {
-    // private
     inputType: 'radio',
-    // private
-    baseCls: 'x-form-radio',
-    
+
     /**
+     * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
+     * @method
+     */
+    markInvalid : Ext.emptyFn,
+    /**
+     * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
+     * @method
+     */
+    clearInvalid : Ext.emptyFn,
+
+    /**
      * If this radio is part of a group, it will return the selected value
      * @return {String}
      */
     getGroupValue : function(){
-        var c = this.getParent().child('input[name='+this.el.dom.name+']:checked', true);
+    	var p = this.el.up('form') || Ext.getBody();
+        var c = p.child('input[name='+this.el.dom.name+']:checked', true);
         return c ? c.value : null;
     },
-    
-    // private
-    getParent : function(){
-        return this.el.up('form') || Ext.getBody();
-    },
 
     // private
-    toggleValue : function() {
-        if(!this.checked){
-            var els = this.getParent().select('input[name='+this.el.dom.name+']');
-            els.each(function(el){
-                if(el.dom.id == this.id){
-                    this.setValue(true);
-                }else{
-                    Ext.getCmp(el.dom.id).setValue(false);
-                }
-            }, this);
-        }
+    onClick : function(){
+    	if(this.el.dom.checked != this.checked){
+    		var p = this.el.up('form') || Ext.getBody();
+			var els = p.select('input[name='+this.el.dom.name+']');
+			els.each(function(el){
+				if(el.dom.id == this.id){
+					this.setValue(true);
+				}else{
+					Ext.getCmp(el.dom.id).setValue(false);
+				}
+			}, this);
+		}
     },
-    
+
     /**
      * Sets either the checked/unchecked status of this Radio, or, if a string value
      * is passed, checks a sibling Radio of the same name whose value is the value specified.
      * @param value {String/Boolean} Checked value, or the value of the sibling radio button to check.
      */
     setValue : function(v){
-        if(typeof v=='boolean') {
+    	if (typeof v == 'boolean') {
             Ext.form.Radio.superclass.setValue.call(this, v);
-        }else{
-            var r = this.getParent().child('input[name='+this.el.dom.name+'][value='+v+']', true);
-            if(r && !r.checked){
-                Ext.getCmp(r.id).toggleValue();
+        } else {
+            var r = this.el.up('form').child('input[name='+this.el.dom.name+'][value='+v+']', true);
+            if (r){
+                r.checked = true;
             };
         }
-    },
-    
-    /**
-     * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
-     * @method
-     */
-    markInvalid : Ext.emptyFn,
-    /**
-     * Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide
-     * @method
-     */
-    clearInvalid : Ext.emptyFn
-    
+    }
 });
 Ext.reg('radio', Ext.form.Radio);

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TextField.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TextField.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TextField.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -13,6 +13,9 @@
      * for the {@link #vtype} currently set for this field (defaults to '').  Only applies if vtype is set, else ignored.
      */
     /**
+     * @cfg {RegExp} stripCharsRe A JavaScript RegExp object used to strip unwanted content from the value before validation (defaults to null).
+     */
+    /**
      * @cfg {Boolean} grow True if this field should automatically grow and shrink to its content
      */
     grow : false,
@@ -70,8 +73,9 @@
     blankText : "This field is required",
     /**
      * @cfg {Function} validator A custom validation function to be called during field validation (defaults to null).
-     * If available, this function will be called only after the basic validators all return true, and will be passed the
-     * current field value and expected to return boolean true if the value is valid or a string error message if invalid.
+     * If specified, this function will be called only after the built-in validations ({@link #allowBlank}, {@link #minLength},
+     * {@link #maxLength}) and any configured {@link #vtype} all return true. This function will be passed the current field
+     * value and expected to return boolean true if the value is valid or a string error message if invalid.
      */
     validator : null,
     /**
@@ -86,7 +90,8 @@
      */
     regexText : "",
     /**
-     * @cfg {String} emptyText The default text to display in an empty field (defaults to null).
+     * @cfg {String} emptyText The default text to place into an empty field (defaults to null). Note that this
+     * value will be submitted to the server if this field is enabled and configured with a {@link #name}.
      */
     emptyText : null,
     /**

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TimeField.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TimeField.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TimeField.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -100,7 +100,7 @@
                 times.push([min.dateFormat(this.format)]);
                 min = min.add('mi', this.increment);
             }
-            this.store = new Ext.data.SimpleStore({
+            this.store = new Ext.data.ArrayStore({
                 fields: ['text'],
                 data : times
             });

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TriggerField.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TriggerField.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/TriggerField.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -154,11 +154,13 @@
     triggerBlur : function(){
         this.mimicing = false;
         Ext.get(Ext.isIE ? document.body : document).un("mousedown", this.mimicBlur, this);
-        if(this.monitorTab){
+        if(this.monitorTab && this.el){
             this.el.un("keydown", this.checkTab, this);
         }
         this.beforeBlur();
-        this.wrap.removeClass('x-trigger-wrap-focus');
+        if(this.wrap){
+            this.wrap.removeClass('x-trigger-wrap-focus');
+        }
         Ext.form.TriggerField.superclass.onBlur.call(this);
     },
 

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/form/VTypes.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/form/VTypes.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/form/VTypes.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,6 +1,15 @@
 /**
  * @class Ext.form.VTypes
- * Overridable validation definitions. The validations provided are basic and intended to be easily customizable and extended.
+ * This is a singleton object which contains a set of commonly used field validation functions.
+ * The validations provided are basic and intended to be easily customizable and extended. To add
+ * your own custom VType:<pre><code>
+Ext.apply(Ext.form.VTypes, {
+    IPAddress:  function(v) {
+        return /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(v);
+    },
+    IPAddressText: 'Must be a numeric IP address'
+});
+</code></pre>
  * @singleton
  */
 Ext.form.VTypes = function(){

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/Column.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/Column.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/Column.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -46,14 +46,22 @@
 };
 
 Ext.grid.BooleanColumn = Ext.extend(Ext.grid.Column, {
-     renderer : function(value){
-            if(value === undefined){
-                return "&#160;";
+    trueText: 'true',
+    falseText: 'false',
+    undefinedText: '&#160;',
+
+    constructor: function(cfg){
+        this.supr().constructor.apply(this, arguments);
+        var t = this.trueText, f = this.falseText, u = this.undefinedText;
+        this.renderer = function(v){
+            if(v === undefined){
+                return u;
             }
-            if(!value || value === 'false'){
-                return "false";
+            if(!v || v === 'false'){
+                return f;
             }
-            return 'true';
+            return t;
+        };
     }
 });
 

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/ColumnModel.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/ColumnModel.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/ColumnModel.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -9,24 +9,40 @@
  * data formatting, and the ability to apply a CSS class to all cells in a column through its
  * {@link #id} config option.<br>
  * <br>Usage:<br>
- <pre><code>
+<pre><code>
  var colModel = new Ext.grid.ColumnModel([
-	{header: "Ticker", width: 60, sortable: true},
-	{header: "Company Name", width: 150, sortable: true},
-	{header: "Market Cap.", width: 100, sortable: true},
-	{header: "$ Sales", width: 100, sortable: true, renderer: money},
-	{header: "Employees", width: 100, sortable: true, resizable: false}
+    { header: "Ticker", width: 60, sortable: true},
+    { header: "Company Name", width: 150, sortable: true},
+    { header: "Market Cap.", width: 100, sortable: true},
+    { header: "$ Sales", width: 100, sortable: true, renderer: money},
+    { header: "Employees", width: 100, sortable: true, resizable: false}
  ]);
  </code></pre>
  * <p>
  * The config options <b>defined by</b> this class are options which may appear in each
- * individual column definition.
+ * individual column definition. In order to use configuration options from the superclass,
+ * specify the column configuration Array in the <tt><b>columns<b><tt> config property. eg:<pre><code>
+ var colModel = new Ext.grid.ColumnModel({
+    listeners: {
+        widthchange: function(cm, colIndex, width) {
+            saveConfig(colIndex, width);
+        }
+    },
+    columns: [
+        { header: "Ticker", width: 60, sortable: true},
+        { header: "Company Name", width: 150, sortable: true},
+        { header: "Market Cap.", width: 100, sortable: true},
+        { header: "$ Sales", width: 100, sortable: true, renderer: money},
+        { header: "Employees", width: 100, sortable: true, resizable: false}
+     ]
+});
+ </code></pre>
  * @constructor
  * @param {Object} config An Array of column config objects. See this class's
  * config objects for details.
 */
 Ext.grid.ColumnModel = function(config){
-	/**
+    /**
      * The config passed into the constructor
      * @property {Array} config
      */
@@ -38,30 +54,30 @@
     }
     this.addEvents(
         /**
-	     * @event widthchange
-	     * Fires when the width of a column changes.
-	     * @param {ColumnModel} this
-	     * @param {Number} columnIndex The column index
-	     * @param {Number} newWidth The new width
-	     */
-	    "widthchange",
+         * @event widthchange
+         * Fires when the width of a column changes.
+         * @param {ColumnModel} this
+         * @param {Number} columnIndex The column index
+         * @param {Number} newWidth The new width
+         */
+        "widthchange",
         /**
-	     * @event headerchange
-	     * Fires when the text of a header changes.
-	     * @param {ColumnModel} this
-	     * @param {Number} columnIndex The column index
-	     * @param {String} newText The new header text
-	     */
-	    "headerchange",
+         * @event headerchange
+         * Fires when the text of a header changes.
+         * @param {ColumnModel} this
+         * @param {Number} columnIndex The column index
+         * @param {String} newText The new header text
+         */
+        "headerchange",
         /**
-	     * @event hiddenchange
-	     * Fires when a column is hidden or "unhidden".
-	     * @param {ColumnModel} this
-	     * @param {Number} columnIndex The column index
-	     * @param {Boolean} hidden true if hidden, false otherwise
-	     */
-	    "hiddenchange",
-	    /**
+         * @event hiddenchange
+         * Fires when a column is hidden or "unhidden".
+         * @param {ColumnModel} this
+         * @param {Number} columnIndex The column index
+         * @param {Boolean} hidden true if hidden, false otherwise
+         */
+        "hiddenchange",
+        /**
          * @event columnmoved
          * Fires when a column is moved.
          * @param {ColumnModel} this
@@ -111,7 +127,8 @@
      * specified, the column's index is used as an index into the Record's data Array.
      */
     /**
-     * @cfg {Number} width (optional) The initial width in pixels of the column.
+     * @cfg {Number} width (optional) The initial width in pixels of the column. This is ignored if the
+     * Grid's {@link Ext.grid.GridView view} is configured with {@link Ext.grid.GridView#forceFit forceFit} true.
      */
     /**
      * @cfg {Boolean} sortable (optional) True if sorting is to be allowed on this column.
@@ -185,8 +202,11 @@
     },
 
     /**
-     * Reconfigures this column model
-     * @param {Array} config Array of Column configs
+     * <p>Reconfigures this column model according to the passed Array of column definition objects. For a description of
+     * the individual properties of a column definition object, see the <a href="#Ext.grid.ColumnModel-configs">Config Options</a>.</p>
+     * <p>Causes the {@link #configchange} event to be fired. A {@link Ext.grid.GridPanel GridPanel} using
+     * this ColumnModel will listen for this event and refresh its UI automatically.</p>
+     * @param {Array} config Array of Column definition objects.
      */
     setConfig : function(config, initial){
         if(!initial){ // cleanup
@@ -564,9 +584,8 @@
 
 // private
 Ext.grid.ColumnModel.defaultRenderer = function(value){
-	if(typeof value == "string" && value.length < 1){
-	    return "&#160;";
-	}
-	return value;
-};
-
+    if(typeof value == "string" && value.length < 1){
+        return "&#160;";
+    }
+    return value;
+};
\ No newline at end of file

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/GridPanel.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/GridPanel.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/GridPanel.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -16,7 +16,17 @@
         {header: "Last Updated", width: 135, sortable: true, renderer: Ext.util.Format.dateRenderer('m/d/Y'), dataIndex: 'lastChange'}
     ],
     viewConfig: {
-        forceFit: true
+        forceFit: true,
+
+//      Return CSS class to apply to rows depending upon data values
+        getRowClass: function(record, index) {
+            var c = record.get('change');
+            if (c < 0) {
+                return 'price-fall';
+            } else if (c > 0) {
+                return 'price-rise';
+            }
+        }
     },
     sm: new Ext.grid.RowSelectionModel({singleSelect:true}),
     width:600,
@@ -71,7 +81,8 @@
      */
     /**
      * @cfg {Object} viewConfig A config object that will be applied to the grid's UI view.  Any of
-     * the config options available for {@link Ext.grid.GridView} can be specified here.
+     * the config options available for {@link Ext.grid.GridView} can be specified here. This option
+     * is ignored if {@link #view} is xpecified.
      */
     /**
      * @cfg {Boolean} hideHeaders True to hide the grid's header (defaults to false).
@@ -158,7 +169,13 @@
     rendered : false,
     // private
     viewReady: false,
-    // private
+    /**
+     * @cfg {Array} stateEvents
+     * An array of events that, when fired, should trigger this component to save its state (defaults to ["columnmove", "columnresize", "sortchange"]).
+     * These can be any types of events supported by this component, including browser or custom events (e.g.,
+     * ['click', 'customerchange']).
+     * <p>See {@link #stateful} for an explanation of saving and restoring Component state.</p>
+     */
     stateEvents: ["columnmove", "columnresize", "sortchange"],
 
     // private

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/GridView.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/GridView.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/grid/GridView.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -120,6 +120,7 @@
     autoFill: false,
     /**
      * @cfg {Boolean} forceFit True to auto expand/contract the size of the columns to fit the grid width and prevent horizontal scrolling.
+     * This option overrides any (@link Ext.grid.ColumnModel#width width} settings in the ColumnModel.
      */
     forceFit: false,
     /**
@@ -149,6 +150,7 @@
     borderWidth: 2,
     tdClass: 'x-grid3-cell',
     hdCls: 'x-grid3-hd',
+    markDirty: true,
 
     /**
      * @cfg {Number} cellSelectorDepth The number of levels to search for cells in event delegation (defaults to 4)
@@ -552,7 +554,7 @@
                 p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds);
                 p.style = c.style;
                 if(p.value == undefined || p.value === "") p.value = "&#160;";
-                if(r.dirty && typeof r.modified[c.name] !== 'undefined'){
+                if(this.markDirty && r.dirty && typeof r.modified[c.name] !== 'undefined'){
                     p.css += ' x-grid3-dirty-cell';
                 }
                 cb[cb.length] = ct.apply(p);
@@ -700,6 +702,9 @@
         
         if(g.autoHeight){
             this.scroller.dom.style.overflow = 'visible';
+            if(Ext.isSafari){
+                this.scroller.dom.style.position = 'static';
+            }
         }else{
             this.el.setSize(csize.width, csize.height);
 

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/layout/ContainerLayout.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/layout/ContainerLayout.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/layout/ContainerLayout.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -1,8 +1,12 @@
 /**
  * @class Ext.layout.ContainerLayout
- * Every layout is composed of one or more {@link Ext.Container} elements internally, and ContainerLayout provides
- * the basic foundation for all other layout classes in Ext.  It is a non-visual class that simply provides the
- * base logic required for a Container to function as a layout.  This class is intended to be extended and should
+ * <p>Every {@link Ext.Container Container} delegates the rendering of its child {@link Ext.Component Component}s
+ * to a layout manager class which must be {@link Ext.Container#layout configured} into the Container.</p> Some
+ * layouts also provide sizing and positioning of child Components/
+ *
+ * <p>The ContainerLayout class is the default layout manager used when no layout is configured into a Container.
+ * It provides the basic foundation for all other layout classes in Ext. It simply renders all child Components
+ * into the Container, performing no sizing os positioning services. This class is intended to be extended and should
  * generally not need to be created directly via the new keyword.
  */
 Ext.layout.ContainerLayout = function(config){
@@ -75,7 +79,8 @@
             }
         }else if(c && !this.isValidParent(c, target)){
             if(this.extraCls){
-                c.addClass(this.extraCls);
+                var t = c.getPositionEl ? c.getPositionEl() : c;
+            	t.addClass(this.extraCls);
             }
             if(typeof position == 'number'){
                 position = target.dom.childNodes[position];

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/tips/QuickTips.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/tips/QuickTips.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/tips/QuickTips.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -41,7 +41,7 @@
 });
 
 // Manually register a quick tip for a specific element
-q.register({
+Ext.QuickTips.register({
     target: 'my-div',
     title: 'My Tooltip',
     text: 'This tooltip was added in code',

Modified: mickael/trunk/ext/v3.0.0-a1/src/widgets/tree/TreeNode.js
===================================================================
--- mickael/trunk/ext/v3.0.0-a1/src/widgets/tree/TreeNode.js	2008-12-03 04:14:23 UTC (rev 36)
+++ mickael/trunk/ext/v3.0.0-a1/src/widgets/tree/TreeNode.js	2008-12-03 13:02:33 UTC (rev 37)
@@ -385,6 +385,7 @@
     /**
      * Ensures all parent nodes are expanded, and if necessary, scrolls
      * the node into view.
+     * @param {Function} callback (optional) A function to call when the node has been made visible.
      */
     ensureVisible : function(callback){
         var tree = this.getOwnerTree();


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/