/** * @see javax.swing.MutableComboBoxModel#removeElementAt(int) */ public void removeElementAt(int idx) { if ( !isMultipleSelection() && idx == getMinSelectionIndex() ) { int sIdx = ( idx==0 ? getSize()==1 ? -1 : idx+1 : idx-1 ); Object sel = ( sIdx == -1 ? null : m_items.get(sIdx) ); setSelectedItem(sel); } m_items.remove(idx); fireDataEvent(this,ListDataEvent.INTERVAL_REMOVED,idx,idx); }
/** * Indicates if the ListModel currently has multiple selections. * @return true if there are multiple selections, false otherwise */ private boolean isMultipleSelection() { return getMaxSelectionIndex()-getMinSelectionIndex() > 0; }
/** * @see javax.swing.MutableComboBoxModel#addElement(java.lang.Object) */ public void addElement(Object item) { m_items.add(item); int sz = m_items.size()-1; fireDataEvent(this,ListDataEvent.INTERVAL_ADDED,sz,sz); if ( sz >= 0 && isSelectionEmpty() && item != null ) setSelectedItem(item); }
OrPredicate orP = (OrPredicate)m_query; if ( model.isSelectionEmpty() ) else if ( m_includeAll && model.isSelectedIndex(0) ) int min = model.getMinSelectionIndex(); int max = model.getMaxSelectionIndex(); int count = 0; for ( int i=min; i<=max; ++i ) { if ( model.isSelectedIndex(i) ) ++count; if ( count == model.getSize() ) { orP.set(BooleanLiteral.TRUE); } else if ( count == 1 ) { orP.set(getComparison(model.getElementAt(min))); } else { Predicate[] p = new Predicate[count]; for ( int i=min, j=0; i<=max; ++i ) { if ( model.isSelectedIndex(i) ) p[j++] = getComparison(model.getElementAt(i));
private void initModel() { if ( m_model != null ) m_model.removeListSelectionListener(m_listener); // set up data / selection model Object[] o; if ( m_tuples instanceof Table ) { ColumnMetadata md = ((Table)m_tuples).getMetadata(m_field); o = md.getOrdinalArray(); } else { o = DataLib.ordinalArray(m_tuples.tuples(), m_field); } m_model = new ListModel(o); m_model.addListSelectionListener(m_listener); if ( m_includeAll ) { m_model.insertElementAt(ALL, 0); m_model.setSelectedItem(ALL); } }
/** * @see javax.swing.ComboBoxModel#setSelectedItem(java.lang.Object) */ public void setSelectedItem(Object item) { int idx = m_items.indexOf(item); if ( idx < 0 ) return; if ( !isMultipleSelection() && idx == getMinSelectionIndex() ) return; super.setSelectionInterval(idx,idx); fireDataEvent(this,ListDataEvent.CONTENTS_CHANGED,-1,-1); }
/** * @see javax.swing.ComboBoxModel#getSelectedItem() */ public Object getSelectedItem() { int idx = getMinSelectionIndex(); return ( idx == -1 ? null : m_items.get(idx) ); }
/** * @see javax.swing.MutableComboBoxModel#insertElementAt(java.lang.Object, int) */ public void insertElementAt(Object item, int idx) { m_items.add(idx, item); fireDataEvent(this,ListDataEvent.INTERVAL_ADDED,idx,idx); }