001 package nl.cwi.sen1.gui.plugin.data; 002 003 import java.util.Iterator; 004 import java.util.LinkedList; 005 006 import javax.swing.table.AbstractTableModel; 007 008 public class ModuledetailsTableModel extends AbstractTableModel { 009 private String[] columnNames; 010 private LinkedList<String[]> data; 011 012 public ModuledetailsTableModel(String[] columnNames) { 013 this.columnNames = columnNames; 014 data = new LinkedList<String[]>(); 015 } 016 017 public int getRowCount() { 018 return data.size(); 019 } 020 021 public int getColumnCount() { 022 return columnNames.length; 023 } 024 025 public String getColumnName(int col) { 026 return columnNames[col]; 027 } 028 029 public Object getValueAt(int rowIndex, int columnIndex) { 030 String[] row = data.get(rowIndex); 031 return row[columnIndex]; 032 } 033 034 public void setDetails(String namespace, String key, String value) { 035 String[] found = null; 036 037 for (Iterator iter = data.iterator(); iter.hasNext();) { 038 String[] row = (String[]) iter.next(); 039 if (row[0].equals(namespace) && row[1].equals(key)) { 040 found = row; 041 } 042 } 043 044 if (found != null) { 045 found[2] = value; 046 } else { 047 found = new String[3]; 048 found[0] = namespace; 049 found[1] = key; 050 found[2] = value; 051 data.add(found); 052 } 053 fireTableDataChanged(); 054 } 055 }