You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2008/07/30 22:07:30 UTC

svn commit: r681188 - in /myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator: core/ProxyMappingPhaseListener.java util/ExtValUtils.java

Author: gpetracek
Date: Wed Jul 30 13:07:30 2008
New Revision: 681188

URL: http://svn.apache.org/viewvc?rev=681188&view=rev
Log:
improved proxy mapping mechanism

Modified:
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProxyMappingPhaseListener.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProxyMappingPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProxyMappingPhaseListener.java?rev=681188&r1=681187&r2=681188&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProxyMappingPhaseListener.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ProxyMappingPhaseListener.java Wed Jul 30 13:07:30 2008
@@ -27,7 +27,8 @@
 import javax.faces.event.PhaseListener;
 import javax.faces.context.FacesContext;
 import javax.faces.component.UIComponent;
-import javax.faces.component.EditableValueHolder;
+import javax.faces.component.ValueHolder;
+import javax.faces.convert.Converter;
 import java.util.List;
 
 /**
@@ -90,9 +91,17 @@
      * @param uiComponent reference to the current component
      */
     private void storeComponentConverterMappingForProxies(FacesContext facesContext, UIComponent uiComponent) {
+        //TODO use the following after the impl. of a better multi-window-mode solution
+        //if(!uiComponent.isRendered()) {
+        //    return;
+        //}
+
         for(UIComponent child : (List<UIComponent>)uiComponent.getChildren()) {
-            if(child instanceof EditableValueHolder) {
-                ExtValUtils.getOrInitProxyMapping().put(child.getClientId(facesContext), ((EditableValueHolder)child).getConverter());
+            if(child instanceof ValueHolder) {
+                Converter converter = ((ValueHolder)child).getConverter();
+                if(converter != null && converter.getClass().getName().contains("$$")) {
+                    ExtValUtils.getOrInitProxyMapping().put(child.getClientId(facesContext), child);
+                }
             }
             storeComponentConverterMappingForProxies(facesContext, child);
         }

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java?rev=681188&r1=681187&r2=681188&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java Wed Jul 30 13:07:30 2008
@@ -142,13 +142,8 @@
         Map<String, Object> map;
         if(!storage.containsKey(viewId)) {
             map = new HashMap<String, Object>();
-        } else {
-            //TODO cleanup session
-            map = storage.get(viewId);
-            //don't use the line below - a popup/new window would delete the mapping
-            //storage = new HashMap<String, Map<String, Object>>();
+            storage.put(viewId, map);
         }
-        storage.put(viewId, map);
 
         sessionMap.put(PROXY_MAPPING_KEY, storage);
     }