OSDN Git Service

不要クラス削除, レンダラのパッケージ移動
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / gui / TargetsColumnModel.java
1 package yukihane.inqubus.gui;
2
3 import java.awt.Component;
4 import javax.swing.JProgressBar;
5 import javax.swing.JTable;
6 import javax.swing.table.DefaultTableCellRenderer;
7 import javax.swing.table.DefaultTableColumnModel;
8 import javax.swing.table.TableColumn;
9 import yukihane.inqubus.model.Progress;
10
11 /**
12  *
13  * @author yuki
14  */
15 public class TargetsColumnModel extends DefaultTableColumnModel {
16
17     private static final long serialVersionUID = 1L;
18     private final String[] columnNames = new String[]{"ID", "動画", "コメ", "変換", "状態"};
19
20     public TargetsColumnModel() {
21         super();
22         for (int i = 0; i < columnNames.length; i++) {
23             final TableColumn tc = new TableColumn(i);
24             tc.setHeaderValue(columnNames[i]);
25             addColumn(tc);
26         }
27
28         final TableColumn tc = getColumn(4);
29         tc.setCellRenderer(new ProgressRenderer());
30     }
31 }
32
33 class ProgressRenderer extends DefaultTableCellRenderer {
34
35     private static final long serialVersionUID = 1L;
36     private final JProgressBar progressBar;
37
38     public ProgressRenderer() {
39         progressBar = new JProgressBar(0, 100);
40         progressBar.setStringPainted(true);
41     }
42
43     @Override
44     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
45             int row, int column) {
46         if (isSelected) {
47             progressBar.setForeground(table.getSelectionForeground());
48             progressBar.setBackground(table.getSelectionBackground());
49         }
50
51         if (value == null) {
52             return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
53         }
54
55         final Progress p = (Progress) value;
56         int percent = (int) p.getPercent();
57         if (percent < 0 || percent > 100) {
58             return super.getTableCellRendererComponent(table, p.getText(), isSelected, hasFocus, row, column);
59         }
60         progressBar.setValue(percent);
61         progressBar.setString(p.getText());
62         return progressBar;
63     }
64 }