1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package org.ximtec.igesture.tool.binding;
27
28 import java.util.HashMap;
29
30 import javax.swing.JComponent;
31
32 import org.ximtec.igesture.core.DataObject;
33
34
35 public class DataBindingContext {
36
37 private HashMap<JComponent, DataBinding< ? >> context;
38
39
40 public DataBindingContext() {
41 context = new HashMap<JComponent, DataBinding< ? >>();
42 }
43
44
45 public JComponent addBinding(DataBinding< ? > binding) {
46 context.put(binding.getComponent(), binding);
47 return binding.getComponent();
48 }
49
50
51 public DataBinding< ? > addBinding(JComponent component, DataObject obj,
52 String property) {
53 DataBinding< ? > db = BindingFactory.createInstance(component, obj,
54 property);
55 addBinding(db);
56 return db;
57 }
58
59
60 public void updateAll() {
61 for (DataBinding< ? > binding : context.values()) {
62 binding.updateModel();
63 }
64 }
65
66
67 public void loadAll() {
68 for (DataBinding< ? > binding : context.values()) {
69 binding.updateView();
70 }
71 }
72
73
74 public void update(JComponent component) {
75 DataBinding< ? > binding = context.get(component);
76 if (binding != null) {
77 binding.updateModel();
78 }
79 }
80 }