+ } else if (keypress.equals(kbUp)) {
+ // Select the previous item
+ if (selectedItem != null) {
+ TTreeItem oldItem = selectedItem;
+ if (selectedItem.keyboardPrevious != null) {
+ setSelected(selectedItem.keyboardPrevious);
+ if (oldItem.getY() == 0) {
+ vScroller.decrement();
+ }
+ }
+ }
+ } else if (keypress.equals(kbDown)) {
+ // Select the next item
+ if (selectedItem != null) {
+ TTreeItem oldItem = selectedItem;
+ if (selectedItem.keyboardNext != null) {
+ setSelected(selectedItem.keyboardNext);
+ if (oldItem.getY() == getHeight() - 2) {
+ vScroller.increment();
+ }
+ }
+ }
+ } else if (keypress.equals(kbTab)) {
+ getParent().switchWidget(true);
+ return;
+ } else if (keypress.equals(kbShiftTab)
+ || keypress.equals(kbBackTab)) {
+ getParent().switchWidget(false);
+ return;
+ } else if (selectedItem != null) {
+ // Give the TTreeItem a chance to handle arrow keys
+ selectedItem.onKeypress(keypress);