You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2006/05/21 21:34:17 UTC
svn commit: r408469 - in /myfaces/tobago/trunk:
core/src/main/java/org/apache/myfaces/tobago/renderkit/
example/demo/src/main/webapp/overview/
theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/
Author: bommel
Date: Sun May 21 12:34:17 2006
New Revision: 408469
URL: http://svn.apache.org/viewvc?rev=408469&view=rev
Log:
added ResponseStateManager for
TOBAGO-76
Added:
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoResponseStateManager.java
Modified:
myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java
myfaces/tobago/trunk/example/demo/src/main/webapp/overview/toolbar.jsp
myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PageRenderer.java
Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java?rev=408469&r1=408468&r2=408469&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoRenderKit.java Sun May 21 12:34:17 2006
@@ -39,6 +39,12 @@
private ResourceManager resources;
+ private ResponseStateManager responseStateManager;
+
+ public TobagoRenderKit() {
+ responseStateManager = new TobagoResponseStateManager();
+ }
+
// FIXME: use family
public Renderer getRenderer(String family, String rendererType) {
if (LOG.isDebugEnabled()) {
@@ -96,10 +102,7 @@
}
public ResponseStateManager getResponseStateManager() {
- LOG.error(
- "This method isn't implemented yet, and should not be called: "
- + new Exception().getStackTrace()[0].getMethodName()); //FIXME jsfbeta
- return null;
+ return responseStateManager;
}
public ResponseStream createResponseStream(OutputStream outputstream) {
Added: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoResponseStateManager.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoResponseStateManager.java?rev=408469&view=auto
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoResponseStateManager.java (added)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/renderkit/TobagoResponseStateManager.java Sun May 21 12:34:17 2006
@@ -0,0 +1,101 @@
+package org.apache.myfaces.tobago.renderkit;
+
+/*
+ * Copyright 2002-2005 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.
+ */
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.faces.render.ResponseStateManager;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.application.StateManager;
+import java.util.Map;
+import java.io.IOException;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: bommel
+ * Date: 21.05.2006
+ * Time: 10:59:19
+ * To change this template use File | Settings | File Templates.
+ */
+public class TobagoResponseStateManager extends ResponseStateManager {
+ private static final Log LOG = LogFactory.getLog(TobagoResponseStateManager.class);
+
+ private static final String TREE_PARAM = "jsf_tree";
+ private static final String STATE_PARAM = "jsf_state";
+ private static final String VIEWID_PARAM = "jsf_viewid";
+
+ public Object getTreeStructureToRestore(FacesContext facescontext, String viewId) {
+ Map requestMap = facescontext.getExternalContext().getRequestParameterMap();
+ Object requestViewId = requestMap.get(VIEWID_PARAM);
+ if (requestViewId == null || !requestViewId.equals(viewId)) {
+ //no saved state or state of different viewId
+ return null;
+ }
+
+ return requestMap.get(TREE_PARAM);
+
+ }
+
+ public Object getComponentStateToRestore(FacesContext facesContext) {
+ Map requestMap = facesContext.getExternalContext().getRequestParameterMap();
+ return requestMap.get(STATE_PARAM);
+ }
+
+ public void writeState(FacesContext facescontext,
+ StateManager.SerializedView serializedview) throws IOException {
+ ResponseWriter responseWriter = facescontext.getResponseWriter();
+ Object treeStruct = serializedview.getStructure();
+ System.err.print("State " + treeStruct);
+ Object compStates = serializedview.getState();
+
+ if (treeStruct != null) {
+ if (treeStruct instanceof String) {
+ responseWriter.startElement("input", null);
+ responseWriter.writeAttribute("type", "hidden", null);
+ responseWriter.writeAttribute("name", TREE_PARAM, null);
+ responseWriter.writeAttribute("id", TREE_PARAM, null);
+ responseWriter.writeAttribute("value", treeStruct, null);
+ responseWriter.endElement("input");
+ }
+ } else {
+ LOG.error("No tree structure to be saved in client response!");
+ }
+
+ if (compStates != null) {
+ if (compStates instanceof String) {
+ responseWriter.startElement("input", null);
+ responseWriter.writeAttribute("type", "hidden", null);
+ responseWriter.writeAttribute("name", STATE_PARAM, null);
+ responseWriter.writeAttribute("id", STATE_PARAM, null);
+ responseWriter.writeAttribute("value", compStates, null);
+ responseWriter.endElement("input");
+ }
+ } else {
+ LOG.error("No component states to be saved in client response!");
+ }
+
+ responseWriter.startElement("input", null);
+ responseWriter.writeAttribute("type", "hidden", null);
+ responseWriter.writeAttribute("name", VIEWID_PARAM, null);
+ responseWriter.writeAttribute("id", VIEWID_PARAM, null);
+ responseWriter.writeAttribute("value", facescontext.getViewRoot().getViewId(), null);
+ responseWriter.endElement("input");
+ }
+
+}
Modified: myfaces/tobago/trunk/example/demo/src/main/webapp/overview/toolbar.jsp
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/demo/src/main/webapp/overview/toolbar.jsp?rev=408469&r1=408468&r2=408469&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/demo/src/main/webapp/overview/toolbar.jsp (original)
+++ myfaces/tobago/trunk/example/demo/src/main/webapp/overview/toolbar.jsp Sun May 21 12:34:17 2006
@@ -167,7 +167,7 @@
<tc:menuItem link="http://www.atanion.com" disabled="true" label="disabled" />
- <tc:menuCheckbox action="#{demo.clickButton}" label="#{overviewBundle.toolbar_linkClickme}" value="#{demo.boolTest}" />
+ <tx:menuCheckbox action="#{demo.clickButton}" label="#{overviewBundle.toolbar_linkClickme}" value="#{demo.boolTest}" />
</tc:menu>
<tc:menu label="Menu 2">
@@ -185,9 +185,9 @@
<tc:menu label="#{overviewBundle.toolbar_selectSingleselect}">
- <tc:menuRadio value="#{overviewController.radioValue}" >
+ <tx:menuRadio value="#{overviewController.radioValue}" >
<f:selectItems value="#{overviewController.items}" />
- </tc:menuRadio>
+ </tx:menuRadio>
</tc:menu>
@@ -201,7 +201,7 @@
<tc:selectBooleanCheckbox value="#{demo.bool[0]}" />
</f:facet>
</tc:menuItem>
- <tc:menuCheckbox label="#{overviewBundle.toolbar_linkClickme}" value="#{demo.bool[1]}" />
+ <tx:menuCheckbox label="#{overviewBundle.toolbar_linkClickme}" value="#{demo.bool[1]}" />
<tx:menuCheckbox label="#{overviewBundle.toolbar_linkClickme}" value="#{demo.bool[2]}" />
</tc:menu>
Modified: myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PageRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PageRenderer.java?rev=408469&r1=408468&r2=408469&view=diff
==============================================================================
--- myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PageRenderer.java (original)
+++ myfaces/tobago/trunk/theme/scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/PageRenderer.java Sun May 21 12:34:17 2006
@@ -323,6 +323,8 @@
// write the previously rendered popups
writer.write(popups.toString());
+
+ viewHandler.writeState(facesContext);
// facesContext.getApplication().getViewHandler().writeState(facesContext);