/* SleepComparisonStatisticTableModel.java created 2008-03-03
*
*/
package org.signalml.plugin.newstager.ui;
import static org.signalml.plugin.i18n.PluginI18n._;
import javax.swing.table.AbstractTableModel;
import org.signalml.exception.SanityCheckException;
import org.signalml.plugin.newstager.data.NewStagerSleepComparison;
/**
* SleepComparisonStatisticTableModel
*
*
* @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe
* Sp. z o.o.
*/
public class NewStagerSleepComparisonStatisticTableModel extends
AbstractTableModel {
private static final long serialVersionUID = 1L;
public static final int STAGE_COLUMN = 0;
public static final int CONCORDANCE_COLUMN = 1;
public static final int SENSITIVITY_COLUMN = 2;
public static final int SELECTIVITY_COLUMN = 3;
private NewStagerSleepComparison comparison;
public NewStagerSleepComparisonStatisticTableModel() {
super();
}
public NewStagerSleepComparison getComparison() {
return comparison;
}
public void setComparison(NewStagerSleepComparison comparison) {
if (this.comparison != comparison) {
this.comparison = comparison;
fireTableStructureChanged();
}
}
@Override
public int getColumnCount() {
return 4;
}
@Override
public Class<?> getColumnClass(int columnIndex) {
switch (columnIndex) {
case STAGE_COLUMN:
return String.class;
case CONCORDANCE_COLUMN:
return Double.class;
case SENSITIVITY_COLUMN:
return Double.class;
case SELECTIVITY_COLUMN:
return Double.class;
default:
throw new SanityCheckException("Unsupported index [" + columnIndex
+ "]");
}
}
@Override
public String getColumnName(int column) {
switch (column) {
case STAGE_COLUMN:
return _("Stage");
case CONCORDANCE_COLUMN:
return _("Concordance %");
case SENSITIVITY_COLUMN:
return _("Sensitivity %");
case SELECTIVITY_COLUMN:
return _("Selectivity %");
default:
throw new SanityCheckException("Unsupported index [" + column + "]");
}
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
@Override
public int getRowCount() {
if (comparison == null) {
return 0;
}
return comparison.getStyleCount();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case STAGE_COLUMN:
return comparison.getStyleAt(rowIndex).getDescriptionOrName();
case CONCORDANCE_COLUMN:
return comparison.getConcordance(rowIndex);
case SENSITIVITY_COLUMN:
return comparison.getSensitivity(rowIndex);
case SELECTIVITY_COLUMN:
return comparison.getSelectivity(rowIndex);
default:
throw new SanityCheckException("Unsupported index [" + columnIndex
+ "]");
}
}
}