001package jmri.jmrit.roster;
002
003import java.beans.PropertyChangeListener;
004
005/**
006 * The getter method for a roster entry selection.
007 * <p>
008 * Classes that implement this interface will be able to provide a source for
009 * getting a roster entry or entries to other objects that manipulate roster
010 * entries.
011 * <p>
012 * <b>Note:</b> Classes implementing this interface must fire a
013 * propertyChangeEvent for the <i>selectedRosterEntries</i> property whenever
014 * the selected roster entries change.
015 *
016 * @author Randall Wood
017 */
018public interface RosterEntrySelector {
019    
020    static final String SELECTED_ROSTER_ENTRIES = "selectedRosterEntries";
021    static final String HIGHLIGHTED_ROSTER_ENTRIES = "highlightedRosterEntries";
022
023    /**
024     * Get the currently selected roster entries. Since the selection could
025     * contain multiple roster entries, this returns an array of RosterEntry
026     * instead of a single RosterEntry.
027     *
028     * @return an array of RosterEntries
029     */
030    public RosterEntry[] getSelectedRosterEntries();
031
032    public void addPropertyChangeListener(PropertyChangeListener listener);
033
034    public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener);
035
036    public void removePropertyChangeListener(PropertyChangeListener listener);
037
038    public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener);
039
040}