Пример #1
0
 @SuppressWarnings("unused")
 @Override
 protected void event(final UserRequest ureq, final Component source, final Event event) {
   if (source instanceof Link) {
     final Link link = (Link) source;
     if (link.getCommand().equals(DELETE_LINK_CMD)) {
       if (artefactNodeClicked != null) {
         final AbstractArtefact artefact =
             ePFMgr.loadArtefactByKey(new Long(getArtefactIdFromNodeId(artefactNodeClicked)));
         final PortfolioStructure parentStruct =
             ePFMgr.loadPortfolioStructureByKey(
                 new Long(getArtefactParentStructIdFromNodeId(artefactNodeClicked)));
         ePFMgr.removeArtefactFromStructure(artefact, parentStruct);
         // refresh the view
         fireEvent(ureq, Event.CHANGED_EVENT);
       } else if (structureClicked != null) {
         if ((structureClicked instanceof EPPage)
             && !(structureClicked instanceof EPAbstractMap)) {
           PortfolioStructure ps = structureClicked;
           while (ePFMgr.loadStructureParent(ps) != null) {
             ps = ePFMgr.loadStructureParent(ps);
           }
           final int childPages = ePFMgr.countStructureChildren(ps);
           if (childPages > 1) {
             eSTMgr.removeStructureRecursively(structureClicked);
             // refresh the view
             fireEvent(ureq, Event.CHANGED_EVENT);
           } else {
             showError("last.page.not.deletable");
           }
         } else if (structureClicked instanceof EPStructureElement
             && !(structureClicked instanceof EPAbstractMap)) {
           // structures should always be deletable
           eSTMgr.removeStructureRecursively(structureClicked);
           // refresh the view
           fireEvent(ureq, Event.CHANGED_EVENT);
         } else {
           showInfo("element.not.deletable");
         }
       }
     }
   }
 }