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]