/*
* Copyright (C) 2006-2007 Sun Microsystems, Inc. All rights reserved. Use is
* subject to license terms.
*/
package org.jdesktop.observablecollections;
import java.util.EventListener;
import java.util.List;
/**
* Notification types from an {@code ObservableList}.
*
* @author sky
*/
public interface ObservableListListener extends EventListener {
/**
* Notification that elements have been added to the list.
*
* @param list the {@code ObservableList} that has changed
* @param index the index the elements were added to
* @param length the number of elements that were added
*/
public void listElementsAdded(ObservableList list, int index, int length);
/**
* Notification that elements have been removed from the list.
*
* @param list the {@code ObservableList} that has changed
* @param index the starting index the elements were removed from
* @param oldElements a list containing the elements that were removed.
*/
public void listElementsRemoved(ObservableList list, int index,
List oldElements);
/**
* Notification that an element has been replaced by another in the list.
*
* @param list the {@code ObservableList} that has changed
* @param index the index of the element that was replaced
* @param oldElement the element at the index before the change
*/
public void listElementReplaced(ObservableList list, int index,
Object oldElement);
/**
* Notification than a property of an element in this list has changed.
* Not all {@code ObservableLists} support this notification. Only
* observable lists that return {@code true} from
* {@code supportsElementPropertyChanged} send this notification.
*
* @param list the {@code ObservableList} that has changed
* @param index the index of the element that changed
*/
public void listElementPropertyChanged(ObservableList list, int index);
}