@Override public void onKeyUp(KeyUpEvent event) { if (event.getNativeKeyCode() == KeyCodes.KEY_DOWN) { iCourses.setSelectedRow(iCourses.getSelectedRow() + 1); scrollToSelectedRow(); updateCourseDetails(); } else if (event.getNativeKeyCode() == KeyCodes.KEY_UP) { iCourses.setSelectedRow( iCourses.getSelectedRow() == 0 ? iCourses.getRowsCount() - 1 : iCourses.getSelectedRow() - 1); scrollToSelectedRow(); updateCourseDetails(); } else if (event.isControlKeyDown() || event.isAltKeyDown()) { for (Map.Entry<Character, Integer> entry : iTabAccessKeys.entrySet()) if (event.getNativeKeyCode() == Character.toLowerCase(entry.getKey()) || event.getNativeKeyCode() == Character.toUpperCase(entry.getKey())) { iCourseDetailsTabPanel.selectTab(entry.getValue()); event.preventDefault(); event.stopPropagation(); } } }
protected void updateCourseDetails() { if (iCourses.getSelectedRow() < 0 || iCourses.getRows() == null || iCourses.getRows().length == 0) { if (iDetails != null) for (CourseFinderCourseDetails detail : iDetails) { detail.setValue(null); } AriaStatus.getInstance().setHTML(ARIA.courseFinderNoCourse()); } else { WebTable.Row row = iCourses.getRows()[iCourses.getSelectedRow()]; String courseName = MESSAGES.courseName(row.getCell(0).getValue(), row.getCell(1).getValue()); if ("false".equals(row.getId())) courseName = MESSAGES.courseNameWithTitle( row.getCell(0).getValue(), row.getCell(1).getValue(), row.getCell(2).getValue()); for (CourseFinderCourseDetails detail : iDetails) detail.setValue(courseName); String title = row.getCell(3).getValue(); String note = row.getCell(4).getValue(); if (title.isEmpty()) { if (note.isEmpty()) { AriaStatus.getInstance() .setHTML( ARIA.courseFinderSelected( 1 + iCourses.getSelectedRow(), iCourses.getRowsCount(), row.getCell(0).getValue(), row.getCell(1).getValue())); } else { AriaStatus.getInstance() .setHTML( ARIA.courseFinderSelectedWithNote( 1 + iCourses.getSelectedRow(), iCourses.getRowsCount(), row.getCell(0).getValue(), row.getCell(1).getValue(), note)); } } else { if (note.isEmpty()) { AriaStatus.getInstance() .setHTML( ARIA.courseFinderSelectedWithTitle( 1 + iCourses.getSelectedRow(), iCourses.getRowsCount(), row.getCell(0).getValue(), row.getCell(1).getValue(), title)); } else { AriaStatus.getInstance() .setHTML( ARIA.courseFinderSelectedWithTitleAndNote( 1 + iCourses.getSelectedRow(), iCourses.getRowsCount(), row.getCell(0).getValue(), row.getCell(1).getValue(), title, note)); } } } }