Examples of ContentPage


Examples of org.apache.jetspeed.om.page.ContentPage

            layouts.add(fourColumns);
            request.getPortletSession().setAttribute("layouts", layouts);
        }
       
        RequestContext rc = (RequestContext) request.getAttribute(RequestContext.REQUEST_PORTALENV);
        ContentPage page = rc.getPage();
        ContentFragment layoutFragment = page.getNonTemplateRootFragment();
        String currentLayoutName = layoutFragment.getName();
       
        for (LayoutBean layout : layouts)
        {
            layout.setSelected(StringUtils.equals(currentLayoutName, layout.getLayoutPortlet()));
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

    private void addSecurityConstraint(ActionRequest request, ActionResponse response) throws PortletException, IOException
    {
        try
        {
            RequestContext requestContext = (RequestContext) request.getAttribute(RequestContext.REQUEST_PORTALENV);
            ContentPage page = requestContext.getPage();
            String fragmentId = request.getParameter("fragment");
           
            ContentFragment fragment = page.getFragmentById(fragmentId);
           
            if (fragment == null)
            {
                throw new PortletException("Cannot find fragment: " + fragmentId);
            }
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

    private void removeSecurityConstraint(ActionRequest request, ActionResponse response) throws PortletException, IOException
    {
        try
        {
            RequestContext requestContext = (RequestContext) request.getAttribute(RequestContext.REQUEST_PORTALENV);
            ContentPage page = requestContext.getPage();
            String fragmentId = request.getParameter("fragment");
           
            ContentFragment fragment = page.getFragmentById(fragmentId);
           
            if (fragment == null)
            {
                throw new PortletException("Cannot find fragment: " + fragmentId);
            }
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

    private void updateSecurityConstraintRefs(ActionRequest request, ActionResponse response) throws PortletException, IOException
    {
        try
        {
            RequestContext requestContext = (RequestContext) request.getAttribute(RequestContext.REQUEST_PORTALENV);
            ContentPage page = requestContext.getPage();
            String fragmentId = request.getParameter("fragment");
           
            ContentFragment fragment = page.getFragmentById(fragmentId);
           
            if (fragment == null)
            {
                throw new PortletException("Cannot find fragment: " + fragmentId);
            }
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

     */
    public void invoke(RequestContext request, ValveContext context)
            throws PipelineException
    {       
        JetspeedRunData data = getRunDataService().getCurrentRunData();
        ContentPage page = new FusionPage(data.getProfile().getId());
        request.setPage(page);
       
        // Pass control to the next Valve in the Pipeline
        context.invokeNext(request);       
    }
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

        assertNotNull(template);

        // create and validate content page for concrete page
        Page page = pageManager.getPage("/page.psml");
        assertNotNull(page);
        ContentPage pageContentPage = pageLayout.newContentPage(page, template, fragmentDefinitions);
        assertNotNull(pageContentPage);
        assertEquals("/page.psml", pageContentPage.getTitle());
        ContentFragment pageContentFragment0 = pageContentPage.getFragmentByFragmentId("fake-template");
        assertNotNull(pageContentFragment0);
        assertEquals("fake-template", pageContentFragment0.getId());
        ContentFragment pageContentFragment1 = pageContentPage.getFragmentByFragmentId("fake-fragment-definition-0");
        assertNotNull(pageContentFragment1);
        assertEquals("fake-template__fake-fragment-reference__fake-fragment-definition-0", pageContentFragment1.getId());
        assertEquals("fake-fragment-definition-0", pageContentFragment1.getRefId());
        ContentFragment pageContentFragment2 = pageContentPage.getFragmentByFragmentId("fake");
        assertNotNull(pageContentFragment2);
        assertEquals("fake-template__fake-page-fragment__fake", pageContentFragment2.getId());
        ContentFragment pageContentFragment3 = pageContentPage.getFragmentByFragmentId("fake-fragment-definition-1");
        assertNotNull(pageContentFragment3);
        assertEquals("fake-template__fake-page-fragment__fake__fake-fragment-reference__fake-fragment-definition-1", pageContentFragment3.getId());
        assertEquals("fake-fragment-definition-1", pageContentFragment3.getRefId());
        ContentFragment pageContentFragment4 = pageContentPage.getFragmentByFragmentId("fake-portlet");
        assertNotNull(pageContentFragment4);
        assertEquals("fake-template__fake-page-fragment__fake__fake-portlet", pageContentFragment4.getId());
       
        // create and validate content pages for concrete dynamic pages
        DynamicPage docPage = pageManager.getDynamicPage("/docpage.dpsml");       
        assertNotNull(docPage);
        ContentPage docPageContentPage = pageLayout.newContentPage(docPage, template, fragmentDefinitions);
        assertNotNull(docPageContentPage);
        assertEquals("/docpage.dpsml", docPageContentPage.getTitle());
        assertEquals("doc-type", docPageContentPage.getContentType());
        assertTrue(docPageContentPage.isInheritable());
        pageContentFragment0 = docPageContentPage.getFragmentByFragmentId("fake-template");
        assertNotNull(pageContentFragment0);
        assertEquals("fake-template", pageContentFragment0.getId());
        pageContentFragment1 = docPageContentPage.getFragmentByFragmentId("fake-fragment-definition-0");
        assertNotNull(pageContentFragment1);
        assertEquals("fake-template__fake-fragment-reference__fake-fragment-definition-0", pageContentFragment1.getId());
        assertEquals("fake-fragment-definition-0", pageContentFragment1.getRefId());
        pageContentFragment2 = docPageContentPage.getFragmentByFragmentId("fake");
        assertNotNull(pageContentFragment2);
        assertEquals("fake-template__fake-page-fragment__fake", pageContentFragment2.getId());
        DynamicPage contentPage = pageManager.getDynamicPage("/contentpage.dpsml");       
        assertNotNull(contentPage);
        ContentPage contentPageContentPage = pageLayout.newContentPage(contentPage, template, fragmentDefinitions);
        assertNotNull(contentPageContentPage);
        assertEquals("/contentpage.dpsml", contentPageContentPage.getTitle());
        assertEquals("*", contentPageContentPage.getContentType());
        assertTrue(contentPageContentPage.isInheritable());
        pageContentFragment0 = contentPageContentPage.getFragmentByFragmentId("fake-template");
        assertNotNull(pageContentFragment0);
        assertEquals("fake-template", pageContentFragment0.getId());
        pageContentFragment1 = contentPageContentPage.getFragmentByFragmentId("fake-fragment-definition-0");
        assertNotNull(pageContentFragment1);
        assertEquals("fake-template__fake-fragment-reference__fake-fragment-definition-0", pageContentFragment1.getId());
        assertEquals("fake-fragment-definition-0", pageContentFragment1.getRefId());
        pageContentFragment2 = contentPageContentPage.getFragmentByFragmentId("fake");
        assertNotNull(pageContentFragment2);
        assertEquals("fake-template__fake-page-fragment__fake", pageContentFragment2.getId());

        // create and validate content page for page template
        ContentPage templateContentPage = pageLayout.newContentPage(template, template, fragmentDefinitions);       
        assertNotNull(templateContentPage);
        assertEquals("/template.tpsml", templateContentPage.getTitle());
        ContentFragment templateContentFragment0 = templateContentPage.getFragmentByFragmentId("fake-template", true);
        assertNotNull(templateContentFragment0);
        assertEquals("fake-template__fake-page-fragment__fake-template", templateContentFragment0.getId());
        ContentFragment templateContentFragment1 = templateContentPage.getFragmentByFragmentId("fake-page-fragment", true);
        assertNotNull(templateContentFragment1);
        assertEquals("fake-template__fake-page-fragment__fake-template__fake-page-fragment", templateContentFragment1.getId());
        ContentFragment templateContentFragment2 = templateContentPage.getFragmentByFragmentId("fake-fragment-definition-0", true);
        assertNotNull(templateContentFragment2);
        assertEquals("fake-template__fake-page-fragment__fake-template__fake-fragment-reference__fake-fragment-definition-0", templateContentFragment2.getId());
        assertEquals("fake-fragment-definition-0", templateContentFragment2.getRefId());

        // create and validate content page for page template
        ContentPage fragmentDefinitionContentPage = pageLayout.newContentPage(definition0, template, fragmentDefinitions);       
        assertNotNull(fragmentDefinitionContentPage);
        assertEquals("/definition0.fpsml", fragmentDefinitionContentPage.getTitle());
        ContentFragment fragmentDefinitionContentFragment0 = fragmentDefinitionContentPage.getFragmentByFragmentId("fake-fragment-definition-0");
        assertNotNull(fragmentDefinitionContentFragment0);
        assertEquals("fake-template__fake-page-fragment__fake-fragment-definition-0", fragmentDefinitionContentFragment0.getId());
       
        // create new PSML pages, content pages, templates, and fragment definitions
        fragmentDefinitionContentPage.newSiblingFragmentDefinition("newdefinition1", null, "new-fake-fragment-definition-1", "/newdefinition1.fpsml", "/newdefinition1.fpsml");
        fragmentDefinitionContentPage.newSiblingFragmentDefinition("newdefinition0", "new-fake-fragment-definition-0", "new-fake-fragment-definition-0", "/newdefinition0.fpsml", "/newdefinition0.fpsml");
        templateContentPage.newSiblingPageTemplate("newtemplate", "new-fake-template", "/newtemplate.tpsml", "/newtemplate.tpsml");
        contentPageContentPage.newSiblingDynamicPage("newcontentpage", "*", "new-fake", "/newcontentpage.dpsml", "/newcontentpage.dpsml");
        pageContentPage.newSiblingPage("newpage", "new-fake", "/newpage.psml", "/newpage.psml");       
        Map newFragmentDefinitions = new HashMap();
        FragmentDefinition newDefinition1 = pageManager.getFragmentDefinition("/newdefinition1.fpsml");
        assertNotNull(newDefinition1);
        String newDefinition1Id = newDefinition1.getRootFragment().getId();
        newFragmentDefinitions.put(newDefinition1Id, newDefinition1);
        FragmentDefinition newDefinition0 = pageManager.getFragmentDefinition("/newdefinition0.fpsml");
        assertNotNull(newDefinition0);
        assertEquals("new-fake-fragment-definition-0", newDefinition0.getRootFragment().getId());
        newFragmentDefinitions.put("new-fake-fragment-definition-0", newDefinition0);
        PageTemplate newTemplate = pageManager.getPageTemplate("/newtemplate.tpsml");
        assertNotNull(newTemplate);
        DynamicPage newContentPage = pageManager.getDynamicPage("/newcontentpage.dpsml");
        assertNotNull(newContentPage);
        assertEquals("*", newContentPage.getContentType());
        assertTrue(newContentPage.isInheritable());
        Page newPage = pageManager.getPage("/newpage.psml");
        assertNotNull(newPage);

        // create and validate new content pages
        ContentPage newFragmentDefinition1ContentPage = pageLayout.newContentPage(newDefinition1, newTemplate, newFragmentDefinitions);
        assertNotNull(newFragmentDefinition1ContentPage);
        List contentFragments = newFragmentDefinition1ContentPage.getFragmentsByName("new-fake-fragment-definition-1");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        assertEquals(newDefinition1Id, newDefinition1.getDefId());       
        ContentPage newFragmentDefinition0ContentPage = pageLayout.newContentPage(newDefinition0, newTemplate, newFragmentDefinitions);
        assertNotNull(newFragmentDefinition0ContentPage);
        contentFragments = newFragmentDefinition0ContentPage.getFragmentsByName("new-fake-fragment-definition-0");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        assertEquals("new-fake-fragment-definition-0", ((ContentFragment)contentFragments.get(0)).getFragmentId());
        assertEquals("new-fake-fragment-definition-0", newDefinition0.getDefId());       
        ContentPage newTemplateContentPage = pageLayout.newContentPage(newTemplate, newTemplate, newFragmentDefinitions);
        assertNotNull(newTemplateContentPage);
        newTemplateContentPage.addFragmentReference("new-fake-fragment-definition-0");
        newTemplateContentPage = pageLayout.newContentPage(newTemplate, newTemplate, newFragmentDefinitions);       
        ContentPage newContentPageContentPage = pageLayout.newContentPage(newContentPage, newTemplate, newFragmentDefinitions);
        assertNotNull(newContentPageContentPage);
        ContentPage newPageContentPage = pageLayout.newContentPage(newPage, newTemplate, newFragmentDefinitions);
        assertNotNull(newPageContentPage);
        contentFragments = newPageContentPage.getFragmentsByName("new-fake");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        ContentFragment newPageRootFragment = (ContentFragment)contentFragments.get(0);
        pageLayout.addFragmentReference(newPageRootFragment, newDefinition1Id, 0, 0);
        pageLayout.addPortlet(newPageRootFragment, Fragment.PORTLET, "new-fake-portlet", 1, 0);
        pageLayout.addFragmentReference(newPageRootFragment, "nonexistent-reference-id", 2, 0);
        newPageContentPage = pageLayout.newContentPage(newPage, newTemplate, newFragmentDefinitions);
        assertNotNull(newPageContentPage);
       
        // validate new PSML pages, content pages, templates, and fragment definitions
        assertEquals("/newpage.psml", newPageContentPage.getTitle());
        contentFragments = newPageContentPage.getFragmentsByName("new-fake-template");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        contentFragments = newPageContentPage.getFragmentsByName("new-fake-fragment-definition-0");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        assertEquals("new-fake-fragment-definition-0", ((ContentFragment)contentFragments.get(0)).getRefId());
        contentFragments = newPageContentPage.getFragmentsByName("new-fake");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        contentFragments = ((ContentFragment)contentFragments.get(0)).getFragments();
        assertNotNull(contentFragments);
        assertEquals(3, contentFragments.size());
        ContentFragment newPageReferenceContentFragment = null;
        Iterator contentFragmentsIter = contentFragments.iterator();
        while (contentFragmentsIter.hasNext())
        {
            ContentFragment contentFragment = (ContentFragment)contentFragmentsIter.next();
            if (contentFragment.getType().equals(ContentFragment.PORTLET) && contentFragment.getName().equals("new-fake-portlet"))
            {
            }
            else if (contentFragment.getType().equals(ContentFragment.PORTLET) && contentFragment.getName().equals("new-fake-fragment-definition-1"))
            {
                assertEquals(newDefinition1Id, contentFragment.getRefId());
            }
            else if (contentFragment.getType().equals(ContentFragment.REFERENCE))
            {
                assertEquals("nonexistent-reference-id", contentFragment.getRefId());
                newPageReferenceContentFragment = contentFragment;
            }
            else
            {
                fail("Unexpected content fragment: "+contentFragment.getType()+"/"+contentFragment.getName());
            }
        }
        assertEquals("/newcontentpage.dpsml", newContentPageContentPage.getTitle());
        assertEquals("*", newContentPageContentPage.getContentType());
        assertTrue(newContentPageContentPage.isInheritable());
        contentFragments = newContentPageContentPage.getFragmentsByName("new-fake-template");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        contentFragments = newContentPageContentPage.getFragmentsByName("new-fake-fragment-definition-0");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        assertEquals("new-fake-fragment-definition-0", ((ContentFragment)contentFragments.get(0)).getRefId());
        contentFragments = newContentPageContentPage.getFragmentsByName("new-fake");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        assertEquals("/newtemplate.tpsml", newTemplateContentPage.getTitle());
        contentFragments = newTemplateContentPage.getFragmentsByName("new-fake-template", true);
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        contentFragments = ((ContentFragment)contentFragments.get(0)).getFragments();
        assertNotNull(contentFragments);
        assertEquals(2, contentFragments.size());
        contentFragmentsIter = contentFragments.iterator();
        while (contentFragmentsIter.hasNext())
        {
            ContentFragment contentFragment = (ContentFragment)contentFragmentsIter.next();
            if (contentFragment.getType().equals(ContentFragment.PAGE))
            {
            }
            else if (contentFragment.getType().equals(ContentFragment.PORTLET) && contentFragment.getName().equals("new-fake-fragment-definition-0"))
            {
                assertEquals("new-fake-fragment-definition-0", contentFragment.getRefId());
            }
            else
            {
                fail("Unexpected content fragment: "+contentFragment.getType()+"/"+contentFragment.getName());
            }
        }
        assertEquals("/newdefinition0.fpsml", newFragmentDefinition0ContentPage.getTitle());
        contentFragments = newFragmentDefinition0ContentPage.getFragmentsByName("new-fake-fragment-definition-0");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        assertEquals("new-fake-fragment-definition-0", ((ContentFragment)contentFragments.get(0)).getFragmentId());       
        assertEquals("new-fake-fragment-definition-0", newFragmentDefinition0ContentPage.getDefId());       
        assertEquals("/newdefinition1.fpsml", newFragmentDefinition1ContentPage.getTitle());
        contentFragments = newFragmentDefinition1ContentPage.getFragmentsByName("new-fake-fragment-definition-1");
        assertNotNull(contentFragments);
        assertEquals(1, contentFragments.size());
        assertEquals(newDefinition1Id, ((ContentFragment)contentFragments.get(0)).getFragmentId());       
        assertEquals(newDefinition1Id, newFragmentDefinition1ContentPage.getDefId());       

        // update pages via content pages and fragments
        newFragmentDefinition1ContentPage.updateTitles(null, "new-fragment-definition-1-updated");
        ContentFragment updateContentFragment = (ContentFragment)(newFragmentDefinition1ContentPage.getFragmentsByName("new-fake-fragment-definition-1").get(0));
        updateContentFragment.updateProperty("global-prop", "global-fragment-definition");
        updateContentFragment.updateProperty("prop", "global-fragment-definition");
        updateContentFragment.updateProperty("prop", "user-fragment-definition", ContentFragment.USER_PROPERTY_SCOPE, "user");
        updateContentFragment.updateProperty("user-prop", "user-fragment-definition", ContentFragment.USER_PROPERTY_SCOPE, "user");
        updateContentFragment.updateProperty("global-fragment-definition-prop", "global-fragment-definition");
        updateContentFragment.updateProperty("fragment-definition-prop", "global-fragment-definition");
        updateContentFragment.updateProperty("fragment-definition-prop", "user-fragment-definition", ContentFragment.USER_PROPERTY_SCOPE, "user");
        updateContentFragment.updateProperty("user-fragment-definition-prop", "user-fragment-definition", ContentFragment.USER_PROPERTY_SCOPE, "user");
        newTemplateContentPage.updateTitles(null, "new-page-template-updated");
        updateContentFragment = (ContentFragment)(newTemplateContentPage.getFragmentsByName("new-fake-template", true).get(0));
        updateContentFragment.updateProperty("global-prop", "global-template");
        updateContentFragment.updateProperty("prop", "global-template");
        updateContentFragment.updateProperty("prop", "user-template", ContentFragment.USER_PROPERTY_SCOPE, "user");
        updateContentFragment.updateProperty("user-prop", "user-template", ContentFragment.USER_PROPERTY_SCOPE, "user");       
        updateContentFragment = (ContentFragment)(newTemplateContentPage.getFragmentsByName("new-fake-fragment-definition-0", true).get(0));
        updateContentFragment.updateProperty("global-prop", "global-template");
        updateContentFragment.updateProperty("prop", "global-template");
        updateContentFragment.updateProperty("prop", "user-template", ContentFragment.USER_PROPERTY_SCOPE, "user");
        updateContentFragment.updateProperty("user-prop", "user-template", ContentFragment.USER_PROPERTY_SCOPE, "user");
        newPageContentPage.updateTitles(null, "new-page-updated");
        updateContentFragment = newPageContentPage.getRootFragment();
        updateContentFragment.updateProperty("user-prop", "user-page", ContentFragment.USER_PROPERTY_SCOPE, "user");       
        updateContentFragment = (ContentFragment)(newPageContentPage.getFragmentsByName("new-fake").get(0));
        updateContentFragment.updateProperty("global-prop", "global-page");
        updateContentFragment.updateProperty("prop", "global-page");
        updateContentFragment.updateProperty("prop", "user-page", ContentFragment.USER_PROPERTY_SCOPE, "user");
        updateContentFragment.updateProperty("user-prop", "user-page", ContentFragment.USER_PROPERTY_SCOPE, "user");
        updateContentFragment = (ContentFragment)(newPageContentPage.getFragmentsByName("new-fake-fragment-definition-0").get(0));
        updateContentFragment.updateProperty("user-prop", "user-page", ContentFragment.USER_PROPERTY_SCOPE, "user");       
        updateContentFragment = (ContentFragment)(newPageContentPage.getFragmentsByName("new-fake-fragment-definition-1").get(0));
        updateContentFragment.updateProperty("global-prop", "global-page");
        updateContentFragment.updateProperty("prop", "global-page");
        updateContentFragment.updateProperty("prop", "user-page", ContentFragment.USER_PROPERTY_SCOPE, "user");
        updateContentFragment.updateProperty("user-prop", "user-page", ContentFragment.USER_PROPERTY_SCOPE, "user");
        newPageReferenceContentFragment.updateRefId("fake-fragment-definition-0");
        newContentPageContentPage.updateTitles(null, "new-content-page-updated");
        newContentPageContentPage.updateContent("new-doc-type", false);
       
        // continue test case as user
        Exception exception = (Exception)JSSubject.doAsPrivileged(userSubject, new PrivilegedAction()
        {
            public Object run()
            {
                try
                {
                    // reload PSML pages, content pages, templates, and fragment definitions
                    Map newFragmentDefinitions = new HashMap();
                    FragmentDefinition definition0 = pageManager.getFragmentDefinition("/definition0.fpsml");
                    assertNotNull(definition0);
                    newFragmentDefinitions.put(definition0.getDefId(), definition0);
                    FragmentDefinition newDefinition1 = pageManager.getFragmentDefinition("/newdefinition1.fpsml");
                    assertNotNull(newDefinition1);
                    newFragmentDefinitions.put(newDefinition1.getDefId(), newDefinition1);
                    FragmentDefinition newDefinition0 = pageManager.getFragmentDefinition("/newdefinition0.fpsml");
                    assertNotNull(newDefinition0);
                    newFragmentDefinitions.put(newDefinition0.getDefId(), newDefinition0);
                    PageTemplate newTemplate = pageManager.getPageTemplate("/newtemplate.tpsml");
                    assertNotNull(newTemplate);
                    Page newPage = pageManager.getPage("/newpage.psml");
                    assertNotNull(newPage);
                    DynamicPage newContentPage = pageManager.getDynamicPage("/newcontentpage.dpsml");
                    assertNotNull(newContentPage);
                   
                    // verify content page and fragment updates
                    ContentPage newFragmentDefinition1ContentPage = pageLayout.newContentPage(newDefinition1, newTemplate, newFragmentDefinitions);
                    assertNotNull(newFragmentDefinition1ContentPage);
                    assertEquals("new-fragment-definition-1-updated", newFragmentDefinition1ContentPage.getShortTitle());
                    ContentFragment updatedContentFragment = (ContentFragment)(newFragmentDefinition1ContentPage.getFragmentsByName("new-fake-fragment-definition-1").get(0));
                    assertEquals("global-fragment-definition", updatedContentFragment.getProperty("global-prop"));
                    assertEquals("user-fragment-definition", updatedContentFragment.getProperty("prop"));
                    assertEquals("user-fragment-definition", updatedContentFragment.getProperty("user-prop"));
                    assertEquals("global-fragment-definition", updatedContentFragment.getProperty("global-fragment-definition-prop"));
                    assertEquals("user-fragment-definition", updatedContentFragment.getProperty("fragment-definition-prop"));
                    assertEquals("user-fragment-definition", updatedContentFragment.getProperty("user-fragment-definition-prop"));
                    ContentPage newFragmentDefinition0ContentPage = pageLayout.newContentPage(newDefinition0, newTemplate, newFragmentDefinitions);
                    assertNotNull(newFragmentDefinition0ContentPage);
                    ContentPage newTemplateContentPage = pageLayout.newContentPage(newTemplate, newTemplate, newFragmentDefinitions);
                    assertNotNull(newTemplateContentPage);
                    assertEquals("new-page-template-updated", newTemplateContentPage.getShortTitle());
                    updatedContentFragment = newTemplateContentPage.getRootFragment();
                    assertEquals("global-template", updatedContentFragment.getProperty("global-prop"));
                    assertEquals("user-template", updatedContentFragment.getProperty("prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("user-prop"));
                    updatedContentFragment = (ContentFragment)(newTemplateContentPage.getFragmentsByName("new-fake-template", true).get(0));
                    assertEquals("global-template", updatedContentFragment.getProperty("global-prop"));
                    assertEquals("user-template", updatedContentFragment.getProperty("prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("user-prop"));
                    updatedContentFragment = (ContentFragment)(newTemplateContentPage.getFragmentsByName("new-fake-fragment-definition-0", true).get(0));
                    assertEquals("global-template", updatedContentFragment.getProperty("global-prop"));
                    assertEquals("user-template", updatedContentFragment.getProperty("prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("user-prop"));
                    ContentPage newPageContentPage = pageLayout.newContentPage(newPage, newTemplate, newFragmentDefinitions);
                    assertNotNull(newPageContentPage);
                    assertEquals("new-page-updated", newPageContentPage.getShortTitle());
                    updatedContentFragment = newPageContentPage.getRootFragment();
                    assertEquals("global-template", updatedContentFragment.getProperty("global-prop"));
                    assertEquals("user-template", updatedContentFragment.getProperty("prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("user-prop"));
                    updatedContentFragment = (ContentFragment)(newPageContentPage.getFragmentsByName("new-fake").get(0));
                    assertEquals("global-page", updatedContentFragment.getProperty("global-prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("user-prop"));
                    updatedContentFragment = (ContentFragment)(newPageContentPage.getFragmentsByName("new-fake-fragment-definition-0").get(0));
                    assertEquals("global-template", updatedContentFragment.getProperty("global-prop"));
                    assertEquals("user-template", updatedContentFragment.getProperty("prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("user-prop"));
                    updatedContentFragment = (ContentFragment)(newPageContentPage.getFragmentsByName("new-fake-fragment-definition-1").get(0));
                    assertEquals("global-page", updatedContentFragment.getProperty("global-prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("prop"));
                    assertEquals("user-page", updatedContentFragment.getProperty("user-prop"));
                    assertEquals("global-fragment-definition", updatedContentFragment.getProperty("global-fragment-definition-prop"));
                    assertEquals("user-fragment-definition", updatedContentFragment.getProperty("fragment-definition-prop"));
                    assertEquals("user-fragment-definition", updatedContentFragment.getProperty("user-fragment-definition-prop"));
                    List contentFragments = newPageContentPage.getFragmentsByName("new-fake");
                    assertNotNull(contentFragments);
                    assertEquals(1, contentFragments.size());
                    contentFragments = ((ContentFragment)contentFragments.get(0)).getFragments();
                    assertNotNull(contentFragments);
                    assertEquals(3, contentFragments.size());
                    Iterator contentFragmentsIter = contentFragments.iterator();
                    while (contentFragmentsIter.hasNext())
                    {
                        ContentFragment contentFragment = (ContentFragment)contentFragmentsIter.next();
                        if (contentFragment.getType().equals(ContentFragment.PORTLET) && contentFragment.getName().equals("new-fake-portlet"))
                        {
                        }
                        else if (contentFragment.getType().equals(ContentFragment.PORTLET) && contentFragment.getName().equals("new-fake-fragment-definition-1"))
                        {
                            assertEquals(newDefinition1.getDefId(), contentFragment.getRefId());
                        }
                        else if (contentFragment.getType().equals(ContentFragment.PORTLET) && contentFragment.getName().equals("fake-fragment-definition-0"))
                        {
                            assertEquals("fake-fragment-definition-0", contentFragment.getRefId());
                        }
                        else
                        {
                            fail("Unexpected content fragment: "+contentFragment.getType()+"/"+contentFragment.getName());
                        }
                    }
                    ContentPage newContentPageContentPage = pageLayout.newContentPage(newContentPage, newTemplate, newFragmentDefinitions);
                    assertNotNull(newContentPageContentPage);
                    assertEquals("new-content-page-updated", newContentPageContentPage.getShortTitle());
                    assertEquals("new-doc-type", newContentPageContentPage.getContentType());
                    assertFalse(newContentPageContentPage.isInheritable());

                    return null;
                }
                catch (Exception e)
                {
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

        if (isAjaxRequest)
        {
            requestContext.setAttribute(IS_AJAX_DECORATION_REQUEST, new Boolean(true));
        }

        ContentPage page = requestContext.getPage();

        // Globally override all psml themes if override session attribute has been set
        if (requestContext
                .getSessionAttribute(PortalReservedParameters.PAGE_THEME_OVERRIDE_ATTRIBUTE) != null)
        {
            String decoratorName = (String) requestContext
                    .getSessionAttribute(PortalReservedParameters.PAGE_THEME_OVERRIDE_ATTRIBUTE);
            page.overrideDefaultDecorator(decoratorName, Fragment.LAYOUT);
        }
       
        PageActionAccess pageActionAccess = (PageActionAccess)requestContext.getAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE);
        String themeCacheKey = null;
        ContentCacheKey themeContentCacheKey = null;
        Theme theme = null;
       
        if (useCache())
        {
            if (pageActionAccess.isEditing() == false)
            {
                // user helps us with the funky way jetspeed doesn't create  a new session on login
                if (this.useSessionForThemeCaching)
                {
                    themeCacheKey = cache.createSessionKey(requestContext);
                    theme = (Theme) requestContext.getSessionAttribute(themeCacheKey);
                }
                else
                {
                    themeContentCacheKey = cache.createCacheKey(requestContext, page.getId());
                    CacheElement themeCacheElem = cache.get(themeContentCacheKey);
                   
                    if (themeCacheElem != null)
                    {
                        theme = (Theme) themeCacheElem.getContent();
                    }
                }
            }
        }

        if (theme != null)
        {
            theme.init(page, decorationFactory, requestContext);
            requestContext.setAttribute(PortalReservedParameters.PAGE_THEME_ATTRIBUTE, theme);
            boolean solo = isSoloMode(requestContext);           
            SessionPathResolverCache sessionPathResolver = new SessionPathResolverCache( requestContext.getRequest().getSession() );
            initDepthFragmentDecorations(requestContext, theme, page.getRootFragment(),
                                                    pageActionAccess, isAjaxRequest,
                                                    ((DecorationFactoryImpl) decorationFactory).getResourceValidator(),
                                                    sessionPathResolver, (theme.isInvalidated() && !solo));
           
            if (theme.isInvalidated() && !solo)
            {
                if (this.useSessionForThemeCaching)
                {
                    requestContext.setSessionAttribute(themeCacheKey, theme);
                }
                else
                {                   
                    CacheElement themeCacheElem = cache.createElement(themeContentCacheKey, theme);
                    cache.put(themeCacheElem);
                }
                theme.setInvalidated(false);                           
            }                       
            return;
        }
        theme = decorationFactory.getTheme(page, requestContext);       
        requestContext.setAttribute(PortalReservedParameters.PAGE_THEME_ATTRIBUTE, theme);
        if ( fragments == null || fragments.size() == 0 )
        {
            ContentFragment rootFragment = page.getRootFragment();
            initDepthFragments(requestContext, theme, rootFragment, pageActionAccess, isAjaxRequest, fragments);
        }
        else
        {
            Iterator fragmentsIter = fragments.iterator();
            while ( fragmentsIter.hasNext() )
            {
                ContentFragment fragment = (ContentFragment)fragmentsIter.next();
                initFragment(requestContext, theme, fragment, pageActionAccess, isAjaxRequest);
            }
        }
       
        if (useCache() && !isSoloMode(requestContext))
        {
            if (themeContentCacheKey == null && themeCacheKey == null)
            {
                if (this.useSessionForThemeCaching)
                {
                    themeCacheKey = cache.createSessionKey(requestContext);                   
                    requestContext.getRequest().getSession().removeAttribute(themeCacheKey);
                }
                else
                {
                    themeContentCacheKey = cache.createCacheKey(requestContext, page.getId());
                    cache.remove(themeContentCacheKey);
                }               
            }
            else
            {
                if (this.useSessionForThemeCaching)
                {
                    themeContentCacheKey = cache.createCacheKey(requestContext, page.getId());
                    requestContext.setSessionAttribute(themeCacheKey, theme);
                }
                else
                {
                    CacheElement themeCacheElem = cache.createElement(themeContentCacheKey, theme);
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

            String layoutType = layout.getType();
            String layoutDecoration = layout.getDecorator();
            if (layoutDecoration == null)
            {
                //Page page = (Page) renderRequest.getAttribute(PortalReservedParameters.PAGE_ATTRIBUTE_KEY);
                ContentPage page = requestContext.getPage();
                layoutDecoration = page.getEffectiveDefaultDecorator(layoutType);
            }
           
            // get layout capabilites and locale
            CapabilityMap capabilityMap = requestContext.getCapabilityMap();
            Locale locale = requestContext.getLocale();
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

    public void doView( RenderRequest request, RenderResponse response ) throws PortletException, IOException
    {
        RequestContext context = getRequestContext(request);

        ContentPage requestPage = context.getPage();      
        PageEditAccess pageEditAccess = (PageEditAccess)context.getAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE);
        if ( requestPage == null)
        {
            // Targetting this portlet REQUIRES that the ProfilerValve has been invoked!
            throw new PortletException("Current request page not available.");
View Full Code Here

Examples of org.apache.jetspeed.om.page.ContentPage

    public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException
    {
        RequestContext requestContext = (RequestContext)request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
       
        ContentPage requestPage = requestContext.getPage();      
        PageEditAccess pageEditAccess = (PageEditAccess)requestContext.getAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE);
        if ( requestPage == null || pageEditAccess == null )
        {
            // Targetting this portlet with an ActionRequest REQUIRES that the ProfilerValve has been invoked!
            throw new PortletException("Current request page or PageEditAccess not available.");
        }

        decoratorCache.invalidate(requestContext);
       
        String pageMode = request.getParameter("pageMode");
        if ( pageMode != null )
        {
            if ( "view".equals(pageMode) )
            {
                pageEditAccess.setEditing(false);
            }
            else if ( "edit".equals(pageMode) && pageEditAccess.isEditAllowed() )
            {
                if ( this.editorType != null && this.editorType.equals( "desktop" ) )
                {
                    String redirectUrl = this.desktop.getPortalUrl( requestContext, requestContext.getPath() );
                    redirectUrl += "?editPage=true&portal=true";
                    response.sendRedirect( redirectUrl );
                }
                else
                {
                    pageEditAccess.setEditing(true);
                }
            }
            return;
        }
       
        if ( pageEditAccess.isEditAllowed() && request.isPortletModeAllowed(PortletMode.EDIT) )
        {
            String layout = null;
           
            boolean addLayout = request.getParameter("jsAddLayout") != null;
            if ( addLayout || request.getParameter("jsChangeLayout") != null )
            {
                layout = request.getParameter("layout");
                if ( layout != null && layout.length() > 0 )
                {
                    PortletWindow window = requestContext.getActionWindow();
                    ContentFragment targetFragment = requestPage.getContentFragmentById(window.getId().toString());
                   
                    if ( targetFragment == null )
                    {
                        // ignore no longer consistent page definition
                        return;
                    }
                   
                    if ( addLayout )
                    {
                        try
                        {
                            Fragment fragment = pageManager.newFragment();
                            fragment.setType(Fragment.LAYOUT);
                            fragment.setName(layout);                           
                            targetFragment.getFragments().add(fragment);
                            pageManager.updatePage(requestPage);
                            clearLayoutAttributes(request);                           
                        }
                        catch (Exception e)
                        {
                            throw new PortletException("failed to add portlet " + layout + " to page: " + requestPage+": "+e.getMessage(), e);
                        }
                    }
                    else if ( !layout.equals(targetFragment.getName()) )
                    {
                        try
                        {
                            // layout portlet change
                            targetFragment.setName(layout);
                            pageManager.updatePage(requestPage);
                            entityAccess.updatePortletEntity(window.getPortletEntity(), targetFragment);
                            entityAccess.storePortletEntity(window.getPortletEntity());
                            windowAccess.createPortletWindow(window.getPortletEntity(), targetFragment.getId());
                            clearLayoutAttributes(request);
                            return;
                        }
                        catch (Exception e)
                        {
                            throw new PortletException("Unable to update page: "+e.getMessage(), e);
                        }
                    }
                }
                return;
            }

            if ( request.getParameter("jsSubmitPage" ) != null )
            {
                String jsPageName = request.getParameter("jsPageName");
                String jsPageTitle = request.getParameter("jsPageTitle");
                String jsPageShortTitle = request.getParameter("jsPageShortTitle");
                if ( jsPageName != null && jsPageName.length() > 0 && jsPageName.indexOf(Folder.PATH_SEPARATOR) == -1 )
                {
                    try
                    {               
                        Folder parent = (Folder)requestPage.getParent();
                        if (parent != null)
                        {
                            String path = parent.getPath();
                            if (path.endsWith(Folder.PATH_SEPARATOR))
                            {
                                path = path + getEscapedName(jsPageName);
                            }
                            else
                            {
                                path = path + Folder.PATH_SEPARATOR
                                        + getEscapedName(jsPageName);
                            }
                            Page page = pageManager.newPage(path);
                            if ( layout == null || layout.length() == 0 )
                            {
                                layout = requestPage.getRootFragment().getName();
                            }
                            page.getRootFragment().setName(layout);
                            page.setDefaultDecorator(requestPage.getDefaultDecorator(Fragment.LAYOUT), Fragment.LAYOUT);
                            page.setDefaultDecorator(requestPage.getDefaultDecorator(Fragment.PORTLET), Fragment.PORTLET);
                            page.setTitle(jsPageTitle != null && !jsPageTitle.equals("") ? jsPageTitle : jsPageName);
                            page.setShortTitle(jsPageShortTitle != null
                                            && !jsPageShortTitle.equals("") ? jsPageShortTitle
                                            : jsPageName);
                            pageManager.updatePage(page);
                            clearLayoutAttributes(request);                           
                            List orderList = parent.getDocumentOrder();
                            if (orderList != null)
                            {
                                String name = page.getName();
                                if (orderList.indexOf(name) < 0)
                                {
                                    orderList.add(name);
                                    parent.setDocumentOrder(orderList);
                                    pageManager.updateFolder(parent);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        throw new PortletException("Unable to access page for editing: "+e.getMessage(), e);
                    }                       
                }
                return;
            }

            if (request.getParameter("jsChangePageName") != null)
            {
                String jsPageTitle = request.getParameter("jsPageTitle");
                String jsPageShortTitle = request
                        .getParameter("jsPageShortTitle");
                try
                {
                    if (jsPageTitle != null && !jsPageTitle.equals(""))
                    {
                        requestPage.setTitle(jsPageTitle);
                    }
                    if (jsPageShortTitle != null
                            && !jsPageShortTitle.equals(""))
                    {
                        requestPage.setShortTitle(jsPageShortTitle);
                    }
                    pageManager.updatePage(requestPage);
                }
                catch (Exception e)
                {
                    throw new PortletException(
                            "Unable to access page for editing: "
                                    + e.getMessage(), e);
                }
                return;
            }

            if ( request.getParameter("jsDeletePage" ) != null )
            {
                try
                {
                    Folder parent = (Folder)requestPage.getParent();
                    if (parent != null)
                    {
                        List orderList = parent.getDocumentOrder();
                        if (orderList != null)
                        {
                            String name = requestPage.getName();
                            if (orderList.indexOf(name) > -1)
                            {
                                orderList.remove(name);
                                parent.setDocumentOrder(orderList);
                                pageManager.updateFolder(parent);
                            }
                        }
                    }

                    pageManager.removePage(requestPage);
                }
                catch (Exception e)
                {
                    throw new PortletException("Unable to access page for removing: "+e.getMessage(), e);
                }
                return;
            }

            if (request.getParameter("jsMovePageLeft") != null)
            {
                try
                {
                    Folder parent = (Folder) requestPage.getParent();
                    if (parent != null)
                    {
                        List orderList = parent.getDocumentOrder();
                        String name = requestPage.getName();
                        if (orderList != null)
                        {
                            int index = orderList.indexOf(name);
                            if (index > -1)
                            {
                                String type = requestPage.getType();
                                int i = index - 1;
                                while (i >= 0)
                                {
                                    String value = (String) orderList.get(i);
                                    if (value.endsWith(type))
                                    {
                                        orderList.remove(index);
                                        orderList.add(i, name);
                                        parent.setDocumentOrder(orderList);
                                        pageManager.updateFolder(parent);
                                        break;
                                    }
                                    i--;
                                }
                            }
                            else
                            {
                                orderList.add(name);
                                parent.setDocumentOrder(orderList);
                                pageManager.updateFolder(parent);
                            }
                        }
                        else
                        {
                            orderList = new ArrayList(4);
                            orderList.add(name);
                            parent.setDocumentOrder(orderList);
                            pageManager.updateFolder(parent);
                        }
                    }
                }
                catch (Exception e)
                {
                    throw new PortletException(
                            "Unable to access page for changing the document order: "
                                    + e.getMessage(), e);
                }
                return;
            }

            if (request.getParameter("jsMovePageRight") != null)
            {
                try
                {
                    Folder parent = (Folder) requestPage.getParent();
                    if (parent != null)
                    {
                        List orderList = parent.getDocumentOrder();
                        String name = requestPage.getName();
                        if (orderList != null)
                        {
                            int index = orderList.indexOf(name);
                            if (index > -1)
                            {
                                String type = requestPage.getType();
                                int i = index + 1;
                                while (i < orderList.size())
                                {
                                    String value = (String) orderList.get(i);
                                    if (value.endsWith(type))
                                    {
                                        orderList.remove(index);
                                        orderList.add(i, name);
                                        parent.setDocumentOrder(orderList);
                                        pageManager.updateFolder(parent);
                                        break;
                                    }
                                    i++;
                                }
                            }
                            else
                            {
                                orderList.add(name);
                                parent.setDocumentOrder(orderList);
                                pageManager.updateFolder(parent);
                            }
                        }
                        else
                        {
                            orderList = new ArrayList(4);
                            orderList.add(name);
                            parent.setDocumentOrder(orderList);
                            pageManager.updateFolder(parent);
                        }
                    }
                }
                catch (Exception e)
                {
                    throw new PortletException(
                            "Unable to access page for changing the document order: "
                                    + e.getMessage(), e);
                }
                return;
            }           

            if (request.getParameter("jsSubmitFolder") != null)
            {
                String jsFolderName = request.getParameter("jsFolderName");
                String jsFolderTitle = request.getParameter("jsFolderTitle");
                String jsFolderShortTitle = request.getParameter("jsFolderShortTitle");
                if (jsFolderName != null && jsFolderName.length() > 0
                        && jsFolderName.indexOf(Folder.PATH_SEPARATOR) == -1)
                {
                    try
                    {
                        Folder parent = (Folder) requestPage.getParent();
                        if (parent != null)
                        {
                            String path = parent.getPath();
                            if (path.endsWith(Folder.PATH_SEPARATOR))
                            {
                                path = path + getEscapedName(jsFolderName);
                            }
                            else
                            {
                                path = path + Folder.PATH_SEPARATOR
                                        + getEscapedName(jsFolderName);
                            }
                            Folder folder = pageManager.newFolder(path);
                            if (layout == null || layout.length() == 0)
                            {
                                layout = requestPage.getRootFragment()
                                        .getName();
                            }
                            folder.setDefaultDecorator(requestPage
                                    .getDefaultDecorator(Fragment.LAYOUT),
                                    Fragment.LAYOUT);
                            folder.setDefaultDecorator(requestPage
                                    .getDefaultDecorator(Fragment.PORTLET),
                                    Fragment.PORTLET);
                            folder
                                    .setTitle(jsFolderTitle != null
                                            && !jsFolderTitle.equals("") ? jsFolderTitle
                                            : jsFolderName);
                            folder
                                    .setShortTitle(jsFolderShortTitle != null
                                            && !jsFolderShortTitle.equals("") ? jsFolderShortTitle
                                            : jsFolderName);
                            pageManager.updateFolder(folder);

                            List orderList = parent.getDocumentOrder();
                            if (orderList != null)
                            {
                                String name = folder.getName();
                                if (orderList.indexOf(name) < 0)
                                {
                                    orderList.add(name);
                                    parent.setDocumentOrder(orderList);
                                    pageManager.updateFolder(parent);
                                }
                            }

                            // add default page
                            path = folder.getPath();
                            if (path.endsWith(Folder.PATH_SEPARATOR))
                            {
                                path = path + getEscapedName("default-page");
                            }
                            else
                            {
                                path = path + Folder.PATH_SEPARATOR
                                        + getEscapedName("default-page");
                            }
                            Page page = pageManager.newPage(path);
                            if (layout == null || layout.length() == 0)
                            {
                                layout = requestPage.getRootFragment()
                                        .getName();
                            }
                            page.getRootFragment().setName(layout);
                            page.setDefaultDecorator(requestPage
                                    .getDefaultDecorator(Fragment.LAYOUT),
                                    Fragment.LAYOUT);
                            page.setDefaultDecorator(requestPage
                                    .getDefaultDecorator(Fragment.PORTLET),
                                    Fragment.PORTLET);
                            page.setTitle(jsFolderName);
                            pageManager.updatePage(page);

                            orderList = folder.getDocumentOrder();
                            if (orderList != null)
                            {
                                String name = page.getName();
                                if (orderList.indexOf(name) < 0)
                                {
                                    orderList.add(name);
                                    folder.setDocumentOrder(orderList);
                                    pageManager.updateFolder(folder);
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        throw new PortletException(
                                "Unable to access folder for editing: "
                                        + e.getMessage(), e);
                    }
                }
                return;
            }

            if (request.getParameter("jsChangeFolderName") != null)
            {
                String jsFolderTitle = request.getParameter("jsFolderTitle");
                String jsFolderShortTitle = request
                        .getParameter("jsFolderShortTitle");
                try
                {
                    Folder parent = (Folder) requestPage.getParent();
                    if (parent != null)
                    {
                        if (jsFolderTitle != null && !jsFolderTitle.equals(""))
                        {
                            parent.setTitle(jsFolderTitle);
                        }
                        if (jsFolderShortTitle != null
                                && !jsFolderShortTitle.equals(""))
                        {
                            parent.setShortTitle(jsFolderShortTitle);
                        }
                        pageManager.updateFolder(parent);
                    }

                }
                catch (Exception e)
                {
                    throw new PortletException(
                            "Unable to access folder for editing: "
                                    + e.getMessage(), e);
                }
                return;
            }
           
            if (request.getParameter("jsDeleteFolder") != null)
            {
                try
                {
                    Folder targetFolder = (Folder) requestPage.getParent();
                    Folder parent = (Folder) targetFolder.getParent();
                    if (parent != null)
                    {
                        List orderList = parent.getDocumentOrder();
                        if (orderList != null)
                        {
                            String name = targetFolder.getName();
                            if (orderList.indexOf(name) > -1)
                            {
                                orderList.remove(name);
                                parent.setDocumentOrder(orderList);
                                pageManager.updateFolder(parent);
                            }
                        }

                        // do not remove if the folder is root.
                        pageManager.removeFolder(targetFolder);
                    }
                }
                catch (Exception e)
                {
                    throw new PortletException(
                            "Unable to access folder for removing: "
                                    + e.getMessage(), e);
                }
                return;
            }

            if (request.getParameter("jsMoveFolderLeft") != null)
            {
                try
                {
                    Folder targetFolder = (Folder) requestPage.getParent();
                    Folder parent = (Folder) targetFolder.getParent();
                    if (parent != null)
                    {
                        List orderList = parent.getDocumentOrder();
                        String name = targetFolder.getName();
                        if (orderList != null)
                        {
                            int index = orderList.indexOf(name);
                            if (index > -1)
                            {
                                int i = index - 1;
                                while (i >= 0)
                                {
                                    String value = (String) orderList.get(i);
                                    if (!value.endsWith(".psml")
                                            && !value.endsWith(".link"))
                                    {
                                        orderList.remove(index);
                                        orderList.add(i, name);
                                        parent.setDocumentOrder(orderList);
                                        pageManager.updateFolder(parent);
                                        break;
                                    }
                                    i--;
                                }
                            }
                            else
                            {
                                orderList.add(name);
                                parent.setDocumentOrder(orderList);
                                pageManager.updateFolder(parent);
                            }
                        }
                        else
                        {
                            orderList = new ArrayList(4);
                            orderList.add(name);
                            parent.setDocumentOrder(orderList);
                            pageManager.updateFolder(parent);
                        }
                    }
                }
                catch (Exception e)
                {
                    throw new PortletException(
                            "Unable to access folder for changing the document order: "
                                    + e.getMessage(), e);
                }
                return;
            }

            if (request.getParameter("jsMoveFolderRight") != null)
            {
                try
                {
                    Folder targetFolder = (Folder) requestPage.getParent();
                    Folder parent = (Folder) targetFolder.getParent();
                    if (parent != null)
                    {
                        List orderList = parent.getDocumentOrder();
                        String name = targetFolder.getName();
                        if (orderList != null)
                        {
                            int index = orderList.indexOf(name);
                            if (index > -1)
                            {
                                int i = index + 1;
                                while (i < orderList.size())
                                {
                                    String value = (String) orderList.get(i);
                                    if (!value.endsWith(".psml")
                                            && !value.endsWith(".link"))
                                    {
                                        orderList.remove(index);
                                        orderList.add(i, name);
                                        parent.setDocumentOrder(orderList);
                                        pageManager.updateFolder(parent);
                                        break;
                                    }
                                    i++;
                                }
                            }
                            else
                            {
                                orderList.add(name);
                                parent.setDocumentOrder(orderList);
                                pageManager.updateFolder(parent);
                            }
                        }
                        else
                        {
                            orderList = new ArrayList(4);
                            orderList.add(name);
                            parent.setDocumentOrder(orderList);
                            pageManager.updateFolder(parent);
                        }
                    }
                }
                catch (Exception e)
                {
                    throw new PortletException(
                            "Unable to access folder for changing the document order: "
                                    + e.getMessage(), e);
                }
                return;
            }

            String theme = request.getParameter("theme");
            if ( theme != null && theme.length() > 0 && !theme.equals(requestPage.getDefaultDecorator(Fragment.LAYOUT)) )
            {
                requestPage.setDefaultDecorator(theme, Fragment.LAYOUT);
                try
                {
                    pageManager.updatePage(requestPage);
                }
                catch (Exception e)
                {
                    throw new PortletException("Unable to update page: "+e.getMessage(), e);
                }
                return;
            }
           
            String fragmentId = request.getParameter("fragment");
            if ( fragmentId != null && fragmentId.length() > 0 )
            {
                String move = request.getParameter("move");
                if ( move != null && move.length() > 0 )
                {
                    int moveCode = Integer.parseInt(move);                   
                    PortletWindow window = requestContext.getActionWindow();
                    Fragment currentFragment = requestPage.getFragmentById(window.getId().toString());
                    Fragment fragmentToMove = requestPage.getFragmentById(fragmentId);
                   
                    if ( currentFragment == null || fragmentToMove == null )
                    {
                        // ignore no longer consistent page definition
                        return;
                    }
                   
                    ColumnLayout columnLayout;
                    try
                    {
                        columnLayout = new ColumnLayout(numColumns, layoutType, currentFragment.getFragments(), null);
                        columnLayout.addLayoutEventListener(new PageManagerLayoutEventListener(pageManager, requestPage, layoutType));
                    }
                    catch (LayoutEventException e1)
                    {
                        throw new PortletException("Failed to build ColumnLayout "+e1.getMessage(), e1);
                    }

                    try
                    {               
                        switch (moveCode)
                        {
                        case LayoutEvent.MOVED_UP:
                            columnLayout.moveUp(fragmentToMove);
                            break;
                        case LayoutEvent.MOVED_DOWN:
                            columnLayout.moveDown(fragmentToMove);
                            break;
                        case LayoutEvent.MOVED_RIGHT:
                            columnLayout.moveRight(fragmentToMove);
                            break;
                        case LayoutEvent.MOVED_LEFT:
                            columnLayout.moveLeft(fragmentToMove);
                            break;
                        default:
                            throw new PortletException("Invalid movement code " + moveCode);
                        }
                      
                    }
                    catch (SecurityException se)
                    {
                        // ignore page security constraint violations, only
                        // permitted users can edit managed pages; page
                        // update will remain transient
                        log.info("Unable to update page " + requestPage.getId() + " layout due to security permission/constraint.", se);
                    }
                    catch (Exception e)
                    {
                        if (e instanceof PortletException)
                        {
                            throw (PortletException)e;
                        }
                        else
                        {
                            throw new PortletException("Unable to process layout for page " + requestPage.getId() + " layout: " + e.toString(), e);
                        }
                    }
                    return;
                }
               
                String remove = request.getParameter("remove");
                if ( remove != null && remove.length() > 0 )
                {
                    Page page = null;
                    try
                    {
                        // TODO: for now retrieve the real Page instead of ContentPage
                        //       because removing fragments isn't working through the ContentFragment wrapping
                        page = pageManager.getPage(requestPage.getPath());
                    }
                    catch (Exception e)
                    {
                        throw new PortletException("Unable to retrieve page "+requestPage.getId(),e);
                    }

                    PortletWindow window = requestContext.getActionWindow();
                    Fragment currentFragment = page.getFragmentById(window.getId().toString());

                    if ( currentFragment == null )
                    {
                        // ignore no longer consistent page definition
                        return;
                    }
                   
                    removeFragment(page, currentFragment, fragmentId);
                    return;
                }
               
                String decorator = request.getParameter("decorator");
                if ( decorator != null )
                {
                    Fragment fragment = requestPage.getFragmentById(fragmentId);

                    if ( fragment == null )
                    {
                        // ignore no longer consistent page definition
                        return;
                    }
                   
                    if (decorator.trim().length() == 0)
                        fragment.setDecorator(null);
                    else
                        fragment.setDecorator(decorator);
                    try
                    {
                        pageManager.updatePage(requestPage);
                    }
                    catch (Exception e)
                    {
                        throw new PortletException("Unable to update page for fragment decorator: "+e.getMessage(), e);
                    }
                    return;
                }
            }
            // change style for all pages in user folder
            String jsChangeUserPagesTheme = request.getParameter("jsChangeUserPagesTheme");
            if ( jsChangeUserPagesTheme != null )
            {
               String user_pages_theme = request.getParameter("user_pages_theme");
               try
                {
                   Folder f = pageManager.getUserFolder(request.getRemoteUser());
                   applyStyle(f,user_pages_theme,Fragment.LAYOUT);
                }
                catch (Exception e)
                {
                   throw new PortletException("Unable to update folder for defUserLayoutDeco decorator: "+e.getMessage(), e);
                }
                return;
            }               
            String jsChangeUserPortletsDeco = request.getParameter("jsChangeUserPortletsDeco");
            if ( jsChangeUserPortletsDeco != null )
            {                 
               String user_portlets_deco = request.getParameter("user_portlets_deco");
               try
                {
                   Folder f = pageManager.getUserFolder(request.getRemoteUser());
                   applyStyle(f,user_portlets_deco,Fragment.PORTLET);
                }
               catch (Exception e)
                {
                    throw new PortletException("Unable to update folder for defUserPortletDeco decorator: "+e.getMessage(), e);
                }
               return;
            }                               
           
            String jsChangeThemeAll = request.getParameter("jsChangeThemeAll");
            if (jsChangeThemeAll != null)
            {
                String decorators = request.getParameter("decorators");               
                Iterator fragmentsIter = requestPage.getRootFragment().getFragments().iterator();
                while(fragmentsIter.hasNext())
                {
                    Fragment fragment = (Fragment) fragmentsIter.next();
                    if ( fragment == null )
                    {
                        // ignore no longer consistent page definition
                        return;
                    }
                   
                    if (decorators.trim().length() == 0)
                        fragment.setDecorator(null);
                    else
                        fragment.setDecorator(decorators);
                }
                try
                {
                    pageManager.updatePage(requestPage);
                }
                catch (Exception e)
                {
                    throw new PortletException("Unable to update page for fragment decorator: "+e.getMessage(), e);
                }
                return;
            }               
           
            String portlets = request.getParameter("portlets");
            if ( portlets != null && portlets.length() > 0 )
            {
                PortletWindow window = requestContext.getActionWindow();
                Fragment targetFragment = requestPage.getFragmentById(window.getId().toString());

                if ( targetFragment == null )
                {
                    // ignore no longer consistent page definition
                    return;
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.