/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package de.cismet.cids.editors; import java.util.Vector; import javax.swing.AbstractListModel; import javax.swing.ComboBoxModel; import javax.swing.event.ListDataListener; import de.cismet.cids.dynamics.CidsBean; /** * DOCUMENT ME! * * @author thorsten * @version $Revision$, $Date$ */ public class DefaultBindableReferenceComboModel extends AbstractListModel implements ComboBoxModel { //~ Instance fields -------------------------------------------------------- private Vector<CidsBean> beans; private Vector<ListDataListener> listeners = new Vector<ListDataListener>(); private CidsBean selectedItem = null; private boolean nullable = false; //~ Constructors ----------------------------------------------------------- /** * Creates a new DefaultBindableReferenceComboModel object. */ public DefaultBindableReferenceComboModel() { this.beans = new Vector<CidsBean>(); } /** * Creates a new DefaultBindableReferenceComboModel object. * * @param beans DOCUMENT ME! */ public DefaultBindableReferenceComboModel(final Vector<CidsBean> beans) { this.beans = beans; } /** * Creates a new DefaultBindableReferenceComboModel object. * * @param beans DOCUMENT ME! * @param nullable DOCUMENT ME! */ public DefaultBindableReferenceComboModel(final Vector<CidsBean> beans, final boolean nullable) { this(beans); this.nullable = nullable; } //~ Methods ---------------------------------------------------------------- @Override public Object getElementAt(final int index) { if ((index == beans.size()) && isNullable()) { return null; } else { return beans.get(index); } } @Override public int getSize() { final int size = beans.size(); if (isNullable()) { return size + 1; } else { return size; } } @Override public Object getSelectedItem() { return selectedItem; } @Override public void setSelectedItem(final Object anItem) { if (anItem instanceof CidsBean) { selectedItem = (CidsBean)anItem; } else { selectedItem = null; } } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isNullable() { return nullable; } /** * DOCUMENT ME! * * @param nullable DOCUMENT ME! */ public void setNullable(final boolean nullable) { this.nullable = nullable; } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public Vector<CidsBean> getContentBeans() { return beans; } /** * DOCUMENT ME! * * @param beans DOCUMENT ME! */ public void setContentBeans(final Vector<CidsBean> beans) { this.beans = beans; fireContentsChanged(this, 0, getSize() - 1); } }