/*
 * $Id: DataModel.java,v 1.3 2003/09/17 23:16:45 dwd Exp $
 *
 * This software is provided by NOAA for full, free and open release.  It is
 * understood by the recipient/user that NOAA assumes no liability for any
 * errors contained in the code.  Although this software is released without
 * conditions or restrictions in its use, it is expected that appropriate
 * credit be given to its author and to the National Oceanic and Atmospheric
 * Administration should the software be included by the recipient as an
 * element in other product development.
 */

package sgtplot.beans;

import java.util.List;
import java.util.Vector;
import java.util.Iterator;

import java.beans.PropertyChangeSupport;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import sgtplot.Attribute;
import sgtplot.dm.SGTData;


/**
 * A model that supplies the relationship between SGTData objects,
 * its Attribute and the
 * Panel and DataGroup in which it is displayed and the
 * Legend.
 * 

Some classes have been omitted for display purposes. *

* * @author Donald Denbo * @version $Revision: 1.3 $, $Date: 2003/09/17 23:16:45 $ * @since 3.0 * @stereotype bean **/ public class DataModel { private PropertyChangeSupport support_ = new PropertyChangeSupport(this); private List dataList_; /** * @label page */ private Page page; /** @link aggregation * @supplierCardinality 1..* * @label dataList*/ /*#DataHolder lnkDataHolder;*/ /** * Default constructor. */ public DataModel() { dataList_ = new Vector(); } /** * Add data to the DataModel. Throws a "addData" property change. * @param data SGTData * @param attr Attribute for data * @param pHolder PanelHolder * @param dataGroup DataGroup * @param legend Legend */ public void addData(SGTData data, Attribute attr, PanelHolder pHolder, DataGroup dataGroup, Legend legend) { DataHolder dh = new DataHolder(this, data, attr, pHolder, dataGroup, legend); dataList_.add(dh); support_.firePropertyChange("addData", null, dh); } /** * Get Iterator of the DataHolder objects. * @return */ public Iterator dataIterator() { return dataList_.iterator(); } /** * Add property change listener. * @param l property change listener */ public void addPropertyChangeListener(PropertyChangeListener l) { support_.addPropertyChangeListener(l); } /** * Listen for specific property change. * @param name property name * @param l property change listner */ public void addPropertyChangeListener(String name, PropertyChangeListener l) { support_.addPropertyChangeListener(name, l); } /** * Remove property change listener. * @param l property change listener */ public void removePropertyChangeListener(PropertyChangeListener l) { support_.removePropertyChangeListener(l); } /** * Remove specific property change listener * @param name property name * @param l property change listener */ public void removePropertyChangeListener(String name, PropertyChangeListener l) { support_.removePropertyChangeListener(name, l); } /** * Set Page. * @param page Page */ public void setPage(Page page) { this.page = page; } /** * Get Page. * @return Page */ public Page getPage() { return page; } }

Ads help maintain this website.