Use tabluator character to separate a dropdown item into columns
The character is only respected if the hidden columns property is set
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 ef64fd3..6d200be 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
@@ -13,6 +13,7 @@
var POPUP_BORDER = new rwt.html.Border( 1, "solid", "#000000" );
var FRAMEWIDTH = 2;
+ var TAB = String.fromCharCode( 9 );
var getPadding = function() {
var manager = rwt.theme.AppearanceManager.getInstance();
var stylemap = manager.styleFrom( "list-item", {} );
@@ -365,7 +366,11 @@
rootItem.setItemCount( items.length );
for( var i = 0; i < items.length; i++ ) {
var gridItem = new rwt.widgets.GridItem( rootItem, i, false );
- gridItem.setTexts( [ items[ i ] ] );
+ if( this._.columns ) {
+ gridItem.setTexts( items[ i ].split( TAB ) );
+ } else {
+ gridItem.setTexts( [ items[ i ] ] );
+ }
}
delete this._.grid._inServerResponse;
};
diff --git a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
index d75f8e6..809391b 100644
--- a/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
+++ b/examples/org.eclipse.rap.addons.dropdown.demo/src/org/eclipse/rap/addons/dropdown/demo/DropDownDemo.java
@@ -119,7 +119,7 @@
dropdown.hide();
}
} );
- dropdown.setData( "columns", new int[] { 90, 50 } );
+ dropdown.setData( "columns", new int[] { 130, 60 } );
}
private void createKFZExample( Composite parent ) {
@@ -312,7 +312,10 @@
String item = values[ i ];
if( item.toLowerCase().startsWith( text ) ) {
int length = text.length();
- result.add( "<b>" + item.substring( 0, length ) + "</b>" + item.substring( length ) );
+ int rating = ( int )( Math.random() * 10 );
+ result.add(
+ "<b>" + item.substring( 0, length ) + "</b>" + item.substring( length ) + "\t" + rating + "/10"
+ );
}
}
return result.toArray( new String[ result.size() ] );
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 2d4c68f..3a27dc2 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
@@ -483,6 +483,18 @@
assertEquals( 40 - PADDING_RIGHT - PADDING_LEFT, config.itemTextWidth[ 1 ] );
},
+ testSetColumns_separatesItemsByTabulator : function() {
+ dropdown.setColumns( [ 30, 40 ] );
+ var tab = String.fromCharCode( 9 );
+
+ dropdown.setItems( [ "foo" + tab + "bar" ] );
+ showDropDown();
+
+ var gridItem = grid.getRootItem().getChild( 0 );
+ assertEquals( "foo", gridItem.getText( 0 ) );
+ assertEquals( "bar", gridItem.getText( 1 ) );
+ },
+
testGetItemCount : function() {
showDropDown();