View Javadoc

1   /*
2    * $Id: PartialRenderingContextImpl.java,v 1.1 2010/06/11 08:35:29 oeuillot Exp $
3    */
4   package org.rcfaces.core.internal.util;
5   
6   import java.util.HashMap;
7   import java.util.HashSet;
8   import java.util.Map;
9   import java.util.Set;
10  
11  import javax.faces.component.UIComponent;
12  import javax.faces.context.FacesContext;
13  
14  import org.rcfaces.core.partialRendering.IPartialRenderingContext;
15  
16  /**
17   * 
18   * @author Olivier Oeuillot (latest modification by $Author: oeuillot $)
19   * @version $Revision: 1.1 $ $Date: 2010/06/11 08:35:29 $
20   */
21  public class PartialRenderingContextImpl implements IPartialRenderingContext {
22  
23      private final FacesContext facesContext;
24  
25      private final Set registredComponents = new HashSet();
26  
27      private final Map updateRegistredComponents = new HashMap();
28  
29      public PartialRenderingContextImpl(FacesContext facesContext) {
30          this.facesContext = facesContext;
31      }
32  
33      public void register(UIComponent component) {
34          String clientId = component.getClientId(facesContext);
35  
36          registredComponents.add(clientId);
37  
38          updateRegistredComponents.remove(clientId);
39      }
40  
41      public void update(UIComponent component, String property, Map parameters) {
42          String clientId = component.getClientId(facesContext);
43  
44          if (registredComponents.contains(clientId)) {
45              return;
46          }
47  
48          Map updates = (Map) updateRegistredComponents.get(clientId);
49          if (updates == null) {
50              updates = new HashMap();
51              updateRegistredComponents.put(clientId, updates);
52          }
53  
54          updates.put(property, parameters);
55      }
56  
57      public Set listRegistred() {
58          return registredComponents;
59      }
60  
61      public Map listUpdates() {
62          return updateRegistredComponents;
63      }
64  }