Exemple #1
0
 // really do the move!
 private boolean moveArtefactToNewParent(
     final String artefactId, final String oldParentId, final String newParentId) {
   PortfolioStructure newParStruct;
   PortfolioStructure oldParStruct;
   AbstractArtefact artefact;
   try {
     artefact = ePFMgr.loadArtefactByKey(new Long(artefactId));
     oldParStruct = ePFMgr.loadPortfolioStructureByKey(new Long(oldParentId));
     newParStruct = ePFMgr.loadPortfolioStructureByKey(new Long(newParentId));
   } catch (final Exception e) {
     log.error("could not load artefact, old and new parent", e);
     return false;
   }
   return ePFMgr.moveArtefactFromStructToStruct(artefact, oldParStruct, newParStruct);
 }
Exemple #2
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");
         }
       }
     }
   }
 }
Exemple #3
0
  /**
   * check if an artefact might be moved to this new parent node artefact might be moved to pages or
   * structureElements, but not on maps
   *
   * @param artefactId
   * @param structureId
   * @return
   */
  private boolean checkNewArtefactTarget(final String artefactId, final String structureId) {
    // artefact cannot be moved directly under root
    if (ROOT_NODE_IDENTIFIER.equals(structureId)) {
      return false;
    }

    PortfolioStructure newParStruct;
    AbstractArtefact artefact;
    try {
      artefact = ePFMgr.loadArtefactByKey(new Long(artefactId));
      newParStruct = ePFMgr.loadPortfolioStructureByKey(new Long(structureId));
    } catch (final Exception e) {
      log.warn("could not check for valid artefact target", e);
      return false;
    }
    final boolean sameTarget = ePFMgr.isArtefactInStructure(artefact, newParStruct);
    if (sameTarget) {
      return false;
    }
    if (newParStruct instanceof EPAbstractMap) {
      return false;
    }
    return true;
  }