001/*
002 * Copyright (c) 2003-2010 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * '$Author: welker $'
006 * '$Date: 2010-05-06 05:21:26 +0000 (Thu, 06 May 2010) $' 
007 * '$Revision: 24234 $'
008 * 
009 * Permission is hereby granted, without written agreement and without
010 * license or royalty fees, to use, copy, modify, and distribute this
011 * software and its documentation for any purpose, provided that the above
012 * copyright notice and the following two paragraphs appear in all copies
013 * of this software.
014 *
015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
019 * SUCH DAMAGE.
020 *
021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
026 * ENHANCEMENTS, OR MODIFICATIONS.
027 *
028 */
029
030package org.ecoinformatics.seek.querybuilder;
031
032import java.util.Vector;
033
034import javax.swing.AbstractListModel;
035
036import org.kepler.objectmanager.data.db.DSTableFieldIFace;
037
038/**
039 * THis class is the model for each Table Frame List
040 */
041public class DBTableListModel extends AbstractListModel {
042        protected DBTableFrame mTableFrame = null;
043        protected Vector mItems = new Vector();
044
045        /**
046         * Constructor - KNows who the table frame is
047         * 
048         * @param aTableFrame
049         */
050        public DBTableListModel(DBTableFrame aTableFrame) {
051                mTableFrame = aTableFrame;
052        }
053
054        /**
055         * Add a field to the list
056         * 
057         * @param aField
058         *            the field
059         */
060        public void add(DSTableFieldIFace aField) {
061                mItems.add(new DBTableField(aField, mTableFrame));
062        }
063
064        /**
065         * Add a field to the list
066         * 
067         * @param aField
068         *            the field
069         */
070        public void add(DBTableField aField) {
071                mItems.add(aField);
072        }
073
074        /**
075         * Get the number of fields
076         * 
077         * @return the number of fields
078         */
079        public int getSize() {
080                return mItems.size();
081        }
082
083        /**
084         * Get a single field (data item)
085         * 
086         * @return the object at the index (no checks made on the index)
087         */
088        public Object getElementAt(int index) {
089                return mItems.get(index);
090        }
091
092        /**
093         * Returns the Vector of field object (data)
094         * 
095         * @return vector the items
096         */
097        public Vector getFields() {
098                return mItems;
099        }
100}