@Override protected void handlePickingEvents( PickingType pickingType, PickingMode pickingMode, int externalID, Pick pick) { if (detailLevel == EDetailLevel.VERY_LOW) { return; } switch (pickingType) { case RAD_HIERARCHY_PDISC_SELECTION: PartialDisc pdPickedElement = hashPartialDiscs.get(externalID); switch (pickingMode) { case CLICKED: if (pdPickedElement != null) drawingController.handleSelection(pdPickedElement); break; case MOUSE_OVER: if (pdPickedElement != null) drawingController.handleMouseOver(pdPickedElement); break; case RIGHT_CLICKED: if (pdPickedElement != null) { // Prevent handling of non genetic data in context // menu if (!dataDomain.getDataDomainID().equals("org.caleydo.datadomain.genetic")) break; if (!pdPickedElement.hasChildren()) { AContextMenuItem menuItem = new BookmarkMenuItem( "Bookmark " + dataDomain.getRecordLabel(dataDomain.getRecordIDType(), externalID), dataDomain.getRecordIDType(), externalID); getContextMenuCreator().addContextMenuItem(menuItem); } else { AContextMenuItem menuItem = new DetailOutsideItem(externalID); getContextMenuCreator().addContextMenuItem(menuItem); } break; } drawingController.handleAlternativeSelection(pdPickedElement); break; default: return; } break; case RAD_HIERARCHY_SLIDER_SELECTION: switch (pickingMode) { case CLICKED: if (externalID == iUpwardNavigationSliderID) { if (upwardNavigationSlider.handleSliderSelection(pickingType)) { updateHierarchyAccordingToNavigationSlider(); setDisplayListDirty(); } } break; default: return; } break; case RAD_HIERARCHY_SLIDER_BUTTON_SELECTION: switch (pickingMode) { case CLICKED: if (externalID == iUpwardNavigationSliderButtonID) { if (upwardNavigationSlider.handleSliderSelection(pickingType)) { updateHierarchyAccordingToNavigationSlider(); setDisplayListDirty(); } } break; default: return; } break; case RAD_HIERARCHY_SLIDER_BODY_SELECTION: switch (pickingMode) { case CLICKED: if (externalID == iUpwardNavigationSliderBodyID) { if (upwardNavigationSlider.handleSliderSelection(pickingType)) { updateHierarchyAccordingToNavigationSlider(); setDisplayListDirty(); } } break; default: return; } break; default: break; } }