int index = container.indexOf(item);
if (ce.isShiftKey() && selectedItem != null) {
int last = container.indexOf(selectedItem);
int a = (last > index) ? index : last;
int b = (last < index) ? index : last;
doSelect(new Items(a, b + 1), ce.isControlKey(), false);
selectedItem = container.getItem(last);
} else {
if (ce.isControlKey() && isSelected(item)) {
deselect(container.getItem(index));
} else {
doSelect(new Items(index), ce.isControlKey(), false);
}
}
}