List<EditPart> selectedObjects = viewer.getSelectedEditParts();
if (getCurrentInput().isModKeyDown(SWT.MOD1)) {
EditPart deselectPart = getDeselectPart(selectedObjects, getSourceEditPart());
if (deselectPart != null) {
viewer.deselect(deselectPart);
} else {
viewer.appendSelection(getSourceEditPart());
removeChildrenDuplicates(getSourceEditPart());
}
viewer.setProperty(LAST_EDIT_PART, getSourceEditPart());