/* FFTSampleFilterTableModel.java created 2008-02-03 * */ package org.signalml.app.model.montage; import static org.signalml.app.util.i18n.SvarogI18n._; import javax.swing.table.AbstractTableModel; import org.apache.log4j.Logger; import org.signalml.domain.montage.filter.FFTSampleFilter; import org.signalml.domain.montage.filter.FFTSampleFilter.Range; /** FFTSampleFilterTableModel * * * @author Michal Dobaczewski © 2007-2008 CC Otwarte Systemy Komputerowe Sp. z o.o. */ public class FFTSampleFilterTableModel extends AbstractTableModel { private static final long serialVersionUID = 1L; protected static final Logger logger = Logger.getLogger(FFTSampleFilterTableModel.class); public static final int FREQUENCY_COLUMN = 0; public static final int COEFFICIENT_COLUMN = 1; private FFTSampleFilter filter; public FFTSampleFilter getFilter() { return filter; } public void setFilter(FFTSampleFilter filter) { if (this.filter != filter) { this.filter = filter; fireTableDataChanged(); } } @Override public int getColumnCount() { return 2; } @Override public int getRowCount() { if (filter == null) { return 0; } return filter.getRangeCount(); } @Override public boolean isCellEditable(int rowIndex, int columnIndex) { return false; } @Override public String getColumnName(int column) { switch (column) { case FREQUENCY_COLUMN : return _("Frequency range [Hz]"); case COEFFICIENT_COLUMN: return _("Coefficient"); default : throw new IndexOutOfBoundsException(); } } @Override public Class<?> getColumnClass(int columnIndex) { switch (columnIndex) { case FREQUENCY_COLUMN : return String.class; case COEFFICIENT_COLUMN : return Double.class; default : throw new IndexOutOfBoundsException(); } } @Override public Object getValueAt(int rowIndex, int columnIndex) { switch (columnIndex) { case FREQUENCY_COLUMN : Range range = filter.getRangeAt(rowIndex); float lowFrequency = range.getLowFrequency(); float highFrequency = range.getHighFrequency(); if (lowFrequency < highFrequency) { return lowFrequency + " - " + highFrequency; } else { return lowFrequency + " - Fn"; } case COEFFICIENT_COLUMN : return filter.getRangeAt(rowIndex).getCoefficient(); default : throw new IndexOutOfBoundsException(); } } public void onUpdate() { fireTableDataChanged(); } }