org.jfree.ui

## Class KeyedComboBoxModel

- java.lang.Object
- - org.jfree.ui.KeyedComboBoxModel

- All Implemented Interfaces:
    javax.swing.ComboBoxModel, javax.swing.ListModel

      public class KeyedComboBoxModel
      extends java.lang.Object
      implements javax.swing.ComboBoxModel

  The KeyedComboBox model allows to define an internal key (the data element) for every entry in the model.

  This class is usefull in all cases, where the public text differs from the internal view on the data. A separation between presentation data and processing data is a prequesite for localizing combobox entries. This model does not allow selected elements, which are not in the list of valid elements.
  Author:
    Thomas Morgner

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `KeyedComboBoxModel()` Creates a new keyed combobox model.
    `KeyedComboBoxModel(java.lang.Object[] keys, java.lang.Object[] values)` Creates a new keyed combobox model for the given keys and values.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(java.lang.Object key, java.lang.Object cbitem)` Adds a new entry to the model.
    `void` | `addListDataListener(javax.swing.event.ListDataListener l)` Adds a listener to the list that's notified each time a change to the data model occurs.
    `void` | `clear()` Removes all entries from the model.
    `int` | `findElementIndex(java.lang.Object key)` Tries to find the index of element with the given key.
    `protected void` | `fireListDataEvent(javax.swing.event.ListDataEvent evt)` Notifies all registered list data listener of the given event.
    `java.lang.Object` | `getElementAt(int index)` Returns the value at the specified index.
    `java.lang.Object` | `getKeyAt(int index)` Returns the key from the given index.
    `java.lang.Object` | `getSelectedItem()` Returns the selected item.
    `java.lang.Object` | `getSelectedKey()` Returns the selected data element or null if none is set.
    `int` | `getSize()` Returns the length of the list.
    `void` | `removeDataElement(java.lang.Object key)` Removes an entry from the model.
    `void` | `removeListDataListener(javax.swing.event.ListDataListener l)` Removes a listener from the list that's notified each time a change to the data model occurs.
    `void` | `setAllowOtherValue(boolean allowOtherValue)`
    `void` | `setData(java.lang.Object[] keys, java.lang.Object[] values)` Replaces the data in this combobox model.
    `void` | `setSelectedItem(java.lang.Object anItem)` Set the selected item.
    `void` | `setSelectedKey(java.lang.Object anItem)` Defines the selected key.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### KeyedComboBoxModel

          public KeyedComboBoxModel()

      Creates a new keyed combobox model.

    - #### KeyedComboBoxModel

          public KeyedComboBoxModel(java.lang.Object[] keys,
                            java.lang.Object[] values)

      Creates a new keyed combobox model for the given keys and values. Keys and values must have the same number of items.
      Parameters:
        `keys` - the keys
        `values` - the values

  - ### Method Detail

    - #### setData

          public void setData(java.lang.Object[] keys,
                     java.lang.Object[] values)

      Replaces the data in this combobox model. The number of keys must be equals to the number of values.
      Parameters:
        `keys` - the keys
        `values` - the values

    - #### fireListDataEvent

          protected void fireListDataEvent(javax.swing.event.ListDataEvent evt)

      Notifies all registered list data listener of the given event.
      Parameters:
        `evt` - the event.

    - #### getSelectedItem

          public java.lang.Object getSelectedItem()

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

    - #### setSelectedKey

          public void setSelectedKey(java.lang.Object anItem)

      Defines the selected key. If the object is not in the list of values, no item gets selected.
      Parameters:
        `anItem` - the new selected item.

    - #### setSelectedItem

          public void setSelectedItem(java.lang.Object anItem)

      Set the selected item. The implementation of this method should notify all registered `ListDataListener`s that the contents have changed.
      Specified by:
        `setSelectedItem` in interface `javax.swing.ComboBoxModel`
      Parameters:
        `anItem` - the list object to select or `null` to clear the selection

    - #### setAllowOtherValue

          public void setAllowOtherValue(boolean allowOtherValue)

      Parameters:
        `allowOtherValue` -

    - #### addListDataListener

          public void addListDataListener(javax.swing.event.ListDataListener l)

      Adds a listener to the list that's notified each time a change to the data model occurs.
      Specified by:
        `addListDataListener` in interface `javax.swing.ListModel`
      Parameters:
        `l` - the `ListDataListener` to be added

    - #### getElementAt

          public java.lang.Object getElementAt(int index)

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

    - #### getKeyAt

          public java.lang.Object getKeyAt(int index)

      Returns the key from the given index.
      Parameters:
        `index` - the index of the key.
      Returns:
        the the key at the specified index.

    - #### getSelectedKey

          public java.lang.Object getSelectedKey()

      Returns the selected data element or null if none is set.
      Returns:
        the selected data element.

    - #### getSize

          public int getSize()

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

    - #### removeListDataListener

          public void removeListDataListener(javax.swing.event.ListDataListener l)

      Removes a listener from the list that's notified each time a change to the data model occurs.
      Specified by:
        `removeListDataListener` in interface `javax.swing.ListModel`
      Parameters:
        `l` - the `ListDataListener` to be removed

    - #### findElementIndex

          public int findElementIndex(java.lang.Object key)

      Tries to find the index of element with the given key. The key must not be null.
      Parameters:
        `key` - the key for the element to be searched.
      Returns:
        the index of the key, or -1 if not found.

    - #### removeDataElement

          public void removeDataElement(java.lang.Object key)

      Removes an entry from the model.
      Parameters:
        `key` - the key

    - #### add

          public void add(java.lang.Object key,
                 java.lang.Object cbitem)

      Adds a new entry to the model.
      Parameters:
        `key` - the key
        `cbitem` - the display value.

    - #### clear

          public void clear()

      Removes all entries from the model.