001 package nl.cwi.sen1.gui.plugin.data; 002 003 import java.util.Iterator; 004 import java.util.Vector; 005 006 import javax.swing.table.DefaultTableModel; 007 008 import nl.cwi.sen1.gui.plugin.ProgressCell; 009 010 import aterm.ATerm; 011 012 public class ProgressTableModel extends DefaultTableModel { 013 public void removeStatus(ATerm id) { 014 for (Iterator iter = dataVector.iterator(); iter.hasNext();) { 015 Vector row = (Vector) iter.next(); 016 ProgressCell cell = (ProgressCell) row.elementAt(0); 017 if (cell.getId().isEqual(id)) { 018 iter.remove(); 019 } 020 } 021 } 022 023 public void setStatus(ATerm id, String columnName, String status) { 024 Vector found = null; 025 026 for (Iterator iter = dataVector.iterator(); iter.hasNext();) { 027 Vector row = (Vector) iter.next(); 028 ProgressCell cell = (ProgressCell) row.elementAt(0); 029 if (cell.getId().isEqual(id)) { 030 found = row; 031 } 032 } 033 034 int column = findColumn(columnName); 035 if (column == -1) { 036 addColumn(columnName); 037 column = findColumn(columnName); 038 } 039 040 if (found != null) { 041 found.setElementAt(new ProgressCell(id, status), column); 042 } else { 043 ProgressCell[] rowData = new ProgressCell[getColumnCount()]; 044 rowData[0] = new ProgressCell(id, id.toString()); 045 rowData[column] = new ProgressCell(status); 046 addRow(rowData); 047 } 048 fireTableDataChanged(); 049 } 050 051 public void setMessage(ATerm id, String message) { 052 Vector found = null; 053 054 for (Iterator iter = dataVector.iterator(); iter.hasNext();) { 055 Vector row = (Vector) iter.next(); 056 ProgressCell cell = (ProgressCell) row.elementAt(0); 057 if (cell.getId().isEqual(id)) { 058 found = row; 059 } 060 } 061 062 if (found != null) { 063 found.setElementAt(new ProgressCell(id, message), 0); 064 } else { 065 ProgressCell[] rowData = new ProgressCell[getColumnCount()]; 066 rowData[0] = new ProgressCell(id, message); 067 addRow(rowData); 068 } 069 fireTableDataChanged(); 070 } 071 072 public boolean isCellEditable(int row, int col) { 073 return false; 074 } 075 }