package com.vistatec.ocelot.tm.gui.match;
import java.util.List;
import javax.swing.table.DefaultTableModel;
import com.vistatec.ocelot.tm.TmMatch;
/**
* Table data model for TM match tables. The extending models should provide
* following columns: source, target, match score and TM name.
*/
public abstract class TmMatchTableModel extends DefaultTableModel {
/** serial version UID. */
private static final long serialVersionUID = -6256335853992768787L;
/** the list of TM being the actual model. */
protected List<TmMatch> model;
/** the model column names. */
private String[] columns;
/**
* Constructor.
*
* @param model
* the list of TMs.
* @param columns
* the array of column names.
*/
public TmMatchTableModel(final List<TmMatch> model, final String[] columns) {
this.model = model;
this.columns = columns;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.DefaultTableModel#getRowCount()
*/
@Override
public int getRowCount() {
int count = 0;
if (model != null) {
count = model.size();
}
return count;
}
/*
* (non-Javadoc)
*
* @see javax.swing.table.DefaultTableModel#getColumnCount()
*/
@Override
public int getColumnCount() {
int count = 0;
if (columns != null) {
count = columns.length;
}
return count;
}
/**
* Sets the TM list.
*
* @param model
* the TM list.
*/
public void setModel(List<TmMatch> model) {
this.model = model;
fireTableDataChanged();
}
/**
* Gets the element lying at the queried row.
*
* @param row
* the row
* @return the element lying at the queried row.
*/
public TmMatch getElementAtRow(final int row) {
TmMatch element = null;
if (model != null && row < model.size()) {
element = model.get(row);
}
return element;
}
/**
* Gets the Source column index.
*
* @return the Source column index.
*/
public abstract int getSourceColumnIdx();
/**
* Gets the Target column index.
*
* @return the Target column index.
*/
public abstract int getTargetColumnIdx();
/**
* Gets the Match Score column index.
*
* @return the Match Score column index.
*/
public abstract int getMatchScoreColumnIdx();
/**
* Gets the TM name column index.
*
* @return the TM name column index.
*/
public abstract int getTmColumnIdx();
@Override
public void setValueAt(Object aValue, int row, int column) {
//does nothing
}
}