You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by wo...@apache.org on 2009/11/24 20:00:31 UTC

svn commit: r883815 - in /portals/jetspeed-2/applications/j2-admin/trunk/src/main: java/org/apache/jetspeed/portlets/custom/ webapp/WEB-INF/view/custom/ webapp/images/preview/

Author: woonsan
Date: Tue Nov 24 19:00:30 2009
New Revision: 883815

URL: http://svn.apache.org/viewvc?rev=883815&view=rev
Log:
JS2-1086: Adding a default preview image and refining delegatee preview page.

Added:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/preview-na.png   (with props)
Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/custom/CustomPreviewModePortlet.java
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/custom/preview-mode.jsp

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/custom/CustomPreviewModePortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/custom/CustomPreviewModePortlet.java?rev=883815&r1=883814&r2=883815&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/custom/CustomPreviewModePortlet.java (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/custom/CustomPreviewModePortlet.java Tue Nov 24 19:00:30 2009
@@ -17,32 +17,52 @@
 package org.apache.jetspeed.portlets.custom;
 
 import java.io.IOException;
+import java.util.Collection;
 
 import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
 import javax.portlet.PortletException;
 import javax.portlet.PortletMode;
+import javax.portlet.PortletPreferences;
+import javax.portlet.PortletRequestDispatcher;
 import javax.portlet.RenderRequest;
 import javax.portlet.RenderResponse;
 import javax.portlet.WindowState;
 
-import org.apache.portals.bridges.velocity.GenericVelocityPortlet;
+import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.om.portlet.LocalizedField;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.portals.bridges.common.GenericServletPortlet;
 
 /**
  * Common Custom Preview Mode Portlet
  * 
  * @version $Id$
  */
-public class CustomPreviewModePortlet extends GenericVelocityPortlet
+public class CustomPreviewModePortlet extends GenericServletPortlet
 {
+    
+    public static final String PARAM_PREVIEW_PAGE = "PreviewPage";
+    
     private static final PortletMode PREVIEW_MODE = new PortletMode("preview");
     
-    private String previewPage;
+    private String defaultPreviewPage;
+    
+    private boolean allowPreferences;
     
     public void init(PortletConfig config) throws PortletException
     {
         super.init(config);
         
-        this.previewPage = config.getInitParameter("PreviewPage");
+        this.defaultPreviewPage = config.getInitParameter(PARAM_PREVIEW_PAGE);
+        
+        String allowPreferencesString = config.getInitParameter(PARAM_ALLOW_PREFERENCES);
+        
+        if (allowPreferencesString != null)
+        {
+            allowPreferences = new Boolean(allowPreferencesString).booleanValue();
+        }
     }
     
     protected void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, IOException
@@ -53,8 +73,7 @@
             
             if (PREVIEW_MODE.equals(curMode))
             {
-                request.setAttribute(PARAM_VIEW_PAGE, previewPage);
-                doView(request, response);
+                doPreview(request, response);
             }
             else
             {
@@ -63,4 +82,54 @@
         }
     }
     
+    protected void doPreview(RenderRequest request, RenderResponse response) throws PortletException, IOException 
+    {
+        String previewImage = "";
+        
+        RequestContext rc = (RequestContext) request.getAttribute(RequestContext.REQUEST_PORTALENV);
+        PortletDefinition def = rc.getCurrentPortletWindow().getPortletDefinition();
+        Collection<LocalizedField> colMetaData = null;
+        
+        if (def != null)
+        {
+            colMetaData = def.getMetadata().getFields(PortalReservedParameters.PORTLET_EXTENDED_DESCRIPTOR_PREVIEW_IMAGE);
+        }
+        
+        if (colMetaData != null && !colMetaData.isEmpty())
+        {
+            previewImage = colMetaData.iterator().next().getValue();
+        }
+        
+        request.setAttribute("previewImage", previewImage);
+        
+        String previewPage = this.defaultPreviewPage;
+        
+        // allow PreviewPage override by the request
+        String reqPreviewPage = (String) request.getAttribute(PARAM_PREVIEW_PAGE);
+        
+        if (reqPreviewPage != null)
+        {
+            previewPage = reqPreviewPage;
+        }
+        
+        if (allowPreferences == true)
+        {
+            PortletPreferences prefs = request.getPreferences();
+            
+            if (prefs != null && reqPreviewPage == null)
+            {
+                previewPage = prefs.getValue(PARAM_PREVIEW_PAGE, defaultPreviewPage);
+            }
+        }
+        
+        if (previewPage != null)
+        {
+            PortletContext context = getPortletContext();
+            PortletRequestDispatcher rd = context.getRequestDispatcher(previewPage);
+            rd.include(request, response);
+        }
+        
+        return;
+    }
+    
 }
\ No newline at end of file

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/custom/preview-mode.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/custom/preview-mode.jsp?rev=883815&r1=883814&r2=883815&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/custom/preview-mode.jsp (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/WEB-INF/view/custom/preview-mode.jsp Tue Nov 24 19:00:30 2009
@@ -12,5 +12,13 @@
 See the License for the specific language governing permissions and
 limitations under the License.
 --%>
-<%@ page language="java" %>
-<img src="/demo/images/preview/pickanumber.png"/>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<c:choose>
+  <c:when test="${not empty previewImage}">
+    <img src="${previewImage}"/>
+  </c:when>
+  <c:otherwise>
+    <c:url var="previewNAImage" value="/images/preview/preview-na.png"/>
+    <img src="${previewNAImage}"/>
+  </c:otherwise>
+</c:choose>
\ No newline at end of file

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/preview-na.png
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/preview-na.png?rev=883815&view=auto
==============================================================================
Binary file - no diff available.

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/webapp/images/preview/preview-na.png
------------------------------------------------------------------------------
    svn:mime-type = image/png



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org