package studio.kdb; public class FlipTableModel extends KTableModel { private K.Flip flip; public void append(K.Flip f) { flip.append(f); if(isSortedAsc()) asc(sortedByColumn); else if(isSortedDesc()) desc(sortedByColumn); } public void asc(int col) { sortIndex = null; K.KBaseVector v = (K.KBaseVector) flip.y.at(col); sortIndex = v.gradeUp(); sorted = 1; sortedByColumn = col; } public void desc(int col) { sortIndex = null; K.KBaseVector v = (K.KBaseVector) flip.y.at(col); sortIndex = v.gradeDown(); sorted = -1; sortedByColumn = col; } public void setData(K.Flip obj) { flip = obj; } public static boolean isTable(Object obj) { if (obj instanceof K.Flip) return true; else if (obj instanceof K.Dict) { K.Dict d = (K.Dict) obj; if ((d.x instanceof K.Flip) && (d.y instanceof K.Flip)) return true; } return false; } public FlipTableModel() { super(); } public FlipTableModel(K.Flip obj) { super(); setData(obj); } public boolean isKey(int column) { return false; } public int getColumnCount() { return flip.x.getLength(); } public int getRowCount() { return ((K.KBaseVector) flip.y.at(0)).getLength(); } public Object getValueAt(int row,int col) { Object o = null; row = (sortIndex == null) ? row : sortIndex[row]; K.KBaseVector v = (K.KBaseVector) flip.y.at(col); o = v.at(row); return o; } public String getColumnName(int i) { return flip.x.at(i).toString(false); } public Class getColumnClass(int col) { return flip.y.at(col).getClass(); } public K.KBaseVector getColumn(int col) { return (K.KBaseVector) flip.y.at(col); } };