Search in sources :

Example 6 with CPOrganization

use of org.olat.ims.cp.objects.CPOrganization in project OpenOLAT by OpenOLAT.

the class CPManagerImpl method setUniqueOrgaIdentifier.

/**
 * Assigns the organization a unique identifier in order to prevent any
 * caching issues in the extjs menu tree later.
 *
 * @param cp
 * @return The first organization of the content package.
 */
private CPOrganization setUniqueOrgaIdentifier(ContentPackage cp) {
    CPOrganization orga = cp.getFirstOrganizationInManifest();
    String newOrgaIdentifier = "olatcp-" + CodeHelper.getForeverUniqueID();
    orga.setIdentifier(newOrgaIdentifier);
    return orga;
}
Also used : CPOrganization(org.olat.ims.cp.objects.CPOrganization)

Example 7 with CPOrganization

use of org.olat.ims.cp.objects.CPOrganization in project OpenOLAT by OpenOLAT.

the class ContentPackage method updatePage.

protected void updatePage(CPPage page) {
    DefaultElement ele = cpcore.getElementByIdentifier(page.getIdentifier());
    if (ele instanceof CPItem) {
        CPItem item = (CPItem) ele;
        item.setTitle(page.getTitle());
        item.setMetadata(page.getMetadata());
        String itemIdentifierRef = item.getIdentifierRef();
        if (itemIdentifierRef == null || itemIdentifierRef.equals("")) {
            // This item has no linked resource yet. Add one if there is a page file
            // attached.
            VFSLeaf pageFile = page.getPageFile();
            if (pageFile != null) {
                CPResource res = new CPResource();
                CPFile file = new CPFile(pageFile);
                res.addFile(file);
                // TODO:GW Set type according to file
                res.setType("text/html");
                res.setHref(file.getHref());
                item.setIdentifierRef(res.getIdentifier());
                cpcore.getRootNode().getResources().addResource(res);
            }
        } else {
        // this item has already a linked resource
        // this is not supported, we don't change linked resources...
        }
    } else if (ele instanceof CPOrganization) {
        CPOrganization organization = (CPOrganization) ele;
        organization.setTitle(page.getTitle());
    } else {
        // ERROR: this shouldn't be
        throw new OLATRuntimeException("Error while updating manifest with new Page-Data. Invalid identifier " + page.getIdentifier(), null);
    }
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) CPFile(org.olat.ims.cp.objects.CPFile) DefaultElement(org.dom4j.tree.DefaultElement) OLATRuntimeException(org.olat.core.logging.OLATRuntimeException) CPResource(org.olat.ims.cp.objects.CPResource) CPItem(org.olat.ims.cp.objects.CPItem) CPOrganization(org.olat.ims.cp.objects.CPOrganization)

Example 8 with CPOrganization

use of org.olat.ims.cp.objects.CPOrganization in project OpenOLAT by OpenOLAT.

the class CPTreeController method getParentIdentifier.

/**
 * Retrieves the parent identifier of the current page
 *
 * @return The identifier of the current page's parent
 */
private String getParentIdentifier() {
    DefaultElement currentElem = CPManager.getInstance().getElementByIdentifier(cp, currentPage.getIdentifier());
    // Get the parent node to be displayed after deletion.
    String parentIdentifier = null;
    if (currentElem instanceof CPItem) {
        Element parent = ((CPItem) currentElem).getParentElement();
        if (parent instanceof CPItem) {
            CPItem parentItem = (CPItem) parent;
            parentIdentifier = parentItem.getIdentifier();
        } else if (parent instanceof CPOrganization) {
            CPOrganization parentItem = (CPOrganization) parent;
            parentIdentifier = parentItem.getIdentifier();
        }
    }
    return parentIdentifier;
}
Also used : DefaultElement(org.dom4j.tree.DefaultElement) DefaultElement(org.dom4j.tree.DefaultElement) Element(org.dom4j.Element) CPItem(org.olat.ims.cp.objects.CPItem) CPOrganization(org.olat.ims.cp.objects.CPOrganization)

