[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