portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tay...@apache.org
Subject svn commit: r835210 - in /portals/jetspeed-2/portal/trunk: applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/ applications/jetspeed/src/main/webapp/decorations/portlet/clear/ applications/jetspeed/src/main/webapp/decorations/portlet/clear/css/ co...
Date Thu, 12 Nov 2009 03:18:24 GMT
Author: taylor
Date: Thu Nov 12 03:18:22 2009
New Revision: 835210

URL: http://svn.apache.org/viewvc?rev=835210&view=rev
Log:
https://issues.apache.org/jira/browse/JS2-1059
started reworking the actions, and discovered I was in over my head for my alloted time
still managed to keep some work on enhancing decorations, so im going to check that in under
the actions issue
portlet decorators now support 3 new properties:

# option.actions valid values are: show | hide | dropdown | hover (default=show)
option.actions=hide

# option.title valid values are: show | hide (default=show)
option.title=hide

# option.draghandle valid values are: a CSS selector | none (default: ".PTitle" selector)

haven't implemented all action modes yet, only show and hide

Added:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/ClearDecoratorActionsFactory.java
  (with props)
Modified:
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/css/styles.css
    portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/decorator.properties
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/BaseDecoration.java
    portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Decoration.java

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp?rev=835210&r1=835209&r2=835210&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui-portlet.jsp
Thu Nov 12 03:18:22 2009
@@ -26,6 +26,7 @@
 <%@ page import="org.apache.jetspeed.portlets.layout.ColumnLayout" %>
 <%@ page import="org.apache.jetspeed.portlets.layout.LayoutCoordinate" %>
 <%@ page import="org.apache.jetspeed.om.page.ContentFragment" %>
+<%@ page import="org.apache.jetspeed.decoration.Decoration" %>
 <%@ page import="org.apache.jetspeed.decoration.DecoratorAction" %>
 <%@ page import="org.apache.jetspeed.PortalReservedParameters" %>
 <%
@@ -34,28 +35,33 @@
 	ContentFragment fragment = (ContentFragment)request.getAttribute("fragment");
 	LayoutCoordinate coordinate = (LayoutCoordinate)request.getAttribute("coordinate");
 	String title = "";
-	if (fragment.getPortletContent() != null)
+	boolean showTitle = fragment.getDecoration().getTitleOption() == Decoration.TitleOption.SHOW;
	
+	if (showTitle && fragment.getPortletContent() != null)
 	    title = fragment.getPortletContent().getTitle();
 %>
 	<div class="portal-layout-cell" id="<%=fragment.getId()%>" name="<%=fragment.getName()%>"
column="<%=coordinate.getX()%>" row="<%=coordinate.getY()%>">
 		<div class="portlet <%=decorator%>">
 		    <div class="PTitle" >
-	          <div class="PTitleContent"><%=title%></div>               
+	          <div class="PTitleContent"><%=title%></div>
 		  	    <div class="PActionBar">
 <%
-				    for(DecoratorAction action : (List<DecoratorAction>)fragment.getDecoration().getActions())
-				    {			        
-				        String target = "target='"+ action.getTarget() + "'";
-				        if (action.getTarget() == null)
-				            target = "";
+					Decoration.ActionsOption option = fragment.getDecoration().getActionsOption(); 	
+					if (option != Decoration.ActionsOption.HIDE) // TODO: HOVER, DROP DOWN not yet implemented
+					{
+						for(DecoratorAction action : (List<DecoratorAction>)fragment.getDecoration().getActions())
+					    {			        
+					        String target = "target='"+ action.getTarget() + "'";
+					        if (action.getTarget() == null)
+					            target = "";
  %>			    
 			     <a href="<%=action.getAction()%>" title="<%=action.getName()%>" class="action
portlet-action" <%=target%>><img src="<%=request.getContextPath()%>/<%=action.getLink()%>"
alt="<%=action.getAlt()%>" border="0" /></a>
-<% } 
-if (request.getUserPrincipal() != null)
+<%                  } // for loop				
+// FIXME: integrate close into standard actions, use security constraints on close action
+if (request.getUserPrincipal() != null && fragment.getDecoration().getActions().size()
> 0)
 {
 %>
 				 <span style='cursor: pointer; z-index: 1000;' id='jetspeed-close-<%=fragment.getId()%>'
title="close" class="portlet-action-close"><img src="<%=request.getContextPath()%>/decorations/portlet/jetspeed/images/close.gif"
alt="Close" border="0" /></span>				 
-<% } %>
+<% }  } %>
 			    </div>
 		      </div>
 		       <div class="PContentBorder">

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/css/styles.css
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/css/styles.css?rev=835210&r1=835209&r2=835210&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/css/styles.css
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/css/styles.css
Thu Nov 12 03:18:22 2009
@@ -14,3 +14,9 @@
 See the License for the specific language governing permissions and
 limitations under the License.
 */
