/* RocTableModel.java created 2007-12-18 * */ package org.signalml.app.view.signal.roc; import static org.signalml.app.util.i18n.SvarogI18n._; import javax.swing.table.AbstractTableModel; import org.signalml.domain.roc.RocData; /** RocTableModel * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class RocTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; private RocData rocData; public RocTableModel() { super(); } public RocData getRocData() { return rocData; } public void setRocData(RocData rocData) { if (this.rocData != rocData) { this.rocData = rocData; fireTableStructureChanged(); } } @Override public int getColumnCount() { if (rocData == null) { return 0; } return rocData.getParameterCount() + 7; } @Override public Class<?> getColumnClass(int columnIndex) { if (columnIndex == 0) { return Integer.class; } else if (columnIndex < getColumnCount()-6) { return Object.class; } else { return Double.class; } } @Override public String getColumnName(int column) { int cnt = getColumnCount(); if (column == 0) { return _("Index"); } else if (column == cnt-6) { return _("TP"); } else if (column == cnt-5) { return _("FP"); } else if (column == cnt-4) { return _("TN"); } else if (column == cnt-3) { return _("FN"); } else if (column == cnt-2) { return _("FP rate"); } else if (column == cnt-1) { return _("TP rate"); } else { return rocData.getParameterAt(column-1).getDefaultMessage(); } } @Override public int getRowCount() { if (rocData == null) { return 0; } return rocData.getSampleCount(); } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } @Override public Object getValueAt(int rowIndex, int columnIndex) { int cnt = getColumnCount(); if (columnIndex == 0) { return new Integer(rowIndex+1); } else if (columnIndex == cnt-6) { return new Double(rocData.getTruePositiveCount(rowIndex)); } else if (columnIndex == cnt-5) { return new Double(rocData.getFalsePositiveCount(rowIndex)); } else if (columnIndex == cnt-4) { return new Double(rocData.getTrueNegativeCount(rowIndex)); } else if (columnIndex == cnt-3) { return new Double(rocData.getFalseNegativeCount(rowIndex)); } else if (columnIndex == cnt-2) { return new Double(rocData.getFalseRateAt(rowIndex)); } else if (columnIndex == cnt-1) { return new Double(rocData.getTrueRateAt(rowIndex)); } else { return rocData.getParameterValueAt(columnIndex-1, rowIndex); } } }