Re-Layout dropdown width if columns change after appear
diff --git a/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDown.js b/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDown.js
index 8faa12e..560c535 100644
--- a/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDown.js
+++ b/bundles/org.eclipse.rap.addons.dropdown/js/rwt/dropdown/DropDown.js
@@ -230,6 +230,9 @@
setColumns : function( columns ) {
this._.columns = columns;
this._.grid.setColumnCount( columns.length );
+ if( this._.visibility ) {
+ renderLayout.call( this );
+ }
},
/**
diff --git a/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/dropdown/DropDown_Test.js b/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/dropdown/DropDown_Test.js
index bc9741d..4947aa2 100644
--- a/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/dropdown/DropDown_Test.js
+++ b/tests/org.eclipse.rap.addons.dropdown.test/js/rwt/dropdown/DropDown_Test.js
@@ -546,6 +546,14 @@
assertEquals( 400, popup.getInnerWidth() );
},
+ testSetColumns_setsPopUpWidthAfterAppear : function() {
+ showDropDown();
+ dropdown.setColumns( [ 100, 200, 100 ] );
+ TestUtil.flush();
+
+ assertEquals( 400, popup.getInnerWidth() );
+ },
+
testSetColumns_setsDoesNotSetPopUpWidthIfSmaller : function() {
dropdown.setColumns( [ 30 ] );
showDropDown();