rem: var rowHeight = pane.getTableRowHeight(); 
add: var rowHeight = this.getRowHeight(); 
context: qx.Proto._onkeydown = function(evt) {  var keys = qx.event.type.KeyEvent.keys;  var keyCode = evt.getKeyCode();  var consumed = false;  var oldFocusedRow = this._focusedRow;  if (this.isEditing()) {    // Editing mode    if (evt.getModifiers() == 0) {      consumed = true;      switch (keyCode) {        case keys.enter:          this.stopEditing();          var oldFocusedRow = this._focusedRow;          this.moveFocusedCell(0, 1);          if (this._focusedRow != oldFocusedRow) {            this.startEditing();          }          break;        case keys.esc:          this.cancelEditing();          this.focus();          break;        default:          consumed = false;          break;      }    }  } else {    // No editing mode    // Handle keys that are independant from the modifiers    consumed = true;    switch (keyCode) {      case keys.space:        this._selectionManager.handleSelectKeyDown(this._focusedRow, evt);        break;      case keys.left:        this.moveFocusedCell(-1, 0);        break;      case keys.right:        this.moveFocusedCell(1, 0);        break;      case keys.up:        this.moveFocusedCell(0, -1);        break;      case keys.down:        this.moveFocusedCell(0, 1);        break;      case keys.pageup:      case keys.pagedown:        var scroller = this.getPaneScroller(0);        var pane = scroller.getTablePane();        var rowCount = pane.getVisibleRowCount() - 1;        var rowHeight = pane.getTableRowHeight();        var direction = (keyCode == keys.pageup) ? -1 : 1;        scroller.setScrollY(scroller.getScrollY() + direction * rowCount * rowHeight);        this.moveFocusedCell(0, direction * rowCount);        break;      case keys.home:        this.setFocusedCell(this._focusedCol, 0, true);        break;      case keys.end:        var rowCount = this.getTableModel().getRowCount();        this.setFocusedCell(this._focusedCol, rowCount - 1, true);        break;      default:        consumed = false;        break;    }    // Handle keys that depend on modifiers    if (evt.getModifiers() == 0) {      consumed = true;      switch (keyCode) {        case keys.f2:        case keys.enter:          this.startEditing();          break;        default:          consumed = false;          break;      }    } else if (evt.getModifiers() == qx.event.type.DomEvent.CTRL_MASK) {      consumed = true;      switch (keyCode) {        case 65: // Ctrl + A          var rowCount = this.getTableModel().getRowCount();          if (rowCount > 0) {            this.getSelectionModel().setSelectionInterval(0, rowCount - 1);          }          break;        default:          consumed = false;          break;      }    }  }  if (oldFocusedRow != this._focusedRow) {    // The focus moved -> Let the selection manager handle this event    this._selectionManager.handleMoveKeyDown(this._focusedRow, evt);  }  if (consumed) {    evt.preventDefault();    evt.stopPropagation();  }}
meta: 1005	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1005/906a767726f6f002cd6fbd30a3e22cee0ebbbff5/Table.js/clean/qooxdoo/frontend/framework/source/class/qx/ui/table/Table.js