@Override
  public void onStateManagerDatabaseObjectsSelected(
      List<Event> path, Pathway pathway, DatabaseObject databaseObject) {
    this.diagram = pathway;
    this.databaseObject = databaseObject;

    for (DetailsTabView.Presenter tab : tabsPresenter) {
      tab.showInstanceDetailsIfExists(pathway, databaseObject);
    }
    showInstanceDetails(DetailsTabType.getIndex(selectedTabType));
  }
 @Override
 public void onTourManagerTourProgress(TourStage stage, Integer step) {
   if (stage == TourStage.SHOW_MODULES) {
     if (step == 4) {
       this.view.tourFadeOut();
     } else {
       this.view.tourFadeIn();
     }
   } else if (stage == TourStage.TEST_DETAILS) {
     switch (step) {
       case 1:
         this.view.selectTab(DetailsTabType.getIndex(DetailsTabType.OVERVIEW));
         break;
       case 3:
         this.view.selectTab(DetailsTabType.getIndex(DetailsTabType.PARTICIPATING_MOLECULES));
         break;
       case 4:
         this.view.selectTab(DetailsTabType.getIndex(DetailsTabType.STRUCTURES));
         break;
       case 5:
         this.view.selectTab(DetailsTabType.getIndex(DetailsTabType.EXPRESSION));
         break;
       case 6:
         this.view.selectTab(DetailsTabType.getIndex(DetailsTabType.ANALYSIS));
         break;
       case 7:
         this.view.selectTab(DetailsTabType.getIndex(DetailsTabType.PARTICIPATING_PROCESSES));
         break;
       case 8:
         this.view.selectTab(DetailsTabType.getIndex(DetailsTabType.DOWNLOADS));
         break;
     }
     this.view.tourFadeOut();
   } else {
     this.view.tourFadeIn();
   }
 }
 @Override
 public void onStateManagerDetailsTabSelected(DetailsTabType tab) {
   if (!tab.equals(selectedTabType)) view.selectTab(DetailsTabType.getIndex(tab));
 }