protected void doMultiSelect(T item, ContainerEvent ce) {
if (locked) return;
int index = container.indexOf(item);
if (ce.isShiftKey() && selectedItem != null) {
int last = container.indexOf(selectedItem);
doSelect(new Items(last, index), false, false);
selectedItem = container.getItem(last);
} else {
if (ce.isControlKey() && isSelected(item)) {
deselect(container.getItem(index));
} else {
doSelect(new Items(index), ce.isControlKey(), false);
}
}
}