public void remove( final int index ) { data.remove( index ); final ListDataEvent evt = new ListDataEvent( this, ListDataEvent.INTERVAL_REMOVED, index, index ); fireListDataEvent( evt ); } }
/** * Adds a new entry to the model. * * @param key the key * @param cbitem the display value. */ public void add( final K key, final V cbitem ) { final ComboBoxItemPair<K, V> con = new ComboBoxItemPair<K, V>( key, cbitem ); data.add( con ); final ListDataEvent evt = new ListDataEvent ( this, ListDataEvent.INTERVAL_ADDED, data.size() - 2, data.size() - 2 ); fireListDataEvent( evt ); }
/** * Removes all entries from the model. */ public void clear() { final int size = getSize(); data.clear(); fireListDataEvent( new ListDataEvent( this, ListDataEvent.INTERVAL_REMOVED, 0, size - 1 ) ); selectedItemIndex = -1; selectedItemValue = null; fireListDataEvent( new ListDataEvent( this, ListDataEvent.CONTENTS_CHANGED, -1, -1 ) ); }
public void update( final int index, final K key, final V cbitem ) { final ComboBoxItemPair<K, V> con = new ComboBoxItemPair<K, V>( key, cbitem ); data.set( index, con ); final ListDataEvent evt = new ListDataEvent ( this, ListDataEvent.CONTENTS_CHANGED, index, index ); fireListDataEvent( evt ); }
/** * Replaces the data in this combobox model. The number of keys must be equals to the number of values. * * @param keys the keys * @param values the values */ public void setData( final K[] keys, final V[] values ) { if ( values.length != keys.length ) { throw new IllegalArgumentException( "Values and text must have the same length." ); } data.clear(); data.ensureCapacity( keys.length ); for ( int i = 0; i < values.length; i++ ) { add( keys[ i ], values[ i ] ); } selectedItemIndex = -1; final ListDataEvent evt = new ListDataEvent ( this, ListDataEvent.CONTENTS_CHANGED, 0, data.size() - 1 ); fireListDataEvent( evt ); }
/** * Removes an entry from the model. * * @param key the key */ public void removeDataElement( final K key ) { final int idx = findDataElementIndex( key ); if ( idx == -1 ) { return; } data.remove( idx ); final ListDataEvent evt = new ListDataEvent ( this, ListDataEvent.INTERVAL_REMOVED, idx, idx ); fireListDataEvent( evt ); }
/** * Defines the selected key. If the object is not in the list of values, no item gets selected. * * @param anItem the new selected item. */ public void setSelectedKey( final K anItem ) { final int oldSelectedItem = this.selectedItemIndex; final int newSelectedItem = findDataElementIndex( anItem ); if ( newSelectedItem == -1 ) { selectedItemIndex = -1; selectedItemValue = null; } else { selectedItemIndex = newSelectedItem; selectedItemValue = getElementAt( selectedItemIndex ); } if ( oldSelectedItem != this.selectedItemIndex ) { fireListDataEvent( new ListDataEvent( this, ListDataEvent.CONTENTS_CHANGED, -1, -1 ) ); } }
public void setSelectedValue( final V anItem ) { final int oldSelectedItem = this.selectedItemIndex; final int newSelectedItem = findElementIndex( anItem ); if ( newSelectedItem == -1 ) { if ( isAllowOtherValue() ) { selectedItemIndex = -1; selectedItemValue = anItem; } else { selectedItemIndex = -1; selectedItemValue = null; } } else { selectedItemIndex = newSelectedItem; selectedItemValue = getElementAt( selectedItemIndex ); } if ( oldSelectedItem != this.selectedItemIndex ) { fireListDataEvent( new ListDataEvent( this, ListDataEvent.CONTENTS_CHANGED, -1, -1 ) ); } }