You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2006/01/27 11:05:15 UTC
svn commit: r372801 - in
/myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit:
RendererUtils.java html/HtmlButtonRendererBase.java
html/HtmlLinkRendererBase.java
Author: mmarinschek
Date: Fri Jan 27 02:05:03 2006
New Revision: 372801
URL: http://svn.apache.org/viewcvs?rev=372801&view=rev
Log:
partial validation and model update, revisited
Modified:
myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java
myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlButtonRendererBase.java
myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java
Modified: myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java
URL: http://svn.apache.org/viewcvs/myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java?rev=372801&r1=372800&r2=372801&view=diff
==============================================================================
--- myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java (original)
+++ myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/RendererUtils.java Fri Jan 27 02:05:03 2006
@@ -19,8 +19,10 @@
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.util.HashMapUtils;
import org.apache.myfaces.util.SelectItemsIterator;
+import org.apache.myfaces.renderkit.html.HtmlLinkRendererBase;
import javax.faces.FacesException;
+import javax.faces.event.PhaseId;
import javax.faces.component.*;
import javax.faces.component.html.HtmlInputText;
import javax.faces.context.FacesContext;
@@ -54,6 +56,9 @@
public static final String EMPTY_STRING = "";
public static final Object NOTHING = new Serializable() {};
+ public static final String ACTION_FOR_LIST = "org.apache.myfaces.ActionForList";
+ public static final String ACTION_FOR_PHASE_LIST = "org.apache.myfaces.ActionForPhaseList";
+
public static final String SEQUENCE_PARAM = "jsf_sequence";
public static String getPathToComponent(UIComponent component)
@@ -846,6 +851,31 @@
}
return li;
}
+
+ public static List convertPhasesToPhasesIds(String actionForPhase)
+ {
+ List li = new ArrayList();
+
+ if(actionForPhase==null)
+ {
+ return li;
+ }
+
+ String[] ids = actionForPhase.split(",");
+
+ for (int i = 0; i < ids.length; i++)
+ {
+ if(ids[i].equals("PROCESS_VALIDATIONS"))
+ {
+ li.add(PhaseId.PROCESS_VALIDATIONS);
+ }
+ else if(ids[i].equals("UPDATE_MODEL_VALUES"))
+ {
+ li.add(PhaseId.UPDATE_MODEL_VALUES);
+ }
+ }
+ return li;
+ }
/**
* Helper method which loads a resource file (such as css) by a given context path and a file name.
@@ -901,4 +931,29 @@
return content;
}
+ /**
+ * check for partial validation or model update attributes being set
+ * and initialize the request-map accordingly.
+ * SubForms will work with this information.
+ */
+ public static void initPartialValidationAndModelUpdate(UIComponent component, FacesContext facesContext)
+ {
+ String actionFor = (String) component.getAttributes().get("actionFor");
+
+ if(actionFor!=null)
+ {
+ List li = convertIdsToClientIds(actionFor, facesContext, component);
+
+ facesContext.getExternalContext().getRequestMap().put(ACTION_FOR_LIST,li);
+
+ String actionForPhase = (String) component.getAttributes().get("actionForPhase");
+
+ if(actionForPhase!=null)
+ {
+ List phaseList = convertPhasesToPhasesIds(actionForPhase);
+
+ facesContext.getExternalContext().getRequestMap().put(ACTION_FOR_PHASE_LIST,phaseList);
+ }
+ }
+ }
}
Modified: myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlButtonRendererBase.java
URL: http://svn.apache.org/viewcvs/myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlButtonRendererBase.java?rev=372801&r1=372800&r2=372801&view=diff
==============================================================================
--- myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlButtonRendererBase.java (original)
+++ myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlButtonRendererBase.java Fri Jan 27 02:05:03 2006
@@ -60,13 +60,7 @@
{
uiComponent.queueEvent(new ActionEvent(uiComponent));
- String actionFor = (String) uiComponent.getAttributes().get("actionFor");
- if(actionFor!=null)
- {
- List li = RendererUtils.convertIdsToClientIds(actionFor, facesContext, uiComponent);
-
- facesContext.getExternalContext().getRequestMap().put(ACTION_FOR_LIST,li);
- }
+ RendererUtils.initPartialValidationAndModelUpdate(uiComponent, facesContext);
}
}
Modified: myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java
URL: http://svn.apache.org/viewcvs/myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java?rev=372801&r1=372800&r2=372801&view=diff
==============================================================================
--- myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java (original)
+++ myfaces/commons/trunk/src/main/java/org/apache/myfaces/renderkit/html/HtmlLinkRendererBase.java Fri Jan 27 02:05:03 2006
@@ -19,7 +19,6 @@
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Iterator;
-import java.util.List;
import javax.faces.application.StateManager;
import javax.faces.application.ViewHandler;
@@ -48,9 +47,6 @@
public abstract class HtmlLinkRendererBase
extends HtmlRenderer
{
-
- public static final String ACTION_FOR_LIST = "org.apache.myfaces.ActionForList";
-
public static final String URL_STATE_MARKER = "JSF_URL_STATE_MARKER=DUMMY";
public static final int URL_STATE_MARKER_LEN = URL_STATE_MARKER.length();
@@ -75,13 +71,7 @@
{
component.queueEvent(new ActionEvent(component));
- String actionFor = (String) component.getAttributes().get("actionFor");
- if(actionFor!=null)
- {
- List li = RendererUtils.convertIdsToClientIds(actionFor, facesContext, component);
-
- facesContext.getExternalContext().getRequestMap().put(ACTION_FOR_LIST,li);
- }
+ RendererUtils.initPartialValidationAndModelUpdate(component, facesContext);
}
}
else if (component instanceof UIOutput)