OSDN Git Service

行うべき処理が無い場合にはメッセージを出力し,キューには追加しない No.26342
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / gui / MainFrame.java
index f22e5b5..8e03253 100644 (file)
@@ -22,7 +22,6 @@ import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.io.IOException;
-import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.file.FileSystem;
 import java.nio.file.FileSystems;
@@ -32,8 +31,6 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.SortedSet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import javax.swing.BorderFactory;
 import javax.swing.DefaultComboBoxModel;
 import javax.swing.DropMode;
@@ -61,6 +58,8 @@ import javax.swing.border.BevelBorder;
 import javax.swing.table.TableModel;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.lang.builder.ToStringBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import saccubus.MainFrame_AboutBox;
 import saccubus.util.WayBackTimeParser;
 import saccubus.worker.profile.CommentProfile;
@@ -113,6 +112,7 @@ public class MainFrame extends JFrame {
     public MainFrame() {
         super();
         addWindowListener(new MainFrameWindowListener());
+        setTitle(MainFrame_AboutBox.VERSION);
 
         final Config p = Config.INSTANCE;
 
@@ -157,6 +157,7 @@ public class MainFrame extends JFrame {
         final JPanel pnlMain = new JPanel();
         final JScrollPane scrDisplay = new JScrollPane();
         tblDisplay = new JTable(targetModel, new TargetsColumnModel()) {
+            private static final long serialVersionUID = 1L;
 
             @Override
             public String getToolTipText(MouseEvent e) {
@@ -213,18 +214,12 @@ public class MainFrame extends JFrame {
         cbBackLogReduce.setToolTipText("「コメントの量を減らす」場合はチェックを付けます。");
 
         cbCommentLocal = new JCheckBox();
-        cbCommentLocal.addItemListener(new ItemListener() {
+        cbOwnerComment = new JCheckBox();
 
-            @Override
-            public void itemStateChanged(ItemEvent e) {
-                final boolean selected = (e.getStateChange() == ItemEvent.SELECTED);
-                cbBackLogReduce.setEnabled(!selected);
-                cbBackLog.setEnabled(!selected);
-            }
-        });
         btnComment.addActionListener(
                 new FileChooseActionListener(MainFrame.this, JFileChooser.FILES_ONLY, fldComment));
         fldComment.setTransferHandler(new ContentTransferHandler(fldComment.getTransferHandler(), cbCommentLocal));
+
         final JLabel lblOutput = new JLabel();
         cbOutputEnable = new JCheckBox();
         fldOutput = new JTextField();
@@ -278,6 +273,7 @@ public class MainFrame extends JFrame {
         cmbId.getEditorComponent().addActionListener(applyListener);
         cmbId.getEditorComponent().addFocusListener(new java.awt.event.FocusAdapter() {
 
+            @Override
             public void focusLost(java.awt.event.FocusEvent evt) {
                 idFieldFocusLost(evt);
             }
@@ -288,6 +284,7 @@ public class MainFrame extends JFrame {
         cbVideoLocal.setText("local");
         cbVideoLocal.addItemListener(new java.awt.event.ItemListener() {
 
+            @Override
             public void itemStateChanged(java.awt.event.ItemEvent evt) {
                 useMovieLocalCheckBoxItemStateChanged(evt);
             }
@@ -296,18 +293,26 @@ public class MainFrame extends JFrame {
         lblComment.setText("コメント");
 
         cbCommentLocal.setText("local");
-        cbCommentLocal.addItemListener(new java.awt.event.ItemListener() {
+        cbCommentLocal.addItemListener(new ItemListener() {
 
-            public void itemStateChanged(java.awt.event.ItemEvent evt) {
-                useMovieLocalCheckBoxItemStateChanged(evt);
+            @Override
+            public void itemStateChanged(ItemEvent e) {
+                useMovieLocalCheckBoxItemStateChanged(e);
+                final boolean selected = (e.getStateChange() == ItemEvent.SELECTED);
+                cbBackLogReduce.setEnabled(!selected);
+                cbBackLog.setEnabled(!selected);
+                cbOwnerComment.setEnabled(!selected);
             }
         });
 
+        cbOwnerComment.setText("投コメのみ");
+
         lblOutput.setText("出力");
 
         cbOutputEnable.setText("変換");
         cbOutputEnable.addItemListener(new java.awt.event.ItemListener() {
 
+            @Override
             public void itemStateChanged(java.awt.event.ItemEvent evt) {
                 outputConvertCheckBoxItemStateChanged(evt);
             }
@@ -323,12 +328,6 @@ public class MainFrame extends JFrame {
                 .addComponent(lblId)
                 .addPreferredGap(ComponentPlacement.RELATED)
                 .addComponent(cmbId, GroupLayout.PREFERRED_SIZE, 100, Short.MAX_VALUE)
-                .addPreferredGap(ComponentPlacement.UNRELATED)
-                .addComponent(cbBackLogReduce)
-                .addPreferredGap(ComponentPlacement.UNRELATED)
-                .addComponent(cbBackLog)
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addComponent(fldBackLog, GroupLayout.PREFERRED_SIZE, 150, GroupLayout.PREFERRED_SIZE)
                 .addContainerGap()
             )
             .addGroup(glInputMain.createSequentialGroup()
@@ -340,21 +339,34 @@ public class MainFrame extends JFrame {
                 )
                 .addPreferredGap(ComponentPlacement.RELATED)
                 .addGroup(glInputMain.createParallelGroup(Alignment.LEADING)
-                    .addComponent(cbVideoLocal)
-                    .addComponent(cbCommentLocal)
-                    .addComponent(cbOutputEnable)
-                )
-                .addPreferredGap(ComponentPlacement.RELATED)
-                .addGroup(glInputMain.createParallelGroup(Alignment.LEADING)
-                    .addComponent(cmbVideo, 300, 300, Short.MAX_VALUE)
-                    .addComponent(cmbComment, 300, 300, Short.MAX_VALUE)
-                    .addComponent(fldOutput, 300, 300, Short.MAX_VALUE)
+                    .addGroup(glInputMain.createSequentialGroup()
+                        .addGroup(glInputMain.createParallelGroup(Alignment.LEADING)
+                            .addComponent(cbVideoLocal)
+                            .addComponent(cbCommentLocal)
+                            .addComponent(cbOutputEnable)
+                        )
+                        .addPreferredGap(ComponentPlacement.RELATED)
+                        .addGroup(glInputMain.createParallelGroup(Alignment.LEADING)
+                            .addComponent(cmbVideo, 300, 300, Short.MAX_VALUE)
+                            .addComponent(cmbComment, 300, 300, Short.MAX_VALUE)
+                            .addComponent(fldOutput, 300, 300, Short.MAX_VALUE)
+                        )
+                        .addGroup(glInputMain.createParallelGroup()
+                            .addComponent(btnVideo)
+                            .addComponent(btnComment)
+                        )
+                        .addContainerGap()
+                    )
+                    .addGroup(glInputMain.createSequentialGroup()
+                        .addComponent(cbOwnerComment)
+                        .addPreferredGap(ComponentPlacement.UNRELATED)
+                        .addComponent(cbBackLogReduce)
+                        .addPreferredGap(ComponentPlacement.UNRELATED)
+                        .addComponent(cbBackLog)
+                        .addPreferredGap(ComponentPlacement.RELATED)
+                        .addComponent(fldBackLog, GroupLayout.PREFERRED_SIZE, 150, GroupLayout.PREFERRED_SIZE)
+                    )
                 )
-                .addGroup(glInputMain.createParallelGroup()
-                    .addComponent(btnVideo)
-                    .addComponent(btnComment)
-                )
-                .addContainerGap()
             )
         );
 
@@ -365,9 +377,6 @@ public class MainFrame extends JFrame {
                 .addGroup(glInputMain.createParallelGroup(Alignment.BASELINE)
                     .addComponent(cmbId, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                     .addComponent(lblId)
-                    .addComponent(cbBackLogReduce)
-                    .addComponent(cbBackLog)
-                    .addComponent(fldBackLog)
                 )
                 .addPreferredGap(ComponentPlacement.RELATED)
                 .addGroup(glInputMain.createParallelGroup(Alignment.BASELINE)
@@ -385,6 +394,13 @@ public class MainFrame extends JFrame {
                 )
                 .addPreferredGap(ComponentPlacement.RELATED)
                 .addGroup(glInputMain.createParallelGroup(Alignment.BASELINE)
+                    .addComponent(cbOwnerComment)
+                    .addComponent(cbBackLogReduce)
+                    .addComponent(cbBackLog)
+                    .addComponent(fldBackLog)
+                )
+                .addPreferredGap(ComponentPlacement.RELATED)
+                .addGroup(glInputMain.createParallelGroup(Alignment.BASELINE)
                     .addComponent(lblOutput)
                     .addComponent(fldOutput, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                     .addComponent(cbOutputEnable)
@@ -611,9 +627,13 @@ public class MainFrame extends JFrame {
                 thumbRepository.request(downProf.getProxyProfile(), tempDir, id);
 
                 final RequestProcess rp = new RequestProcess(downProf, id, convProf);
-                taskManager.add(rp);
-                targetModel.addTarget(new Target(rp));
-                initInputPanel();
+                final boolean res = taskManager.add(rp);
+                if (res) {
+                    targetModel.addTarget(new Target(rp));
+                    initInputPanel();
+                } else {
+                    fldInputMessage.setText("行うべき処理がありません");
+                }
             } catch (Throwable th) {
                 logger.error(null, th);
                 JOptionPane.showMessageDialog(MainFrame.this, th.getMessage(), "中断しました", JOptionPane.ERROR_MESSAGE);
@@ -683,6 +703,7 @@ public class MainFrame extends JFrame {
     private final FileComboBox cmbComment = new FileComboBox();
     private final JTextField fldComment = cmbComment.getEditorComponent();
     private final JButton btnComment = new JButton("...");
+    private final JCheckBox cbOwnerComment;
     private final JCheckBox cbOutputEnable;
     private final JTextField fldOutput;
     // 入力領域 - ffmpeg
@@ -694,6 +715,7 @@ public class MainFrame extends JFrame {
     // End of variables declaration//GEN-END:variables
 
     private void initInputPanel() {
+        fldInputMessage.setText("");
         initMainTab();
         initFfmpegTab();
         tbpInput.setSelectedIndex(0);
@@ -915,6 +937,7 @@ public class MainFrame extends JFrame {
 
     private class InqubusCommentProfile extends ConfigCommentProfile {
         private final boolean download;
+        private final boolean ownerCommentOnly;
         private final File dir;
         private final String fileName;
         private final File localFile;
@@ -930,10 +953,12 @@ public class MainFrame extends JFrame {
                 this.dir = new File(p.getCommentDir());
                 this.fileName = fldComment.getText();
                 this.localFile = null;
+                this.ownerCommentOnly = cbOwnerComment.isSelected();
             } else {
                 this.dir = null;
                 this.fileName = null;
                 this.localFile = new File(fldComment.getText());
+                this.ownerCommentOnly = false;
             }
 
             if(cbBackLog.isSelected()) {
@@ -955,6 +980,11 @@ public class MainFrame extends JFrame {
         }
 
         @Override
+        public boolean isOwnerCommentOnly(){
+            return this.ownerCommentOnly;
+        }
+
+        @Override
         public File getDir() {
             return this.dir;
         }