// Get row's index by a specified row object private int getRowIndexByObject(T object) { for (int row = 0; row < dataDisplay.getRowCount(); row++) { if (dataDisplay.getVisibleItems().get(row).equals(object)) { return row; } } return -1; }
// Select a row with regarding a specified shift private void selectRow(int shift) { if (selectedSet.isEmpty() || dataDisplay == null) { return; } int shiftSelectedRow = lastSelectedRow + shift; int nextRow = shiftSelectedRow >= 0 ? shiftSelectedRow % dataDisplay.getRowCount() : shiftSelectedRow + dataDisplay.getRowCount(); if (disabledRows.contains(nextRow)) { selectRow(shift > 0 ? shift + 1 : shift - 1); return; } setSelected(dataDisplay.getVisibleItems().get(nextRow), true); }