1
2
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
19
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 }