taylor 2004/11/12 11:35:46
Modified:
portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks
Lookup.java GenericFrameworkPortlet.java
Log:
- add bean parameter to actions
- support for isNew for typical form beans
Revision Changes Path
1.2 +2 -1
jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/Lookup.java
Index: Lookup.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/Lookup.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- Lookup.java 12 Nov 2004 06:28:56 -0000 1.1
+++ Lookup.java 12 Nov 2004 19:35:46 -0000 1.2
@@ -25,4 +25,5 @@
public interface Lookup
{
boolean lookup(String key);
+ boolean isNew();
}
1.8 +33 -20
jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/GenericFrameworkPortlet.java
Index: GenericFrameworkPortlet.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/GenericFrameworkPortlet.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- GenericFrameworkPortlet.java 12 Nov 2004 06:28:56 -0000 1.7
+++ GenericFrameworkPortlet.java 12 Nov 2004 19:35:46 -0000 1.8
@@ -56,6 +56,7 @@
*/
public class GenericFrameworkPortlet extends GenericVelocityPortlet
{
+
/**
* Init Parameter: default spring configuration property
*/
@@ -69,11 +70,12 @@
private static final String PREFS_SUFFIX = ".prefs";
private static final String SESSION_ERROR_MESSAGES =
"portals.bridges.framework.errors";
+
/**
* Action signature for calling velocity portlet actions
*/
private static final Class[] VELOCITY_PORTLET_ACTION_SIGNATURE =
- { ActionRequest.class, ActionResponse.class};
+ { ActionRequest.class, ActionResponse.class, Object.class};
private static PortletApplicationModel model = null;
@@ -87,7 +89,7 @@
{
model.setExternalSupport(map);
}
-
+
public void init(PortletConfig config) throws PortletException
{
super.init(config);
@@ -141,7 +143,7 @@
if (errors.isEmpty())
{
request.getPortletSession().removeAttribute(SESSION_ERROR_MESSAGES,
PortletSession.PORTLET_SCOPE);
-
+
// (4) execute the velocity action
String action =
request.getParameter(FrameworkConstants.BRIDGES_ACTION);
if (null == action)
@@ -157,7 +159,7 @@
else
{
// call the specified action in the post params
- String actionForward = invokeVelocityPortletAction(action,
request, response);
+ String actionForward = invokeVelocityPortletAction(action,
request, response, bean);
forward = model.getForward(actionForward);
}
}
@@ -327,7 +329,8 @@
if (view == null || view.equals(this.getDefaultViewPage()))
{
// clear it
-
response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, view);
//(String) null);
+
response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, view); //(String)
+
// null);
}
else
{
@@ -339,7 +342,8 @@
if (view == null || view.equals(this.getDefaultEditPage()))
{
// clear it
-
response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, view);
//(String) null);
+
response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, view); //(String)
+
// null);
}
else
{
@@ -350,7 +354,8 @@
{
if (view == null || view.equals(this.getDefaultHelpPage()))
{
-
response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, view);
//(String) null);
+
response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, view); //(String)
+
// null);
}
else
{
@@ -365,7 +370,8 @@
if (view == null || view.equals(this.getDefaultViewPage()))
{
// clear it
-
response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, view);
//(String) null);
+
response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE, view); //(String)
+
// null);
}
else
{
@@ -377,7 +383,8 @@
if (view == null || view.equals(this.getDefaultEditPage()))
{
// clear it
-
response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, view);
//(String) null);
+
response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE, view); //(String)
+
// null);
}
else
{
@@ -388,7 +395,8 @@
{
if (view == null || view.equals(this.getDefaultHelpPage()))
{
-
response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, view);
//(String) null);
+
response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE, view); //(String)
+
// null);
}
else
{
@@ -402,7 +410,7 @@
{
// try to get the bean from the session first
- Object bean = getBeanFromSession(request, mb);
+ Object bean = getBeanFromSession(request, mb);
if (bean == null)
{
bean = model.createBean(mb);
@@ -472,14 +480,14 @@
*
* @param methodName
*/
- protected String invokeVelocityPortletAction(String methodName,
ActionRequest request, ActionResponse response)
- throws PortletException
+ protected String invokeVelocityPortletAction(String methodName,
ActionRequest request, ActionResponse response,
+ Object bean) throws PortletException
{
try
{
Method method = this.getClass().getMethod(methodName,
VELOCITY_PORTLET_ACTION_SIGNATURE);
Object[] parameters =
- { request, response};
+ { request, response, bean};
String result = (String) method.invoke(this, parameters);
return result;
}
@@ -523,9 +531,10 @@
break;
}
putRequestVariable(request, FrameworkConstants.FORWARD_TOOL, new
Forwarder(model, request, response));
- Map errors =
(Map)request.getPortletSession().getAttribute(SESSION_ERROR_MESSAGES,
PortletSession.PORTLET_SCOPE);
+ Map errors = (Map)
request.getPortletSession().getAttribute(SESSION_ERROR_MESSAGES,
+ PortletSession.PORTLET_SCOPE);
if (errors != null)
- {
+ {
putRequestVariable(request, "ERRORS", errors);
}
request.setAttribute(FrameworkConstants.MODEL_TOOL, model);
@@ -538,8 +547,13 @@
private void beanToContext(RenderRequest request, String view, ModelBean
mb)
{
Object bean;
+
+ String key = null;
+ if (mb.getLookupKey() != null)
+ {
+ key = (String) request.getAttribute(mb.getLookupKey());
+ }
- String key = (String)request.getAttribute(mb.getLookupKey());
if (key != null)
{
bean = model.lookupBean(mb, key);
@@ -569,7 +583,6 @@
putRequestVariable(request, FrameworkConstants.PREFS_VARIABLE, bean);
}
-
private Object getBeanFromSession(PortletRequest request, ModelBean mb)
{
return
request.getPortletSession().getAttribute(makeModelBeanKey(mb));
@@ -582,12 +595,12 @@
request.getPortletSession().setAttribute(makeModelBeanKey(mb),
bean);
}
}
-
+
private String makeModelBeanKey(ModelBean mb)
{
return "ModelBean:" + mb.getBeanName();
}
-
+
/**
* Specific for Velocity
*
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]