예제 #1
0
  @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;
    }
  }