View Javadoc

1   /*
2    * @(#)$Id: DataBindingContext.java 742 2009-08-15 17:15:49Z kurmannu $
3    *
4    * Author   : Ueli Kurmann, igesture@uelikurmann.ch
5    *                                   
6    *                                   
7    * Purpose  : 
8    *
9    * -----------------------------------------------------------------------
10   *
11   * Revision Information:
12   *
13   * Date       Who     Reason
14   *
15   * 23.03.2008 ukurmann  Initial Release
16   *
17   * -----------------------------------------------------------------------
18   *
19   * Copyright 1999-2009 ETH Zurich. All Rights Reserved.
20   *
21   * This software is the proprietary information of ETH Zurich.
22   * Use is subject to license terms.
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  }