+.clear .PActionBar
+{
+   float: right;
+   display: inline;
+   padding:4px;
+}

Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/decorator.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/decorator.properties?rev=835210&r1=835209&r2=835210&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/decorator.properties
(original)
+++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/portlet/clear/decorator.properties
Thu Nov 12 03:18:22 2009
@@ -16,4 +16,11 @@
 id=clear
 template.type=velocity
 template.extension=.vm
-decorates=any
\ No newline at end of file
+decorates=any
+actions.factory=org.apache.jetspeed.decoration.ClearDecoratorActionsFactory
+# option.actions valid values are: show | hide | dropdown | hover (default=show)
+option.actions=hide
+# option.title valid values are: show | hide (default=show)
+option.title=hide
+# option.draghandle valid values are: a CSS selector | none (default: ".PTitle" selector)
+

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/BaseDecoration.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/BaseDecoration.java?rev=835210&r1=835209&r2=835210&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/BaseDecoration.java
(original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/BaseDecoration.java
Thu Nov 12 03:18:22 2009
@@ -30,6 +30,8 @@
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.apache.jetspeed.decoration.Decoration.ActionsOption;
+import org.apache.jetspeed.decoration.Decoration.TitleOption;
 import org.apache.jetspeed.util.Path;
 
 /**
@@ -63,6 +65,26 @@
     private String currentModeAction;
     private String currentStateAction;
     private boolean supportsDesktop;
+    private Decoration.ActionsOption actionsOption = ActionsOption.SHOW;
+    private Decoration.TitleOption titleOption = TitleOption.SHOW;
+    private String dragHandleOption;
+    
+    static final String[] ACTIONS_NAMES = 
+    {
+        "show", "hide", "dropdown", "hover"    
+    };
+    static final ActionsOption[] ACTIONS_VALUES = 
+    {
+        ActionsOption.SHOW, ActionsOption.HIDE, ActionsOption.DROPDOWN, ActionsOption.HOVER
    
+    };
+    static final String[] TITLE_NAMES = 
+    {
+        "show", "hide"    
+    };
+    static final TitleOption[] TITLE_VALUES = 
+    {
+        TitleOption.SHOW, TitleOption.HIDE     
+    };
     
     /**
      * 
@@ -81,8 +103,34 @@
         this.baseClientPath= baseClientPath;
         this.cache = cache;
         
-        this.name = config.getProperty( "name" );      
-        
+        this.name = config.getProperty( "name" );
+        String temp = config.getProperty(Decoration.OPTION_ACTIONS);
+        if (temp != null)
+        {
+            for (int ix = 0; ix < ACTIONS_NAMES.length; ix++)
+            {
+                if (temp.equalsIgnoreCase(ACTIONS_NAMES[ix]))
+                {
+                    this.actionsOption = ACTIONS_VALUES[ix];
+                    break;
+                }
+            }
+        }
+        temp = config.getProperty(Decoration.OPTION_TITLE);
+        if (temp != null)
+        {
+            for (int ix = 0; ix < TITLE_NAMES.length; ix++)
+            {
+                if (temp.equalsIgnoreCase(TITLE_NAMES[ix]))
+                {
+                    this.titleOption = TITLE_VALUES[ix];
+                    break;
+                }
+            }
+        }        
+        this.dragHandleOption = config.getProperty(Decoration.OPTION_DRAGHANDLE, ".PTitle");
+        if (dragHandleOption.equalsIgnoreCase("none"))
+            dragHandleOption = null;
         this.commonStylesheet = config.getProperty( "stylesheet", DEFAULT_COMMON_STYLE_SHEET
);
         
         this.supportsDesktop = "true".equalsIgnoreCase( config.getProperty( Decoration.DESKTOP_SUPPORTED_PROPERTY
) );
@@ -293,4 +341,18 @@
     {
         return this.supportsDesktop;
     }
+    
+    public ActionsOption getActionsOption()
+    {
+        return this.actionsOption;
+    }
+    public TitleOption getTitleOption()
+    {
+        return this.titleOption;
+    }
+    public String getDragHandle() // returns null for not supported
+    {
+        return this.getDragHandle();
+    }
+    
 }

Added: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/ClearDecoratorActionsFactory.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/ClearDecoratorActionsFactory.java?rev=835210&view=auto
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/ClearDecoratorActionsFactory.java
(added)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/ClearDecoratorActionsFactory.java
Thu Nov 12 03:18:22 2009
@@ -0,0 +1,55 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.apache.jetspeed.decoration;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
+
+import org.apache.jetspeed.JetspeedActions;
+import org.apache.jetspeed.om.page.ContentFragment;
+import org.apache.jetspeed.om.portlet.PortletApplication;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.security.SecurityAccessController;
+import org.apache.jetspeed.container.PortletWindow;
+
+public class ClearDecoratorActionsFactory extends AbstractDecoratorActionsFactory
+{
+    private static final DecoratorActionTemplate PRINT_MODE_TEMPLATE = new DecoratorActionTemplate(JetspeedActions.PRINT_MODE);
+    private static final DecoratorActionTemplate SOLO_ACTION_TEMPLATE = new DecoratorActionTemplate(JetspeedActions.SOLO_STATE);
+    
+    private final List supportedActions;
+    private final List supportedSoloActions;
+    
+    public ClearDecoratorActionsFactory()
+    {
+        ArrayList list = new ArrayList();
+        supportedActions = Collections.unmodifiableList(list);
+        supportedSoloActions = Collections.unmodifiableList(list);
+    }
+
+    public List getSupportedActions(RequestContext rc, PortletApplication pa, PortletWindow
pw, PortletMode cm,
+                    WindowState ws, Decoration decoration)
+    {
+        // don't support any window state actions when in "solo" state
+        return JetspeedActions.SOLO_STATE.equals(ws) ? supportedSoloActions : supportedActions;
+    }
+}

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/ClearDecoratorActionsFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/decoration/ClearDecoratorActionsFactory.java
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Decoration.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Decoration.java?rev=835210&r1=835209&r2=835210&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Decoration.java
(original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/decoration/Decoration.java
Thu Nov 12 03:18:22 2009
@@ -53,6 +53,22 @@
     /** Property which specifies the directory name for resource bundle */
     String RESOURCES_DIRECTORY_NAME = "resources";
 
+    String OPTION_TITLE = "option.title";
+    String OPTION_ACTIONS = "option.actions";
+    String OPTION_DRAGHANDLE = "option.draghandle";
+    
+    enum ActionsOption 
+    {
+        SHOW, HIDE, DROPDOWN, HOVER
+    };
+    enum TitleOption 
+    {
+        SHOW, HIDE
+    };
+
+    ActionsOption getActionsOption();
+    TitleOption getTitleOption();
+    String getDragHandle(); // returns null for not supported
     
     /**
      * The name of this Decoration.



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


Mime
View raw message