@SuppressWarnings("unchecked") protected void handleMouseDown(ListViewEvent<M> e) { if (locked) return; M sel = listStore.getAt(e.getIndex()); if (isSelected(sel) && !e.isControlKey()) { return; } if (selectionMode == SelectionMode.SINGLE) { if (isSelected(sel) && e.isControlKey()) { deselect(sel); } else if (!isSelected(sel)) { select(sel, false); } } else { if (e.isShiftKey() && lastSelected != null) { int last = listStore.indexOf(lastSelected); int index = e.getIndex(); int a = (last > index) ? index : last; int b = (last < index) ? index : last; select(a, b, e.isControlKey()); lastSelected = listStore.getAt(last); listView.focusItem(index); // view.focusRow(index); } else if (isSelected(sel) && e.isControlKey()) { doDeselect(Arrays.asList(sel), false); } else { doSelect(Arrays.asList(sel), e.isControlKey(), false); listView.focusItem(e.getIndex()); // view.focusRow(e.rowIndex); } } }
protected void selectPrevious(boolean keepexisting) { if (hasPrevious()) { int idx = listStore.indexOf(lastSelected) - 1; select(idx, keepexisting); listView.focusItem(idx); } }
protected void selectNext(boolean keepexisting) { if (hasNext()) { int idx = listStore.indexOf(lastSelected) + 1; select(idx, keepexisting); listView.focusItem(idx); } }