package org.seqcode.projects.seqview.components; import javax.swing.event.*; import javax.swing.table.*; import javax.swing.*; import org.seqcode.data.seqdata.SeqAnalysis; import org.seqcode.viz.components.ObjectTableModel; import java.util.*; public class ChipSeqAnalysisTableModel extends ObjectTableModel<SeqAnalysis> { private int compareNameVersions(String n1, String v1, String n2, String v2) { int c = v1.compareTo(v2); if(c != 0) { return c; } return n1.compareTo(n2); } private int findNewIndex(SeqAnalysis bs) { String n = bs.getName(), v = bs.getVersion(); for(int i = 0; i < getSize(); i++) { SeqAnalysis os = getObject(i); String on = os.getName(), ov = os.getVersion(); int c = compareNameVersions(n, v, on, ov); if(c <= 0) { return i; } } return getSize(); } public int getColumnCount() { return 3; } public Class getColumnClass(int i) { if(i==0) { return String.class; } if(i==1) { return String.class; } if(i==2) { return String.class; } return null; } public String getColumnName(int i) { if(i==0) { return "Analysis Name"; } if(i==1) { return "Analysis Version"; } if(i==2) { return "Program"; } return null; } public Object getValueAt(int rowIndex, int c) { if(c==0) { return getObject(rowIndex).getName(); } if(c==1) { return getObject(rowIndex).getVersion(); } if(c==2) { return getObject(rowIndex).getProgramName(); } return null; } }