package org.limewire.ui.swing.components; import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.swing.AbstractListModel; import javax.swing.JList; /** A {@link javax.swing.ListModel} for {@link JList} that is based off a {@link List}. */ public class CollectionBackedListModel extends AbstractListModel { protected final List data; public CollectionBackedListModel(Collection<?> data) { if(data instanceof List<?>) { this.data = (List<?>)data; } else { this.data = new ArrayList<Object>(data); } } @Override public Object getElementAt(int index) { return data.get(index); } @Override public int getSize() { return data.size(); } }