source: ether_megapoli/trunk/service/implementation/gov2/noaa/pmel/sgt/beans/DataModel.java @ 192

Last change on this file since 192 was 192, checked in by vmipsl, 13 years ago

Servlet _ Contour en cours _ package gov2

File size: 3.6 KB
Line 
1/*
2 * $Id: DataModel.java,v 1.3 2003/09/17 23:16:45 dwd Exp $
3 *
4 * This software is provided by NOAA for full, free and open release.  It is
5 * understood by the recipient/user that NOAA assumes no liability for any
6 * errors contained in the code.  Although this software is released without
7 * conditions or restrictions in its use, it is expected that appropriate
8 * credit be given to its author and to the National Oceanic and Atmospheric
9 * Administration should the software be included by the recipient as an
10 * element in other product development.
11 */
12
13package gov.noaa.pmel.sgt.beans;
14
15import java.util.List;
16import java.util.Vector;
17import java.util.Iterator;
18
19import java.beans.PropertyChangeSupport;
20import java.beans.PropertyChangeEvent;
21import java.beans.PropertyChangeListener;
22
23import gov.noaa.pmel.sgt.dm.SGTData;
24import gov.noaa.pmel.sgt.Attribute;
25
26/**
27 * A model that supplies the relationship between <code>SGTData</code> objects,
28 * its <code>Attribute</code> and the
29 * <code>Panel</code> and <code>DataGroup</code> in which it is displayed and the
30 * <code>Legend</code>.
31 * <p> Some classes have been omitted for display purposes.
32 * <P ALIGN="CENTER"><IMG SRC="images/DataModelSimple.png" ALIGN="BOTTOM" BORDER="0">
33 *
34 * @author Donald Denbo
35 * @version $Revision: 1.3 $, $Date: 2003/09/17 23:16:45 $
36 * @since 3.0
37 * @stereotype bean
38 **/
39public class DataModel {
40  private PropertyChangeSupport support_ = new PropertyChangeSupport(this);
41  private List dataList_;
42
43  /**
44   * @label page
45   */
46  private Page page;
47
48  /** @link aggregation
49   * @supplierCardinality 1..*
50   * @label dataList*/
51  /*#DataHolder lnkDataHolder;*/
52
53  /**
54   * Default constructor.
55   */
56  public DataModel() {
57    dataList_ = new Vector();
58  }
59
60  /**
61   * Add data to the <code>DataModel</code>.  Throws a "addData" property change.
62   * @param data SGTData
63   * @param attr Attribute for data
64   * @param pHolder PanelHolder
65   * @param dataGroup DataGroup
66   * @param legend Legend
67   */
68  public void addData(SGTData data, Attribute attr,
69                      PanelHolder pHolder, DataGroup dataGroup,
70                      Legend legend) {
71    DataHolder dh = new DataHolder(this, data, attr, pHolder,
72                                   dataGroup, legend);
73    dataList_.add(dh);
74    support_.firePropertyChange("addData", null, dh);
75  }
76
77  /**
78   * Get <code>Iterator</code> of the <code>DataHolder</code> objects.
79   * @return
80   */
81  public Iterator dataIterator() {
82    return dataList_.iterator();
83  }
84
85  /**
86   * Add property change listener.
87   * @param l property change listener
88   */
89  public void addPropertyChangeListener(PropertyChangeListener l) {
90    support_.addPropertyChangeListener(l);
91  }
92
93  /**
94   * Listen for specific property change.
95   * @param name property name
96   * @param l property change listner
97   */
98  public void addPropertyChangeListener(String name, PropertyChangeListener l) {
99    support_.addPropertyChangeListener(name, l);
100  }
101
102  /**
103   * Remove property change listener.
104   * @param l property change listener
105   */
106  public void removePropertyChangeListener(PropertyChangeListener l) {
107    support_.removePropertyChangeListener(l);
108  }
109
110  /**
111   * Remove specific property change listener
112   * @param name property name
113   * @param l property change listener
114   */
115  public void removePropertyChangeListener(String name, PropertyChangeListener l) {
116    support_.removePropertyChangeListener(name, l);
117  }
118
119  /**
120   * Set <code>Page</code>.
121   * @param page Page
122   */
123  public void setPage(Page page) {
124    this.page = page;
125  }
126
127  /**
128   * Get Page.
129   * @return Page
130   */
131  public Page getPage() {
132    return page;
133  }
134}
Note: See TracBrowser for help on using the repository browser.