weaver 2003/08/11 16:29:22
Modified: portal/src/java/org/apache/jetspeed/engine/core
PortalControlParameter.java
Log:
getPortletWindowOfAction now uses the action key and PortletWindowFactory
to look up the window on which the action is to be invoked
- Did some checkstylin'
Revision Changes Path
1.3 +97 -68
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/engine/core/PortalControlParameter.java
Index: PortalControlParameter.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/engine/core/PortalControlParameter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PortalControlParameter.java 29 Jul 2003 03:58:54 -0000 1.2
+++ PortalControlParameter.java 11 Aug 2003 23:29:22 -0000 1.3
@@ -62,7 +62,20 @@
import javax.portlet.PortletMode;
import javax.portlet.WindowState;
+import org.apache.jetspeed.Jetspeed;
+import org.apache.jetspeed.aggregator.PortletWindowFactory;
+import org.apache.jetspeed.exception.JetspeedException;
+import org.apache.jetspeed.om.common.window.PortletWindowImpl;
+import org.apache.jetspeed.request.RequestContext;
+import org.apache.jetspeed.services.entity.PortletEntityAccess;
+import org.apache.jetspeed.services.registry.JetspeedPortletRegistry;
+import org.apache.jetspeed.util.JetspeedObjectID;
+import org.apache.pluto.om.entity.PortletEntity;
+import org.apache.pluto.om.portlet.PortletDefinition;
import org.apache.pluto.om.window.PortletWindow;
+import org.apache.pluto.om.window.PortletWindowCtrl;
+import org.apache.pluto.om.window.PortletWindowList;
+import org.apache.pluto.om.window.PortletWindowListCtrl;
import org.apache.pluto.util.StringUtils;
/**
@@ -83,12 +96,13 @@
static public final String PREV_STATE = "ps";
static public final String RENDER_PARAM = "rp";
static public final String STATE = "st";
+ static public final String KEY_DELIMITER = ":";
public static String decodeParameterName(String paramName)
{
return paramName.substring(PREFIX.length());
}
-
+
public static String decodeParameterValue(String paramName, String paramValue)
{
return paramValue;
@@ -97,11 +111,14 @@
private static String decodeRenderParamName(String encodedParamName)
{
StringTokenizer tokenizer = new StringTokenizer(encodedParamName, "_");
- if (!tokenizer.hasMoreTokens()) return null;
+ if (!tokenizer.hasMoreTokens())
+ return null;
String constant = tokenizer.nextToken();
- if (!tokenizer.hasMoreTokens()) return null;
+ if (!tokenizer.hasMoreTokens())
+ return null;
String objectId = tokenizer.nextToken();
- if (!tokenizer.hasMoreTokens()) return null;
+ if (!tokenizer.hasMoreTokens())
+ return null;
String name = tokenizer.nextToken();
return name;
}
@@ -109,13 +126,15 @@
private static String[] decodeRenderParamValues(String encodedParamValues)
{
StringTokenizer tokenizer = new StringTokenizer(encodedParamValues, "_");
- if (!tokenizer.hasMoreTokens()) return null;
+ if (!tokenizer.hasMoreTokens())
+ return null;
String _count = tokenizer.nextToken();
int count = Integer.valueOf(_count).intValue();
String[] values = new String[count];
- for (int i=0; i<count; i++)
+ for (int i = 0; i < count; i++)
{
- if (!tokenizer.hasMoreTokens()) return null;
+ if (!tokenizer.hasMoreTokens())
+ return null;
values[i] = decodeValue(tokenizer.nextToken());
}
return values;
@@ -123,14 +142,14 @@
private static String decodeValue(String value)
{
- value = StringUtils.replace(value, "0x1", "_" );
- value = StringUtils.replace(value, "0x2", "." );
+ value = StringUtils.replace(value, "0x1", "_");
+ value = StringUtils.replace(value, "0x2", ".");
return value;
}
public static String encodeParameter(String param)
{
- return PREFIX+param;
+ return PREFIX + param;
}
public static String encodeRenderParamName(PortletWindow window, String
paramName)
@@ -148,7 +167,7 @@
{
StringBuffer returnvalue = new StringBuffer(100);
returnvalue.append(paramValues.length);
- for (int i=0; i<paramValues.length; i++)
+ for (int i = 0; i < paramValues.length; i++)
{
returnvalue.append("_");
returnvalue.append(encodeValue(paramValues[i]));
@@ -156,33 +175,32 @@
return returnvalue.toString();
}
-
private static String encodeValue(String value)
{
- value = StringUtils.replace(value, "_", "0x1" );
- value = StringUtils.replace(value, ".", "0x2" );
+ value = StringUtils.replace(value, "_", "0x1");
+ value = StringUtils.replace(value, ".", "0x2");
return value;
}
public static String getRenderParamKey(PortletWindow window)
{
- return RENDER_PARAM+"_"+window.getId().toString();
+ return RENDER_PARAM + "_" + window.getId().toString();
}
public static boolean isControlParameter(String param)
{
return param.startsWith(PREFIX);
}
-
+
public static boolean isStateFullParameter(String param)
{
if (isControlParameter(param))
{
- if ((param.startsWith(PREFIX+MODE)) ||
- (param.startsWith(PREFIX+PREV_MODE)) ||
- (param.startsWith(PREFIX+STATE)) ||
- (param.startsWith(PREFIX+PREV_STATE)) ||
- (param.startsWith(PREFIX+RENDER_PARAM)))
+ if ((param.startsWith(PREFIX + MODE))
+ || (param.startsWith(PREFIX + PREV_MODE))
+ || (param.startsWith(PREFIX + STATE))
+ || (param.startsWith(PREFIX + PREV_STATE))
+ || (param.startsWith(PREFIX + RENDER_PARAM)))
{
return true;
}
@@ -209,7 +227,7 @@
while (keyIterator.hasNext())
{
- String name = (String)keyIterator.next();
+ String name = (String) keyIterator.next();
if (name.startsWith(prefix))
{
keyIterator.remove();
@@ -219,37 +237,35 @@
private String getActionKey(PortletWindow window)
{
- return ACTION+"_"+window.getId().toString();
+ return ACTION + "_" + window.getId().toString();
}
public PortletMode getMode(PortletWindow window)
{
- String mode = (String)stateFullControlParameter.get(getModeKey(window));
- if (mode!=null)
+ String mode = (String) stateFullControlParameter.get(getModeKey(window));
+ if (mode != null)
return new PortletMode(mode);
- else
+ else
return PortletMode.VIEW;
}
-
-
-
private String getModeKey(PortletWindow window)
{
- return MODE+"_"+window.getId().toString();
+ return MODE + "_" + window.getId().toString();
}
- public PortletWindow getPortletWindowOfAction()
+ public PortletWindow getPortletWindowOfAction() throws JetspeedException
{
Iterator iterator = getStateLessControlParameter().keySet().iterator();
+ PortletWindow portletWindow = null;
while (iterator.hasNext())
{
- String name = (String)iterator.next();
+ String name = (String) iterator.next();
if (name.startsWith(ACTION))
{
- String id = name.substring(ACTION.length()+1);
+ String id = name.substring(ACTION.length() + 1);
/*
-
+
TODO: BROKEN: need to go the profiler to get the profile, psml, and
then window for an entity
this is normally done in the aggregator valve, need to sort out the
sequence
@@ -258,35 +274,50 @@
return ((PortletFragment)fragment).getPortletWindow();
}
*/
+
+ StringTokenizer idTokenizer = new StringTokenizer(id,
KEY_DELIMITER);
+ String portletName = idTokenizer.nextToken();
+ String sequence = idTokenizer.nextToken();
+ String entityName = idTokenizer.nextToken();
+
+ PortletDefinition portletDefinition =
JetspeedPortletRegistry.getPortletDefinitionByUniqueName(portletName);
+ if (portletDefinition == null)
+ {
+ throw new JetspeedException("Failed to load: " + portletName +
" from registry");
+ }
+
+ portletWindow = PortletWindowFactory.getWindow(portletDefinition,
entityName);
+
}
}
- return null;
+
+ return portletWindow;
}
public PortletMode getPrevMode(PortletWindow window)
{
- String mode = (String)stateFullControlParameter.get(getPrevModeKey(window));
- if (mode!=null)
+ String mode = (String)
stateFullControlParameter.get(getPrevModeKey(window));
+ if (mode != null)
return new PortletMode(mode);
- else
+ else
return null;
}
private String getPrevModeKey(PortletWindow window)
{
- return PREV_MODE+"_"+window.getId().toString();
+ return PREV_MODE + "_" + window.getId().toString();
}
public WindowState getPrevState(PortletWindow window)
{
- String state =
(String)stateFullControlParameter.get(getPrevStateKey(window));
- if (state!=null)
+ String state = (String)
stateFullControlParameter.get(getPrevStateKey(window));
+ if (state != null)
return new WindowState(state);
- else
+ else
return null;
}
private String getPrevStateKey(PortletWindow window)
{
- return PREV_STATE+"_"+window.getId().toString();
+ return PREV_STATE + "_" + window.getId().toString();
}
public Iterator getRenderParamNames(PortletWindow window)
@@ -297,10 +328,10 @@
while (keyIterator.hasNext())
{
- String name = (String)keyIterator.next();
+ String name = (String) keyIterator.next();
if (name.startsWith(prefix))
{
- returnvalue.add(name.substring(prefix.length()+1));
+ returnvalue.add(name.substring(prefix.length() + 1));
}
}
@@ -309,7 +340,7 @@
public String[] getRenderParamValues(PortletWindow window, String paramName)
{
- String encodedValues =
(String)stateFullControlParameter.get(encodeRenderParamName(window, paramName));
+ String encodedValues = (String)
stateFullControlParameter.get(encodeRenderParamName(window, paramName));
String[] values = decodeRenderParamValues(encodedValues);
return values;
}
@@ -321,10 +352,10 @@
public WindowState getState(PortletWindow window)
{
- String state = (String)stateFullControlParameter.get(getStateKey(window));
- if (state!=null)
+ String state = (String) stateFullControlParameter.get(getStateKey(window));
+ if (state != null)
return new WindowState(state);
- else
+ else
return WindowState.NORMAL;
}
@@ -335,9 +366,9 @@
private String getStateKey(PortletWindow window)
{
- return STATE+"_"+window.getId().toString();
+ return STATE + "_" + window.getId().toString();
}
-
+
public Map getStateLessControlParameter()
{
return stateLessControlParameter;
@@ -348,7 +379,7 @@
Iterator iterator = stateFullControlParameter.keySet().iterator();
while (iterator.hasNext())
{
- String name = (String)iterator.next();
+ String name = (String) iterator.next();
if (name.startsWith(STATE))
{
if
(stateFullControlParameter.get(name).equals(WindowState.MAXIMIZED.toString()))
@@ -362,13 +393,13 @@
public void setAction(PortletWindow window)
{
-
getStateFullControlParameter().put(getActionKey(window),ACTION.toUpperCase());
+ getStateFullControlParameter().put(getActionKey(window),
ACTION.toUpperCase());
}
public void setMode(PortletWindow window, PortletMode mode)
{
Object prevMode = stateFullControlParameter.get(getModeKey(window));
- if (prevMode!=null)
+ if (prevMode != null)
stateFullControlParameter.put(getPrevModeKey(window), prevMode);
// set current mode
stateFullControlParameter.put(getModeKey(window), mode.toString());
@@ -376,28 +407,26 @@
public void setRenderParam(PortletWindow window, String name, String[] values)
{
- stateFullControlParameter.put(encodeRenderParamName(window, name),
- encodeRenderParamValues(values) );
+ stateFullControlParameter.put(encodeRenderParamName(window, name),
encodeRenderParamValues(values));
}
-/*
- public void setRequestParam(String name, String value)
- {
- requestParameter.put(name, value );
- }
-*/
- public void setRequestParam(String name, String[] values )
+ /*
+ public void setRequestParam(String name, String value)
+ {
+ requestParameter.put(name, value );
+ }
+ */
+ public void setRequestParam(String name, String[] values)
{
- requestParameter.put(name, values );
+ requestParameter.put(name, values);
}
-
public void setState(PortletWindow window, WindowState state)
{
Object prevState = stateFullControlParameter.get(getStateKey(window));
- if (prevState!=null)
+ if (prevState != null)
stateFullControlParameter.put(getPrevStateKey(window), prevState);
stateFullControlParameter.put(getStateKey(window), state.toString());
}
-
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]