taylor 2004/11/04 14:17:30
Modified:
portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks
GenericFrameworkPortlet.java
Added:
portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks
ForwardConstants.java Forwarder.java
FrameworkConstants.java
Removed:
portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/model
ForwardConstants.java
Log:
new features implemented:
- portlet forwards
- 1..n views per portlet mode
Revision Changes Path
1.2 +228 -206
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- GenericFrameworkPortlet.java 4 Nov 2004 18:09:33 -0000 1.1
+++ GenericFrameworkPortlet.java 4 Nov 2004 22:17:30 -0000 1.2
@@ -39,7 +39,6 @@
import org.apache.commons.beanutils.BeanUtils;
-import org.apache.portals.bridges.frameworks.model.ForwardConstants;
import org.apache.portals.bridges.frameworks.model.ModelBean;
import org.apache.portals.bridges.frameworks.model.PortletApplicationModel;
import org.apache.portals.bridges.frameworks.spring.PortletApplicationModelImpl;
@@ -48,11 +47,13 @@
/**
* SpringVelocityPortlet
*
- * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
- * @version $Id$
+ * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor </a>
+ * @version $Id: GenericFrameworkPortlet.java,v 1.1 2004/11/04 18:09:33 taylor
+ * Exp $
*/
public class GenericFrameworkPortlet extends GenericVelocityPortlet
-{
+{
+
/**
* Init Parameter: default spring configuration property
*/
@@ -62,303 +63,329 @@
* Init Parameter: default velocity configuration property
*/
private static final String INITPARAM_VALIDATOR_CONFIG =
"validator-configuration";
+
+ private static final String PREFS_SUFFIX = ".prefs";
/**
* Action signature for calling velocity portlet actions
*/
- private static final Class[] VELOCITY_PORTLET_ACTION_SIGNATURE =
- {
- ActionRequest.class,
- ActionResponse.class
- };
-
+ private static final Class[] VELOCITY_PORTLET_ACTION_SIGNATURE =
+ { ActionRequest.class, ActionResponse.class};
+
private static PortletApplicationModel model = null;
-
+
private static Object semaphore = new Object();
-
+
public GenericFrameworkPortlet()
{
}
- public void init(PortletConfig config)
- throws PortletException
+ public void init(PortletConfig config) throws PortletException
{
super.init(config);
String springConfig = this.getInitParameter(INITPARAM_SPRING_CONFIG);
- if (springConfig == null)
- {
- throw new PortletException("Spring Configuration file not specified");
- }
+ if (springConfig == null) { throw new PortletException(
+ "Spring Configuration file not specified"); }
- String validatorConfig = this.getInitParameter(INITPARAM_VALIDATOR_CONFIG);
+ String validatorConfig = this
+ .getInitParameter(INITPARAM_VALIDATOR_CONFIG);
synchronized (semaphore)
{
if (null == model)
{
- model = new PortletApplicationModelImpl(springConfig,
validatorConfig);
+ model = new PortletApplicationModelImpl(springConfig,
+ validatorConfig);
model.init(config);
}
- }
+ }
}
-
- /**
- * Invoke the velocity portlet pipeline:
- * (1) determine the logical view
- * (2) restore state from Form to Bean
- * (3) validate the bean
- * -- or --
- * (2) restore state from Form to Prefs
- *
- * (4) execute the velocity action
- * (5) forward to another view
+
+ /**
+ * Invoke the velocity portlet pipeline: (1) determine the logical view (2)
+ * restore state from Form to Bean (3) validate the bean -- or -- (2)
+ * restore state from Form to Prefs
*
+ * (4) execute the velocity action (5) forward to another view
+ *
*/
public void processAction(ActionRequest request, ActionResponse response)
- throws PortletException, IOException
+ throws PortletException, IOException
{
- // (1) Determine the current view
+ // (1) Determine the current view
String view = determineLogicalView(request);
-
+
Object bean = null;
- ModelBean mb = model.getBean(view);
-
+ ModelBean mb = model.getBean(view);
+
if (mb.getBeanType() == ModelBean.PREFS_MAP)
{
// (2) restore state from Form to Prefs
bean = formToPrefs(request, view, mb);
- }
- else
+ } else
{
// (2) restore state from Form to Bean
bean = formToBean(request, view, mb);
}
-
+
String forward = null;
-
+
// (3) validate the bean
if (model.validate(bean, view))
{
-
+
// (4) execute the velocity action
- String action = request.getParameter("velocity.action");
+ String action = request.getParameter(FrameworkConstants.BRIDGES_ACTION);
if (null == action)
{
if (mb.getBeanType() == ModelBean.PREFS_MAP)
{
// store prefs
- storePreferences(request, (Map)bean);
+ storePreferences(request, (Map) bean);
}
-
+
forward = model.getForward(view, ForwardConstants.SUCCESS);
- }
- else
+ } else
{
// call the specified action in the post params
- String actionForward = invokeVelocityPortletAction(action, request,
response);
- forward = model.getForward(actionForward);
- }
- }
- else
+ String actionForward = invokeVelocityPortletAction(action,
+ request, response);
+ forward = model.getForward(actionForward);
+ }
+ } else
{
// failed validation
- forward = model.getForward(view, ForwardConstants.FAILURE);
+ forward = model.getForward(view, ForwardConstants.FAILURE);
}
- // (5) forward to another view
+ // (5) forward to another view
forwardToView(request, response, forward);
-
+
}
-
- protected void forwardToView(PortletRequest request, ActionResponse response,
String forward)
+
+ protected void forwardToView(ActionRequest request,
+ ActionResponse response, String forward)
{
- if (forward == null)
- {
- return; // stay on same page
+ if (forward == null) { return; // stay on same page
}
-
- StringTokenizer tokenizer = new StringTokenizer(forward, ",");
+
+ String logicalView = null;
+ PortletMode newMode = null;
+ StringTokenizer tokenizer = new StringTokenizer(forward,
ForwardConstants.DELIMITER);
while (tokenizer.hasMoreTokens())
{
String token = tokenizer.nextToken();
- if (token.startsWith("mode:"))
+ if (token.startsWith(ForwardConstants.MODE_PREFIX))
{
- setPortletMode(response, token.substring("mode:".length()));
- }
- else if (token.startsWith("state:"))
+ newMode = setPortletMode(response,
token.substring(ForwardConstants.MODE_PREFIX
+ .length()));
+ } else if (token.startsWith(ForwardConstants.STATE_PREFIX))
{
- setWindowState(response, token.substring("state:".length()));
- }
- else
+ setWindowState(response,
token.substring(ForwardConstants.STATE_PREFIX.length()));
+ } else
{
- setLogicalView(response, token);
+ logicalView = token;
}
- }
-
+ }
+ if (logicalView != null)
+ {
+ setLogicalView(request, response, logicalView, newMode);
+ }
+
}
private void setWindowState(ActionResponse response, String forward)
{
try
{
- if (forward.equals("maximized"))
+ if (forward.equals(ForwardConstants.MAXIMIZED))
{
response.setWindowState(WindowState.MAXIMIZED);
- }
- else if (forward.equals("minimized"))
+ } else if (forward.equals(ForwardConstants.MINIMIZED))
{
response.setWindowState(WindowState.MINIMIZED);
- }
- else if (forward.equals("normal"))
+ } else if (forward.equals(ForwardConstants.NORMAL))
{
response.setWindowState(WindowState.NORMAL);
}
- }
- catch (WindowStateException e)
+ } catch (WindowStateException e)
{
}
}
-
- private void setPortletMode(ActionResponse response, String forward)
+
+ private PortletMode setPortletMode(ActionResponse response, String forward)
{
+ PortletMode mode = null;
try
{
- if (forward.equals("view"))
+ if (forward.equals(ForwardConstants.VIEW))
{
response.setPortletMode(PortletMode.VIEW);
- }
- else if (forward.equals("edit"))
+ mode = PortletMode.VIEW;
+ } else if (forward.equals(ForwardConstants.EDIT))
{
response.setPortletMode(PortletMode.EDIT);
- }
- else if (forward.equals("help"))
+ mode = PortletMode.EDIT;
+ } else if (forward.equals(ForwardConstants.HELP))
{
response.setPortletMode(PortletMode.HELP);
- }
- }
- catch (PortletModeException e)
+ mode = PortletMode.HELP;
+ }
+ } catch (PortletModeException e)
{
}
+ return mode;
}
-
+
protected void storePreferences(PortletRequest request, Map bean)
- throws IOException, PortletException
+ throws IOException, PortletException
{
String key = "none";
-
+
try
{
PortletPreferences prefs = request.getPreferences();
Iterator it = bean.entrySet().iterator();
while (it.hasNext())
{
- Map.Entry entry = (Map.Entry)it.next();
- key = (String)entry.getKey();
+ Map.Entry entry = (Map.Entry) it.next();
+ key = (String) entry.getKey();
if (!prefs.isReadOnly(key))
{
- prefs.setValue(key, (String)entry.getValue());
+ prefs.setValue(key, (String) entry.getValue());
}
}
prefs.store();
- }
- catch (ReadOnlyException roe)
+ } catch (ReadOnlyException roe)
{
- throw new PortletException("Failed to set preference " + key + ", value
is readonly");
+ throw new PortletException("Failed to set preference " + key
+ + ", value is readonly");
}
-
+
}
-
+
/**
- * Get the current logical view based on velocity.view request parameter
- * If the request parameter is not found, fall back to init param
- *
+ * Get the current logical view based on velocity.view request parameter If
+ * the request parameter is not found, fall back to init param
+ *
* @param request
* @return the current view
* @throws PortletException
*/
protected String determineLogicalView(PortletRequest request)
- throws PortletException
+ throws PortletException
{
- // TODO: we could store the current view in the session
- String view = request.getParameter("velocity.view");
- if (view == null)
+ String view = null;
+ if (request.getPortletMode().equals(PortletMode.VIEW))
{
- if (request.getPortletMode().equals(PortletMode.VIEW))
+ view = request.getParameter(FrameworkConstants.VIEW_VIEW_MODE);
+ if (view == null)
{
view = this.getDefaultViewPage();
}
- else if (request.getPortletMode().equals(PortletMode.EDIT))
+ } else if (request.getPortletMode().equals(PortletMode.EDIT))
+ {
+ view = request.getParameter(FrameworkConstants.VIEW_EDIT_MODE);
+ if (view == null)
{
view = this.getDefaultEditPage();
}
- else if (request.getPortletMode().equals(PortletMode.HELP))
+ } else if (request.getPortletMode().equals(PortletMode.HELP))
+ {
+ view = request.getParameter(FrameworkConstants.VIEW_VIEW_MODE);
+ if (view == null)
{
view = this.getDefaultHelpPage();
}
- if (null == view)
- {
- throw new PortletException("Portlet error: cant find view resource
for portlet: " + this.getPortletName());
- }
}
- return view;
+ if (null == view) { throw new PortletException(
+ "Portlet error: cant find view resource for portlet: "
+ + this.getPortletName()); }
+ return view;
}
-
- protected void setLogicalView(ActionResponse response, String view)
+
+ protected void setLogicalView(ActionRequest request,
+ ActionResponse response, String view, PortletMode newMode)
{
- response.setRenderParameter("velocity.view", view);
+ if (newMode == null)
+ {
+ if (request.getPortletMode().equals(PortletMode.VIEW))
+ {
+ response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE,
view);
+ } else if (request.getPortletMode().equals(PortletMode.EDIT))
+ {
+ response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE,
view);
+ } else if (request.getPortletMode().equals(PortletMode.HELP))
+ {
+ response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE,
view);
+ }
+ } else
+ {
+ if (newMode.equals(PortletMode.VIEW))
+ {
+ response.setRenderParameter(FrameworkConstants.VIEW_VIEW_MODE,
view);
+ } else if (newMode.equals(PortletMode.EDIT))
+ {
+ response.setRenderParameter(FrameworkConstants.VIEW_EDIT_MODE,
view);
+ } else if (newMode.equals(PortletMode.HELP))
+ {
+ response.setRenderParameter(FrameworkConstants.VIEW_HELP_MODE,
view);
+ }
+ }
}
-
+
protected Object formToBean(ActionRequest request, String view, ModelBean mb)
- throws PortletException
- {
-
+ throws PortletException
+ {
+
// try to get the bean from the session first
- Object bean = request.getPortletSession().getAttribute(mb.getBeanName());
+ Object bean = request.getPortletSession()
+ .getAttribute(mb.getBeanName());
if (bean == null)
{
- bean = model.createBean(mb);
- if (bean == null)
- {
- throw new PortletException("Portlet Action error in creating bean
for view: " + view);
- }
+ bean = model.createBean(mb);
+ if (bean == null) { throw new PortletException(
+ "Portlet Action error in creating bean for view: " + view); }
request.getPortletSession().setAttribute(mb.getBeanName(), bean);
}
-
+
Map params = request.getParameterMap();
try
{
BeanUtils.populate(bean, params);
- }
- catch (Exception e)
+ } catch (Exception e)
{
- throw new PortletException("Portlet Action error in populating bean: "
+ mb.getBeanName(), e);
+ throw new PortletException(
+ "Portlet Action error in populating bean: "
+ + mb.getBeanName(), e);
}
return bean;
}
-
- protected Object formToPrefs(ActionRequest request, String view, ModelBean mb)
- throws PortletException
- {
+
+ protected Object formToPrefs(ActionRequest request, String view,
+ ModelBean mb) throws PortletException
+ {
Map params = request.getParameterMap();
- Map bean = (Map)request.getPortletSession().getAttribute(view + ".prefs");
+ Map bean = (Map) request.getPortletSession().getAttribute(
+ view + PREFS_SUFFIX);
if (bean == null)
{
PortletPreferences prefs = request.getPreferences();
-
- bean = model.createPrefsBean(mb, prefs.getMap());
-
- request.getPortletSession().setAttribute(view + ".prefs", bean);
+
+ bean = model.createPrefsBean(mb, prefs.getMap());
+
+ request.getPortletSession().setAttribute(view + PREFS_SUFFIX, bean);
}
-
+
try
{
Iterator it = params.entrySet().iterator();
while (it.hasNext())
{
- Map.Entry entry = (Map.Entry)it.next();
- Object value = entry.getValue();
- String key = (String)entry.getKey();
+ Map.Entry entry = (Map.Entry) it.next();
+ Object value = entry.getValue();
+ String key = (String) entry.getKey();
if (null == bean.get(key))
{
continue;
@@ -366,133 +393,128 @@
if (value instanceof String)
{
bean.put(key, value);
- }
- else if (value instanceof String[])
+ } else if (value instanceof String[])
{
- bean.put(key, ((String[])value)[0]);
+ bean.put(key, ((String[]) value)[0]);
}
- }
- }
- catch (Exception e)
+ }
+ } catch (Exception e)
{
- throw new PortletException("Portlet Action error in populating bean:
", e);
+ throw new PortletException(
+ "Portlet Action error in populating bean: ", e);
}
return bean;
}
-
+
/**
- * Invokes a specific Velocity Portlet Action
- * All portlet actions must have the signature:
+ * Invokes a specific Velocity Portlet Action All portlet actions must have
+ * the signature:
*
* String methodName(ActionRequest request, ActionResponse response)
*
* @param methodName
*/
- protected String invokeVelocityPortletAction(String methodName, ActionRequest
request, ActionResponse response)
- throws PortletException
+ protected String invokeVelocityPortletAction(String methodName,
+ ActionRequest request, ActionResponse response)
+ throws PortletException
{
try
- {
- Method method = this.getClass().getMethod(methodName,
VELOCITY_PORTLET_ACTION_SIGNATURE);
- Object[] parameters =
- {
- request,
- response
- };
- String result = (String)method.invoke(this, parameters);
+ {
+ Method method = this.getClass().getMethod(methodName,
+ VELOCITY_PORTLET_ACTION_SIGNATURE);
+ Object[] parameters =
+ { request, response};
+ String result = (String) method.invoke(this, parameters);
return result;
- }
- catch (Exception e)
+ } catch (Exception e)
{
- throw new PortletException("Failed to invoke portlet action: " +
methodName, e);
+ throw new PortletException("Failed to invoke portlet action: "
+ + methodName, e);
}
}
public void doView(RenderRequest request, RenderResponse response)
- throws PortletException, IOException
+ throws PortletException, IOException
{
doRender(request, response);
}
public void doHelp(RenderRequest request, RenderResponse response)
- throws PortletException, IOException
+ throws PortletException, IOException
{
doRender(request, response);
}
-
+
public void doEdit(RenderRequest request, RenderResponse response)
- throws PortletException, IOException
+ throws PortletException, IOException
{
doRender(request, response);
}
-
+
protected void doRender(RenderRequest request, RenderResponse response)
- throws PortletException, IOException
+ throws PortletException, IOException
{
String view = determineLogicalView(request);
- if (view == null)
- {
- throw new PortletException("Logical View not found: " + view);
- }
-
+ if (view == null) { throw new PortletException(
+ "Logical View not found: " + view); }
+
String template = model.getTemplate(view);
- if (template == null)
- {
- throw new PortletException("Template not found for Logical View: " +
view);
- }
+ if (template == null) { throw new PortletException(
+ "Template not found for Logical View: " + view); }
ModelBean mb = model.getBean(view);
if (mb.getBeanType() == ModelBean.PREFS_MAP)
{
prefsToContext(request, view, mb);
- }
- else
+ } else
{
beanToContext(request, view, mb);
}
-
- PortletContext context = getPortletContext();
+
+ putRequestVariable(request, FrameworkConstants.FORWARD_TOOL, new
Forwarder(model, request,
+ response));
+
+ PortletContext context = getPortletContext();
PortletRequestDispatcher rd = context.getRequestDispatcher(template);
rd.include(request, response);
- }
-
-
+ }
+
private void beanToContext(RenderRequest request, String view, ModelBean mb)
{
- Object bean = request.getPortletSession().getAttribute(mb.getBeanName());
+ Object bean = request.getPortletSession()
+ .getAttribute(mb.getBeanName());
if (bean == null)
{
bean = model.createBean(mb);
- if (bean == null)
- {
- return;
- }
+ if (bean == null) { return; }
request.getPortletSession().setAttribute(mb.getBeanName(), bean);
}
- putRequestVariable(request, mb.getBeanName(), bean);
+ putRequestVariable(request, mb.getBeanName(), bean);
}
-
+
private void prefsToContext(RenderRequest request, String view, ModelBean mb)
- {
- Map bean = (Map)request.getPortletSession().getAttribute(view + ".prefs");
+ {
+ Map bean = (Map) request.getPortletSession().getAttribute(
+ view + PREFS_SUFFIX);
if (bean == null)
{
- PortletPreferences prefs = request.getPreferences();
- bean = model.createPrefsBean(mb, prefs.getMap());
- request.getPortletSession().setAttribute(view + ".prefs", bean);
+ PortletPreferences prefs = request.getPreferences();
+ bean = model.createPrefsBean(mb, prefs.getMap());
+ request.getPortletSession().setAttribute(view + PREFS_SUFFIX, bean);
}
- putRequestVariable(request, "prefs", bean);
+ putRequestVariable(request, FrameworkConstants.PREFS_VARIABLE, bean);
}
-
+
/**
* Specific for Velocity
*
* @param name
* @param value
*/
- protected void putRequestVariable(RenderRequest request, String name, Object
value)
+ protected void putRequestVariable(RenderRequest request, String name,
+ Object value)
{
request.setAttribute(name, value);
}
-}
+}
\ No newline at end of file
1.1
jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/ForwardConstants.java
Index: ForwardConstants.java
===================================================================
/*
* Copyright 2000-2004 The Apache Software Foundation.
*
* Licensed 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.portals.bridges.frameworks;
/**
* ForwardConstants
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: ForwardConstants.java,v 1.1 2004/11/04 22:17:30 taylor Exp $
*/
public interface ForwardConstants
{
final String SUCCESS = "success";
final String FAILURE = "failure";
final String MODE_PREFIX = "mode:";
final String STATE_PREFIX = "state:";
final String MAXIMIZED = "maximized";
final String MINIMIZED = "minimized";
final String NORMAL = "normal";
final String VIEW = "view";
final String EDIT = "edit";
final String HELP = "help";
final String DELIMITER = ",";
}
1.1
jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/Forwarder.java
Index: Forwarder.java
===================================================================
/*
* Copyright 2000-2004 The Apache Software Foundation.
*
* Licensed 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.portals.bridges.frameworks;
import java.util.StringTokenizer;
import javax.portlet.PortletMode;
import javax.portlet.PortletModeException;
import javax.portlet.PortletURL;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;
import javax.portlet.WindowStateException;
import org.apache.portals.bridges.frameworks.model.PortletApplicationModel;
/**
* Forwarder
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: Forwarder.java,v 1.1 2004/11/04 22:17:30 taylor Exp $
*/
public class Forwarder
{
PortletApplicationModel model;
RenderRequest request;
RenderResponse response;
public Forwarder(PortletApplicationModel model,
RenderRequest request,
RenderResponse response)
{
this.model = model;
this.response = response;
}
private Forwarder()
{
}
/**
* Get a link from a view name plus optional comma separated mode, window state
* Supports syntax from forwards
* Examples of viewName parameter:
* "myview"
* "myview"
* "myview,state:maximized"
* "myview,state:normal"
* "myview,mode:view,state:maximized"
* "myview,mode:edit,state:normal"
*
* @param actionForward
* @return
*/
public PortletURL getView(String viewName)
{
PortletURL url = response.createRenderURL();
buildLink(viewName, url);
return url;
}
/**
* Get a link from a action forward logical name
* in the form of view:action where action can be
* "success" or "failure"
*
* @param actionForward
* @return
*/
public PortletURL getLink(String actionForward)
{
String forwardName = model.getForward(actionForward);
PortletURL url = response.createRenderURL();
return url;
}
/**
* Get a link from a action forward logical name
* for the given action
*
* @param actionForward
* @return
*/
public PortletURL getLink(String forward, String action)
{
String actionForward = model.getForward(forward, action);
PortletURL url = response.createRenderURL();
buildLink(actionForward, url);
return url;
}
// TODO: signatures of getLink with 'dynamic' parameters i.e. pass in a map of
runtime binding parameters
private void buildLink(String actionForward, PortletURL url)
{
if (actionForward == null)
{
return; // no parameters
}
PortletMode mode = null;
StringTokenizer tokenizer = new StringTokenizer(actionForward,
ForwardConstants.DELIMITER);
while (tokenizer.hasMoreTokens())
{
String token = tokenizer.nextToken();
if (token.startsWith(ForwardConstants.MODE_PREFIX))
{
mode =
setPortletMode(token.substring(ForwardConstants.MODE_PREFIX.length()), url);
}
else if (token.startsWith(ForwardConstants.STATE_PREFIX))
{
setWindowState(token.substring(ForwardConstants.STATE_PREFIX.length()), url);
}
else
{
if (mode == null)
{
mode = request.getPortletMode();
}
if (mode.equals(PortletMode.VIEW))
{
url.setParameter(FrameworkConstants.VIEW_VIEW_MODE, token);
}
else if (mode.equals(PortletMode.EDIT))
{
url.setParameter(FrameworkConstants.VIEW_EDIT_MODE, token);
}
else if (mode.equals(PortletMode.HELP))
{
url.setParameter(FrameworkConstants.VIEW_HELP_MODE, token);
}
}
}
}
private void setWindowState(String forward, PortletURL url)
{
try
{
if (forward.equals(ForwardConstants.MAXIMIZED))
{
url.setWindowState(WindowState.MAXIMIZED);
}
else if (forward.equals(ForwardConstants.MINIMIZED))
{
url.setWindowState(WindowState.MINIMIZED);
}
else if (forward.equals(ForwardConstants.NORMAL))
{
url.setWindowState(WindowState.NORMAL);
}
}
catch (WindowStateException e)
{
}
}
private PortletMode setPortletMode(String forward, PortletURL url)
{
PortletMode mode = null;
try
{
if (forward.equals(ForwardConstants.VIEW))
{
url.setPortletMode(PortletMode.VIEW);
mode = PortletMode.VIEW;
}
else if (forward.equals(ForwardConstants.EDIT))
{
url.setPortletMode(PortletMode.EDIT);
mode = PortletMode.EDIT;
}
else if (forward.equals(ForwardConstants.HELP))
{
url.setPortletMode(PortletMode.HELP);
mode = PortletMode.HELP;
}
}
catch (PortletModeException e)
{
}
return mode;
}
}
1.1
jakarta-jetspeed-2/portals-bridges/frameworks/src/java/org/apache/portals/bridges/frameworks/FrameworkConstants.java
Index: FrameworkConstants.java
===================================================================
/*
* Copyright 2000-2004 The Apache Software Foundation.
*
* Licensed 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.portals.bridges.frameworks;
/**
* FrameworkConstants
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
* @version $Id: FrameworkConstants.java,v 1.1 2004/11/04 22:17:30 taylor Exp $
*/
public interface FrameworkConstants
{
/**
* Use this post parameter name for your actions
*/
final String BRIDGES_ACTION = "velocity.action";
/**
* The name of the forward tool
*/
final String FORWARD_TOOL = "forward";
/**
* The name of the prefs variable
*/
final String PREFS_VARIABLE = "prefs";
/**
* Current view for view mode
*/
final String VIEW_VIEW_MODE = "bridges.view.view";
/**
* Current view for edit mode
*/
final String VIEW_EDIT_MODE = "bridges.view.edit";
/**
* Current view for help mode
*/
final String VIEW_HELP_MODE = "bridges.view.help";
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]