Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.jgoodies.binding.adapter
Class ComboBoxAdapter

    java.lang.Object
      javax.swing.AbstractListModel
          com.jgoodies.binding.adapter.ComboBoxAdapter

All Implemented Interfaces:
  Serializable, ComboBoxModel, ListModel

    public class ComboBoxAdapter

extends AbstractListModel
implements ComboBoxModel

A `ComboBoxModel` implementation that holds the choice list and a selection. This adapter has two modes that differ primarily in how the selection is kept synchronized with the combo's list. 1) If you construct a ComboBoxAdapter with a `SelectionInList`, the selection will be guaranteed to be in the list, and the selection will reflect changes in the list. 2) If you construct this adapter with a separate selection holder, the selection won't be affected by any change in the combo's list.

In both cases, the combo's list of element will reflect changes in the list, if it's a ListModel and will ignore content changes, if it's a List.

Example:

     String[] countries = new String[] { "USA", "Germany", "France", ... };

     // Using an array and ValueModel
     ValueModel countryModel = new PropertyAdapter(customer, "country", true);
     ComboBoxAdapter adapter = new ComboBoxAdapter(countries, contryModel);
     JComboBox countryBox    = new JComboBox(adapter);

     // Using a List and ValueModel
     List countryList = Arrays.asList(countries);
     ValueModel countryModel = new PropertyAdapter(customer, "country", true);
     ComboBoxAdapter adapter = new ComboBoxAdapter(countryList, contryModel);
     JComboBox countryBox    = new JComboBox(adapter);

     // Using a ListModel and ValueModel
     ListModel countryListModel = new ArrayListModel(Arrays.asList(countries));
     ValueModel countryModel = new PropertyAdapter(customer, "country", true);
     ComboBoxAdapter adapter = new ComboBoxAdapter(countryListModel, contryModel);
     JComboBox countryBox    = new JComboBox(adapter);

     // Using a SelectionInList - allows only selection of contained elements
     ListModel countryListModel = new ArrayListModel(Arrays.asList(countries));
     ValueModel countryModel = new PropertyAdapter(customer, "country", true);
     SelectionInList sil     = new SelectionInList(countryListModel, countryModel);
     ComboBoxAdapter adapter = new ComboBoxAdapter(sil);
     JComboBox countryBox    = new JComboBox(adapter);

     // Using ValueModels for the list holder and the selection holder
     class Country extends Model {
         ListModel getLocales();
         Locale getDefaultLocale();
         void setDefaultLocale(Locale locale);
     }

     BeanAdapter beanAdapter = new BeanAdapter(null, true);
     ValueModel localesHolder      = beanAdapter.getValueModel("locales");
     ValueModel defaultLocaleModel = beanAdapter.getValueModel("defaultLocale");
     ComboBoxAdapter adapter = new ComboBoxAdapter(
             localesHolder, defaultLocaleModel);
     JComboBox localeBox = new JComboBox(adapter);

     beanAdapter.setBean(myCountry);

Version:
  $Revision: 1.3 $
Author:
  Karsten Lentzsch, Jeanette Winzenburg
See Also:
  `JComboBox`, Serialized Form

Field Summary

Fields inherited from class javax.swing.AbstractListModel
`listenerList`

Constructor Summary
`` | `ComboBoxAdapter(ListModel listModel, ValueModel selectionHolder)` Constructs a ComboBoxAdapter for the given ListModel and selection holder.
`` | `ComboBoxAdapter(List items, ValueModel selectionHolder)` Constructs a ComboBoxAdapter for the specified List of items and the given selection holder.
`` | `ComboBoxAdapter(Object[] items, ValueModel selectionHolder)` Constructs a ComboBoxAdapter for the specified List of items and the given selection holder.
`` | `ComboBoxAdapter(SelectionInList selectionInList)` Constructs a ComboBoxAdapter for the given SelectionInList.
`protected` | `ComboBoxAdapter(SelectionInList selectionInList, ValueModel selectionHolder, boolean ignoreNullSelectionHolder)` An internal constructor that accepts either a SelectionInList or a separate selection holder.
`` | `ComboBoxAdapter(ValueModel listHolder, ValueModel selectionHolder)` Constructs a ComboBoxAdapter for the specified list holder and the given selection holder.

Method Summary
`Object` | `getElementAt(int index)` Returns the value at the specified index.
`Object` | `getSelectedItem()` Returns the selected item by requesting the current value from the either the selection holder or the SelectionInList's selection.
`int` | `getSize()` Returns the length of the item list.
`void` | `setSelectedItem(Object object)` Sets the selected item.

Methods inherited from class javax.swing.AbstractListModel
`addListDataListener, fireContentsChanged, fireIntervalAdded, fireIntervalRemoved, getListDataListeners, getListeners, removeListDataListener`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface javax.swing.ListModel
`addListDataListener, removeListDataListener`

Constructor Detail

### ComboBoxAdapter

    public ComboBoxAdapter(List items,
                           ValueModel selectionHolder)

  Constructs a ComboBoxAdapter for the specified List of items and the given selection holder. Structural changes in the list will be ignored.

  Example:

       String[] countries = new String[] { "USA", "Germany", "France", ... };
       List countryList = Arrays.asList(countries);
       ValueModel countryModel = new PropertyAdapter(customer, "country", true);
       ComboBoxAdapter adapter = new ComboBoxAdapter(countryList, contryModel);
       JComboBox countryBox    = new JComboBox(adapter);

  Parameters:
    `items` - the list of items
    `selectionHolder` - holds the selection of the combo
  Throws:
    `NullPointerException` - if the list of items or the selection holder is `null`

