[Dojo-checkins] bill - r15357 - in dojox/trunk/grid: . tests
dojo-checkins-admin at dojotoolkit.org
dojo-checkins-admin at dojotoolkit.org
Tue Sep 30 21:42:08 UTC 2008
Author: bill
Date: Tue Sep 30 14:42:05 2008
New Revision: 15357
Modified:
dojox/trunk/grid/_Grid.js
dojox/trunk/grid/tests/test_grid_layout_borderContainer.html
Log:
Quick fix to get Grid inside BorderContainer working on FF/safari.
BorderContainer passes two arguments to resize() now so need to handle that.
Manifestation was that in test_grid_layout_borderContainer.html, there was one scrollbar the length of the screen, instead of two, even though there were two grids.
!strict
Modified: dojox/trunk/grid/_Grid.js
==============================================================================
--- dojox/trunk/grid/_Grid.js (original)
+++ dojox/trunk/grid/_Grid.js Tue Sep 30 14:42:05 2008
@@ -527,12 +527,22 @@
},
// sizing
- resize: function(sizeBox){
- // summary:
+ resize: function(changeSize, resultSize){
+ // summary:
// Update the grid's rendering dimensions and resize it
// sizeBox: Object?
// {w: int, h: int, l: int, t: int}
+ // see dijit.layout._LayoutWidget for details on resize argument meaning
+ // TODO: even when Grid is a child of BorderContainer,
+ // the current code in _resize() calls contentBox() to set the size,
+ // which is inappropriate since BorderContainer has already done that.
+ // Should pass changeSize and resultSize to _resize(), and only act on
+ // changeSize
+ var sizeBox = {};
+ dojo.mixin(sizeBox, resultSize || {});
+ dojo.mixin(sizeBox, changeSize || {});
+
// FIXME: If grid is not sized explicitly, sometimes bogus scrollbars
// can appear in our container, which may require an extra call to 'resize'
// to sort out.
@@ -582,7 +592,7 @@
}
// if we are given dimensions, size the grid's domNode to those dimensions
if(this._sizeBox){
- dojo.contentBox(this.domNode, this._sizeBox);
+ dojo.contentBox(this.domNode, this._sizeBox); // TODO: should be marginBox() to match dijit behavior
}else if(this.fitTo == "parent"){
var h = dojo._getContentBox(pn).h;
dojo.marginBox(this.domNode, { h: Math.max(0, h) });
Modified: dojox/trunk/grid/tests/test_grid_layout_borderContainer.html
==============================================================================
--- dojox/trunk/grid/tests/test_grid_layout_borderContainer.html (original)
+++ dojox/trunk/grid/tests/test_grid_layout_borderContainer.html Tue Sep 30 14:42:05 2008
@@ -52,26 +52,25 @@
id="verticalSplitParam" design="headline" style="width: 100%; height: 100%;">
<div dojoType="dijit.layout.ContentPane" id="mybuttons"
- region="top" splitter="true" style="height: 10%;">
-
- <div id="controls">
- <button onclick="grid.render()">Refresh</button>
- <button onclick="grid.edit.focusEditor()">Focus Editor</button>
- <button onclick="grid.focus.next()">Next Focus</button>
- <button onclick="addRow()">Add Row</button>
- <button onclick="grid.removeSelectedRows()">Remove</button>
- <button onclick="grid.edit.apply()">Apply</button>
- <button onclick="grid.edit.cancel()">Cancel</button>
- <button onclick="grid.singleClickEdit = !grid.singleClickEdit">Toggle singleClickEdit</button>
- </div>
+ region="top" splitter="true">
+ <button onclick="grid.render()">Refresh</button>
+ <button onclick="grid.edit.focusEditor()">Focus Editor</button>
+ <button onclick="grid.focus.next()">Next Focus</button>
+ <button onclick="addRow()">Add Row</button>
+ <button onclick="grid.removeSelectedRows()">Remove</button>
+ <button onclick="grid.edit.apply()">Apply</button>
+ <button onclick="grid.edit.cancel()">Cancel</button>
+ <button onclick="grid.singleClickEdit = !grid.singleClickEdit">Toggle singleClickEdit</button>
</div>
- <div jsId="grid" class="myGrid" dojoType="dojox.grid.DataGrid" store="test_store" structure="gridLayout"
- region="center"></div>
-
<div jsId="gridBottom" class="myGrid" dojoType="dojox.grid.DataGrid" store="test_store" structure="gridLayout"
- region="bottom" splitter="true" style="height: 100px;"></div>
+ region="bottom" splitter="true" style="height: 100px;">
+ </div>
+ <div jsId="grid" class="myGrid" dojoType="dojox.grid.DataGrid" store="test_store" structure="gridLayout"
+ region="center">
+ </div>
+
</div>
</body>
More information about the Dojo-checkins
mailing list