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 we...@apache.org on 2005/08/17 20:05:22 UTC
svn commit: r233226 - in
/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity:
JetspeedPowerTool.java JetspeedPowerToolImpl.java
JetspeedVelocityViewServlet.java
Author: weaver
Date: Wed Aug 17 11:05:20 2005
New Revision: 233226
URL: http://svn.apache.org/viewcvs?rev=233226&view=rev
Log:
See JS2-333: http://issues.apache.org/jira/browse/JS2-333
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerTool.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerTool.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerTool.java?rev=233226&r1=233225&r2=233226&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerTool.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerTool.java Wed Aug 17 11:05:20 2005
@@ -28,6 +28,7 @@
import org.apache.jetspeed.om.page.ContentFragment;
import org.apache.jetspeed.om.page.Page;
import org.apache.pluto.om.entity.PortletEntity;
+import org.apache.velocity.context.Context;
/**
* JetspeedPowerTool
@@ -230,4 +231,12 @@
String getBasePath();
String getPageBasePath();
+
+ /**
+ * Sets the Velocity Context object for this powertool instance. This is
+ * only required if using Velocity based decortaions and layouts.
+ *
+ * @param velocityContext
+ */
+ void setVelocityContext(Context velocityContext);
}
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java?rev=233226&r1=233225&r2=233226&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java Wed Aug 17 11:05:20 2005
@@ -60,6 +60,7 @@
import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.services.title.DynamicTitleService;
import org.apache.jetspeed.util.ArgUtil;
+import org.apache.jetspeed.util.Path;
import org.apache.pluto.om.entity.PortletEntity;
import org.apache.pluto.om.portlet.ContentTypeSet;
import org.apache.pluto.om.window.PortletWindow;
@@ -88,6 +89,8 @@
public class JetspeedPowerToolImpl implements JetspeedPowerTool
{
+ private static final String DECORATOR_ID_ATTR = "decoratorId";
+ private static final String ACTION_IMAGE_EXTENSION_ATTR = "actionImageExtension";
protected static final String PORTLET_CONFIG_ATTR = "javax.portlet.config";
protected static final String RENDER_RESPONSE_ATTR = "javax.portlet.response";
protected static final String RENDER_REQUEST_ATTR = "javax.portlet.request";
@@ -219,7 +222,7 @@
public void setCurrentFragment( ContentFragment f )
{
checkState();
- renderRequest.setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, f);
+ setAttribute(PortalReservedParameters.FRAGMENT_ATTRIBUTE, f);
}
@@ -228,7 +231,7 @@
checkState();
ContentFragment f = (ContentFragment) getRequestContext().getRequest().getAttribute(LAYOUT_ATTR);
- renderRequest.setAttribute(LAYOUT_ATTR, f);
+ setAttribute(LAYOUT_ATTR, f);
}
/**
@@ -541,7 +544,9 @@
template = getDecoration(parent + "/" + DECORATOR_TYPE + ext, fragmentType);
}
}
-
+
+ setAttribute(DECORATOR_ID_ATTR, decoConf.getString("id"));
+ setAttribute(ACTION_IMAGE_EXTENSION_ATTR, decoConf.getString("action.image.extension", ".gif"));
return template.getAppRelativePath();
}
@@ -580,6 +585,15 @@
descriptor.setType(templateType);
TemplateDescriptor template = locator.locateTemplate(descriptor);
+ // Check for defaults above the currently specified root
+ if(template == null)
+ {
+ Path pathObject = new Path(path);
+ if(pathObject.length() > 1)
+ {
+ template = getTemplate(pathObject.getSegment(1).toString(), templateType, locator, descriptor);
+ }
+ }
return template;
}
catch (TemplateLocatorException e)
@@ -606,7 +620,7 @@
if (exceptions == null)
{
exceptions = new HashSet();
- renderRequest.setAttribute(FRAGMENT_PROCESSING_ERROR_PREFIX + fragment.getId(), exceptions);
+ setAttribute(FRAGMENT_PROCESSING_ERROR_PREFIX + fragment.getId(), exceptions);
}
exceptions.add(e);
@@ -781,7 +795,11 @@
protected DecoratorAction createDecoratorAction( String resourceBase, String actionName )
{
- // TODO: HARD-CODED .gif link
+ String imageExt = (String) renderRequest.getAttribute(ACTION_IMAGE_EXTENSION_ATTR);
+ if(imageExt == null)
+ {
+ imageExt = ".gif";
+ }
String link = renderResponse.encodeURL(resourceBase+"/content/images/"+actionName+".gif");
return new DecoratorAction(actionName, actionName, link);
}
@@ -903,5 +921,29 @@
{
return getRequestContext().getPortalURL().getPageBasePath();
}
+
+
+ public void setVelocityContext(Context velocityContext)
+ {
+ this.velocityContext = velocityContext;
+ }
+
+ /**
+ * Sets an attribute for use within your layout and decoration templates. The value is always stored
+ * within the current <code>javax.portlet.Renderrequest</code> and is also stored within the current
+ * <code>org.apache.velocity.Context</code> if it is available.
+ *
+ * @param name to store the attribute under.
+ * @param obj object to set.
+ */
+ protected void setAttribute(String name, Object object)
+ {
+ renderRequest.setAttribute(name, object);
+ if(velocityContext != null)
+ {
+ velocityContext.put(name, object);
+ }
+ }
+
}
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java?rev=233226&r1=233225&r2=233226&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/velocity/JetspeedVelocityViewServlet.java Wed Aug 17 11:05:20 2005
@@ -183,6 +183,7 @@
"the HttpServletRequest.");
}
+ jpt.setVelocityContext(ctx);
ctx.put("jetspeed", jpt);
ctx.put("JS2RequestContext", requestContext);
ctx.put("renderRequest", renderRequest);
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org