package com.vistatec.ocelot.tm.gui.match; import java.util.List; import com.vistatec.ocelot.segment.model.SegmentVariant; import com.vistatec.ocelot.tm.TmMatch; /** * Data model assigned to the table displayed in the Concordance Search panel. */ public class ConcordanceMatchTableModel extends TmMatchTableModel { /** Serial version UID. */ private static final long serialVersionUID = 2115553091508295586L; /** The source column index. */ private static final int SOURCE_COL = 0; /** The match score column index. */ private static final int MATCH_SCORE_COL = 1; /** The target column index. */ private static final int TARGET_COL = 2; /** The TM name column index. */ private static final int TM_NAME_COL = 3; /** * Constructor. * * @param model * the list of TMs being the actual model. */ public ConcordanceMatchTableModel(final List<TmMatch> model) { super(model, new String[] { "", "", "", "" }); } /** * Gets the class of the objects displayed in the queried column. * * @return the class of the objects displayed in the queried column * @see javax.swing.table.AbstractTableModel#getColumnClass(int) */ @Override public Class<?> getColumnClass(int columnIndex) { Class<?> clazz = Object.class; switch (columnIndex) { case TM_NAME_COL: clazz = String.class; break; case SOURCE_COL: case TARGET_COL: clazz = SegmentVariant.class; break; case MATCH_SCORE_COL: clazz = Integer.class; break; default: break; } return clazz; } /* * (non-Javadoc) * @see javax.swing.table.DefaultTableModel#getValueAt(int, int) */ @Override public Object getValueAt(int row, int column) { Object retValue = null; if (model != null && row < model.size()) { TmMatch currMatch = model.get(row); switch (column) { case SOURCE_COL: retValue = currMatch.getSource(); break; case MATCH_SCORE_COL: retValue = (int) (currMatch.getMatchScore()); break; case TARGET_COL: retValue = currMatch.getTarget(); break; case TM_NAME_COL: retValue = currMatch.getTmOrigin(); break; default: break; } } return retValue; } /* * (non-Javadoc) * @see com.vistatec.ocelot.tm.gui.match.TmMatchTableModel#getSourceColumnIdx() */ @Override public int getSourceColumnIdx() { return SOURCE_COL; } /* * (non-Javadoc) * @see com.vistatec.ocelot.tm.gui.match.TmMatchTableModel#getTargetColumnIdx() */ @Override public int getTargetColumnIdx() { return TARGET_COL; } /* * (non-Javadoc) * @see com.vistatec.ocelot.tm.gui.match.TmMatchTableModel#getMatchScoreColumnIdx() */ @Override public int getMatchScoreColumnIdx() { return MATCH_SCORE_COL; } /* * (non-Javadoc) * @see com.vistatec.ocelot.tm.gui.match.TmMatchTableModel#getTmColumnIdx() */ @Override public int getTmColumnIdx() { return TM_NAME_COL; } /** * The table model is not editable. It always returns <code>false</code> * regardless of parameter values. * * @return <code>false</code>. * @see javax.swing.table.DefaultTableModel#isCellEditable(int, int) */ @Override public boolean isCellEditable(int row, int column) { return column == TARGET_COL; } }