001    /*
002      Copyright (C) 2002 Renaud Pawlak
003    
004      This program is free software; you can redistribute it and/or modify
005      it under the terms of the GNU Lesser General Public License as
006      published by the Free Software Foundation; either version 2 of the
007      License, or (at your option) any later version.
008    
009      This program is distributed in the hope that it will be useful,
010      but WITHOUT ANY WARRANTY; without even the implied warranty of
011      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
012      GNU Lesser General Public License for more details.
013    
014      You should have received a copy of the GNU Lesser General Public License
015      along with this program; if not, write to the Free Software
016      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
017    
018    package org.objectweb.jac.aspects.gui;
019    
020    /**
021     * This interface implements common methods for view of
022     * collections. */
023    
024    public interface CollectionView extends FieldView {
025       /**
026        * Sets the selected index of the collection view.
027        *
028        * @param index the new selected index */
029       void setSelected(int index);
030    
031       /**
032        * Gets the associated collection model. */
033       CollectionModel getCollectionModel();
034    
035       /**
036        * Updates the collection model
037        */
038       void updateModel(Object substance);
039    
040       /**
041        * Tells wether the view allows to edit the collection (i.e it has
042        * add/remove buttons)
043        * @see #setEditor(boolean)
044        */
045       boolean isEditor();
046    
047       /**
048        * Set the "editability" of the view. If the view is editable, it
049        * has add/remove buttons)
050        * @see #isEditor() 
051        */
052       void setEditor(boolean isEditor);
053    }