+++ /dev/null
-package tim.prune.gui;
-
-import javax.swing.DefaultListModel;
-import javax.swing.JList;
-import javax.swing.ListSelectionModel;
-
-import tim.prune.I18nManager;
-
-
-/**
- * Listbox class which also contains its own string model.
- * Also has the ability to limit its size and show a single
- * text instead of a huge list
- */
-public class CombinedListAndModel extends JList<String>
-{
- private DefaultListModel<String> _model = null;
- private final int _key;
- private int _maxNumEntries = 0;
- private boolean _tooManyEntries = false;
- private boolean _unlimited = false;
-
-
- /**
- * Constructor
- */
- public CombinedListAndModel(int inKey)
- {
- setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- _model = new DefaultListModel<String>();
- setModel(_model);
- _key = inKey;
- }
-
- /**
- * @param inMaxNum maximum number of entries to allow
- */
- public void setMaxNumEntries(int inMaxNum)
- {
- _maxNumEntries = inMaxNum;
- }
-
- /**
- * @param inUnlimited true if list is temporarily unlimited
- */
- public void setUnlimited(boolean inUnlimited)
- {
- _unlimited = inUnlimited;
- }
-
- /**
- * @return key
- */
- public int getKey()
- {
- return _key;
- }
-
- /**
- * @param inItem String to add to the list
- */
- public void addItem(String inItem)
- {
- if (!_tooManyEntries)
- {
- _model.addElement(inItem);
- if (_maxNumEntries > 0 && !_unlimited
- && _model.getSize() > _maxNumEntries)
- {
- _tooManyEntries = true;
- _model.clear();
- _model.addElement(I18nManager.getText("dialog.settimezone.list.toomany"));
- }
- }
- }
-
- /**
- * @return the selected String, or null
- */
- public String getSelectedItem()
- {
- final int selectedIndex = getSelectedIndex();
- if (_tooManyEntries || selectedIndex < 0)
- {
- return null;
- }
- return _model.getElementAt(selectedIndex);
- }
-
- /**
- * Clear the list
- */
- public void clear()
- {
- _model.clear();
- _tooManyEntries = false;
- _unlimited = false;
- }
-
- /**
- * @param inItem item to select
- */
- public void selectItem(String inItem)
- {
- if (!_tooManyEntries && inItem != null)
- {
- this.setSelectedValue(inItem, true);
- }
- }
-}