OSDN Git Service

1adf80d50245305179ace41cf9fc000643eb4845
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / model / TargetsTableModel.java
1 package yukihane.inqubus.model;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5 import java.util.List;
6 import javax.swing.table.AbstractTableModel;
7
8 /**
9  *
10  * @author yuki
11  */
12 public class TargetsTableModel extends AbstractTableModel {
13     private static final long serialVersionUID = 1L;
14
15     private final List<Target> targets = new ArrayList<Target>();
16     private final String[] columnNames = new String[]{"動画", "コメント", "投コメ", "状態"};
17     private final Class<?>[] columnClasses = new Class<?>[]{Location.class, Location.class, Location.class, Status.class};
18
19     @Override
20     public int getRowCount() {
21         return targets.size();
22     }
23
24     @Override
25     public int getColumnCount() {
26         return columnNames.length;
27     }
28
29     @Override
30     public String getColumnName(int columnIndex) {
31         return columnNames[columnIndex];
32     }
33
34     @Override
35     public Class<?> getColumnClass(int columnIndex) {
36         return columnClasses[columnIndex];
37     }
38
39     @Override
40     public Object getValueAt(int rowIndex, int columnIndex) {
41         Target t = targets.get(rowIndex);
42         Object res;
43         switch (columnIndex) {
44             case 0:
45                 res = t.getMovie();
46                 break;
47             case 1:
48                 res = t.getComment();
49                 break;
50             case 2:
51                 res = t.getOwnerComment();
52                 break;
53             case 3:
54                 res = t.getStatus();
55                 break;
56             default:
57                 throw new IllegalArgumentException();
58         }
59         return res;
60     }
61
62     @Override
63     public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
64         throw new UnsupportedOperationException("Not supported yet.");
65     }
66
67     public void addTarget(Collection<Target> t) {
68         int before = targets.size();
69         targets.addAll(t);
70         int after = targets.size();
71         if (before < after) {
72             fireTableRowsInserted(before, after - 1);
73         }
74     }
75
76     public void addTarget(Target t) {
77         List<Target> list = new ArrayList<Target>(1);
78         list.add(t);
79         addTarget(list);
80     }
81 }