Mercurial > repos > timpalpant > java_genomics_toolkit
diff gui/edu/unc/genomics/AssemblyTableModel.java @ 2:e16016635b2a
Uploaded
author | timpalpant |
---|---|
date | Mon, 13 Feb 2012 22:12:06 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gui/edu/unc/genomics/AssemblyTableModel.java Mon Feb 13 22:12:06 2012 -0500 @@ -0,0 +1,97 @@ +package edu.unc.genomics; + +import java.util.List; + +import javax.swing.table.AbstractTableModel; + +/** + * Model for the AssemblyManagerDialog table view + * + * @author timpalpant + * + */ +public class AssemblyTableModel extends AbstractTableModel { + + private static final long serialVersionUID = 8225453782461913732L; + + private static final String[] COLUMN_NAMES = { "Name", "# Contigs" }; + + private final List<Assembly> assemblies; + + public AssemblyTableModel(List<Assembly> assemblies) { + this.assemblies = assemblies; + } + + /* (non-Javadoc) + * @see javax.swing.table.AbstractTableModel#getColumnName(int) + */ + @Override + public String getColumnName(int col) { + return COLUMN_NAMES[col]; + } + + /* (non-Javadoc) + * @see javax.swing.table.AbstractTableModel#isCellEditable(int, int) + */ + @Override + public boolean isCellEditable(int row, int col) { + return false; + } + + /* (non-Javadoc) + * @see javax.swing.table.TableModel#getRowCount() + */ + @Override + public int getRowCount() { + return assemblies.size(); + } + + /* (non-Javadoc) + * @see javax.swing.table.TableModel#getColumnCount() + */ + @Override + public int getColumnCount() { + return 2; + } + + /* (non-Javadoc) + * @see javax.swing.table.TableModel#getValueAt(int, int) + */ + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + Assembly a = assemblies.get(rowIndex); + if (columnIndex == 0) { + return a.toString(); + } else if (columnIndex == 1) { + return a.chromosomes().size(); + } else { + return null; + } + } + + public Assembly getRow(int rowIndex) { + return assemblies.get(rowIndex); + } + + public boolean containsAssembly(Assembly a) { + String aName = a.toString(); + for (Assembly assembly : assemblies) { + if (assembly.toString().equalsIgnoreCase(aName)) { + return true; + } + } + + return false; + } + + public void addAssembly(Assembly a) { + assemblies.add(a); + fireTableRowsInserted(assemblies.size()-1, assemblies.size()-1); + } + + public void removeRow(int rowIndex) { + assemblies.remove(rowIndex); + fireTableRowsDeleted(rowIndex, rowIndex); + } + +}