Package org.brixcms.jcr.wrapper

Examples of org.brixcms.jcr.wrapper.BrixNode


        String root = SitePlugin.get().getSiteRootPath();
        add(new PathLabel("path2", model, root) {
            @Override
            protected void onPathClicked(Path path) {
                BrixNode node = (BrixNode) getNode().getSession().getItem(path.toString());
                selectNode(node, false);
            }
        });

        add(new Link<Void>("rename") {
            @Override
            public void onClick() {
                String id = NodeManagerEditorPanel.this.getId();
                Panel renamePanel = new RenamePanel(id, NodeManagerEditorPanel.this.getModel()) {
                    @Override
                    protected void onLeave() {
                        SitePlugin.get().refreshNavigationTree(this);
                        replaceWith(NodeManagerEditorPanel.this);
                    }
                };
                NodeManagerEditorPanel.this.replaceWith(renamePanel);
            }

            @Override
            public boolean isVisible() {
                BrixNode node = NodeManagerEditorPanel.this.getModelObject();
                String path = node.getPath();
                String web = SitePlugin.get().getSiteRootPath();
                return SitePlugin.get().canRenameNode(node, Context.ADMINISTRATION) &&
                        path.length() > web.length() && path.startsWith(web);
            }
        });

        add(new Link<Void>("makeVersionable") {
            @Override
            public void onClick() {
                if (!getNode().isNodeType("mix:versionable")) {
                    getNode().addMixin("mix:versionable");
                    getNode().save();
                    getNode().checkin();
                }
            }

            @Override
            public boolean isVisible() {
                if (true) {
                    // TODO: Implement proper versioning support!
                    return false;
                }

                return getNode() != null && getNode().isNodeType("nt:file") &&
                        !getNode().isNodeType("mix:versionable") &&
                        SitePlugin.get().canEditNode(getNode(), Context.ADMINISTRATION);
            }
        });

        add(new Link<Void>("delete") {
            @Override
            public void onClick() {
                BrixNode node = getNode();
                BrixNode parent = (BrixNode) node.getParent();

                node.remove();
                try {
                    parent.save();
                    selectNode(parent, true);
                }
                catch (JcrException e) {
                    if (e.getCause() instanceof ReferentialIntegrityException) {
                        parent.getSession().refresh(false);
                        NodeManagerEditorPanel.this.getModel().detach();
                        // parent.refresh(false);
                        selectNode(NodeManagerEditorPanel.this.getModelObject(), true);
                        getSession().error(
                                NodeManagerEditorPanel.this.getString("referenceIntegrityError"));
                    } else {
                        throw e;
                    }
                }
            }

            @Override
            public boolean isVisible() {
                BrixNode node = NodeManagerEditorPanel.this.getModelObject();
                String path = node.getPath();
                String web = SitePlugin.get().getSiteRootPath();

                return SitePlugin.get().canDeleteNode(getNode(), Context.ADMINISTRATION) &&
                        path.length() > web.length() && path.startsWith(web);
            }
View Full Code Here


    public BrixNode getNode() {
        return getModelObject();
    }

    private List<IBrixTab> getTabs(IModel<BrixNode> nodeModel) {
        BrixNode node = nodeModel.getObject();

        final Collection<ManageNodeTabFactory> factories;
        if (node != null) {
            factories = node.getBrix().getConfig().getRegistry().lookupCollection(
                    ManageNodeTabFactory.POINT);
        } else {
            factories = Collections.emptyList();
        }
View Full Code Here

    public static boolean canHandle(JcrNode node) {
        return TemplateSiteNodePlugin.TYPE.equals(getNodeType(node));
    }

    public static TemplateNode initialize(JcrNode node) {
        BrixNode brixNode = (BrixNode) node;
        BrixFileNode.initialize(node, "text/html");
        brixNode.setNodeType(TemplateSiteNodePlugin.TYPE);

        return new TemplateNode(node.getDelegate(), node.getSession());
    }
View Full Code Here

        DataGrid grid = new DataGrid("grid", source, columns) {
            @Override
            protected void onRowClicked(AjaxRequestTarget target, IModel rowModel) {
                //((ServletWebRequest) getRequest()).setForceNewVersion(true);

                BrixNode node = (BrixNode) rowModel.getObject();
                Page page = getPage();
                SitePlugin.get().selectNode(this, node);
                getRequestCycle().setResponsePage(page);
            }
        };
View Full Code Here

            Link<?> link;
            add(link = new Link<Void>("select") {
                @Override
                public void onClick() {
                    BrixNode node = model.getObject();
                    SitePlugin.get().selectNode(this, node);
                }

                @Override
                protected void onComponentTag(ComponentTag tag) {
View Full Code Here

     *
     * @param container
     * @return
     */
    private String getKey(IGenericComponent<BrixNode> container) {
        BrixNode node = container.getModelObject();
        String nodeId = "";
        if (node != null) {
            if (node.isNodeType("mix:referenceable")) {
                nodeId = node.getIdentifier();
            } else {
                nodeId = node.getPath();
            }
        }
        String workspace = node.getSession().getWorkspace().getName();
        return container.getClass().getName() + "-" + workspace + "-" + nodeId;
    }
View Full Code Here

                workspaceModel)};
        return Arrays.asList(tabs);
    }

    public List<BrixNode> getMenuNodes(String workspaceId) {
        BrixNode root = getRootNode(workspaceId, false);
        if (root != null) {
            List<BrixNode> result = new ArrayList<BrixNode>();
            JcrNodeIterator i = root.getNodes("menu");
            while (i.hasNext()) {
                result.add((BrixNode) i.nextNode());
            }
            return result;
        } else {
View Full Code Here

    private BrixNode getRootNode(String workspaceId, boolean createIfNotExist) {
        JcrSession session = brix.getCurrentSession(workspaceId);

        if (session.itemExists(getRootPath()) == false) {
            if (createIfNotExist) {
                BrixNode parent = (BrixNode) session.getItem(brix.getRootPath());
                parent.addNode(ROOT_NODE_NAME, "nt:unstructured");
            } else {
                return null;
            }
        }
View Full Code Here

    public BrixNode saveMenu(Menu menu, String workspaceId, BrixNode node) {
        if (node != null) {
            menu.save(node);
        } else {
            BrixNode root = getRootNode(workspaceId, true);
            node = (BrixNode) root.addNode("menu");
            menu.save(node);
        }
        node.getSession().save();
        return node;
    }
View Full Code Here

        };
    }

    private static boolean hasConverterForNode(IModel<BrixNode> nodeModel) {
        Collection<SiteNodePlugin> plugins = SitePlugin.get().getNodePlugins();
        BrixNode node = nodeModel.getObject();
        for (SiteNodePlugin plugin : plugins) {
            if (plugin.getConverterForNode(node) != null) {
                return true;
            }
        }
View Full Code Here

TOP

Related Classes of org.brixcms.jcr.wrapper.BrixNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.