You are viewing a plain text version of this content. The canonical link for it is here.
Posted to portalapps-dev@portals.apache.org by wo...@apache.org on 2009/10/02 16:55:15 UTC

svn commit: r821041 - in /portals/applications/webcontent/trunk: webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/portlet/IFrameGenericPortlet.java webcontent-war/src/main/webapp/WEB-INF/portlet.xml

Author: woonsan
Date: Fri Oct  2 14:55:14 2009
New Revision: 821041

URL: http://svn.apache.org/viewvc?rev=821041&view=rev
Log:
APA-17: Enables to set editable preferences (as ordered) by 'EDITABLEPREFS' preference value. Also, enables to customize title by "TITLE" preference.

Modified:
    portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/portlet/IFrameGenericPortlet.java
    portals/applications/webcontent/trunk/webcontent-war/src/main/webapp/WEB-INF/portlet.xml

Modified: portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/portlet/IFrameGenericPortlet.java
URL: http://svn.apache.org/viewvc/portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/portlet/IFrameGenericPortlet.java?rev=821041&r1=821040&r2=821041&view=diff
==============================================================================
--- portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/portlet/IFrameGenericPortlet.java (original)
+++ portals/applications/webcontent/trunk/webcontent-jar/src/main/java/org/apache/portals/applications/webcontent/portlet/IFrameGenericPortlet.java Fri Oct  2 14:55:14 2009
@@ -18,7 +18,9 @@
 
 import java.io.IOException;
 import java.io.StringWriter;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import javax.portlet.ActionRequest;
@@ -35,6 +37,7 @@
 import javax.portlet.ResourceURL;
 import javax.portlet.WindowState;
 
+import org.apache.commons.collections.keyvalue.DefaultMapEntry;
 import org.apache.commons.lang.BooleanUtils;
 import org.apache.commons.lang.ClassUtils;
 import org.apache.commons.lang.StringUtils;
@@ -62,14 +65,13 @@
     private Map<String, String> maxAttributes = new HashMap<String, String>();
     
     private boolean isPortlet10Container;
-
+    
     @Override
     public void init(PortletConfig config) throws PortletException
     {
         super.init(config);
         
         attributes.put("TITLE", "");
-        attributes.put("EDITABLEPREFS", "");
         attributes.put("SRC", "http://www.apache.org");
         attributes.put("PROXYREMOTEURL", "");
         attributes.put("PROXYLOCALPATH", "");
@@ -170,6 +172,7 @@
     @Override
     public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
     {
+        setTitleByPreferences(request, response);
         String viewPage = (String) request.getAttribute(PARAM_VIEW_PAGE);
         
         if (viewPage != null)
@@ -186,6 +189,7 @@
     public void setupPreferencesEdit(RenderRequest request, RenderResponse response)
     {
         PortletPreferences prefs = request.getPreferences();
+        
         String editablePrefNames = getAttributePreference(prefs, "EDITABLEPREFS");
         
         if (StringUtils.isBlank(editablePrefNames))
@@ -194,16 +198,20 @@
         }
         else
         {
+            List<DefaultMapEntry> prefEntryList = new ArrayList<DefaultMapEntry>();
             Map<String, String> prefsMap = new HashMap<String, String>();
             String [] prefNames = StringUtils.split(editablePrefNames, ",");
+            String [] emptyValues = {};
             
             for (String prefName : prefNames)
             {
                 prefName = prefName.trim();
-                prefsMap.put(prefName, prefs.getValue(prefName, ""));
+                String [] prefValues = prefs.getValues(prefName, emptyValues);
+                prefsMap.put(prefName, prefValues.length == 0 ? "" : prefValues[0]);
+                prefEntryList.add(new DefaultMapEntry(prefName, prefValues));
             }
             
-            getContext(request, response).put("prefs", prefsMap.entrySet().iterator());
+            getContext(request, response).put("prefs", prefEntryList.iterator());
             getContext(request, response).put("prefsMap", prefsMap);
         }
     }
@@ -211,11 +219,26 @@
     @Override
     public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException
     {
+        setTitleByPreferences(request, response);
         response.setContentType("text/html");
         doPreferencesEdit(request, response);
     }
     
     @Override
+    public void doHelp(RenderRequest request, RenderResponse response) throws PortletException, IOException
+    {
+        setTitleByPreferences(request, response);
+        super.doHelp(request, response);
+    }
+    
+    @Override
+    public void doCustom(RenderRequest request, RenderResponse response) throws PortletException, IOException
+    {
+        setTitleByPreferences(request, response);
+        super.doCustom(request, response);
+    }
+    
+    @Override
     public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, IOException 
     {
         String resourceId = request.getResourceID();
@@ -329,13 +352,6 @@
             }
         }
         
-        String title = getAttributePreference(prefs, "TITLE");
-        
-        if (!StringUtils.isEmpty(title))
-        {
-            response.setTitle(title);
-        }
-        
         // set required content type and write HTML IFRAME content
         response.setContentType("text/html");
         response.getWriter().print(content.toString());
@@ -388,5 +404,15 @@
             processPreferencesAction(request, actionResponse);
         }
     }
+    
+    protected void setTitleByPreferences(RenderRequest request, RenderResponse response)
+    {
+        String title = getAttributePreference(request.getPreferences(), "TITLE");
+        
+        if (!StringUtils.isEmpty(title))
+        {
+            response.setTitle(title);
+        }
+    }
 
 }

Modified: portals/applications/webcontent/trunk/webcontent-war/src/main/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/portals/applications/webcontent/trunk/webcontent-war/src/main/webapp/WEB-INF/portlet.xml?rev=821041&r1=821040&r2=821041&view=diff
==============================================================================
--- portals/applications/webcontent/trunk/webcontent-war/src/main/webapp/WEB-INF/portlet.xml (original)
+++ portals/applications/webcontent/trunk/webcontent-war/src/main/webapp/WEB-INF/portlet.xml Fri Oct  2 14:55:14 2009
@@ -54,6 +54,14 @@
     </portlet-info>
     <portlet-preferences>
       <preference>
+        <name>EDITABLEPREFS</name>
+        <value>TITLE, SRC, WIDTH, HEIGHT, MAX-WIDTH, MAX-HEIGHT, SCROLLING, AUTORESIZE, VISITLASTPAGE</value>
+      </preference>
+      <preference>
+        <name>TITLE</name>
+        <value></value>
+      </preference>
+      <preference>
         <name>SRC</name>
         <value>http://portals.apache.org/</value>
       </preference>
@@ -130,6 +138,14 @@
     </portlet-info>
     <portlet-preferences>
       <preference>
+        <name>EDITABLEPREFS</name>
+        <value>TITLE, SRC, PROXYREMOTEURL, PROXYLOCALPATH, WIDTH, HEIGHT, MAX-WIDTH, MAX-HEIGHT, SCROLLING, AUTORESIZE, VISITLASTPAGE</value>
+      </preference>
+      <preference>
+        <name>TITLE</name>
+        <value></value>
+      </preference>
+      <preference>
         <name>SRC</name>
         <value>http://portals.apache.org/</value>
       </preference>