/** * Inserts an item to this <code>Choice</code>, * but does not invalidate the <code>Choice</code>. * Client methods must provide their own synchronization before * invoking this method. * @param item the item to be added * @param index the new item position * @exception NullPointerException if the item's value is equal to * <code>null</code> */ private void insertNoInvalidate(String item, int index) { if (item == null) { throw new NullPointerException("cannot add null item to Choice"); } pItems.insertElementAt(item, index); ChoicePeer peer = (ChoicePeer)this.peer; if (peer != null) { peer.add(item, index); } // no selection or selection shifted up if (selectedIndex < 0 || selectedIndex >= index) { select(0); } }
/** * Removes an item from the <code>Choice</code> at the * specified position, but does not invalidate the <code>Choice</code>. * Client methods must provide their * own synchronization before invoking this method. * @param position the position of the item */ private void removeNoInvalidate(int position) { pItems.removeElementAt(position); ChoicePeer peer = (ChoicePeer)this.peer; if (peer != null) { peer.remove(position); } /* Adjust selectedIndex if selected item was removed. */ if (pItems.size() == 0) { selectedIndex = -1; } else if (selectedIndex == position) { select(0); } else if (selectedIndex > position) { select(selectedIndex-1); } }
/** * Inserts an item to this {@code Choice}, * but does not invalidate the {@code Choice}. * Client methods must provide their own synchronization before * invoking this method. * @param item the item to be added * @param index the new item position * @exception NullPointerException if the item's value is equal to * {@code null} */ private void insertNoInvalidate(String item, int index) { if (item == null) { throw new NullPointerException("cannot add null item to Choice"); } pItems.insertElementAt(item, index); ChoicePeer peer = (ChoicePeer)this.peer; if (peer != null) { peer.add(item, index); } // no selection or selection shifted up if (selectedIndex < 0 || selectedIndex >= index) { select(0); } }
/** * Removes an item from the {@code Choice} at the * specified position, but does not invalidate the {@code Choice}. * Client methods must provide their * own synchronization before invoking this method. * @param position the position of the item */ private void removeNoInvalidate(int position) { pItems.removeElementAt(position); ChoicePeer peer = (ChoicePeer)this.peer; if (peer != null) { peer.remove(position); } /* Adjust selectedIndex if selected item was removed. */ if (pItems.size() == 0) { selectedIndex = -1; } else if (selectedIndex == position) { select(0); } else if (selectedIndex > position) { select(selectedIndex-1); } }
/** Inserts an item into this Choice. Existing items are shifted * upwards. If the new item is the only item, then it is selected. * If the currently selected item is shifted, then the first item is * selected. If the currently selected item is not shifted, then it * remains selected. * * @param item The item to add. * @param index The index at which the item should be inserted. * * @exception IllegalArgumentException If index is less than 0 */ public synchronized void insert(String item, int index) { if (index < 0) throw new IllegalArgumentException ("index may not be less then 0"); if (index > getItemCount ()) index = getItemCount (); pItems.insertElementAt(item, index); if (peer != null) ((ChoicePeer) peer).add (item, index); if (selectedIndex == -1 || selectedIndex >= index) select(0); }
/** * Removes the item at the specified index from the choice box. * * @param index The index of the item to remove. * * @exception IndexOutOfBoundsException If the index is not valid. */ public synchronized void remove(int index) { pItems.removeElementAt(index); if (peer != null) ((ChoicePeer) peer).remove( index ); if( getItemCount() == 0 ) selectedIndex = -1; else { if( selectedIndex > index ) selectedIndex--; else if( selectedIndex == index ) selectedIndex = 0; if( peer != null ) ((ChoicePeer)peer).select( selectedIndex ); } }
/** * Removes all of the objects from this choice box. */ public synchronized void removeAll() { if (getItemCount() <= 0) return; pItems.removeAllElements (); if (peer != null) { ChoicePeer cp = (ChoicePeer) peer; cp.removeAll (); } selectedIndex = -1; }
/** * Inserts an item to this <code>Choice</code>, * but does not invalidate the <code>Choice</code>. * Client methods must provide their own synchronization before * invoking this method. * @param item the item to be added * @param index the new item position * @exception NullPointerException if the item's value is equal to * <code>null</code> */ private void insertNoInvalidate(String item, int index) { if (item == null) { throw new NullPointerException("cannot add null item to Choice"); } pItems.insertElementAt(item, index); ChoicePeer peer = (ChoicePeer)this.peer; if (peer != null) { peer.addItem(item, index); } // no selection or selection shifted up if (selectedIndex < 0 || selectedIndex >= index) { select(0); } }