2 * Copyright © 2010 Keith Packard <keithp@keithp.com>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 * General Public License for more details.
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
21 import java.awt.event.*;
23 import javax.swing.filechooser.FileNameExtensionFilter;
24 import javax.swing.table.*;
28 import java.util.prefs.*;
29 import java.util.concurrent.LinkedBlockingQueue;
31 public class AltosFlightInfoTableModel extends AbstractTableModel {
32 private String[] columnNames = {"Field", "Value"};
38 public InfoLine(String n, String v) {
44 private ArrayList<InfoLine> rows = new ArrayList<InfoLine>();
46 public int getColumnCount() { return columnNames.length; }
47 public String getColumnName(int col) { return columnNames[col]; }
49 public int getRowCount() { return 20; }
52 int prev_num_rows = 0;
54 public Object getValueAt(int row, int col) {
55 if (row >= rows.size())
58 return rows.get(row).name;
60 return rows.get(row).value;
63 public void resetRow() {
66 public void addRow(String name, String value) {
67 if (current_row >= rows.size())
68 rows.add(current_row, new InfoLine(name, value));
70 rows.set(current_row, new InfoLine(name, value));
73 public void finish() {
74 if (current_row > prev_num_rows)
75 fireTableRowsInserted(prev_num_rows, current_row - 1);
76 while (rows.size() > current_row)
77 rows.remove(rows.size() - 1);
78 prev_num_rows = current_row;
79 fireTableDataChanged();