Search in sources :

Example 6 with EPStructureToArtefactLink

use of org.olat.portfolio.model.structel.EPStructureToArtefactLink in project openolat by klemens.

the class EPStructureManager method instantiateClone.

private EPStructureToArtefactLink instantiateClone(EPStructureToArtefactLink link) {
    EPStructureToArtefactLink clone = new EPStructureToArtefactLink();
    clone.setArtefact(link.getArtefact());
    clone.setAuthor(link.getAuthor());
    clone.setCreationDate(new Date());
    clone.setReflexion(link.getReflexion());
    return clone;
}
Also used : EPStructureToArtefactLink(org.olat.portfolio.model.structel.EPStructureToArtefactLink) Date(java.util.Date)

Example 7 with EPStructureToArtefactLink

use of org.olat.portfolio.model.structel.EPStructureToArtefactLink in project OpenOLAT by OpenOLAT.

the class EPStructureManager method move.

private void move(PortfolioStructure structure, AbstractArtefact artefact, boolean up) {
    if (artefact == null || structure == null)
        throw new NullPointerException();
    if (structure instanceof EPStructureElement) {
        // save eventual changes
        dbInstance.updateObject(structure);
        // reconnect to the session
        EPStructureElement structureEl = (EPStructureElement) dbInstance.loadObject((EPStructureElement) structure);
        List<EPStructureToArtefactLink> artefactLinks = structureEl.getInternalArtefacts();
        int index = indexOf(artefactLinks, artefact);
        if (up && index > 0) {
            // swap the link with the previous link in the list
            Collections.swap(artefactLinks, index, index - 1);
            dbInstance.updateObject(structureEl);
        } else if (!up && (index >= 0 && index < (artefactLinks.size() - 1))) {
            // swap the link with the next link in the list
            Collections.swap(artefactLinks, index, index + 1);
            dbInstance.updateObject(structureEl);
        }
    }
}
Also used : EPStructureElement(org.olat.portfolio.model.structel.EPStructureElement) EPStructureToArtefactLink(org.olat.portfolio.model.structel.EPStructureToArtefactLink)

Example 8 with EPStructureToArtefactLink

use of org.olat.portfolio.model.structel.EPStructureToArtefactLink in project OpenOLAT by OpenOLAT.

the class EPStructureManager method moveArtefactInStruct.

protected boolean moveArtefactInStruct(AbstractArtefact artefact, PortfolioStructure parStruct, int position) {
    EPStructureElement structureEl = (EPStructureElement) dbInstance.loadObject((EPStructureElement) parStruct);
    Identity author = structureEl.getInternalArtefacts().get(0).getAuthor();
    // old model without author, doesn't work!
    if (author == null)
        return false;
    List<EPStructureToArtefactLink> artefactLinks = structureEl.getInternalArtefacts();
    int currentIndex = -1;
    for (EPStructureToArtefactLink link : artefactLinks) {
        currentIndex++;
        if (link.getArtefact().equals(artefact)) {
            break;
        }
    }
    if (currentIndex > -1 && currentIndex < artefactLinks.size()) {
        EPStructureToArtefactLink link = artefactLinks.remove(currentIndex);
        if (position > currentIndex) {
            position--;
        }
        artefactLinks.add(position, link);
    }
    return true;
}
Also used : EPStructureElement(org.olat.portfolio.model.structel.EPStructureElement) EPStructureToArtefactLink(org.olat.portfolio.model.structel.EPStructureToArtefactLink) Identity(org.olat.core.id.Identity)

Example 9 with EPStructureToArtefactLink

use of org.olat.portfolio.model.structel.EPStructureToArtefactLink in project OpenOLAT by OpenOLAT.

the class EPStructureManager method copyEPStructureElementRecursively.

private void copyEPStructureElementRecursively(EPStructureElement sourceEl, EPStructureElement targetEl, boolean withArtefacts, boolean cloneRestrictions) {
    // needed if the sourceEl come from a link. Hibernate doesn't initialize the list properly
    sourceEl = (EPStructureElement) dbInstance.loadObject(sourceEl);
    if (withArtefacts) {
        List<EPStructureToArtefactLink> artefactLinks = sourceEl.getInternalArtefacts();
        for (EPStructureToArtefactLink artefactLink : artefactLinks) {
            EPStructureToArtefactLink link = instantiateClone(artefactLink);
            // make the pseudo
            link.setStructureElement(targetEl);
            // bidirectional relations
            targetEl.getInternalArtefacts().add(link);
        }
    }
    // clone the links
    List<EPStructureToStructureLink> childLinks = sourceEl.getInternalChildren();
    for (EPStructureToStructureLink childLink : childLinks) {
        copy(childLink, targetEl, withArtefacts, false, cloneRestrictions);
    }
    savePortfolioStructure(targetEl);
}
Also used : EPStructureToArtefactLink(org.olat.portfolio.model.structel.EPStructureToArtefactLink) EPStructureToStructureLink(org.olat.portfolio.model.structel.EPStructureToStructureLink)

Example 10 with EPStructureToArtefactLink

use of org.olat.portfolio.model.structel.EPStructureToArtefactLink in project OpenOLAT by OpenOLAT.

the class EPStructureManager method getReflexionForArtefactToStructureLink.

protected String getReflexionForArtefactToStructureLink(AbstractArtefact artefact, PortfolioStructure structure) {
    if (structure == null)
        return null;
    EPStructureElement structureEl = (EPStructureElement) dbInstance.loadObject((EPStructureElement) structure);
    List<EPStructureToArtefactLink> links = structureEl.getInternalArtefacts();
    for (EPStructureToArtefactLink epStructureToArtefactLink : links) {
        if (epStructureToArtefactLink.getArtefact().getKey().equals(artefact.getKey())) {
            return epStructureToArtefactLink.getReflexion();
        }
    }
    return null;
}
Also used : EPStructureElement(org.olat.portfolio.model.structel.EPStructureElement) EPStructureToArtefactLink(org.olat.portfolio.model.structel.EPStructureToArtefactLink)

Aggregations

EPStructureToArtefactLink (org.olat.portfolio.model.structel.EPStructureToArtefactLink)16 EPStructureElement (org.olat.portfolio.model.structel.EPStructureElement)12 Date (java.util.Date)2 Identity (org.olat.core.id.Identity)2 EPStructureToStructureLink (org.olat.portfolio.model.structel.EPStructureToStructureLink)2