package aliview.primer;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.DecimalFormat;
import java.util.ArrayList;
import javax.swing.JLabel;
import org.apache.log4j.Logger;
public class PrimerResultTableRow {
private static final Logger logger = Logger.getLogger(PrimerResultTableRow.class);
private Primer primer;
private Font baseFont = new Font(Font.MONOSPACED, Font.PLAIN, 10);
private static final DecimalFormat DEC_FORMAT = new DecimalFormat("##.###");
public PrimerResultTableRow(Primer primer) {
this.primer = primer;
}
public static final ArrayList<Object> getColumnHeaders(){
ArrayList<Object> headers = new ArrayList<Object>();
headers.add("Degen-fold");
headers.add("Pos");
headers.add("Len");
headers.add("Sequence");
headers.add("GC-cont");
headers.add("TM(base-stacking)");
headers.add("3-end-dimer-len");
headers.add("dimer-len");
headers.add("Sequence");
return headers;
}
public static final ArrayList<Integer> getColumnSizes(){
ArrayList<Integer> sizes = new ArrayList<Integer>();
sizes.add(new Integer(30));
sizes.add(new Integer(30));
sizes.add(new Integer(30));
sizes.add(new Integer(150));
sizes.add(new Integer(30));
sizes.add(new Integer(150));
sizes.add(new Integer(30));
sizes.add(new Integer(30));
sizes.add(new Integer(100));
return sizes;
}
public ArrayList<Object> getRow(){
//this.setFont(baseFont);
ArrayList<Object> row = new ArrayList<Object>();
JLabel lblScore = new JLabel("" + primer.getDegenerateFold());
lblScore.setFont(baseFont);
//row.add(new String("" + primer.getDegenerateFold()));
row.add(lblScore);
JLabel lblPosition = new JLabel("" + primer.getPosition());
lblPosition.setFont(baseFont);
row.add(lblPosition);
//row.add(new String("" + primer.getPosition()));
JLabel lblLength = new JLabel("" + primer.getLength());
lblLength.setFont(new Font("Monospaced", Font.PLAIN, 10));
row.add(lblLength);
//row.add(new String("" + primer.getLength()));
PrimerDisplay primerDisplay = new PrimerDisplay(primer.getSequence());
primerDisplay.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
logger.info("MouseEnter");
}
});
row.add(primerDisplay);
JLabel lblGCcontent = new JLabel("" + DEC_FORMAT.format(primer.getGCcontent()));
lblGCcontent.setFont(new Font("Monospaced", Font.PLAIN, 10));
row.add(lblGCcontent);
JLabel lblTm = new JLabel(primer.getBaseStackingTmAsString() + " (avg=" + primer.getBaseStackingAvgTmAsString() + ")" );
lblTm.setFont(baseFont);
row.add(lblTm);
JLabel lbl3EndDimer = new JLabel("" + primer.get3EndDimerMaxLength());
lbl3EndDimer.setFont(new Font("Monospaced", Font.PLAIN, 10));
row.add(lbl3EndDimer);
JLabel lblDimer = new JLabel("" + primer.getDimerMaxLength());
lblDimer.setFont(new Font("Monospaced", Font.PLAIN, 10));
row.add(lblDimer);
JLabel lblSequence = new JLabel(primer.getSequence());
lblSequence.setFont(baseFont);
row.add(lblSequence);
return row;
}
}