[richfaces-svn-commits] JBoss Rich Faces SVN: r12032 - in trunk/framework: impl/src/main/java/org/ajax4jsf/context and 2 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Dec 25 11:55:44 EST 2008


Author: nbelaevski
Date: 2008-12-25 11:55:44 -0500 (Thu, 25 Dec 2008)
New Revision: 12032

Modified:
   trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java
   trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
   trunk/framework/test/src/test/java/org/ajax4jsf/context/MockAjaxContext.java
Log:
https://jira.jboss.org/jira/browse/RF-5390

Modified: trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java
===================================================================
--- trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java	2008-12-25 13:51:03 UTC (rev 12031)
+++ trunk/framework/api/src/main/java/org/ajax4jsf/context/AjaxContext.java	2008-12-25 16:55:44 UTC (rev 12032)
@@ -76,6 +76,12 @@
 
 	public abstract void addRegionsFromComponent(UIComponent component);
 
+	/**
+	 * @param component
+	 * @since 3.3.0
+	 */
+	public abstract void addAreasToProcessFromComponent(FacesContext context, UIComponent component);
+	
 	public abstract Set<String> getAjaxAreasToRender();
 
 	public abstract Set<String> getAjaxAreasToProcess();

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java	2008-12-25 13:51:03 UTC (rev 12031)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/context/AjaxContextImpl.java	2008-12-25 16:55:44 UTC (rev 12032)
@@ -333,6 +333,36 @@
 		}
 	}
 
+	/** 
+	 * Add IDs of regions to process 
+	 * 
+	 * @see org.ajax4jsf.context.AjaxContext#addAreasToProcessFromComponent(javax.faces.component.UIComponent)
+	 */
+	@Override
+	public void addAreasToProcessFromComponent(FacesContext context, UIComponent component) {
+		RendererUtils rendererUtils = RendererUtils.getInstance();
+		
+		Set<String> areasToProcess = AjaxRendererUtils.getAjaxAreasToProcess(component);
+		if (areasToProcess != null) {
+			Set<String> convertedAreaIds = new HashSet<String>();
+
+			for (String areaId : areasToProcess) {
+				UIComponent areaComponent = rendererUtils.findComponentFor(component, areaId);
+				if (areaComponent != null) {
+					convertedAreaIds.add(areaComponent.getClientId(context));
+				} else {
+					convertedAreaIds.add(areaId);
+				}
+			}
+		
+			if (this.ajaxAreasToProcess == null) {
+				this.ajaxAreasToProcess = convertedAreaIds;
+			} else {
+				this.ajaxAreasToProcess.addAll(convertedAreaIds);
+			}
+		}
+	}
+	
 	public void addComponentToAjaxRender(UIComponent component) {
 		this.ajaxAreasToRender.add(AjaxRendererUtils.getAbsoluteId(component));
 	}

Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java	2008-12-25 13:51:03 UTC (rev 12031)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/renderkit/AjaxRendererUtils.java	2008-12-25 16:55:44 UTC (rev 12032)
@@ -103,6 +103,11 @@
 
 	public static final String AJAX_REGIONS_ATTRIBUTE = "reRender";
 
+	/**
+	 * @since 3.3.0
+	 */
+	public static final String AJAX_PROCESS_ATTRIBUTE = "process";
+	
 	private static final Class<?> OBJECT_ARRAY_CLASS = (new Object[0]).getClass();
 
 	public static final String VALUE_ATTR = "value";
@@ -509,6 +514,25 @@
 	}
 
 	/**
+	 * Returns set of areas to be processed as a result of this component action invocation
+	 * 
+	 * @param component
+	 * @return set of IDs that should be processed as a 
+	 * @since 3.3.0
+	 */
+	public static Set<String> getAjaxAreasToProcess(UIComponent component) {
+		Object areas;
+		
+		if (component instanceof AjaxComponent) {
+			areas = ((AjaxComponent) component).getProcess();
+		} else {
+			areas = component.getAttributes().get(AjaxRendererUtils.AJAX_PROCESS_ATTRIBUTE);
+		}
+		
+		return asSet(areas);
+	}
+	
+	/**
 	 * Convert parameter ( Collection, List, array, String, comma-separated
 	 * String ) to list of srings. TODO - when move to JDK 5, change to
 	 * List&lt;String&gt;

Modified: trunk/framework/test/src/test/java/org/ajax4jsf/context/MockAjaxContext.java
===================================================================
--- trunk/framework/test/src/test/java/org/ajax4jsf/context/MockAjaxContext.java	2008-12-25 13:51:03 UTC (rev 12031)
+++ trunk/framework/test/src/test/java/org/ajax4jsf/context/MockAjaxContext.java	2008-12-25 16:55:44 UTC (rev 12032)
@@ -68,6 +68,15 @@
 	}
 
 	/* (non-Javadoc)
+	 * @see org.ajax4jsf.context.AjaxContext#addAreasToProcessFromComponent(javax.faces.context.FacesContext, javax.faces.component.UIComponent)
+	 */
+	@Override
+	public void addAreasToProcessFromComponent(FacesContext context, UIComponent component) {
+		// TODO Auto-generated method stub
+		
+	}
+	
+	/* (non-Javadoc)
 	 * @see org.ajax4jsf.context.AjaxContext#addRenderedArea(java.lang.String)
 	 */
 	@Override




More information about the richfaces-svn-commits mailing list