/* NewStagerSleepComparisonTableModel.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.plugin.newstager.data.NewStagerSleepComparison; /** * NewStagerSleepComparisonTableModel * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe * Sp. z o.o. */ public class NewStagerSleepComparisonTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; private ColumnTableModel columnTableModel; private RowTableModel rowTableModel; private NewStagerSleepComparison result; public NewStagerSleepComparisonTableModel() { super(); } public ColumnTableModel getColumnTableModel() { if (columnTableModel == null) { columnTableModel = new ColumnTableModel(); } return columnTableModel; } public RowTableModel getRowTableModel() { if (rowTableModel == null) { rowTableModel = new RowTableModel(); } return rowTableModel; } private void reset() { fireTableStructureChanged(); if (columnTableModel != null) { columnTableModel.fireTableStructureChanged(); } if (rowTableModel != null) { rowTableModel.fireTableStructureChanged(); } } public NewStagerSleepComparison getResult() { return result; } public void setResult(NewStagerSleepComparison result) { if (this.result != result) { this.result = result; reset(); } } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } @Override public Class<?> getColumnClass(int columnIndex) { return Integer.class; } @Override public int getColumnCount() { if (result == null) { return 0; } return result.getStyleCount() + 1; } @Override public int getRowCount() { if (result == null) { return 0; } return result.getStyleCount(); } @Override public Object getValueAt(int rowIndex, int columnIndex) { return new Integer(result.getStyleOverlay(rowIndex, columnIndex)); } public class ColumnTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; @Override public int getColumnCount() { if (result == null) { return 0; } return result.getStyleCount() + 1; } @Override public int getRowCount() { if (result == null) { return 0; } return 1; } @Override public Object getValueAt(int rowIndex, int columnIndex) { if (columnIndex < result.getStyleCount()) { return result.getStyleAt(columnIndex).getDescriptionOrName(); } else { return _("Other"); } } @Override public Class<?> getColumnClass(int columnIndex) { return String.class; } } public class RowTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; @Override public int getColumnCount() { if (result == null) { return 0; } return 1; } @Override public int getRowCount() { if (result == null) { return 0; } return result.getStyleCount(); } @Override public Object getValueAt(int rowIndex, int columnIndex) { return result.getStyleAt(rowIndex).getDescriptionOrName(); } @Override public Class<?> getColumnClass(int columnIndex) { return String.class; } } }