### ComboBoxAdapter

    public ComboBoxAdapter(ListModel listModel,
                           ValueModel selectionHolder)

  Constructs a ComboBoxAdapter for the given ListModel and selection holder. Structural changes in the ListModel will be reflected by this adapter, but won't affect the selection.

  Example:

       String[] countries = new String[] { "USA", "Germany", "France", ... };
       ListModel countryList = new ArrayListModel(Arrays.asList(countries));
       ValueModel countryModel = new PropertyAdapter(customer, "country", true);
       ComboBoxAdapter adapter = new ComboBoxAdapter(countryList, contryModel);
       JComboBox countryBox    = new JComboBox(adapter);

  Parameters:
    `listModel` - the initial list model
    `selectionHolder` - holds the selection of the combo
  Throws:
    `NullPointerException` - if the list of items or the selection holder is `null`

### ComboBoxAdapter

    public ComboBoxAdapter(Object[] items,
                           ValueModel selectionHolder)

  Constructs a ComboBoxAdapter for the specified List of items and the given selection holder. Structural changes in the list will be ignored.

  Example:

       String[] countries = new String[] { "USA", "Germany", "France", ... };
       ValueModel countryModel = new PropertyAdapter(customer, "country", true);
       ComboBoxAdapter adapter = new ComboBoxAdapter(countries, contryModel);
       JComboBox countryBox    = new JComboBox(adapter);

  Parameters:
    `items` - the list of items
    `selectionHolder` - holds the selection of the combo
  Throws:
    `NullPointerException` - if the list of items or the selection holder is `null`

### ComboBoxAdapter

    public ComboBoxAdapter(ValueModel listHolder,
                           ValueModel selectionHolder)

  Constructs a ComboBoxAdapter for the specified list holder and the given selection holder.

  Example:

       class Country extends Model {
           ListModel getLocales();
           Locale getDefaultLocale();
           void setDefaultLocale(Locale locale);
       }

       BeanAdapter beanAdapter = new BeanAdapter(null, true);
       ValueModel localesHolder = beanAdapter.getValueModel("locales");
       ValueModel defaultLocaleModel = beanAdapter.getValueModel("defaultLocale");
       ComboBoxAdapter adapter = new ComboBoxAdapter(localesHolder, defaultLocaleModel);
       JComboBox localeBox = new JComboBox(adapter);

       beanAdapter.setBean(myCountry);

  Parameters:
    `listHolder` - holds the list of items
    `selectionHolder` - holds the selection of the combo
  Throws:
    `NullPointerException` - if the list holder or the selection holder is `null`

### ComboBoxAdapter

    public ComboBoxAdapter(SelectionInList selectionInList)

  Constructs a ComboBoxAdapter for the given SelectionInList. Note that selections which are not elements of the list will be rejected.

  Example:

       String[] countries = new String[] { "USA", "Germany", "France", ... };
       List countryList = Arrays.asList(countries);
       ValueModel countryModel = new PropertyAdapter(customer, "country", true);
       SelectionInList sil     = new SelectionInList(countryList, countryModel);
       ComboBoxAdapter adapter = new ComboBoxAdapter(sil);
       JComboBox countryBox    = new JComboBox(adapter);

  Parameters:
    `selectionInList` - provides the list and selection
  Throws:
    `NullPointerException` - if the `selectionInList` is `null`

### ComboBoxAdapter

    protected ComboBoxAdapter(SelectionInList selectionInList,
                              ValueModel selectionHolder,
                              boolean ignoreNullSelectionHolder)

  An internal constructor that accepts either a SelectionInList or a separate selection holder.

  Parameters:
    `selectionInList` - holds the combo's list data; also holds the selection if no selectionHolder is given
    `selectionHolder` - holds the combo's selection if non-null
    `ignoreNullSelectionHolder` - if true the selection holder may be `null`, otherwise it must be non-`null`

Method Detail

### getSelectedItem

    public Object getSelectedItem()

  Returns the selected item by requesting the current value from the either the selection holder or the SelectionInList's selection.

  Specified by:
    `getSelectedItem` in interface `ComboBoxModel`
  Returns:
    The selected item or `null` if there is no selection

### setSelectedItem

    public void setSelectedItem(Object object)

  Sets the selected item. The implementation of this method should notify all registered `ListDataListener`s that the contents has changed.

  Specified by:
    `setSelectedItem` in interface `ComboBoxModel`
  Parameters:
    `object` - the list object to select or `null` to clear the selection

### getSize

    public int getSize()

  Returns the length of the item list.

  Specified by:
    `getSize` in interface `ListModel`
  Returns:
    the length of the list

### getElementAt

    public Object getElementAt(int index)

  Returns the value at the specified index.

  Specified by:
    `getElementAt` in interface `ListModel`
  Parameters:
    `index` - the requested index
  Returns:
    the value at `index`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2006 JGoodies Karsten Lentzsch. All Rights Reserved.