Example 9 with CPOrganization

use of org.olat.ims.cp.objects.CPOrganization in project OpenOLAT by OpenOLAT.

the class CPTreeDataModel method getChildrenFor.

public List<TreeNode> getChildrenFor(String nodeId) {
    List<TreeNode> nodeList = new ArrayList<TreeNode>();
    nodeId = getIdentifierForNodeID(nodeId);
    DefaultElement el = cp.getElementByIdentifier(nodeId);
    if (el == null) {
        log.info("element not found (id " + nodeId + ")");
        return nodeList;
    }
    try {
        if (el.getName().equals(CPCore.ORGANIZATION)) {
            CPOrganization org = (CPOrganization) el;
            for (Iterator<CPItem> it = org.getItemIterator(); it.hasNext(); ) {
                CPItem item = it.next();
                addItem(nodeList, item);
            }
        } else if (el.getName().equals(CPCore.ITEM)) {
            CPItem pItem = (CPItem) el;
            for (Iterator<CPItem> it = pItem.getItemIterator(); it.hasNext(); ) {
                CPItem item = it.next();
                addItem(nodeList, item);
            }
        } else {
            // element is not item nor orga -> ergo wrong element
            log.info("unknown element while building treemodel for gui (id: " + nodeId + ")");
        }
    } catch (JSONException e) {
        log.error("error while building treemodel");
    }
    return nodeList;
}
Also used : DefaultElement(org.dom4j.tree.DefaultElement) GenericTreeNode(org.olat.core.gui.components.tree.GenericTreeNode) TreeNode(org.olat.core.gui.components.tree.TreeNode) ArrayList(java.util.ArrayList) Iterator(java.util.Iterator) JSONException(org.json.JSONException) CPOrganization(org.olat.ims.cp.objects.CPOrganization) CPItem(org.olat.ims.cp.objects.CPItem)

Example 10 with CPOrganization

use of org.olat.ims.cp.objects.CPOrganization in project OpenOLAT by OpenOLAT.

the class CPManagerTest method testLoad.

@Test
public void testLoad() {
    ContentPackage relodedCP = mgr.load(cp.getRootDir(), cp.getResourcable());
    assertNotNull(relodedCP);
    CPOrganization orga = relodedCP.getFirstOrganizationInManifest();
    assertNotNull(orga);
    CPItem item = orga.getFirstItem();
    assertEquals(PAGE_TITLE, item.getTitle());
}
Also used : ContentPackage(org.olat.ims.cp.ContentPackage) CPOrganization(org.olat.ims.cp.objects.CPOrganization) CPItem(org.olat.ims.cp.objects.CPItem) Test(org.junit.Test)

Aggregations

CPOrganization (org.olat.ims.cp.objects.CPOrganization)30 CPItem (org.olat.ims.cp.objects.CPItem)22 DefaultElement (org.dom4j.tree.DefaultElement)20 OLATRuntimeException (org.olat.core.logging.OLATRuntimeException)12 CPResource (org.olat.ims.cp.objects.CPResource)8 CPDependency (org.olat.ims.cp.objects.CPDependency)6 CPOrganizations (org.olat.ims.cp.objects.CPOrganizations)6 GenericTreeNode (org.olat.core.gui.components.tree.GenericTreeNode)4 TreeNode (org.olat.core.gui.components.tree.TreeNode)4 CPFile (org.olat.ims.cp.objects.CPFile)4 File (java.io.File)2 ArrayList (java.util.ArrayList)2 Iterator (java.util.Iterator)2 Vector (java.util.Vector)2 Element (org.dom4j.Element)2 JSONException (org.json.JSONException)2 Test (org.junit.Test)2 DeliveryOptions (org.olat.core.gui.control.generic.iframe.DeliveryOptions)2 LocalFolderImpl (org.olat.core.util.vfs.LocalFolderImpl)2 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)2