org.pentaho.reporting.engine.classic.core.modules.gui.commonswing
Class KeyedComboBoxModel

java.lang.Object
  extended by org.pentaho.reporting.engine.classic.core.modules.gui.commonswing.KeyedComboBoxModel
All Implemented Interfaces:
ComboBoxModel, ListModel

public class KeyedComboBoxModel
extends Object
implements 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
KeyedComboBoxModel()
          Creates a new keyed combobox model.
KeyedComboBoxModel(Object[] keys, Object[] values)
          Creates a new keyed combobox model for the given keys and values.
 
Method Summary
 void add(Object key, Object cbitem)
          Adds a new entry to the model.
 void addListDataListener(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(Object anItem)
          Tries to find the index of element with the given value.
 Object getElementAt(int index)
          Returns the value at the specified index.
 Object getKeyAt(int index)
          Returns the key from the given index.
 Object getSelectedItem()
          Returns the selected item.
 int getSelectedItemIndex()
           
 Object getSelectedKey()
          Returns the selected data element or null if none is set.
 int getSize()
          Returns the length of the list.
 void remove(int index)
           
 void removeDataElement(Object key)
          Removes an entry from the model.
 void removeListDataListener(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(Object[] keys, Object[] values)
          Replaces the data in this combobox model.
 void setSelectedItem(Object anItem)
          Set the selected item.
 void setSelectedKey(Object anItem)
          Defines the selected key.
 void update(int index, Object key, Object cbitem)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

KeyedComboBoxModel

public KeyedComboBoxModel()
Creates a new keyed combobox model.


KeyedComboBoxModel

public KeyedComboBoxModel(Object[] keys,
                          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(Object[] keys,
                    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

getSelectedItem

public Object getSelectedItem()
Returns the selected item.

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

setSelectedKey

public void setSelectedKey(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(Object anItem)
Set the selected item. The implementation of this method should notify all registered ListDataListeners that the contents have changed.

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

setAllowOtherValue

public void setAllowOtherValue(boolean allowOtherValue)

addListDataListener

public void addListDataListener(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 ListModel
Parameters:
l - the ListDataListener to be added

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

getKeyAt

public 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 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 ListModel
Returns:
the length of the list

removeListDataListener

public void removeListDataListener(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 ListModel
Parameters:
l - the ListDataListener to be removed

findElementIndex

public int findElementIndex(Object anItem)
Tries to find the index of element with the given value. This method is called by the setSelectedItem method and returns the first occurence of the element.

Parameters:
anItem - the key for the element to be searched.
Returns:
the index of the key, or -1 if not found.

removeDataElement

public void removeDataElement(Object key)
Removes an entry from the model.

Parameters:
key - the key

add

public void add(Object key,
                Object cbitem)
Adds a new entry to the model.

Parameters:
key - the key
cbitem - the display value.

update

public void update(int index,
                   Object key,
                   Object cbitem)

clear

public void clear()
Removes all entries from the model.


getSelectedItemIndex

public int getSelectedItemIndex()

remove

public void remove(int index)