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/13 01:55:42 UTC
svn commit: r909674 - in /pivot/trunk: tests/src/org/apache/pivot/tests/text/
tools/src/org/apache/pivot/tools/xml/
wtk-terra/src/org/apache/pivot/wtk/skin/terra/
wtk/src/org/apache/pivot/wtk/ wtk/src/org/apache/pivot/wtk/content/
wtk/src/org/apache/pi...
Author: gbrown
Date: Sat Feb 13 00:55:40 2010
New Revision: 909674
URL: http://svn.apache.org/viewvc?rev=909674&view=rev
Log:
Add toString() methods to remaining renderers.
Modified:
pivot/trunk/tests/src/org/apache/pivot/tests/text/NodeAdapterRenderer.java
pivot/trunk/tools/src/org/apache/pivot/tools/xml/NodeRenderer.java
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/Button.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/TableViewHeader.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/SpinnerItemRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewBooleanCellRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewHeaderDataRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewImageCellRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewMultiCellRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewTextAreaCellRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeRenderer.java
pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java
Modified: pivot/trunk/tests/src/org/apache/pivot/tests/text/NodeAdapterRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tests/src/org/apache/pivot/tests/text/NodeAdapterRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/tests/src/org/apache/pivot/tests/text/NodeAdapterRenderer.java (original)
+++ pivot/trunk/tests/src/org/apache/pivot/tests/text/NodeAdapterRenderer.java Sat Feb 13 00:55:40 2010
@@ -66,4 +66,13 @@
setText(nodeAdapter.getText());
}
}
+
+ public String toString(Object node) {
+ if (node == null) {
+ throw new IllegalArgumentException();
+ }
+
+ NodeAdapter nodeAdapter = (NodeAdapter)node;
+ return nodeAdapter.getText();
+ }
}
Modified: pivot/trunk/tools/src/org/apache/pivot/tools/xml/NodeRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/tools/src/org/apache/pivot/tools/xml/NodeRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/tools/src/org/apache/pivot/tools/xml/NodeRenderer.java (original)
+++ pivot/trunk/tools/src/org/apache/pivot/tools/xml/NodeRenderer.java Sat Feb 13 00:55:40 2010
@@ -85,4 +85,19 @@
getStyles().put("color", color);
}
}
+
+ public String toString(Object node) {
+ String string;
+ if (node instanceof Element) {
+ Element element = (Element)node;
+ string = element.getName();
+ } else if (node instanceof TextNode) {
+ TextNode textNode = (TextNode)node;
+ string = textNode.getText();
+ } else {
+ throw new IllegalArgumentException();
+ }
+
+ return string;
+ }
}
Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java Sat Feb 13 00:55:40 2010
@@ -310,6 +310,30 @@
label.getStyles().put("color", color);
}
+
+ public String toString(Object row, String columnName) {
+ String string;
+
+ File file = (File)row;
+ if (columnName.equals(NAME_KEY)) {
+ string = file.getName();
+ } else if (columnName.equals(SIZE_KEY)) {
+ long length = file.length();
+ string = FileSizeFormat.getInstance().format(length);
+ } else if (columnName.equals(LAST_MODIFIED_KEY)) {
+ long lastModified = file.lastModified();
+ Date lastModifiedDate = new Date(lastModified);
+ DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,
+ DateFormat.SHORT);
+ string = dateFormat.format(lastModifiedDate);
+ } else {
+ System.err.println("Unexpected column name in " + getClass().getName()
+ + ": " + columnName);
+ string = null;
+ }
+
+ return string;
+ }
}
/**
Modified: pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java (original)
+++ pivot/trunk/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraSpinnerSkin.java Sat Feb 13 00:55:40 2010
@@ -42,7 +42,6 @@
import org.apache.pivot.wtk.skin.ComponentSkin;
import org.apache.pivot.wtk.skin.ContainerSkin;
-
/**
* Spinner skin.
*/
@@ -292,6 +291,34 @@
return consumed;
}
+
+ @Override
+ public boolean keyTyped(Component component, char character) {
+ boolean consumed = super.keyTyped(component, character);
+
+ Spinner spinner = (Spinner)TerraSpinnerSkin.this.getComponent();
+ List<?> spinnerData = spinner.getSpinnerData();
+ Spinner.ItemRenderer itemRenderer = spinner.getItemRenderer();
+
+ character = Character.toUpperCase(character);
+
+ for (int i = spinner.getSelectedIndex() + 1, n = spinnerData.getLength(); i < n; i++) {
+ String string = itemRenderer.toString(spinnerData.get(i));
+
+ if (string != null
+ && string.length() > 0) {
+ char first = Character.toUpperCase(string.charAt(0));
+
+ if (first == character) {
+ spinner.setSelectedIndex(i);
+ consumed = true;
+ break;
+ }
+ }
+ }
+
+ return consumed;
+ }
}
/**
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Button.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Button.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Button.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Button.java Sat Feb 13 00:55:40 2010
@@ -45,7 +45,7 @@
* height for skins that assume a fixed renderer height.
*
* @param button
- * The button that contains the data.
+ * The host component.
*
* @param highlighted
* If <tt>true</tt>, the item is highlighted.
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/ListView.java Sat Feb 13 00:55:40 2010
@@ -75,7 +75,7 @@
* is <tt>null</tt>.
*
* @param listView
- * The list view that contains the item.
+ * The host component.
*
* @param selected
* If <tt>true</tt>, the item is selected.
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/Spinner.java Sat Feb 13 00:55:40 2010
@@ -41,12 +41,27 @@
* Prepares the renderer for layout or paint.
*
* @param item
- * The item to render.
+ * The item to render, or <tt>null</tt> if called to calculate preferred
+ * height for skins that assume a fixed renderer height.
*
* @param spinner
* The host component.
*/
public void render(Object item, Spinner spinner);
+
+ /**
+ * Converts a spinner item to a string representation.
+ *
+ * @param item
+ *
+ * @return
+ * The item's string representation, or <tt>null</tt> if the item does not
+ * have a string representation.
+ * <p>
+ * Note that this method may be called often during keyboard navigation, so
+ * implementations should avoid unnecessary string allocations.
+ */
+ public String toString(Object item);
}
/**
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TableView.java Sat Feb 13 00:55:40 2010
@@ -485,7 +485,7 @@
* The index of the column being rendered.
*
* @param tableView
- * The table view that contains the cell.
+ * The host component.
*
* @param columnName
* The name of the column being rendered.
@@ -502,6 +502,20 @@
public void render(Object row, int rowIndex, int columnIndex,
TableView tableView, String columnName,
boolean selected, boolean highlighted, boolean disabled);
+
+ /**
+ * Converts table view cell data to a string representation.
+ *
+ * @param row
+ *
+ * @return
+ * The cell data's string representation, or <tt>null</tt> if the data does not
+ * have a string representation.
+ * <p>
+ * Note that this method may be called often during keyboard navigation, so
+ * implementations should avoid unnecessary string allocations.
+ */
+ public String toString(Object row, String columnName);
}
/**
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TableViewHeader.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TableViewHeader.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TableViewHeader.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TableViewHeader.java Sat Feb 13 00:55:40 2010
@@ -37,8 +37,41 @@
* Table view header data renderer interface.
*/
public interface DataRenderer extends Renderer {
+ /**
+ * Prepares the renderer for layout or paint.
+ *
+ * @param data
+ * The data to render, or <tt>null</tt> if called to calculate preferred
+ * height for skins that assume a fixed renderer height.
+ *
+ * @param columnIndex
+ * The index of the column being rendered.
+ *
+ * @param tableViewHeader
+ * The host component.
+ *
+ * @param columnName
+ * The name of the column being rendered.
+ *
+ * @param highlighted
+ * If <tt>true</tt>, the item is highlighted.
+ */
public void render(Object data, int columnIndex, TableViewHeader tableViewHeader,
String columnName, boolean highlighted);
+
+ /**
+ * Converts table view header data to a string representation.
+ *
+ * @param data
+ *
+ * @return
+ * The data's string representation, or <tt>null</tt> if the data does not
+ * have a string representation.
+ * <p>
+ * Note that this method may be called often during keyboard navigation, so
+ * implementations should avoid unnecessary string allocations.
+ */
+ public String toString(Object item);
}
/**
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/TreeView.java Sat Feb 13 00:55:40 2010
@@ -105,7 +105,7 @@
* visible nodes list, or <tt>-1</tt> if <tt>node</tt> is <tt>null</tt>.
*
* @param treeView
- * The tree view that contains the node.
+ * The host component.
*
* @param expanded
* <tt>true</tt> if the node is expanded; <tt>false</tt> otherwise.
@@ -125,6 +125,20 @@
public void render(Object node, Path path, int rowIndex, TreeView treeView,
boolean expanded, boolean selected, NodeCheckState checkState,
boolean highlighted, boolean disabled);
+
+ /**
+ * Converts a tree node to a string representation.
+ *
+ * @param node
+ *
+ * @return
+ * The node's string representation, or <tt>null</tt> if the node does not
+ * have a string representation.
+ * <p>
+ * Note that this method may be called often during keyboard navigation, so
+ * implementations should avoid unnecessary string allocations.
+ */
+ public String toString(Object node);
}
/**
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/ListViewItemRenderer.java Sat Feb 13 00:55:40 2010
@@ -86,22 +86,6 @@
label.setText(text);
}
- public String toString(Object item) {
- if (item == null) {
- throw new IllegalArgumentException();
- }
-
- String string;
- if (item instanceof ListItem) {
- ListItem listItem = (ListItem)item;
- string = listItem.getText();
- } else {
- string = item.toString();
- }
-
- return string;
- }
-
protected void renderStyles(ListView listView, boolean selected,
boolean highlighted, boolean disabled) {
imageView.getStyles().put("opacity", listView.isEnabled() ? 1.0f : 0.5f);
@@ -127,6 +111,22 @@
label.getStyles().put("color", color);
}
+ public String toString(Object item) {
+ if (item == null) {
+ throw new IllegalArgumentException();
+ }
+
+ String string;
+ if (item instanceof ListItem) {
+ ListItem listItem = (ListItem)item;
+ string = listItem.getText();
+ } else {
+ string = item.toString();
+ }
+
+ return string;
+ }
+
public int getIconWidth() {
return imageView.getPreferredWidth(-1);
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/SpinnerItemRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/SpinnerItemRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/SpinnerItemRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/SpinnerItemRenderer.java Sat Feb 13 00:55:40 2010
@@ -64,4 +64,12 @@
getStyles().put("color", color);
}
+
+ public String toString(Object item) {
+ if (item == null) {
+ throw new IllegalArgumentException();
+ }
+
+ return item.toString();
+ }
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewBooleanCellRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewBooleanCellRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewBooleanCellRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewBooleanCellRenderer.java Sat Feb 13 00:55:40 2010
@@ -86,6 +86,10 @@
}
}
+ public String toString(Object row, String columnName) {
+ return null;
+ }
+
public boolean isCheckboxDisabled() {
return checkboxDisabled;
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewCellRenderer.java Sat Feb 13 00:55:40 2010
@@ -55,9 +55,9 @@
renderStyles(tableView, selected, disabled);
if (row != null) {
+ // Get the row and cell data
Object cellData = null;
- // Get the row and cell data
if (columnName != null) {
Dictionary<String, Object> rowData;
if (row instanceof Dictionary<?, ?>) {
@@ -97,4 +97,23 @@
styles.put("color", color);
}
+
+ @SuppressWarnings("unchecked")
+ public String toString(Object row, String columnName) {
+ // Get the row and cell data
+ Object cellData = null;
+
+ if (columnName != null) {
+ Dictionary<String, Object> rowData;
+ if (row instanceof Dictionary<?, ?>) {
+ rowData = (Dictionary<String, Object>)row;
+ } else {
+ rowData = new BeanDictionary(row);
+ }
+
+ cellData = rowData.get(columnName);
+ }
+
+ return (cellData == null) ? null : cellData.toString();
+ }
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewHeaderDataRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewHeaderDataRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewHeaderDataRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewHeaderDataRenderer.java Sat Feb 13 00:55:40 2010
@@ -29,7 +29,6 @@
import org.apache.pivot.wtk.VerticalAlignment;
import org.apache.pivot.wtk.media.Image;
-
/**
* Default table view header data renderer.
*/
@@ -116,4 +115,20 @@
}
}
}
+
+ public String toString(Object data) {
+ if (data == null) {
+ throw new IllegalArgumentException();
+ }
+
+ String string;
+ if (data instanceof TableViewHeaderData) {
+ TableViewHeaderData tableViewHeaderData = (TableViewHeaderData)data;
+ string = tableViewHeaderData.getText();
+ } else {
+ string = data.toString();
+ }
+
+ return string;
+ }
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewImageCellRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewImageCellRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewImageCellRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewImageCellRenderer.java Sat Feb 13 00:55:40 2010
@@ -91,4 +91,8 @@
setImage(image);
}
}
+
+ public String toString(Object row, String columnName) {
+ return null;
+ }
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewMultiCellRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewMultiCellRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewMultiCellRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewMultiCellRenderer.java Sat Feb 13 00:55:40 2010
@@ -326,9 +326,9 @@
selected, highlighted, disabled);
}
} else {
+ // Get the row and cell data
Object cellData = null;
- // Get the row and cell data
if (columnName != null) {
Dictionary<String, Object> rowData;
if (row instanceof Dictionary<?, ?>) {
@@ -366,6 +366,41 @@
}
}
+ @SuppressWarnings("unchecked")
+ public String toString(Object row, String columnName) {
+ // Get the row and cell data
+ Object cellData = null;
+
+ if (columnName != null) {
+ Dictionary<String, Object> rowData;
+ if (row instanceof Dictionary<?, ?>) {
+ rowData = (Dictionary<String, Object>)row;
+ } else {
+ rowData = new BeanDictionary(row);
+ }
+
+ cellData = rowData.get(columnName);
+ }
+
+ TableView.CellRenderer cellRenderer = null;
+
+ Class<?> valueClass = (cellData == null ? null : cellData.getClass());
+ while (cellRenderer == null
+ && valueClass != Object.class) {
+ cellRenderer = cellRenderers.get(valueClass);
+
+ if (cellRenderer == null) {
+ valueClass = valueClass.getSuperclass();
+ }
+ }
+
+ if (cellRenderer == null) {
+ cellRenderer = defaultRenderer;
+ }
+
+ return cellRenderer.toString(row, columnName);
+ }
+
public TableView.CellRenderer getDefaultRenderer() {
return defaultRenderer;
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewTextAreaCellRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewTextAreaCellRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewTextAreaCellRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TableViewTextAreaCellRenderer.java Sat Feb 13 00:55:40 2010
@@ -95,4 +95,23 @@
styles.put("color", color);
}
+
+ @SuppressWarnings("unchecked")
+ public String toString(Object row, String columnName) {
+ Object cellData = null;
+
+ // Get the row and cell data
+ if (columnName != null) {
+ Dictionary<String, Object> rowData;
+ if (row instanceof Dictionary<?, ?>) {
+ rowData = (Dictionary<String, Object>)row;
+ } else {
+ rowData = new BeanDictionary(row);
+ }
+
+ cellData = rowData.get(columnName);
+ }
+
+ return (cellData == null) ? null : cellData.toString();
+ }
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeRenderer.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeRenderer.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeRenderer.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/content/TreeViewNodeRenderer.java Sat Feb 13 00:55:40 2010
@@ -130,6 +130,22 @@
}
}
+ public String toString(Object node) {
+ if (node == null) {
+ throw new IllegalArgumentException();
+ }
+
+ String string;
+ if (node instanceof TreeNode) {
+ TreeNode treeNode = (TreeNode)node;
+ string = treeNode.getText();
+ } else {
+ string = node.toString();
+ }
+
+ return string;
+ }
+
public int getIconWidth() {
return imageView.getPreferredWidth(-1);
}
Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java
URL: http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java?rev=909674&r1=909673&r2=909674&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/ListButtonSkin.java Sat Feb 13 00:55:40 2010
@@ -246,18 +246,29 @@
consumed = true;
} else if (keyCode == Keyboard.KeyCode.UP) {
ListButton listButton = (ListButton)getComponent();
- int selectedIndex = listButton.getSelectedIndex();
+ int index = listButton.getSelectedIndex();
- if (selectedIndex > 0) {
- listButton.setSelectedIndex(selectedIndex - 1);
+ do {
+ index--;
+ } while (index >= 0
+ && listButton.isItemDisabled(index));
+
+ if (index >= 0) {
+ listButton.setSelectedIndex(index);
consumed = true;
}
} else if (keyCode == Keyboard.KeyCode.DOWN) {
ListButton listButton = (ListButton)getComponent();
- int selectedIndex = listButton.getSelectedIndex();
+ int index = listButton.getSelectedIndex();
+ int count = listButton.getListData().getLength();
+
+ do {
+ index++;
+ } while (index < count
+ && listView.isItemDisabled(index));
- if (selectedIndex < listButton.getListData().getLength() - 1) {
- listButton.setSelectedIndex(selectedIndex + 1);
+ if (index < count) {
+ listButton.setSelectedIndex(index);
consumed = true;
}
} else {
@@ -285,6 +296,37 @@
return consumed;
}
+ @Override
+ public boolean keyTyped(Component component, char character) {
+ boolean consumed = super.keyTyped(component, character);
+
+ ListButton listButton = (ListButton)getComponent();
+
+ List<?> listData = listButton.getListData();
+ ListView.ItemRenderer itemRenderer = listButton.getItemRenderer();
+
+ character = Character.toUpperCase(character);
+
+ for (int i = listButton.getSelectedIndex() + 1, n = listData.getLength(); i < n; i++) {
+ if (!listButton.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) {
+ listButton.setSelectedIndex(i);
+ consumed = true;
+ break;
+ }
+ }
+ }
+ }
+
+ return consumed;
+ }
+
// List button events
@Override
public void listDataChanged(ListButton listButton, List<?> previousListData) {