package com.ibm.nmon.gui.report; import java.util.List; import javax.swing.AbstractListModel; import com.ibm.nmon.data.DataSet; final class ReportSystemsListModel extends AbstractListModel<DataSet> { private static final long serialVersionUID = 2791502501268145566L; private final List<DataSet> systems = new java.util.ArrayList<DataSet>(); // see ReportFrame's ListCellRenderer which uses index 0 as 'All Systems' // support that here by reporting a larger size and modifying the index @Override public DataSet getElementAt(int index) { if (index == 0) { return null; } else { return systems.get(index - 1); } } @Override public int getSize() { return systems.size() + 1; } void addData(DataSet data) { systems.add(data); java.util.Collections.sort(systems); fireContentsChanged(this, getSize(), getSize()); } void removeData(DataSet data) { systems.remove(data); fireContentsChanged(this, 1, getSize()); } void clearData() { systems.clear(); fireContentsChanged(this, 1, getSize()); } void dataChanged() { fireContentsChanged(this, 1, getSize()); } }