@Override
 public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
   if (entries == null || entries.isEmpty()) {
     if (currentCtrl == null) {
       if (isGuestonly) {
         doOpenMyEntries(ureq);
         segmentView.select(myEntriesLink);
       } else {
         boolean markEmpty = doOpenMark(ureq).isEmpty();
         if (markEmpty) {
           doOpenMyEntries(ureq);
           segmentView.select(myEntriesLink);
         } else {
           segmentView.select(favoriteLink);
         }
       }
     }
     addToHistory(ureq, currentCtrl);
   } else {
     ContextEntry entry = entries.get(0);
     String segment = entry.getOLATResourceable().getResourceableTypeName();
     List<ContextEntry> subEntries = entries.subList(1, entries.size());
     if ("Favorits".equals(segment)) {
       if (isGuestonly) {
         doOpenMyEntries(ureq).activate(ureq, subEntries, entry.getTransientState());
         segmentView.select(myEntriesLink);
       } else {
         doOpenMark(ureq).activate(ureq, subEntries, entry.getTransientState());
         segmentView.select(favoriteLink);
       }
     } else if ("My".equals(segment)) {
       doOpenMyEntries(ureq).activate(ureq, subEntries, entry.getTransientState());
       segmentView.select(myEntriesLink);
     } else if ("Search".equals(segment)) {
       doSearchEntries(ureq).activate(ureq, subEntries, entry.getTransientState());
       segmentView.select(searchLink);
     } else {
       doOpenMyEntries(ureq).activate(ureq, subEntries, entry.getTransientState());
       segmentView.select(myEntriesLink);
     }
   }
 }
  @Override
  public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
    if (entries == null || entries.isEmpty()) return;

    ContextEntry currentEntry = entries.get(0);
    String cmd = currentEntry.getOLATResourceable().getResourceableTypeName();
    Controller selectedCtrl = selectMenuItem(ureq, cmd);
    if (selectedCtrl instanceof Activateable2) {
      List<ContextEntry> subEntries = entries.subList(1, entries.size());
      ((Activateable2) selectedCtrl).activate(ureq, subEntries, currentEntry.getTransientState());
    }
  }
  @Override
  public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
    if (entries == null || entries.isEmpty()) return;

    ContextEntry entry = entries.get(0);
    String type = entry.getOLATResourceable().getResourceableTypeName();
    if ("changepw".equals(type)) {
      String email = null;
      if (entries.size() > 1) {
        email = entries.get(1).getOLATResourceable().getResourceableTypeName();
      }
      openChangePassword(ureq, email);
    } else if ("registration".equals(type)) {
      if (registrationModule.isSelfRegistrationEnabled()
          && registrationModule.isSelfRegistrationLinkEnabled()) {
        List<ContextEntry> subEntries = entries.subList(1, entries.size());
        openRegistration(ureq).activate(ureq, subEntries, entry.getTransientState());
      }
    }
  }