package com.vistatec.ocelot.its.view;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import com.vistatec.ocelot.its.model.TerminologyMetaData;
import com.vistatec.ocelot.segment.model.OcelotSegment;
import com.vistatec.ocelot.segment.view.SegmentAttributeTablePane;
/**
* Table displaying term meta data.
*/
public class TermsTableView extends SegmentAttributeTablePane<TermsTableView.TermITSTableModel> {
/** The serial version UID. */
private static final long serialVersionUID = -3076817521019788334L;
/*
* (non-Javadoc)
* @see com.vistatec.ocelot.segment.view.SegmentAttributeTablePane#createTableModel()
*/
@Override
protected TermITSTableModel createTableModel() {
return new TermITSTableModel();
}
/*
* (non-Javadoc)
* @see com.vistatec.ocelot.segment.view.SegmentAttributeTablePane#segmentSelected(com.vistatec.ocelot.segment.model.OcelotSegment)
*/
@Override
protected void segmentSelected(OcelotSegment seg) {
List<TerminologyMetaData> termsMetaData = seg.getTerms();
getTableModel().setRows(termsMetaData);
}
/**
* Table model for the terms meta data table.
*/
public class TermITSTableModel extends AbstractTableModel {
/** the serial version UID. */
private static final long serialVersionUID = -8973682252927892105L;
/** The term column index. */
private static final int TERM_COL = 0;
/** The source column index. */
private static final int SOURCE_COL = 1;
/** The target column index. */
private static final int TARGET_COL = 2;
/** The domain column index. */
private static final int DOMAIN_COL = 3;
/** The annotators ref column index. */
private static final int ANNOT_REF_COL = 4;
/** The segment part column index. */
private static final int SEGM_PART_COL = 5;
/** The columns names.*/
private final String[] colNames = { "Term", "Source", "Target",
"Domain", "annotatorsRef", "Segment Part" };
/** The table rows. */
private List<TerminologyMetaData> rows;
/**
* Sets the rows.
* @param rows the rows.
*/
public void setRows(List<TerminologyMetaData> rows){
this.rows = rows;
}
/*
* (non-Javadoc)
* @see javax.swing.table.TableModel#getRowCount()
*/
@Override
public int getRowCount() {
int count = 0;
if(rows != null){
count = rows.size();
}
return count;
}
/*
* (non-Javadoc)
* @see javax.swing.table.TableModel#getColumnCount()
*/
@Override
public int getColumnCount() {
return colNames.length;
}
/*
* (non-Javadoc)
* @see javax.swing.table.AbstractTableModel#getColumnName(int)
*/
@Override
public String getColumnName(int column) {
String colName = "";
if(column<colNames.length){
colName = colNames[column];
}
return colName;
}
/*
* (non-Javadoc)
* @see javax.swing.table.TableModel#getValueAt(int, int)
*/
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
Object retValue = null;
if(rows != null && rowIndex < rows.size()){
TerminologyMetaData currMetaData = rows.get(rowIndex);
switch (columnIndex) {
case ANNOT_REF_COL:
retValue = currMetaData.getAnnotatorsRef();
break;
case DOMAIN_COL:
retValue = currMetaData.getSense();
break;
case SOURCE_COL:
retValue = currMetaData.getTermSource();
break;
case TARGET_COL:
retValue = currMetaData.getTermTarget();
break;
case TERM_COL:
retValue = currMetaData.getTerm();
break;
case SEGM_PART_COL:
retValue = currMetaData.getSegPart();
break;
default:
break;
}
}
return retValue;
}
}
}