1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package de.jaret.examples.timebars.touren;
21
22 import java.util.ArrayList;
23 import java.util.Collections;
24 import java.util.List;
25
26 import javax.swing.table.AbstractTableModel;
27
28 import de.jaret.util.ui.timebars.TimeBarRowFilter;
29 import de.jaret.util.ui.timebars.TimeBarRowSorter;
30 import de.jaret.util.ui.timebars.model.TimeBarModel;
31 import de.jaret.util.ui.timebars.model.TimeBarRow;
32
33 /***
34 * @author Peter Kliem
35 * @version $Id: TourenTableModel.java 160 2007-01-02 22:02:40Z olk $
36 */
37 public class TourenTableModel extends AbstractTableModel {
38 TimeBarModel _timeBarModel;
39 TimeBarRowFilter _rowFilter;
40 TimeBarRowSorter _rowSorter;
41 List _rowList = new ArrayList();
42
43 public TourenTableModel(TimeBarModel tbm) {
44 _timeBarModel = tbm;
45 updateRowList();
46 }
47
48
49
50
51
52
53 public int getColumnCount() {
54 return 4;
55 }
56
57
58
59
60
61
62 public Object getValueAt(int rowIndex, int columnIndex) {
63 Tour t = (Tour) getRow(rowIndex);
64 switch (columnIndex) {
65 case 0:
66 return t.getRowHeader().toString();
67 case 1:
68 return new Integer(t.getIntervals().size());
69 case 2:
70 return t.getMinDate().toDisplayString();
71 case 3:
72 return t.getMaxDate().toDisplayString();
73 default:
74 return "Fehler";
75 }
76 }
77
78
79
80
81
82
83 public String getColumnName(int column) {
84 switch (column) {
85 case 0:
86 return "header";
87 case 1:
88 return "#Elements";
89 case 2:
90 return "min";
91 case 3:
92 return "max";
93 default:
94 return "Fehler";
95 }
96 }
97
98 public void updateRowList() {
99 int oldRowCount = _rowList != null ? _rowList.size() : 0;
100 _rowList = new ArrayList();
101
102 for (int r = 0; r < _timeBarModel.getRowCount(); r++) {
103 if (_rowFilter != null) {
104
105 if (_rowFilter.isInResult(_timeBarModel.getRow(r))) {
106 _rowList.add(_timeBarModel.getRow(r));
107 }
108 } else {
109 _rowList.add(_timeBarModel.getRow(r));
110 }
111 }
112
113 if (_rowSorter != null) {
114 Collections.sort(_rowList, _rowSorter);
115 }
116 }
117
118 /***
119 * get a timebar row from the filterd/sorted list
120 *
121 * @param idx
122 * @return
123 */
124 public TimeBarRow getRow(int idx) {
125 return (TimeBarRow) _rowList.get(idx);
126 }
127
128
129
130
131
132
133 public int getRowCount() {
134 return _rowList.size();
135 }
136
137 public void setTimeBarRowFilter(TimeBarRowFilter rowFilter) {
138 _rowFilter = rowFilter;
139 updateRowList();
140 fireTableDataChanged();
141 }
142
143 public void setTimeBarRowSorter(TimeBarRowSorter rowSorter) {
144 _rowSorter = rowSorter;
145 updateRowList();
146 fireTableDataChanged();
147 }
148
149 }