OSDN Git Service

キャンセル要求が成功した場合は一旦キャンセル表示を行う(cancelledイベントが飛ばない場合があるので)
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / gui / MainFrame.java
index 0c60591..d620b14 100644 (file)
@@ -15,6 +15,8 @@ import java.awt.event.ActionListener;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
 import java.awt.event.KeyEvent;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.io.FilenameFilter;
 import java.io.IOException;
@@ -111,7 +113,6 @@ public class MainFrame extends JFrame {
         final JPanel pnlButton = new JPanel();
         final JPanel pnlInputMain = new JPanel();
         final JLabel lblId = new JLabel();
-        fldId = new JTextField();
         fldId.setToolTipText(ID_FIELD_TOOLTIP);
         final JLabel lblVideo = new JLabel();
         cbVideoLocal = new JCheckBox();
@@ -120,6 +121,27 @@ public class MainFrame extends JFrame {
         fldVideo.setToolTipText(FILE_INPUTFIELD_TOOLTIP);
         btnVideo = new JButton();
         final JLabel lblComment = new JLabel();
+
+        fldBackLog.setToolTipText("YYYY/MM/DD hh:mm:ss形式、あるいは1970/01/01からの経過秒を入力します。");
+        cbBackLog.addItemListener(new ItemListener() {
+
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                final boolean selected = (e.getStateChange() == ItemEvent.SELECTED);
+                fldBackLog.setEnabled(selected);
+            }
+        });
+        cbBackLog.addPropertyChangeListener("enabled", new PropertyChangeListener() {
+
+            @Override
+            public void propertyChange(PropertyChangeEvent evt) {
+                final boolean enabled = ((Boolean) evt.getNewValue()).booleanValue();
+                final boolean fldEnabled = enabled ? cbBackLog.isSelected() : false;
+                fldBackLog.setEnabled(fldEnabled);
+            }
+        });
+        cbBackLogReduce.setToolTipText("「コメントの量を減らす」場合はチェックを付けます。");
+
         cbCommentLocal = new JCheckBox();
         cbCommentLocal.setToolTipText(FILE_LOCALBUTTON_TOOLTIP);
         cbCommentLocal.addItemListener(new ItemListener() {
@@ -129,9 +151,6 @@ public class MainFrame extends JFrame {
                 final boolean selected = (e.getStateChange() == ItemEvent.SELECTED);
                 cbBackLogReduce.setEnabled(!selected);
                 cbBackLog.setEnabled(!selected);
-                if(selected) {
-                    cbBackLog.setSelected(false);
-                }
             }
         });
         fldComment = new JTextField();
@@ -377,6 +396,9 @@ public class MainFrame extends JFrame {
             final Target t = targetModel.getTarget(row);
             final boolean res = taskManager.cancel(t.getRowId());
             logger.log(Level.FINE, "停止: {0} {1}", new Object[]{t.getVideoId(), res});
+            if (res) {
+                targetModel.setStatus(t.getRowId(), null, TaskStatus.CANCELLED, -1.0, "キャンセル");
+            }
         }
     }
 
@@ -392,6 +414,7 @@ public class MainFrame extends JFrame {
             final RequestProcess rp = new RequestProcess(downProf, id, convProf);
             taskManager.add(rp);
             targetModel.addTarget(new Target(rp));
+            initInputPanel();
         }
     }
     /** This method is called from within the constructor to
@@ -429,6 +452,9 @@ public class MainFrame extends JFrame {
         }
     }
 
+    /**
+     * 動画, コメントの"local"チェックボックス更新時の処理.
+     */
     private void useMovieLocalCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_useMovieLocalCheckBoxItemStateChanged
         final Config p = Config.INSTANCE;
 
@@ -463,8 +489,6 @@ public class MainFrame extends JFrame {
         }
         field.setText(text);
 
-        fldId.setEnabled(!(cbVideoLocal.isSelected() && cbCommentLocal.isSelected()));
-
     }//GEN-LAST:event_useMovieLocalCheckBoxItemStateChanged
 
     private void outputConvertCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_outputConvertCheckBoxItemStateChanged
@@ -503,7 +527,7 @@ public class MainFrame extends JFrame {
     private final JButton btnStop = new JButton("停止");
     private final JButton btnDeselect = new JButton("選択解除");
     //入力領域 - 標準
-    private final JTextField fldId;
+    private final JTextField fldId = new JTextField();
     private final JCheckBox cbBackLogReduce = new JCheckBox("コメ数減少");
     private final JCheckBox cbBackLog = new JCheckBox("過去ログ");
     private final JTextField fldBackLog = new JTextField();
@@ -524,17 +548,7 @@ public class MainFrame extends JFrame {
 
         fldId.setText("");
         fldBackLog.setEnabled(false);
-        fldBackLog.setToolTipText("YYYY/MM/DD hh:mm:ss形式、あるいは1970/01/01からの経過秒を入力します。");
         cbBackLog.setEnabled(true);
-        cbBackLog.addItemListener(new ItemListener() {
-
-            @Override
-            public void itemStateChanged(ItemEvent e) {
-                final boolean selected = (e.getStateChange() == ItemEvent.SELECTED);
-                fldBackLog.setEnabled(selected);
-            }
-        });
-        cbBackLogReduce.setToolTipText("「コメントの量を減らす」場合はチェックを付けます。");
 
         final boolean movieLocal = p.getVideoUseLocal();
         cbVideoLocal.setSelected(movieLocal);