Excellent, this looks like what I'm looking for.

Thanks, Joris. 

-----Original Message-----
From: David Sean Taylor [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, April 24, 2007 6:33 PM
To: Jetspeed Users List
Subject: Re: Preferences question


On Apr 24, 2007, at 7:27 PM, Melchior, Joris wrote:

> Another question to be sure we're thinking the same thing, would  
> any of
> those 'manipulations' be persisted so that they show up across  
> sessions
> and to everyone?
>
Yes they can be persisted, see the last line
This example is simply cut and pasted from the unit tests to give you  
an idea of how to manipulate pages

public class MyPortlet
{
     protected PageManager pageManager;

     public void init(PortletConfig config)
     throws PortletException
     {
         super.init(config);
         pageManager = (PageManager) getPortletContext().getAttribute 
(CommonPortletServices.CPS_PAGE_MANAGER_COMPONENT);
         if (null == pageManager)
         {
             PortletException pe = new PortletException("Failed to  
find the Page Manager on SiteViewController initialization");
             throw new RuntimeException(pe);
         }
        }

     public void processAction(ActionRequest request, ActionResponse  
actionResponse) throws PortletException, java.io.IOException
     {
                ...
                Page page = pageManager.getPage(pagePath);
             Fragment root = page.getRootFragment();
         root.setDecorator("blue-gradient");
         root.setName("jetspeed-layouts::VelocityTwoColumns");
         root.setShortTitle("Root");
         root.setTitle("Root Fragment");
         root.setState("Normal");
         root.setLayoutSizes("50%,50%");
         root.getProperties().put("custom-prop1", "custom-prop-value1");
         root.getProperties().put("custom-prop2", "custom-prop-value2");

         Fragment portlet = pageManager.newPortletFragment();
         portlet.setName("security::LoginPortlet");
         portlet.setShortTitle("Portlet");
         portlet.setTitle("Portlet Fragment");
         portlet.setState("Normal");
         portlet.setLayoutRow(88);
         portlet.setLayoutColumn(99);
         portlet.setLayoutX(12.34F);
         portlet.setLayoutY(23.45F);
         portlet.setLayoutZ(34.56F);
         portlet.setLayoutWidth(45.67F);
         portlet.setLayoutHeight(56.78F);
         List preferences = new ArrayList(2);
         FragmentPreference preference =  
pageManager.newFragmentPreference();
         preference.setName("pref0");
         preference.setReadOnly(true);
         List preferenceValues = new ArrayList(2);
         preferenceValues.add("pref0-value0");
         preferenceValues.add("pref0-value1");
         preference.setValueList(preferenceValues);
         preferences.add(preference);
         preference = pageManager.newFragmentPreference();
         preference.setName("pref1");
         preferenceValues = new ArrayList(1);
         preferenceValues.add("pref1-value");
         preference.setValueList(preferenceValues);
         preferences.add(preference);
         portlet.setPreferences(preferences);
         root.getFragments().add(portlet);
         portlet = pageManager.newPortletFragment();
         portlet.setName("some-app::SomePortlet");
         portlet.setShortTitle("Some Portlet");
         portlet.setTitle("Some Portlet Fragment");
         portlet.setState("Normal");
         portlet.setLayoutRow(22);
         portlet.setLayoutColumn(11);
         portlet.setLayoutX(11.11F);
         portlet.setLayoutY(22.22F);
         portlet.setLayoutZ(33.33F);
         portlet.setLayoutWidth(44.44F);
         portlet.setLayoutHeight(55.55F);
         SecurityConstraints fragmentConstraints =  
portlet.newSecurityConstraints();
         fragmentConstraints.setOwner("user");
         portlet.setSecurityConstraints(fragmentConstraints);
         root.getFragments().add(portlet);

                // store the page               
                 pageManager.updatePage(page);




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to