       1 /*
       2  * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
       3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
       4  *
       5  * This code is free software; you can redistribute it and/or modify it
       6  * under the terms of the GNU General Public License version 2 only, as
       7  * published by the Free Software Foundation.  Oracle designates this
       8  * particular file as subject to the "Classpath" exception as provided
       9  * by Oracle in the LICENSE file that accompanied this code.
      10  *
      11  * This code is distributed in the hope that it will be useful, but WITHOUT
      12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      14  * version 2 for more details (a copy is included in the LICENSE file that
      15  * accompanied this code).
      16  *
      17  * You should have received a copy of the GNU General Public License version
      18  * 2 along with this work; if not, write to the Free Software Foundation,
      19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
      20  *
      21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
      22  * or visit www.oracle.com if you need additional information or have any
      23  * questions.
      24  */
      25 package javax.swing;
      26
      27 /**
      28  * A mutable version of <code>ComboBoxModel</code>.
      29  *
      30  * @param <E> the type of the elements of this model
      31  *
      32  * @author Tom Santos
      33  * @since 1.2
      34  */
      35
      36 public interface MutableComboBoxModel<E> extends ComboBoxModel<E> {
      37
      38     /**
      39      * Adds an item at the end of the model. The implementation of this method
      40      * should notify all registered <code>ListDataListener</code>s that the
      41      * item has been added.
      42      *
      43      * @param item the item to be added
      44      */
      45     public void addElement( E item );
      46
      47     /**
      48      * Removes an item from the model. The implementation of this method should
      49      * should notify all registered <code>ListDataListener</code>s that the
      50      * item has been removed.
      51      *
      52      * @param obj the <code>Object</code> to be removed
      53      */
      54     public void removeElement( Object obj );
      55
      56     /**
      57      * Adds an item at a specific index.  The implementation of this method
      58      * should notify all registered <code>ListDataListener</code>s that the
      59      * item has been added.
      60      *
      61      * @param item  the item to be added
      62      * @param index  location to add the object
      63      */
      64     public void insertElementAt( E item, int index );
      65
      66     /**
      67      * Removes an item at a specific index. The implementation of this method
      68      * should notify all registered <code>ListDataListener</code>s that the
      69      * item has been removed.
      70      *
      71      * @param index  location of the item to be removed
      72      */
      73     public void removeElementAt( int index );
      74 }