@Override
 protected void event(UserRequest ureq, Controller source, Event event) {
   if (newMethodCtrl == source) {
     if (event.equals(Event.DONE_EVENT)) {
       OfferAccess newLink = newMethodCtrl.commitChanges();
       newLink = acService.saveOfferAccess(newLink);
       addConfiguration(newLink);
       fireEvent(ureq, Event.CHANGED_EVENT);
     }
     cmc.deactivate();
     cleanUp();
   } else if (editMethodCtrl == source) {
     if (event.equals(Event.DONE_EVENT)) {
       OfferAccess newLink = editMethodCtrl.commitChanges();
       newLink = acService.saveOfferAccess(newLink);
       replace(newLink);
       fireEvent(ureq, Event.CHANGED_EVENT);
     }
     cmc.deactivate();
     cleanUp();
   } else if (cmc == source) {
     cleanUp();
   } else {
     super.event(ureq, source, event);
   }
 }
  protected void addMethod(UserRequest ureq, AccessMethod method) {
    Offer offer = acService.createOffer(resource, displayName);
    OfferAccess link = acService.createOfferAccess(offer, method);

    removeAsListenerAndDispose(newMethodCtrl);
    AccessMethodHandler handler = acModule.getAccessMethodHandler(link.getMethod().getType());
    if (handler != null) {
      newMethodCtrl = handler.createConfigurationController(ureq, getWindowControl(), link);
    }
    if (newMethodCtrl != null) {
      listenTo(newMethodCtrl);

      String title = handler.getMethodName(getLocale());
      cmc =
          new CloseableModalController(
              getWindowControl(),
              translate("close"),
              newMethodCtrl.getInitialComponent(),
              true,
              title);
      cmc.activate();
      listenTo(cmc);
    } else {
      OfferAccess newLink = acService.saveOfferAccess(link);
      addConfiguration(newLink);
    }
  }
  private void editMethod(UserRequest ureq, AccessInfo infos) {
    OfferAccess link = infos.getLink();

    removeAsListenerAndDispose(editMethodCtrl);
    AccessMethodHandler handler = acModule.getAccessMethodHandler(link.getMethod().getType());
    if (handler != null) {
      editMethodCtrl = handler.editConfigurationController(ureq, getWindowControl(), link);
    }

    if (editMethodCtrl != null) {
      listenTo(editMethodCtrl);

      String title = handler.getMethodName(getLocale());
      cmc =
          new CloseableModalController(
              getWindowControl(),
              translate("close"),
              editMethodCtrl.getInitialComponent(),
              true,
              title);
      cmc.activate();
      listenTo(cmc);
    }
  }