OSDN Git Service

タスクマネージャからのイベントを受け取りテーブルモデルを更新
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / model / TargetsTableModel.java
index 1adf80d..a2cb6f2 100644 (file)
@@ -3,18 +3,24 @@ package yukihane.inqubus.model;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import javax.swing.table.AbstractTableModel;
+import yukihane.inqubus.manager.TaskKind;
+import yukihane.inqubus.manager.TaskStatus;
 
 /**
  *
  * @author yuki
  */
 public class TargetsTableModel extends AbstractTableModel {
-    private static final long serialVersionUID = 1L;
 
+    private static final long serialVersionUID = 1L;
+    private static final Logger logger = Logger.getLogger(TargetsTableModel.class.getName());
     private final List<Target> targets = new ArrayList<Target>();
-    private final String[] columnNames = new String[]{"動画", "コメント", "投コメ", "状態"};
-    private final Class<?>[] columnClasses = new Class<?>[]{Location.class, Location.class, Location.class, Status.class};
+    private final String[] columnNames = new String[]{"ID", "動画", "コメ", "変換", "状態"};
+    private final Class<?>[] columnClasses = new Class<?>[]{String.class, Boolean.class, Boolean.class, Boolean.class,
+        Progress.class};
 
     @Override
     public int getRowCount() {
@@ -42,17 +48,19 @@ public class TargetsTableModel extends AbstractTableModel {
         Object res;
         switch (columnIndex) {
             case 0:
-                res = t.getMovie();
+                res = t.getVideoId();
                 break;
             case 1:
-                res = t.getComment();
+                res = Boolean.valueOf(t.isVideoDownload());
                 break;
             case 2:
-                res = t.getOwnerComment();
+                res = Boolean.valueOf(t.isCommentDownload());
                 break;
             case 3:
-                res = t.getStatus();
+                res = Boolean.valueOf(t.isConvert());
                 break;
+            case 4:
+                res = t.getProgress();
             default:
                 throw new IllegalArgumentException();
         }
@@ -78,4 +86,24 @@ public class TargetsTableModel extends AbstractTableModel {
         list.add(t);
         addTarget(list);
     }
+
+    public void setStatus(int id, TaskKind taskKind, TaskStatus taskStatus, double percent, String status) {
+        int pos = -1;
+        for (int i = 0; i < targets.size(); i++) {
+            final Target t = targets.get(i);
+            final int ri = t.getRequestProcess().getRowId();
+            if (id == ri) {
+                pos = i;
+                break;
+            }
+        }
+        if (pos < 0) {
+            logger.log(Level.SEVERE, "本来存在すべきレコードが存在しません id:{0}", id);
+            return;
+        }
+
+        final Target t = targets.get(pos);
+        t.setProgress(taskKind, taskStatus, percent, status);
+
+    }
 }