package model.table;
import java.util.List;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
import model.audio.GainAudioFile;
import model.util.FileUtil;
public class GainTableModel implements TableModel {
/**
* the list of audio files
*/
private List<GainAudioFile> audioFiles;
/*
* column names
*/
private String col1;
private String col2;
private String col3;
private String col4;
private String col5;
private String col6;
/**
* Constructor
*
* @param audioFiles
* the audiofiles which should be shown
*/
public GainTableModel(List<GainAudioFile> audioFiles) {
this.audioFiles = audioFiles;
this.col1 = "";
this.col2 = "";
this.col3 = "";
this.col4 = "";
this.col5 = "";
this.col6 = "";
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#getColumnClass(int)
*/
@Override
public Class<?> getColumnClass(int columnIndex) {
return String.class;
}
/**
* sets the column names
*
* @param i
* column index (starts at 1)
* @param name
* the column name
*/
public void setColName(int i, String name) {
switch (i) {
case 1:
col1 = name;
return;
case 2:
col2 = name;
return;
case 3:
col3 = name;
return;
case 4:
col4 = name;
return;
case 5:
col5 = name;
return;
case 6:
col6 = name;
return;
}
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#getColumnCount()
*/
@Override
public int getColumnCount() {
return 6;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#getColumnName(int)
*/
@Override
public String getColumnName(int columnIndex) {
switch (columnIndex) {
case 0:
return col1;
case 1:
return col2;
case 2:
return col3;
case 3:
return col4;
case 4:
return col5;
case 5:
return col6;
}
return "";
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#getRowCount()
*/
@Override
public int getRowCount() {
return this.audioFiles.size();
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#getValueAt(int, int)
*/
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch (columnIndex) {
case 0:
return FileUtil.getFileNameWithoutExtension(this.audioFiles.get(rowIndex).getPath());
case 1:
return this.audioFiles.get(rowIndex).getPath();
case 2:
return getValue(this.audioFiles.get(rowIndex).getTrackvolume(), this.audioFiles.get(rowIndex).isValid());
case 3:
return getValue(this.audioFiles.get(rowIndex).getTrackGain(), this.audioFiles.get(rowIndex).isValid());
case 4:
return getValue(this.audioFiles.get(rowIndex).getAlbumVolume(), this.audioFiles.get(rowIndex).isValid());
case 5:
return getValue(this.audioFiles.get(rowIndex).getAlbumGain(), this.audioFiles.get(rowIndex).isValid());
}
return "";
}
/**
* returns the value if valid is true, else an empty string
*
* @param value
* the value
* @param valid
* valid bit
*
* @return the value or an empty string
*/
private Object getValue(double value, boolean valid) {
if (valid)
return value;
else
return "";
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#isCellEditable(int, int)
*/
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return false;
}
/*
* (non-Javadoc)
*
* @see
* javax.swing.table.TableModel#removeTableModelListener(javax.swing.event
* .TableModelListener)
*/
@Override
public void removeTableModelListener(TableModelListener l) {
}
/*
* (non-Javadoc)
*
* @see
* javax.swing.table.TableModel#addTableModelListener(javax.swing.event.
* TableModelListener)
*/
@Override
public void addTableModelListener(TableModelListener l) {
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int)
*/
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
}
}