You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by gb...@apache.org on 2010/02/11 22:27:37 UTC
svn commit: r909155 -
/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
Author: gbrown
Date: Thu Feb 11 21:27:36 2010
New Revision: 909155
URL: http://svn.apache.org/viewvc?rev=909155&view=rev
Log:
Add keyboard navigation to ListView.
Modified:
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java?rev=909155&r1=909154&r2=909155&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraListViewSkin.java Thu Feb 11 21:27:36 2010
@@ -981,6 +981,37 @@
return consumed;
}
+ @Override
+ public boolean keyTyped(Component component, char character) {
+ boolean consumed = super.keyTyped(component, character);
+
+ ListView listView = (ListView)getComponent();
+ List<?> listData = listView.getListData();
+ ListView.ItemRenderer itemRenderer = listView.getItemRenderer();
+
+ character = Character.toUpperCase(character);
+
+ for (int i = listView.getLastSelectedIndex() + 1, n = listData.getLength(); i < n; i++) {
+ if (!listView.isItemDisabled(i)) {
+ String string = itemRenderer.toString(listData.get(i));
+
+ if (string != null
+ && string.length() > 0) {
+ char first = Character.toUpperCase(string.charAt(0));
+
+ if (first == character) {
+ listView.setSelectedIndex(i);
+ listView.scrollAreaToVisible(getItemBounds(i));
+ consumed = true;
+ break;
+ }
+ }
+ }
+ }
+
+ return consumed;
+ }
+
// Component state events
@Override
public void enabledChanged(Component component) {