Search in sources :

Example 16 with CPManager

use of org.olat.ims.cp.CPManager in project OpenOLAT by OpenOLAT.

the class CPTreeController method updatePage.

/**
 * @param page
 */
protected void updatePage(CPPage page) {
    setCurrentPage(page);
    CPManager cpMgm = CPManager.getInstance();
    cpMgm.updatePage(cp, page);
    cpMgm.writeToFile(cp);
    updateTree();
    selectTreeNodeByCPPage(page);
}
Also used : CPManager(org.olat.ims.cp.CPManager)

Example 17 with CPManager

use of org.olat.ims.cp.CPManager in project OpenOLAT by OpenOLAT.

the class CPTreeController method doDrop.

private void doDrop(UserRequest ureq, String droppedNodeId, String targetNodeId, boolean asChild) {
    TreeNode droppedNode = treeModel.getNodeById(droppedNodeId);
    TreeNode targetNode = treeModel.getNodeById(targetNodeId);
    String droppedNodeIdent = treeModel.getIdentifierForNodeID(droppedNodeId);
    String targetNodeIdent = treeModel.getIdentifierForNodeID(targetNodeId);
    CPManager cpMgm = CPManager.getInstance();
    if (asChild) {
        cpMgm.moveElement(cp, droppedNodeIdent, targetNodeIdent, 0);
        cpMgm.writeToFile(cp);
    } else if (targetNode.getParent() == null) {
    // root -> do nothing
    } else {
        TreeNode parentTargetNode = (TreeNode) targetNode.getParent();
        int index = TreeHelper.indexOf(targetNode, parentTargetNode);
        boolean sibling = droppedNode.getParent().equals(parentTargetNode);
        if (sibling) {
            int droppedCurentIndex = TreeHelper.indexOf(targetNode, parentTargetNode);
            if (droppedCurentIndex < index) {
                index = index - 2;
            }
        }
        if (index < 0) {
            index = 0;
        }
        String parentTargetNodeIdent = treeModel.getIdentifierForNodeID(parentTargetNode.getIdent());
        cpMgm.moveElement(cp, droppedNodeIdent, parentTargetNodeIdent, index + 1);
        cpMgm.writeToFile(cp);
    }
    selectTreeNodeById(droppedNodeIdent);
    updateTree();
    fireEvent(ureq, new TreeEvent(TreeEvent.COMMAND_TREENODE_CLICKED, droppedNodeIdent));
}
Also used : TreeEvent(org.olat.core.gui.components.tree.TreeEvent) TreeNode(org.olat.core.gui.components.tree.TreeNode) CPManager(org.olat.ims.cp.CPManager)

Example 18 with CPManager

use of org.olat.ims.cp.CPManager in project OpenOLAT by OpenOLAT.

the class VFSCPContainer method getItems.

protected static List<VFSItem> getItems(ContentPackage cp, CPTreeDataModel model, String nodeId) {
    List<TreeNode> nodes = model.getChildrenFor(nodeId);
    CPManager cpMgm = CPManager.getInstance();
    List<VFSItem> items = new ArrayList<VFSItem>();
    for (TreeNode node : nodes) {
        try {
            String nid = node.getIdent();
            String id = model.getIdentifierForNodeID(nid);
            String filePath = cpMgm.getPageByItemId(cp, id);
            String title = cpMgm.getItemTitle(cp, id);
            VFSItem f = cp.getRootDir().resolve(filePath);
            if (f instanceof VFSLeaf) {
                title += " (" + filePath + ")";
                VFSItem item;
                List<TreeNode> children = model.getChildrenFor(nid);
                if (children.isEmpty()) {
                    item = new VFSCPNamedItem(title, (VFSLeaf) f);
                } else {
                    item = new VFSCPNamedContainerItem(nid, title, (VFSLeaf) f, cp, model);
                }
                items.add(item);
            }
        } catch (Exception e) {
            log.error("", e);
        }
    }
    return items;
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) TreeNode(org.olat.core.gui.components.tree.TreeNode) CPManager(org.olat.ims.cp.CPManager) ArrayList(java.util.ArrayList) VFSItem(org.olat.core.util.vfs.VFSItem)

Example 19 with CPManager

use of org.olat.ims.cp.CPManager in project openolat by klemens.

the class CPContentController method displayPage.

/**
 * Displays the correct edit page when node with the given id is selected.
 *
 * @param ureq
 * @param nodeID
 */
protected void displayPage(UserRequest ureq, String nodeID) {
    CPManager cpMgm = CPManager.getInstance();
    currentPage = new CPPage(nodeID, cp);
    String filePath = cpMgm.getPageByItemId(cp, currentPage.getIdentifier());
    logInfo("I display the page with id: " + currentPage.getIdentifier(), null);
    VFSItem f = cp.getRootDir().resolve(filePath);
    if (filePath == null) {
        displayInfoPage();
    } else if (f == null) {
        displayNotFoundPage();
    } else {
        currentPage.setFile((VFSLeaf) f);
        setContent(ureq, filePath);
    }
    fireEvent(ureq, new Event("Page loaded"));
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) CPManager(org.olat.ims.cp.CPManager) VFSItem(org.olat.core.util.vfs.VFSItem) NewIframeUriEvent(org.olat.core.gui.control.generic.iframe.NewIframeUriEvent) Event(org.olat.core.gui.control.Event)

Example 20 with CPManager

use of org.olat.ims.cp.CPManager in project openolat by klemens.

the class CPPage method getResource.

protected CPResource getResource() {
    CPResource resource = null;
    CPManager mgr = CPManager.getInstance();
    DefaultElement resElement = mgr.getElementByIdentifier(cp, idRef);
    if (resElement instanceof CPResource) {
        resource = (CPResource) resElement;
    }
    return resource;
}
Also used : DefaultElement(org.dom4j.tree.DefaultElement) CPManager(org.olat.ims.cp.CPManager) CPResource(org.olat.ims.cp.objects.CPResource)

Aggregations

CPManager (org.olat.ims.cp.CPManager)22 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)6 DefaultElement (org.dom4j.tree.DefaultElement)4 TreeNode (org.olat.core.gui.components.tree.TreeNode)4 VFSItem (org.olat.core.util.vfs.VFSItem)4 CPResource (org.olat.ims.cp.objects.CPResource)4 File (java.io.File)2 ArrayList (java.util.ArrayList)2 TreeEvent (org.olat.core.gui.components.tree.TreeEvent)2 Event (org.olat.core.gui.control.Event)2 NewIframeUriEvent (org.olat.core.gui.control.generic.iframe.NewIframeUriEvent)2 VFSContainer (org.olat.core.util.vfs.VFSContainer)2 CPPackageConfig (org.olat.ims.cp.ui.CPPackageConfig)2 OLATResource (org.olat.resource.OLATResource)2