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)