Package org.apache.jetspeed.portalsite.view

Examples of org.apache.jetspeed.portalsite.view.SiteView


    {
        // validate and update session profile locators if modified
        if (updateSessionProfileLocators(requestProfileLocators))
        {
            // valid site view required from session profile locators
            SiteView view = getSiteView();
            if (view != null)
            {
                // return root folder proxy from session site view
                return view.getRootFolderProxy();
            }
        }

        // no root folder available
        throw new NodeNotFoundException("No root folder available in site view.");
View Full Code Here


    public SiteView getSiteView()
    {
        if ((siteView == null) && (pageManager != null) && (profileLocators != null))
        {
            // create new site view
            siteView = new SiteView(pageManager, profileLocators);

            // log site view creation
            if (log.isDebugEnabled())
            {
                log.debug("Created site view: search paths=" + siteView.getSearchPathsString());
View Full Code Here

     * @return menu names set
     */
    public Set getStandardMenuNames()
    {
        // return standard menu names defined for site view
        SiteView view = getSiteView();
        if (view != null)
        {
            return view.getStandardMenuNames();
        }
        return null;
    }
View Full Code Here

     * @return definition locator list
     */
    public List getMenuDefinitionLocators(Node node)
    {
        // return menu definition locators for node in site view
        SiteView view = getSiteView();
        if (view != null)
        {
            return view.getMenuDefinitionLocators(node);
        }
        return null;
    }
View Full Code Here

     * @return menu definition locator
     */
    public SiteViewMenuDefinitionLocator getMenuDefinitionLocator(Node node, String name)
    {
        // return named menu definition locator for node in site view
        SiteView view = getSiteView();
        if (view != null)
        {
            return view.getMenuDefinitionLocator(node, name);
        }
        return null;
    }
View Full Code Here

     * @return managed page
     */
    public Page getManagedPage(Page page)
    {
        // return managed page in site view
        SiteView view = getSiteView();
        if (view != null)
        {
            return view.getManagedPage(page);           
        }
        return null;
    }
View Full Code Here

    {
        super(parent);
        this.definition = definition;

        // get site view from context
        SiteView view = ((PortalSiteSessionContextImpl)context.getSessionContext()).getSiteView();
        if (view != null)
        {
            // define menu node for titles and metadata if options
            // specifies a single visible page or folder proxy
            String options = definition.getOptions();
            Node optionProxy = null;
            if ((options != null) && (options.indexOf(',') == -1))
            {
                try
                {
                    optionProxy = view.getNodeProxy(options, context.getPage(), true, true);
                }
                catch (NodeNotFoundException nnfe)
                {
                }
                catch (SecurityException se)
                {
                }
                if (optionProxy != null)
                {
                    setNode(optionProxy);
                }
            }

            // construct menu elements from menu definition
            // or nested menu definition elements; note that
            // menu elements override menu options attribute
            if ((definition.getMenuElements() == null) || definition.getMenuElements().isEmpty())
            {
                // if options optionProxy is a single folder, force
                // options to include all folder children if not to
                // be expanded with paths and depth inclusion is
                // specified
                List overrideOptionProxies = null;
                if (optionProxy != null)
                {
                    if ((optionProxy instanceof Folder) && !definition.isPaths() && (definition.getDepth() != 0))
                    {
                        // assemble folder children path using wildcard
                        String folderChildrenPath = null;
                        if (!options.endsWith(Folder.PATH_SEPARATOR))
                        {
                            folderChildrenPath = options + Folder.PATH_SEPARATOR + "*";
                        }
                        else
                        {
                            folderChildrenPath = options + "*";
                        }

                        // override menu options with visible folder contents
                        // or create empty menu if no contents exist
                        List folderChildren = null;
                        try
                        {
                            folderChildren = view.getNodeProxies(folderChildrenPath, context.getPage(), true, true);
                        }
                        catch (NodeNotFoundException nnfe)
                        {
                        }
                        catch (SecurityException se)
View Full Code Here

        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("page", false, false, "home");
        SiteView profileView = new SiteView(pageManager, locator);
        assertEquals("/_hostname/dash/_user/joe,/_hostname/dash,/", profileView.getSearchPathsString());
       
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("navigation", false, true, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("role", true, false, "user");
        locator.add("page", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_hostname/dash/_user/joe,/_hostname/dash/_role/user,/_hostname/dash,/", profileView.getSearchPathsString());
 
        locator = new JetspeedProfileLocator();
        //locator.init(null, "/__subsite-root");
        locator.init(null, "/");       
        locator.add("navigation", false, true, "subsite-root");
        locator.add("hostname", true, false, "localhost");
        locator.add("user", true, false, "sublocal");
        locator.add("navigation", false, true, "subsite-root");
        locator.add("hostname", true, false, "localhost");
        locator.add("role", true, false, "somerole");
        locator.add("path", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/__subsite-root/_hostname/localhost/_user/sublocal,/__subsite-root/_hostname/localhost/_role/somerole,/__subsite-root/_hostname/localhost,/__subsite-root", profileView.getSearchPathsString());                      
    }
View Full Code Here

     * @throws Exception
     */
    public void testSiteView() throws Exception
    {
        // test degenerate SiteView
        SiteView baseView = new SiteView(pageManager);
        assertEquals("/", baseView.getSearchPathsString());
        Folder rootFolderProxy = baseView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("root", rootFolderProxy.getTitle());
        assertEquals("/", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(4, rootFolderProxy.getFolders().size());
        Iterator foldersIter = rootFolderProxy.getFolders().iterator();
        assertEquals("folder0", ((Folder)foldersIter.next()).getName());
        assertEquals("folder1", ((Folder)foldersIter.next()).getName());
        assertEquals("folder2", ((Folder)foldersIter.next()).getName());
        assertEquals("folder3", ((Folder)foldersIter.next()).getName());
        assertEquals(4, rootFolderProxy.getPages().size());
        Iterator pagesIter = rootFolderProxy.getPages().iterator();
        assertEquals("page2.psml", ((Page)pagesIter.next()).getName());
        assertEquals("page1.psml", ((Page)pagesIter.next()).getName());
        assertEquals("page0.psml", ((Page)pagesIter.next()).getName());
        assertEquals("hidden.psml", ((Page)pagesIter.next()).getName());
        assertEquals(2, rootFolderProxy.getLinks().size());
        Iterator linksIter = rootFolderProxy.getLinks().iterator();
        assertEquals("link1.link", ((Link)linksIter.next()).getName());
        assertEquals("link0.link", ((Link)linksIter.next()).getName());
        Page rootPage0Proxy = rootFolderProxy.getPage("page0.psml");
        assertNotNull(rootPage0Proxy);
        assertEquals(rootFolderProxy, rootPage0Proxy.getParent());
        assertEquals("page0.psml", rootPage0Proxy.getName());
        assertEquals("/page0.psml", extractFileSystemPathFromId(rootPage0Proxy.getId()));
        Page rootHiddenProxy = rootFolderProxy.getPage("hidden.psml");
        assertNotNull(rootHiddenProxy);
        assertEquals("hidden.psml", rootHiddenProxy.getName());
        assertTrue(rootHiddenProxy.isHidden());
        Link rootLink0Proxy = rootFolderProxy.getLink("link0.link");
        assertNotNull(rootLink0Proxy);
        assertEquals(rootFolderProxy, rootLink0Proxy.getParent());
        assertEquals("link0.link", rootLink0Proxy.getName());
        assertEquals("/link0.link", extractFileSystemPathFromId(rootLink0Proxy.getId()));
        Folder rootFolder0Proxy = rootFolderProxy.getFolder("folder0");
        assertNotNull(rootFolder0Proxy);
        assertEquals(rootFolderProxy, rootFolder0Proxy.getParent());
        assertEquals(1, rootFolder0Proxy.getPages().size());
        assertEquals(null, rootFolder0Proxy.getLinks());
        assertEquals("folder0", rootFolder0Proxy.getName());
        assertEquals("/folder0", extractFileSystemPathFromId(rootFolder0Proxy.getId()));
        Page folder0Page0Proxy = rootFolder0Proxy.getPage("page0.psml");
        assertNotNull(folder0Page0Proxy);
        assertEquals(rootFolder0Proxy, folder0Page0Proxy.getParent());
        assertEquals("page0.psml", folder0Page0Proxy.getName());
        assertEquals("/folder0/page0.psml", extractFileSystemPathFromId(folder0Page0Proxy.getId()));

        // test SiteView access by path
        Folder rootFolderProxyByPath = (Folder)baseView.getNodeProxy("/", null, false, false);
        assertNotNull(rootFolderProxyByPath);
        assertEquals(rootFolderProxy, rootFolderProxyByPath);
        Folder rootFolder0ProxyByPath = (Folder)baseView.getNodeProxy("/folder0/", null, false, false);
        assertNotNull(rootFolder0ProxyByPath);
        assertEquals(rootFolder0Proxy, rootFolder0ProxyByPath);
        Page folder0Page0ProxyByPath = (Page)baseView.getNodeProxy("/folder0/page0.psml", null, false, false);
        assertNotNull(folder0Page0ProxyByPath);
        assertEquals(folder0Page0Proxy, folder0Page0ProxyByPath);
        folder0Page0ProxyByPath = (Page)baseView.getNodeProxy("page0.psml", rootFolder0Proxy, false, false);
        assertNotNull(folder0Page0ProxyByPath);
        assertEquals(folder0Page0Proxy, folder0Page0ProxyByPath);
        try
        {
            baseView.getNodeProxy("/folderX/page0.psml", null, false, false);
            fail("/folderX/page0.psml should not be found");
        }
        catch (NodeNotFoundException nnfe)
        {
        }
        try
        {
            baseView.getNodeProxy("/folder0/pageX.psml", null, false, false);
            fail("/folder0/pageX.psml should not be found");
        }
        catch (NodeNotFoundException nnfe)
        {
        }
        List rootPageProxiesByPath = baseView.getNodeProxies("/page?.psml", null, false, false);
        assertNotNull(rootPageProxiesByPath);
        assertEquals(3,rootPageProxiesByPath.size());
        assertTrue(rootPageProxiesByPath.contains(rootPage0Proxy));
        List rootFolderProxiesByPath = baseView.getNodeProxies("/*/", null, false, false);
        assertNotNull(rootFolderProxiesByPath);
        assertEquals(4,rootFolderProxiesByPath.size());
        assertTrue(rootFolderProxiesByPath.contains(rootFolder0Proxy));
        List folderPageProxiesByPath = baseView.getNodeProxies("*/p*[0-9].psml", rootFolderProxy, false, false);
        assertNotNull(folderPageProxiesByPath);
        assertEquals(2,folderPageProxiesByPath.size());
        assertTrue(folderPageProxiesByPath.contains(folder0Page0Proxy));

        // test aggregating SiteView
        SiteView aggregateView = new SiteView(pageManager, "/_user/user,/_role/role0,/_group/group,/");
        assertEquals("/_user/user,/_role/role0,/_group/group,/", aggregateView.getSearchPathsString());
        rootFolderProxy = aggregateView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("user root", rootFolderProxy.getTitle());
        assertEquals("/_user/user", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(4, rootFolderProxy.getFolders().size());
        assertEquals(4, rootFolderProxy.getPages().size());
        assertEquals(2, rootFolderProxy.getLinks().size());
        rootPage0Proxy = rootFolderProxy.getPage("page0.psml");
        assertNotNull(rootPage0Proxy);
        assertEquals(rootFolderProxy, rootPage0Proxy.getParent());
        assertEquals("page0.psml", rootPage0Proxy.getName());
        assertEquals("/page0.psml", extractFileSystemPathFromId(rootPage0Proxy.getId()));
        List rootPage0ProxyMenus = rootPage0Proxy.getMenuDefinitions();
        assertNotNull(rootPage0ProxyMenus);
        assertEquals(2 + aggregateView.getStandardMenuNames().size(), rootPage0ProxyMenus.size());
        Iterator menusIter = rootPage0ProxyMenus.iterator();
        MenuDefinition rootPage0ProxyTopMenu = (MenuDefinition)menusIter.next();
        assertEquals("top", rootPage0ProxyTopMenu.getName());
        assertEquals("/", rootPage0ProxyTopMenu.getOptions());
        assertEquals(2, rootPage0ProxyTopMenu.getDepth());
        assertEquals("dhtml-pull-down", rootPage0ProxyTopMenu.getSkin());
        MenuDefinition rootPage0ProxyBreadCrumbMenu = (MenuDefinition)menusIter.next();
        assertEquals("bread-crumbs", rootPage0ProxyBreadCrumbMenu.getName());
        assertEquals("./", rootPage0ProxyBreadCrumbMenu.getOptions());
        assertEquals(true, rootPage0ProxyBreadCrumbMenu.isPaths());
        for (int i = 0; (i < aggregateView.getStandardMenuNames().size()); i++)
        {
            assertTrue(aggregateView.getStandardMenuNames().contains(((MenuDefinition)menusIter.next()).getName()));
        }
        Page rootPage2Proxy = rootFolderProxy.getPage("page2.psml");
        assertNotNull(rootPage2Proxy);
        assertEquals(rootFolderProxy, rootPage2Proxy.getParent());
        assertEquals("page2.psml", rootPage2Proxy.getName());
        assertEquals("/_user/user/page2.psml", extractFileSystemPathFromId(rootPage2Proxy.getId()));
        List rootPage2ProxyMenus = rootPage2Proxy.getMenuDefinitions();
        assertNotNull(rootPage2ProxyMenus);
        assertEquals(2 + aggregateView.getStandardMenuNames().size(), rootPage2ProxyMenus.size());
        menusIter = rootPage2ProxyMenus.iterator();
        MenuDefinition rootPage2ProxyTopMenu = (MenuDefinition)menusIter.next();
        assertEquals("top", rootPage2ProxyTopMenu.getName());
        assertEquals("/", rootPage2ProxyTopMenu.getOptions());
        assertEquals(1, rootPage2ProxyTopMenu.getDepth());
        MenuDefinition rootPage2ProxyBreadCrumbMenu = (MenuDefinition)menusIter.next();
        assertEquals("bread-crumbs", rootPage2ProxyBreadCrumbMenu.getName());
        for (int i = 0; (i < aggregateView.getStandardMenuNames().size()); i++)
        {
            assertTrue(aggregateView.getStandardMenuNames().contains(((MenuDefinition)menusIter.next()).getName()));
        }
        rootLink0Proxy = rootFolderProxy.getLink("link0.link");
        assertNotNull(rootLink0Proxy);
        assertEquals(rootFolderProxy, rootLink0Proxy.getParent());
        assertEquals("link0.link", rootLink0Proxy.getName());
        assertEquals("/_group/group/link0.link", extractFileSystemPathFromId(rootLink0Proxy.getId()));
        rootFolder0Proxy = rootFolderProxy.getFolder("folder0");
        assertNotNull(rootFolder0Proxy);
        assertEquals(rootFolderProxy, rootFolder0Proxy.getParent());
        assertEquals(1, rootFolder0Proxy.getPages().size());
        assertEquals(null, rootFolder0Proxy.getLinks());
        assertEquals(null, rootFolder0Proxy.getFolders());
        assertEquals("folder0", rootFolder0Proxy.getName());
        assertEquals("folder0", rootFolder0Proxy.getTitle());
        assertEquals("/folder0", extractFileSystemPathFromId(rootFolder0Proxy.getId()));
        folder0Page0Proxy = rootFolder0Proxy.getPage("page0.psml");
        assertNotNull(folder0Page0Proxy);
        assertEquals(rootFolder0Proxy, folder0Page0Proxy.getParent());
        assertEquals("page0.psml", folder0Page0Proxy.getName());
        assertEquals("/folder0/page0.psml", extractFileSystemPathFromId(folder0Page0Proxy.getId()));
        Folder rootFolder1Proxy = rootFolderProxy.getFolder("folder1");
        assertNotNull(rootFolder1Proxy);
        assertEquals(rootFolderProxy, rootFolder1Proxy.getParent());
        assertEquals(2, rootFolder1Proxy.getPages().size());
        assertEquals(null, rootFolder1Proxy.getLinks());
        assertEquals(null, rootFolder1Proxy.getFolders());
        assertEquals("folder1", rootFolder1Proxy.getName());
        assertEquals("group folder1", rootFolder1Proxy.getTitle());
        assertEquals("/_user/user/folder1", extractFileSystemPathFromId(rootFolder1Proxy.getId()));

        // test degenerate aggregating SiteView
        aggregateView = new SiteView(pageManager, "/__subsite-root");
        assertEquals("/__subsite-root", aggregateView.getSearchPathsString());
        rootFolderProxy = aggregateView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("subsite root", rootFolderProxy.getTitle());
        assertEquals("/__subsite-root", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(null, rootFolderProxy.getFolders());
        assertEquals(1, rootFolderProxy.getPages().size());
        assertEquals(1, rootFolderProxy.getLinks().size());

        // test SiteView construction using profile locators
        JetspeedProfileLocator locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        SiteView profileView = new SiteView(pageManager, locator);
        assertEquals("/", profileView.getSearchPathsString());
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("user", true, false, "user");
        locator.add("page", false, false, "default-page");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_user/user,/", profileView.getSearchPathsString());
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("page", false, false, "default-page");
        locator.add("user", true, false, "user");
        locator.add("mediatype", true, false, "html");
        locator.add("language", true, false, "en");
        locator.add("country", true, false, "US");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_user/user/_mediatype/html,/_user/user,/", profileView.getSearchPathsString());
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("page", false, false, "default-page");
        locator.add("role", true, false, "role0");
        locator.add("role", true, false, "role1");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_role/role0,/_role/role1,/", profileView.getSearchPathsString());
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("user", true, false, "user");
        locator.add("navigation", false, true, "/");
        locator.add("role", true, false, "role0");
        locator.add("navigation", false, true, "/");
        locator.add("group", true, false, "group");
        locator.add("page", false, false, "default-page");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_user/user,/_role/role0,/_group/group,/", profileView.getSearchPathsString());

        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("hostname", true, false, "dash");
        locator.add("user", true, false, "joe");
        locator.add("page", false, false, "home");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/_hostname/dash/_user/joe,/_hostname/dash,/", profileView.getSearchPathsString());
       
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("navigation", false, true, "subsite-root");
        profileView = new SiteView(pageManager, locator);
        assertEquals("/__subsite-root", profileView.getSearchPathsString());
        Map locators = new HashMap();
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("role", true, false, "role0");
        locator.add("role", true, false, "role1");
        locators.put(ProfileLocator.PAGE_LOCATOR, locator);
        locator = new JetspeedProfileLocator();
        locator.init(null, "/");
        locator.add("user", true, false, "user");
        locator.add("navigation", false, true, "/");
        locator.add("group", true, false, "group");
        locators.put("alternate-locator-name", locator);
        profileView = new SiteView(pageManager, locators);
        assertEquals("/_role/role0,/_role/role1,/_user/user,/_group/group,/", profileView.getSearchPathsString());
        rootFolderProxy = profileView.getRootFolderProxy();
        assertNotNull(rootFolderProxy);
        assertEquals("/", rootFolderProxy.getName());
        assertEquals("user root", rootFolderProxy.getTitle());
        assertEquals("/_role/role0", extractFileSystemPathFromId(rootFolderProxy.getId()));
        assertEquals(ProfileLocator.PAGE_LOCATOR, extractLocatorNameFromProxy(rootFolderProxy));
View Full Code Here

TOP

Related Classes of org.apache.jetspeed.portalsite.view.SiteView

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.