Fix missing data when columns are used in DropDown
In order to render the text in GridRow cell, cellOrder property must me
set in the Grid config (see GridRowLayout#_computeAllCells). Otherwize,
only the text for the first column is shown.
Add cellOrder property to Grid config when columns are set on DropDown.
Change-Id: I23badf47b05ac0e775ff0f03cda5e7be95f73780
diff --git a/bundles/org.eclipse.rap.rwt/js/rwt/widgets/DropDown.js b/bundles/org.eclipse.rap.rwt/js/rwt/widgets/DropDown.js
index 397e78d..7f4316e 100644
--- a/bundles/org.eclipse.rap.rwt/js/rwt/widgets/DropDown.js
+++ b/bundles/org.eclipse.rap.rwt/js/rwt/widgets/DropDown.js
@@ -232,6 +232,11 @@
setColumns : function( columns ) {
this._.columns = columns;
this._.grid.setColumnCount( columns.length );
+ var config = this._.grid.getRenderConfig();
+ config.cellOrder = new Array( columns.length );
+ for( var i = 0; i < columns.length; i++ ) {
+ config.cellOrder[ i ] = i;
+ }
renderGridItems.call( this );
if( this._.grid.isSeeable() ) {
renderLayout.call( this );
diff --git a/tests/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/DropDown_Test.js b/tests/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/DropDown_Test.js
index 3a0fa76..6885615 100644
--- a/tests/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/DropDown_Test.js
+++ b/tests/org.eclipse.rap.rwt.jstest/js/org/eclipse/rwt/test/tests/DropDown_Test.js
@@ -713,6 +713,13 @@
assertEquals( 2, config.columnCount );
},
+ testSetColumns_setsCellOrder : function() {
+ dropdown.setColumns( [ 30, 40 ] );
+
+ var config = grid.getRenderConfig();
+ assertEquals( [ 0, 1 ], config.cellOrder );
+ },
+
testSetColumns_setsItemMetrics : function() {
dropdown.setColumns( [ 30, 40 ] );
showDropDown();