X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=frontend%2Fsrc%2Fyukihane%2Finqubus%2Fgui%2FConfigDialog.java;h=583cfb8c9f391ff939c4432a25c5d2d94f6f0d65;hb=4d815d03839d5a516726c9b18e126b6528b62ea0;hp=191837df268988b5eb8d914bde6bc58e2b657f3b;hpb=e88e1289f27e8140eb909dce9afff3d8fe0aca4f;p=coroid%2Finqubus.git diff --git a/frontend/src/yukihane/inqubus/gui/ConfigDialog.java b/frontend/src/yukihane/inqubus/gui/ConfigDialog.java index 191837d..583cfb8 100644 --- a/frontend/src/yukihane/inqubus/gui/ConfigDialog.java +++ b/frontend/src/yukihane/inqubus/gui/ConfigDialog.java @@ -1,32 +1,47 @@ /* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ - -/* * Properties.java * * Created on 2011/08/20, 16:33:03 */ package yukihane.inqubus.gui; -import java.util.Arrays; +import static javax.swing.GroupLayout.DEFAULT_SIZE; +import static javax.swing.GroupLayout.PREFERRED_SIZE; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; import java.util.List; -import javax.swing.DefaultListModel; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.swing.BorderFactory; +import javax.swing.ComboBoxModel; +import javax.swing.DefaultComboBoxModel; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JButton; +import javax.swing.JCheckBox; +import javax.swing.JComboBox; +import javax.swing.JDialog; import javax.swing.JFrame; +import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JTabbedPane; +import javax.swing.JTextField; import javax.swing.LayoutStyle.ComponentPlacement; +import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; +import javax.swing.WindowConstants; +import org.apache.commons.configuration.ConfigurationException; import yukihane.inqubus.Config; /** * * @author yuki */ -public class ConfigDialog extends javax.swing.JDialog { +public class ConfigDialog extends JDialog { private static final long serialVersionUID = 1L; + private static final Logger logger = Logger.getLogger(ConfigDialog.class.getName()); /** Creates new form Properties */ public ConfigDialog() { @@ -35,149 +50,92 @@ public class ConfigDialog extends javax.swing.JDialog { public ConfigDialog(JFrame owner){ super(owner); - initComponents(); - loadConfig(); - } - /** This method is called from within the constructor to - * initialize the form. - * WARNING: Do NOT modify this code. The content of this method is - * always regenerated by the Form Editor. - */ - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - buttonGroup1 = new javax.swing.ButtonGroup(); - jTabbedPane1 = new javax.swing.JTabbedPane(); - pnlNetwork = new javax.swing.JPanel(); - pnlAccount = new javax.swing.JPanel(); - lblMail = new javax.swing.JLabel(); - fldMail = new javax.swing.JTextField(); - lblPassword = new javax.swing.JLabel(); - fldPassword = new javax.swing.JTextField(); - pnlProxy = new javax.swing.JPanel(); - cbProxyUse = new javax.swing.JCheckBox(); - lblProxyHost = new javax.swing.JLabel(); - lblProxyPort = new javax.swing.JLabel(); - fldProxyHost = new javax.swing.JTextField(); - fldProxyPort = new javax.swing.JTextField(); - pnlFile = new javax.swing.JPanel(); - pnlFileVideo = new javax.swing.JPanel(); - lblVideoDir = new javax.swing.JLabel(); - lblVideoFileNamepattern = new javax.swing.JLabel(); - fldVideoDir = new javax.swing.JTextField(); - fldVideoFileNamePattern = new javax.swing.JTextField(); - btnVideoDir = new javax.swing.JButton(); - cbVideoLocal = new javax.swing.JCheckBox(); - pnlFileComment = new javax.swing.JPanel(); - lblCommentDir = new javax.swing.JLabel(); - lblCommentFileNamePattern = new javax.swing.JLabel(); - fldCommentDir = new javax.swing.JTextField(); - fldCommentFileNamePattern = new javax.swing.JTextField(); - btnCommentDir = new javax.swing.JButton(); - cbCommentLocal = new javax.swing.JCheckBox(); - pnlFileOutput = new javax.swing.JPanel(); - lblOutputDir = new javax.swing.JLabel(); - lblOutputFileNamePattern = new javax.swing.JLabel(); - fldOutputDir = new javax.swing.JTextField(); - fldOutputFileNamePattern = new javax.swing.JTextField(); - btnOutputDir = new javax.swing.JButton(); - cbOutputEnable = new javax.swing.JCheckBox(); - cbOutputCommentOverlay = new javax.swing.JCheckBox(); - cbOutputDisplayProgress = new javax.swing.JCheckBox(); - pnlComment = new javax.swing.JPanel(); - pnlCommentStandard = new javax.swing.JPanel(); - lblCommentSize = new javax.swing.JLabel(); - cbCommentSizeAuto = new javax.swing.JCheckBox(); - lblCommentSizeManual = new javax.swing.JLabel(); - fldCommentSizeManual = new javax.swing.JTextField(); - lblCommentMinSize = new javax.swing.JLabel(); - cbCommentMinSizeAuto = new javax.swing.JCheckBox(); - fldCommentMinSizeManual = new javax.swing.JTextField(); - lblCommentMinSizeManual = new javax.swing.JLabel(); - lblCommentDisplayMax = new javax.swing.JLabel(); - cbCommentDisplaySizeDefault = new javax.swing.JCheckBox(); - lblCommentDisplayMaxManual = new javax.swing.JLabel(); - fldCommentDisplaySizeManual = new javax.swing.JTextField(); - pnlCommentAdvanced = new javax.swing.JPanel(); - lblFontPath = new javax.swing.JLabel(); - cbFontSizeArrangeDisable = new javax.swing.JCheckBox(); - cbCommentOpaque = new javax.swing.JCheckBox(); - fldFontPath = new javax.swing.JTextField(); - btnFontPath = new javax.swing.JButton(); - lblFontIndex = new javax.swing.JLabel(); - lblFontShadow = new javax.swing.JLabel(); - fldFontIndex = new javax.swing.JTextField(); - fldFontShadow = new javax.swing.JTextField(); - pnlFfmpeg = new javax.swing.JPanel(); - jPanel10 = new javax.swing.JPanel(); - lblFfmpegPath = new javax.swing.JLabel(); - lblFfmpegDllPath = new javax.swing.JLabel(); - fldFfmpegPath = new javax.swing.JTextField(); - fldFfmpegDllPath = new javax.swing.JTextField(); - btnFfmpegPath = new javax.swing.JButton(); - btnFfmpegDllPath = new javax.swing.JButton(); - pnlFfmpegParam = new javax.swing.JPanel(); - rbFfmpegOptionFile = new javax.swing.JRadioButton(); - rbFfmpegOptionDirectInput = new javax.swing.JRadioButton(); - cmbFfmpegOptionFile = new javax.swing.JComboBox(); - pnlFfmpegParamOption = new javax.swing.JPanel(); - lblFfmpegOptionExtension = new javax.swing.JLabel(); - lblFfmpegOptionMain = new javax.swing.JLabel(); - lblFfmpegOptionIn = new javax.swing.JLabel(); - lblFfmpegOptionOut = new javax.swing.JLabel(); - lblFfmpegOptionAvfilter = new javax.swing.JLabel(); - cbFfmpegOptionResize = new javax.swing.JCheckBox(); - lblFfmpegOptionResizeWidth = new javax.swing.JLabel(); - fldFfmpegOptionResizeWidth = new javax.swing.JTextField(); - lblFfmpegOptionResizeHeight = new javax.swing.JLabel(); - fldFfmpegOptionResizeHeight = new javax.swing.JTextField(); - cbFfmpegOptionKeepAspect = new javax.swing.JCheckBox(); - fldFfmpegOptionExtension = new javax.swing.JTextField(); - fldFfmpegOptionMain = new javax.swing.JTextField(); - fldFfmpegOptionIn = new javax.swing.JTextField(); - fldFfmpegOptionOut = new javax.swing.JTextField(); - fldFfmpegOptionAv = new javax.swing.JTextField(); - pnlNgSetting = new javax.swing.JPanel(); - pnlNgWord = new javax.swing.JPanel(); - scrNgWord = new javax.swing.JScrollPane(); - lstNgWord = new javax.swing.JList<>(); - fldNgWord = new javax.swing.JTextField(); - btnNgWordAdd = new javax.swing.JButton(); - btnNgWordDel = new javax.swing.JButton(); - pnlNgId = new javax.swing.JPanel(); - scrNgId = new javax.swing.JScrollPane(); - lstNgId = new javax.swing.JList<>(); - fldNgId = new javax.swing.JTextField(); - btnNgIdAdd = new javax.swing.JButton(); - btnNgIdDel = new javax.swing.JButton(); - pnlSearch = new javax.swing.JPanel(); - pnlSearchVideo = new javax.swing.JPanel(); - srcSearchVideo = new javax.swing.JScrollPane(); - lstSearchVideo = new javax.swing.JList(); - btnSearchVideoAdd = new javax.swing.JButton(); - btnSearchVideoDel = new javax.swing.JButton(); - pnlSearchComment = new javax.swing.JPanel(); - srcSearchComment = new javax.swing.JScrollPane(); - lstSearchComment = new javax.swing.JList(); - btnSearchCommentAdd = new javax.swing.JButton(); - btnSearchCommentDel = new javax.swing.JButton(); - pnlSearchCache = new javax.swing.JPanel(); - lblSearchCache = new javax.swing.JLabel(); - fldSearchCache = new javax.swing.JTextField(); - - setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); - - pnlNetwork.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); - - pnlAccount.setBorder(javax.swing.BorderFactory.createTitledBorder("アカウント")); + final JTabbedPane tabbedPane = new JTabbedPane(); + final JPanel pnlNetwork = new JPanel(); + final JPanel pnlAccount = new JPanel(); + final JLabel lblMail = new JLabel(); + fldMail = new JTextField(); + final JLabel lblPassword = new JLabel(); + fldPassword = new JTextField(); + final JPanel pnlProxy = new JPanel(); + cbProxyUse = new JCheckBox(); + final JLabel lblProxyHost = new JLabel(); + final JLabel lblProxyPort = new JLabel(); + fldProxyHost = new JTextField(); + fldProxyPort = new JTextField(); + final JPanel pnlFile = new JPanel(); + final JPanel pnlFileVideo = new JPanel(); + final JLabel lblVideoDir = new JLabel(); + final JLabel lblVideoFileNamepattern = new JLabel(); + fldVideoDir = new JTextField(); + fldVideoFileNamePattern = new JTextField(); + btnVideoDir = new JButton(); + cbVideoLocal = new JCheckBox(); + final JPanel pnlFileComment = new JPanel(); + final JLabel lblCommentDir = new JLabel(); + final JLabel lblCommentFileNamePattern = new JLabel(); + fldCommentDir = new JTextField(); + fldCommentFileNamePattern = new JTextField(); + btnCommentDir = new JButton(); + cbCommentLocal = new JCheckBox(); + final JPanel pnlFileOutput = new JPanel(); + final JLabel lblOutputDir = new JLabel(); + final JLabel lblOutputFileNamePattern = new JLabel(); + fldOutputDir = new JTextField(); + fldOutputFileNamePattern = new JTextField(); + btnOutputDir = new JButton(); + cbOutputEnable = new JCheckBox(); + cbOutputCommentOverlay = new JCheckBox(); + cbOutputDisplayProgress = new JCheckBox(); + final JPanel pnlComment = new JPanel(); + final JPanel pnlCommentStandard = new JPanel(); + final JLabel lblCommentSize = new JLabel(); + cbCommentSizeAuto = new JCheckBox(); + final JLabel lblCommentSizeManual = new JLabel(); + fldCommentSizeManual = new JTextField(); + final JLabel lblCommentMinSize = new JLabel(); + cbCommentMinSizeAuto = new JCheckBox(); + fldCommentMinSizeManual = new JTextField(); + final JLabel lblCommentMinSizeManual = new JLabel(); + final JLabel lblCommentDisplayMax = new JLabel(); + cbCommentDisplaySizeDefault = new JCheckBox(); + final JLabel lblCommentDisplayMaxManual = new JLabel(); + fldCommentDisplaySizeManual = new JTextField(); + final JPanel pnlCommentAdvanced = new JPanel(); + final JLabel lblFontPath = new JLabel(); + cbFontSizeArrangeDisable = new JCheckBox(); + cbCommentOpaque = new JCheckBox(); + fldFontPath = new JTextField(); + btnFontPath = new JButton(); + final JLabel lblFontIndex = new JLabel(); + final JLabel lblFontShadow = new JLabel(); + fldFontIndex = new JTextField(); + final JPanel pnlFfmpeg = new JPanel(); + final JPanel jPanel10 = new JPanel(); + final JLabel lblFfmpegPath = new JLabel(); + final JLabel lblFfmpegDllPath = new JLabel(); + fldFfmpegPath = new JTextField(); + fldFfmpegDllPath = new JTextField(); + btnFfmpegPath = new JButton(); + btnFfmpegDllPath = new JButton(); + final JPanel pnlNgSetting = new JPanel(); + final JPanel pnlSearch = new JPanel(); + final JPanel pnlSearchCache = new JPanel(); + final JLabel lblSearchCache = new JLabel(); + fldSearchCache = new JTextField(); + + setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); + + pnlNetwork.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1)); + + pnlAccount.setBorder(BorderFactory.createTitledBorder("アカウント")); lblMail.setText("ID(メールアドレス)"); lblPassword.setText("パスワード"); - javax.swing.GroupLayout gl_pnlAccount = new javax.swing.GroupLayout(pnlAccount); + GroupLayout gl_pnlAccount = new GroupLayout(pnlAccount); pnlAccount.setLayout(gl_pnlAccount); gl_pnlAccount.setHorizontalGroup( gl_pnlAccount.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -206,7 +164,7 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - pnlProxy.setBorder(javax.swing.BorderFactory.createTitledBorder("プロキシ")); + pnlProxy.setBorder(BorderFactory.createTitledBorder("プロキシ")); cbProxyUse.setText("プロキシを使用する"); @@ -214,7 +172,7 @@ public class ConfigDialog extends javax.swing.JDialog { lblProxyPort.setText("ポート番号"); - javax.swing.GroupLayout gl_pnlProxy = new javax.swing.GroupLayout(pnlProxy); + GroupLayout gl_pnlProxy = new GroupLayout(pnlProxy); pnlProxy.setLayout(gl_pnlProxy); gl_pnlProxy.setHorizontalGroup( gl_pnlProxy.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -248,7 +206,7 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(39, Short.MAX_VALUE)) ); - javax.swing.GroupLayout gl_pnlNetwork = new javax.swing.GroupLayout(pnlNetwork); + GroupLayout gl_pnlNetwork = new GroupLayout(pnlNetwork); pnlNetwork.setLayout(gl_pnlNetwork); gl_pnlNetwork.setHorizontalGroup( gl_pnlNetwork.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -269,19 +227,19 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(178, Short.MAX_VALUE)) ); - jTabbedPane1.addTab("ネットワーク", pnlNetwork); + tabbedPane.addTab("ネットワーク", pnlNetwork); - pnlFileVideo.setBorder(javax.swing.BorderFactory.createTitledBorder("動画")); + pnlFileVideo.setBorder(BorderFactory.createTitledBorder("動画")); lblVideoDir.setText("保存フォルダ"); - lblVideoFileNamepattern.setText("ファイル名パターン"); + lblVideoFileNamepattern.setText("ファイル名規則"); btnVideoDir.setText("..."); cbVideoLocal.setText("local"); - javax.swing.GroupLayout gl_pnlFileVideo = new javax.swing.GroupLayout(pnlFileVideo); + GroupLayout gl_pnlFileVideo = new GroupLayout(pnlFileVideo); pnlFileVideo.setLayout(gl_pnlFileVideo); gl_pnlFileVideo.setHorizontalGroup( gl_pnlFileVideo.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -317,17 +275,17 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - pnlFileComment.setBorder(javax.swing.BorderFactory.createTitledBorder("コメント")); + pnlFileComment.setBorder(BorderFactory.createTitledBorder("コメント")); lblCommentDir.setText("保存フォルダ"); - lblCommentFileNamePattern.setText("ファイル名パターン"); + lblCommentFileNamePattern.setText("ファイル名規則"); btnCommentDir.setText("..."); cbCommentLocal.setText("local"); - javax.swing.GroupLayout gl_pnlFileComment = new javax.swing.GroupLayout(pnlFileComment); + GroupLayout gl_pnlFileComment = new GroupLayout(pnlFileComment); pnlFileComment.setLayout(gl_pnlFileComment); gl_pnlFileComment.setHorizontalGroup( gl_pnlFileComment.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -363,11 +321,11 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - pnlFileOutput.setBorder(javax.swing.BorderFactory.createTitledBorder("変換動画")); + pnlFileOutput.setBorder(BorderFactory.createTitledBorder("変換動画")); lblOutputDir.setText("保存フォルダ"); - lblOutputFileNamePattern.setText("ファイル名パターン"); + lblOutputFileNamePattern.setText("ファイル名規則"); btnOutputDir.setText("..."); @@ -377,7 +335,7 @@ public class ConfigDialog extends javax.swing.JDialog { cbOutputDisplayProgress.setText("変換中動画表示"); - javax.swing.GroupLayout gl_pnlFileOutput = new javax.swing.GroupLayout(pnlFileOutput); + GroupLayout gl_pnlFileOutput = new GroupLayout(pnlFileOutput); pnlFileOutput.setLayout(gl_pnlFileOutput); gl_pnlFileOutput.setHorizontalGroup( gl_pnlFileOutput.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -421,7 +379,39 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - javax.swing.GroupLayout gl_pnlFile = new javax.swing.GroupLayout(pnlFile); + final JPanel pnlFileProhibit = new JPanel(); + pnlFileProhibit.setBorder(BorderFactory.createTitledBorder("禁則文字")); + final JLabel lblReplaceFrom = new JLabel("置換対象文字"); + final JLabel lblReplaceTo = new JLabel("置換後文字"); + + final GroupLayout glProhibit = new GroupLayout(pnlFileProhibit); + glProhibit.setAutoCreateContainerGaps(true); + glProhibit.setAutoCreateGaps(true); + pnlFileProhibit.setLayout(glProhibit); + + glProhibit.setHorizontalGroup(glProhibit.createSequentialGroup() + .addGroup(glProhibit.createParallelGroup() + .addComponent(lblReplaceFrom) + .addComponent(lblReplaceTo) + ) + .addGroup(glProhibit.createParallelGroup() + .addComponent(fldReplaceFrom) + .addComponent(fldReplaceTo) + ) + ); + + glProhibit.setVerticalGroup(glProhibit.createSequentialGroup() + .addGroup(glProhibit.createParallelGroup(Alignment.BASELINE) + .addComponent(lblReplaceFrom) + .addComponent(fldReplaceFrom) + ) + .addGroup(glProhibit.createParallelGroup(Alignment.BASELINE) + .addComponent(lblReplaceTo) + .addComponent(fldReplaceTo) + ) + ); + + GroupLayout gl_pnlFile = new GroupLayout(pnlFile); pnlFile.setLayout(gl_pnlFile); gl_pnlFile.setHorizontalGroup( gl_pnlFile.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -430,7 +420,9 @@ public class ConfigDialog extends javax.swing.JDialog { .addGroup(gl_pnlFile.createParallelGroup(GroupLayout.Alignment.TRAILING) .addComponent(pnlFileOutput, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlFileVideo, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlFileComment, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(pnlFileComment, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(pnlFileProhibit, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + ) .addContainerGap()) ); gl_pnlFile.setVerticalGroup( @@ -442,12 +434,14 @@ public class ConfigDialog extends javax.swing.JDialog { .addComponent(pnlFileComment, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(pnlFileOutput, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addContainerGap(137, Short.MAX_VALUE)) + .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(pnlFileProhibit, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addContainerGap()) ); - jTabbedPane1.addTab("ファイル", pnlFile); + tabbedPane.addTab("ファイル", pnlFile); - pnlCommentStandard.setBorder(javax.swing.BorderFactory.createTitledBorder("")); + pnlCommentStandard.setBorder(BorderFactory.createTitledBorder("")); lblCommentSize.setText("再生時間に応じたコメントの取得数"); @@ -467,60 +461,49 @@ public class ConfigDialog extends javax.swing.JDialog { lblCommentDisplayMaxManual.setText("手動設定"); - javax.swing.GroupLayout gl_pnlCommentStandard = new javax.swing.GroupLayout(pnlCommentStandard); + GroupLayout gl_pnlCommentStandard = new GroupLayout(pnlCommentStandard); pnlCommentStandard.setLayout(gl_pnlCommentStandard); + gl_pnlCommentStandard.setAutoCreateContainerGaps(true); + gl_pnlCommentStandard.setAutoCreateGaps(true); gl_pnlCommentStandard.setHorizontalGroup( - gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlCommentStandard.createSequentialGroup() - .addContainerGap() + gl_pnlCommentStandard.createSequentialGroup() .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlCommentStandard.createSequentialGroup() - .addComponent(lblCommentSize) - .addGap(18, 18, 18) - .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(cbCommentSizeAuto) - .addComponent(cbCommentMinSizeAuto) - .addComponent(cbCommentDisplaySizeDefault)) - .addGap(18, 18, 18) - .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(lblCommentDisplayMaxManual) - .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING, false) - .addComponent(lblCommentMinSizeManual, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(lblCommentSizeManual, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) + .addComponent(lblCommentSize) .addComponent(lblCommentMinSize) .addComponent(lblCommentDisplayMax)) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING, false) - .addComponent(fldCommentDisplaySizeManual, 0, 0, Short.MAX_VALUE) - .addComponent(fldCommentMinSizeManual) - .addComponent(fldCommentSizeManual, GroupLayout.DEFAULT_SIZE, 62, Short.MAX_VALUE)) - .addContainerGap(25, Short.MAX_VALUE)) + .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(cbCommentSizeAuto) + .addComponent(cbCommentMinSizeAuto) + .addComponent(cbCommentDisplaySizeDefault)) + .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(lblCommentSizeManual) + .addComponent(lblCommentMinSizeManual) + .addComponent(lblCommentDisplayMaxManual)) + .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(fldCommentSizeManual, 48, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(fldCommentMinSizeManual, 48, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(fldCommentDisplaySizeManual, 48, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) ); gl_pnlCommentStandard.setVerticalGroup( - gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlCommentStandard.createSequentialGroup() - .addContainerGap() + gl_pnlCommentStandard.createSequentialGroup() .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(lblCommentSizeManual) - .addComponent(fldCommentSizeManual, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(lblCommentSize) - .addComponent(cbCommentSizeAuto)) - .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(cbCommentSizeAuto) + .addComponent(lblCommentSizeManual) + .addComponent(fldCommentSizeManual)) .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(lblCommentMinSize) .addComponent(cbCommentMinSizeAuto) .addComponent(lblCommentMinSizeManual) - .addComponent(fldCommentMinSizeManual, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(ComponentPlacement.RELATED) + .addComponent(fldCommentMinSizeManual)) .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(lblCommentDisplayMax) .addComponent(cbCommentDisplaySizeDefault) .addComponent(lblCommentDisplayMaxManual) - .addComponent(fldCommentDisplaySizeManual, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(fldCommentDisplaySizeManual)) ); - pnlCommentAdvanced.setBorder(javax.swing.BorderFactory.createTitledBorder("高度な設定")); + pnlCommentAdvanced.setBorder(BorderFactory.createTitledBorder("高度な設定")); lblFontPath.setText("フォントパス"); @@ -533,8 +516,11 @@ public class ConfigDialog extends javax.swing.JDialog { lblFontIndex.setText("フォント番号"); lblFontShadow.setText("影の種類"); + final ComboBoxModel cbmFontShadow + = new DefaultComboBoxModel<>(new String[]{"0:なし", "1:ニコニコ動画風", "2:右下", "3:囲い込み"}); + cmbFontShadow.setModel(cbmFontShadow); - javax.swing.GroupLayout gl_pnlCommentAdvanced = new javax.swing.GroupLayout(pnlCommentAdvanced); + GroupLayout gl_pnlCommentAdvanced = new GroupLayout(pnlCommentAdvanced); pnlCommentAdvanced.setLayout(gl_pnlCommentAdvanced); gl_pnlCommentAdvanced.setHorizontalGroup( gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -551,7 +537,7 @@ public class ConfigDialog extends javax.swing.JDialog { .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(fldFontPath, GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE) .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.TRAILING, false) - .addComponent(fldFontShadow, GroupLayout.Alignment.LEADING) + .addComponent(cmbFontShadow, GroupLayout.Alignment.LEADING) .addComponent(fldFontIndex, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 48, Short.MAX_VALUE))) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(btnFontPath)) @@ -572,7 +558,7 @@ public class ConfigDialog extends javax.swing.JDialog { .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(lblFontShadow) - .addComponent(fldFontShadow, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) + .addComponent(cmbFontShadow, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(cbFontSizeArrangeDisable) .addPreferredGap(ComponentPlacement.RELATED) @@ -580,7 +566,7 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - javax.swing.GroupLayout gl_pnlComment = new javax.swing.GroupLayout(pnlComment); + GroupLayout gl_pnlComment = new GroupLayout(pnlComment); pnlComment.setLayout(gl_pnlComment); gl_pnlComment.setHorizontalGroup( gl_pnlComment.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -601,9 +587,9 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(168, Short.MAX_VALUE)) ); - jTabbedPane1.addTab("コメント", pnlComment); + tabbedPane.addTab("コメント", pnlComment); - jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("ファイルパス")); + jPanel10.setBorder(BorderFactory.createTitledBorder("ファイルパス")); lblFfmpegPath.setText("ffmpeg"); @@ -613,7 +599,7 @@ public class ConfigDialog extends javax.swing.JDialog { btnFfmpegDllPath.setText("..."); - javax.swing.GroupLayout gl_jPanel10 = new javax.swing.GroupLayout(jPanel10); + GroupLayout gl_jPanel10 = new GroupLayout(jPanel10); jPanel10.setLayout(gl_jPanel10); gl_jPanel10.setHorizontalGroup( gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -647,138 +633,11 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - pnlFfmpegParam.setBorder(javax.swing.BorderFactory.createTitledBorder("ffmpegパラメータ")); - - buttonGroup1.add(rbFfmpegOptionFile); - rbFfmpegOptionFile.setText("オプションファイル"); - - buttonGroup1.add(rbFfmpegOptionDirectInput); - rbFfmpegOptionDirectInput.setText("直接入力"); - - cmbFfmpegOptionFile.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); - - pnlFfmpegParamOption.setBorder(javax.swing.BorderFactory.createEtchedBorder()); - - lblFfmpegOptionExtension.setText("出力動画の拡張子"); + pnlFfmpegParam.setBorder(BorderFactory.createTitledBorder("ffmpegパラメータ")); - lblFfmpegOptionMain.setText("メインオプション"); - lblFfmpegOptionIn.setText("入力オプション"); - lblFfmpegOptionOut.setText("出力オプション"); - - lblFfmpegOptionAvfilter.setText("avfilterオプション"); - - cbFfmpegOptionResize.setText("次のサイズに収まるよう縮小(-s)"); - - lblFfmpegOptionResizeWidth.setText("横"); - - lblFfmpegOptionResizeHeight.setText("縦"); - - cbFfmpegOptionKeepAspect.setText("アスペクト比を維持"); - - javax.swing.GroupLayout gl_pnlFfmpegParamOption = new javax.swing.GroupLayout(pnlFfmpegParamOption); - pnlFfmpegParamOption.setLayout(gl_pnlFfmpegParamOption); - gl_pnlFfmpegParamOption.setHorizontalGroup( - gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup() - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup() - .addContainerGap() - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(lblFfmpegOptionAvfilter) - .addComponent(lblFfmpegOptionExtension) - .addComponent(lblFfmpegOptionMain) - .addComponent(lblFfmpegOptionIn) - .addComponent(lblFfmpegOptionOut)) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, 51, GroupLayout.PREFERRED_SIZE) - .addComponent(fldFfmpegOptionMain, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE) - .addComponent(fldFfmpegOptionIn, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE) - .addComponent(fldFfmpegOptionOut, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE) - .addComponent(fldFfmpegOptionAv, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE))) - .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(cbFfmpegOptionResize) - .addPreferredGap(ComponentPlacement.UNRELATED) - .addComponent(lblFfmpegOptionResizeWidth) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE) - .addGap(12, 12, 12) - .addComponent(lblFfmpegOptionResizeHeight) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE)) - .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup() - .addGap(33, 33, 33) - .addComponent(cbFfmpegOptionKeepAspect))) - .addContainerGap()) - ); - gl_pnlFfmpegParamOption.setVerticalGroup( - gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup() - .addContainerGap() - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(lblFfmpegOptionExtension) - .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(lblFfmpegOptionMain) - .addComponent(fldFfmpegOptionMain, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(lblFfmpegOptionIn) - .addComponent(fldFfmpegOptionIn, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(lblFfmpegOptionOut) - .addComponent(fldFfmpegOptionOut, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(lblFfmpegOptionAvfilter) - .addComponent(fldFfmpegOptionAv, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(cbFfmpegOptionResize) - .addComponent(lblFfmpegOptionResizeWidth) - .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addComponent(lblFfmpegOptionResizeHeight) - .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(cbFfmpegOptionKeepAspect) -// .addContainerGap(43, Short.MAX_VALUE)) - )); - - GroupLayout gl_pnlFfmpegParam = new GroupLayout(pnlFfmpegParam); - pnlFfmpegParam.setLayout(gl_pnlFfmpegParam); - gl_pnlFfmpegParam.setHorizontalGroup( - gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING) - .addGroup(gl_pnlFfmpegParam.createSequentialGroup() - .addContainerGap() - .addGroup(gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING) - .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(gl_pnlFfmpegParam.createSequentialGroup() - .addComponent(rbFfmpegOptionFile) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addComponent(rbFfmpegOptionDirectInput)) - .addContainerGap()) - ); - gl_pnlFfmpegParam.setVerticalGroup( - gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING) - .addGroup(gl_pnlFfmpegParam.createSequentialGroup() - .addContainerGap() - .addGroup(gl_pnlFfmpegParam.createParallelGroup(Alignment.BASELINE) - .addComponent(rbFfmpegOptionFile) - .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(rbFfmpegOptionDirectInput) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap()) - ); - - javax.swing.GroupLayout gl_pnlFfmpeg = new javax.swing.GroupLayout(pnlFfmpeg); + GroupLayout gl_pnlFfmpeg = new GroupLayout(pnlFfmpeg); pnlFfmpeg.setLayout(gl_pnlFfmpeg); gl_pnlFfmpeg.setHorizontalGroup( gl_pnlFfmpeg.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -799,83 +658,12 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap()) ); - jTabbedPane1.addTab("ffmpeg", pnlFfmpeg); - - pnlNgWord.setBorder(javax.swing.BorderFactory.createTitledBorder("NGワード")); - - lstNgWord.setModel(mdlNgWord); - scrNgWord.setViewportView(lstNgWord); - - btnNgWordAdd.setText("追加"); + tabbedPane.addTab("ffmpeg", pnlFfmpeg); - btnNgWordDel.setText("削除"); + pnlNgWord.setBorder(BorderFactory.createTitledBorder("NGワード")); + pnlNgId.setBorder(BorderFactory.createTitledBorder("NGID")); - javax.swing.GroupLayout gl_pnlNgWord = new javax.swing.GroupLayout(pnlNgWord); - pnlNgWord.setLayout(gl_pnlNgWord); - gl_pnlNgWord.setHorizontalGroup( - gl_pnlNgWord.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlNgWord.createSequentialGroup() - .addContainerGap() - .addGroup(gl_pnlNgWord.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(scrNgWord, GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE) - .addGroup(gl_pnlNgWord.createSequentialGroup() - .addComponent(fldNgWord, GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(btnNgWordAdd) - .addGap(18, 18, 18) - .addComponent(btnNgWordDel))) - .addContainerGap()) - ); - gl_pnlNgWord.setVerticalGroup( - gl_pnlNgWord.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlNgWord.createSequentialGroup() - .addComponent(scrNgWord, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlNgWord.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(fldNgWord, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addComponent(btnNgWordDel) - .addComponent(btnNgWordAdd)) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - - pnlNgId.setBorder(javax.swing.BorderFactory.createTitledBorder("NGID")); - - lstNgId.setModel(mdlNgId); - scrNgId.setViewportView(lstNgId); - - btnNgIdAdd.setText("追加"); - - btnNgIdDel.setText("削除"); - - javax.swing.GroupLayout gl_pnlNgId = new javax.swing.GroupLayout(pnlNgId); - pnlNgId.setLayout(gl_pnlNgId); - gl_pnlNgId.setHorizontalGroup( - gl_pnlNgId.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlNgId.createSequentialGroup() - .addContainerGap() - .addGroup(gl_pnlNgId.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(scrNgId, GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE) - .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlNgId.createSequentialGroup() - .addComponent(fldNgId, GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE) - .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(btnNgIdAdd) - .addGap(18, 18, 18) - .addComponent(btnNgIdDel))) - .addContainerGap()) - ); - gl_pnlNgId.setVerticalGroup( - gl_pnlNgId.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlNgId.createSequentialGroup() - .addComponent(scrNgId, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlNgId.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(fldNgId, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addComponent(btnNgIdDel) - .addComponent(btnNgIdAdd)) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - - javax.swing.GroupLayout gl_pnlNgSetting = new javax.swing.GroupLayout(pnlNgSetting); + GroupLayout gl_pnlNgSetting = new GroupLayout(pnlNgSetting); pnlNgSetting.setLayout(gl_pnlNgSetting); gl_pnlNgSetting.setHorizontalGroup( gl_pnlNgSetting.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -890,91 +678,22 @@ public class ConfigDialog extends javax.swing.JDialog { gl_pnlNgSetting.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(gl_pnlNgSetting.createSequentialGroup() .addContainerGap() - .addComponent(pnlNgWord, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(pnlNgWord, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(pnlNgId, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) - .addContainerGap(82, Short.MAX_VALUE)) - ); - - jTabbedPane1.addTab("NG設定", pnlNgSetting); - - pnlSearchVideo.setBorder(javax.swing.BorderFactory.createTitledBorder("動画検索対象フォルダ")); - - lstSearchVideo.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - srcSearchVideo.setViewportView(lstSearchVideo); - - btnSearchVideoAdd.setText("追加..."); - - btnSearchVideoDel.setText("削除"); - - javax.swing.GroupLayout gl_pnlSearchVideo = new javax.swing.GroupLayout(pnlSearchVideo); - pnlSearchVideo.setLayout(gl_pnlSearchVideo); - gl_pnlSearchVideo.setHorizontalGroup( - gl_pnlSearchVideo.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(srcSearchVideo, GroupLayout.DEFAULT_SIZE, 419, Short.MAX_VALUE) - .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlSearchVideo.createSequentialGroup() - .addContainerGap(269, Short.MAX_VALUE) - .addComponent(btnSearchVideoAdd) - .addGap(18, 18, 18) - .addComponent(btnSearchVideoDel) + .addComponent(pnlNgId, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); - gl_pnlSearchVideo.setVerticalGroup( - gl_pnlSearchVideo.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlSearchVideo.createSequentialGroup() - .addComponent(srcSearchVideo, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlSearchVideo.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(btnSearchVideoDel) - .addComponent(btnSearchVideoAdd)) - .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - ); - pnlSearchComment.setBorder(javax.swing.BorderFactory.createTitledBorder("コメント検索対象フォルダ")); + tabbedPane.addTab("NG設定", pnlNgSetting); - lstSearchComment.setModel(new javax.swing.AbstractListModel() { - String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; - public int getSize() { return strings.length; } - public Object getElementAt(int i) { return strings[i]; } - }); - srcSearchComment.setViewportView(lstSearchComment); - - btnSearchCommentAdd.setText("追加..."); - - btnSearchCommentDel.setText("削除"); - - javax.swing.GroupLayout gl_pnlSearchComment = new javax.swing.GroupLayout(pnlSearchComment); - pnlSearchComment.setLayout(gl_pnlSearchComment); - gl_pnlSearchComment.setHorizontalGroup( - gl_pnlSearchComment.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(srcSearchComment, GroupLayout.DEFAULT_SIZE, 419, Short.MAX_VALUE) - .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlSearchComment.createSequentialGroup() - .addContainerGap(269, Short.MAX_VALUE) - .addComponent(btnSearchCommentAdd) - .addGap(18, 18, 18) - .addComponent(btnSearchCommentDel) - .addContainerGap()) - ); - gl_pnlSearchComment.setVerticalGroup( - gl_pnlSearchComment.createParallelGroup(GroupLayout.Alignment.LEADING) - .addGroup(gl_pnlSearchComment.createSequentialGroup() - .addComponent(srcSearchComment, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE) - .addPreferredGap(ComponentPlacement.RELATED) - .addGroup(gl_pnlSearchComment.createParallelGroup(GroupLayout.Alignment.BASELINE) - .addComponent(btnSearchCommentDel) - .addComponent(btnSearchCommentAdd)) - .addContainerGap(16, Short.MAX_VALUE)) - ); + pnlSearchVideo.setBorder(BorderFactory.createTitledBorder("動画検索対象フォルダ")); + pnlSearchComment.setBorder(BorderFactory.createTitledBorder("コメント検索対象フォルダ")); - pnlSearchCache.setBorder(javax.swing.BorderFactory.createEtchedBorder()); + pnlSearchCache.setBorder(BorderFactory.createEtchedBorder()); lblSearchCache.setText("キャッシュ更新(秒)"); - javax.swing.GroupLayout gl_pnlSearchCache = new javax.swing.GroupLayout(pnlSearchCache); + GroupLayout gl_pnlSearchCache = new GroupLayout(pnlSearchCache); pnlSearchCache.setLayout(gl_pnlSearchCache); gl_pnlSearchCache.setHorizontalGroup( gl_pnlSearchCache.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -995,7 +714,7 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - javax.swing.GroupLayout gl_pnlSearch = new javax.swing.GroupLayout(pnlSearch); + GroupLayout gl_pnlSearch = new GroupLayout(pnlSearch); pnlSearch.setLayout(gl_pnlSearch); gl_pnlSearch.setHorizontalGroup( gl_pnlSearch.createParallelGroup(GroupLayout.Alignment.LEADING) @@ -1019,60 +738,117 @@ public class ConfigDialog extends javax.swing.JDialog { .addContainerGap(27, Short.MAX_VALUE)) ); - jTabbedPane1.addTab("検索", pnlSearch); + tabbedPane.addTab("検索", pnlSearch); final JPanel pnlButton = new JPanel(); final JButton btnOk = new JButton("OK"); + btnOk.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + saveConfig(); + dispose(); + } + }); final JButton btnCancel = new JButton("Cancel"); pnlButton.add(btnOk); pnlButton.add(btnCancel); - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); + GroupLayout layout = new GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(GroupLayout.Alignment.LEADING) - .addComponent(jTabbedPane1, GroupLayout.DEFAULT_SIZE, 460, Short.MAX_VALUE) + .addComponent(tabbedPane, GroupLayout.DEFAULT_SIZE, 460, Short.MAX_VALUE) .addComponent(pnlButton) ); layout.setVerticalGroup( -// layout.createParallelGroup(GroupLayout.Alignment.LEADING) -// .addGroup(layout.createSequentialGroup() -// .addComponent(jTabbedPane1, GroupLayout.DEFAULT_SIZE, 451, GroupLayout.PREFERRED_SIZE) -// .addContainerGap(23, Short.MAX_VALUE)) layout.createSequentialGroup() - .addComponent(jTabbedPane1,GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) + .addComponent(tabbedPane,GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(pnlButton) ); + final JLabel lblSystemThreadDownload = new JLabel("ダウンロードスレッド数"); + final JLabel lblSystemWaitDownload = new JLabel("ダウンロード開始最小間隔(秒)"); + final JLabel lblSystemThreadConvert = new JLabel("変換スレッド数"); + final JLabel lblSystemTempDir = new JLabel("作業フォルダ"); + + final JPanel pnlSystemGeneral = new JPanel(); + pnlSystemGeneral.setBorder(BorderFactory.createTitledBorder("システム")); + final GroupLayout glSystemGenegal = new GroupLayout(pnlSystemGeneral); + glSystemGenegal.setAutoCreateGaps(true); + glSystemGenegal.setAutoCreateContainerGaps(true); + pnlSystemGeneral.setLayout(glSystemGenegal); + + glSystemGenegal.setHorizontalGroup(glSystemGenegal.createParallelGroup() + .addGroup(glSystemGenegal.createSequentialGroup() + .addGroup(glSystemGenegal.createParallelGroup() + .addComponent(lblSystemThreadDownload) + .addComponent(lblSystemWaitDownload) + .addComponent(lblSystemThreadConvert)) + .addGroup(glSystemGenegal.createParallelGroup() + .addComponent(fldSystemThreadDownload, PREFERRED_SIZE, 40, PREFERRED_SIZE) + .addComponent(fldSystemWaitDownload, PREFERRED_SIZE, 40, PREFERRED_SIZE) + .addComponent(fldSystemThreadConvert, PREFERRED_SIZE, 40, PREFERRED_SIZE) + ) + ) + .addGroup(glSystemGenegal.createSequentialGroup() + .addComponent(lblSystemTempDir) + .addComponent(fldSystemTempDir, DEFAULT_SIZE, 400, Short.MAX_VALUE) + ) + ); + + glSystemGenegal.setVerticalGroup(glSystemGenegal.createSequentialGroup() + .addGroup(glSystemGenegal.createParallelGroup(Alignment.BASELINE) + .addComponent(lblSystemThreadDownload) + .addComponent(fldSystemThreadDownload, DEFAULT_SIZE, PREFERRED_SIZE, PREFERRED_SIZE)) + .addGroup(glSystemGenegal.createParallelGroup(Alignment.BASELINE) + .addComponent(lblSystemWaitDownload) + .addComponent(fldSystemWaitDownload, DEFAULT_SIZE, PREFERRED_SIZE, PREFERRED_SIZE)) + .addGroup(glSystemGenegal.createParallelGroup(Alignment.BASELINE) + .addComponent(lblSystemThreadConvert) + .addComponent(fldSystemThreadConvert, DEFAULT_SIZE, PREFERRED_SIZE, PREFERRED_SIZE)) + .addGroup(glSystemGenegal.createParallelGroup(Alignment.BASELINE) + .addComponent(lblSystemTempDir) + .addComponent(fldSystemTempDir, DEFAULT_SIZE, PREFERRED_SIZE, PREFERRED_SIZE))); + + final JPanel pnlSystem = new JPanel(); + pnlSystem.setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1)); + final GroupLayout glSystem = new GroupLayout(pnlSystem); + glSystem.setAutoCreateGaps(true); + glSystem.setAutoCreateContainerGaps(true); + pnlSystem.setLayout(glSystem); + + glSystem.setHorizontalGroup(glSystem.createParallelGroup() + .addComponent(pnlSystemGeneral)); + + glSystem.setVerticalGroup(glSystem.createSequentialGroup() + .addComponent(pnlSystemGeneral)); + + tabbedPane.add("システム", pnlSystem); + pack(); - }// //GEN-END:initComponents + setResizable(false); + loadConfig(); + } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ - // /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { - for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { + for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { - javax.swing.UIManager.setLookAndFeel(info.getClassName()); + UIManager.setLookAndFeel(info.getClassName()); break; } } - } catch (ClassNotFoundException ex) { - java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); - } catch (InstantiationException ex) { - java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); - } catch (IllegalAccessException ex) { - java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); - } catch (javax.swing.UnsupportedLookAndFeelException ex) { + } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } - // /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { @@ -1084,126 +860,78 @@ public class ConfigDialog extends javax.swing.JDialog { }); } // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.ButtonGroup buttonGroup1; - private javax.swing.JButton btnVideoDir; - private javax.swing.JButton btnNgWordDel; - private javax.swing.JButton btnNgIdAdd; - private javax.swing.JButton btnNgIdDel; - private javax.swing.JButton btnSearchCommentAdd; - private javax.swing.JButton btnSearchCommentDel; - private javax.swing.JButton btnCommentDir; - private javax.swing.JButton btnOutputDir; - private javax.swing.JButton btnFfmpegPath; - private javax.swing.JButton btnFfmpegDllPath; - private javax.swing.JButton btnFontPath; - private javax.swing.JButton btnSearchVideoAdd; - private javax.swing.JButton btnSearchVideoDel; - private javax.swing.JButton btnNgWordAdd; - private javax.swing.JCheckBox cbProxyUse; - private javax.swing.JCheckBox cbCommentDisplaySizeDefault; - private javax.swing.JCheckBox cbOutputDisplayProgress; - private javax.swing.JCheckBox cbFontSizeArrangeDisable; - private javax.swing.JCheckBox cbCommentOpaque; - private javax.swing.JCheckBox cbVideoLocal; - private javax.swing.JCheckBox cbCommentLocal; - private javax.swing.JCheckBox cbOutputEnable; - private javax.swing.JCheckBox cbCommentSizeAuto; - private javax.swing.JCheckBox cbCommentMinSizeAuto; - private javax.swing.JCheckBox cbOutputCommentOverlay; - private javax.swing.JCheckBox cbFfmpegOptionResize; - private javax.swing.JCheckBox cbFfmpegOptionKeepAspect; - private javax.swing.JComboBox cmbFfmpegOptionFile; - private javax.swing.JLabel lblMail; - private javax.swing.JLabel lblOutputFileNamePattern; - private javax.swing.JLabel lblCommentSize; - private javax.swing.JLabel lblCommentSizeManual; - private javax.swing.JLabel lblCommentMinSize; - private javax.swing.JLabel lblCommentMinSizeManual; - private javax.swing.JLabel lblFfmpegPath; - private javax.swing.JLabel lblFfmpegDllPath; - private javax.swing.JLabel lblFfmpegOptionExtension; - private javax.swing.JLabel lblFfmpegOptionMain; - private javax.swing.JLabel lblFfmpegOptionIn; - private javax.swing.JLabel lblPassword; - private javax.swing.JLabel lblFfmpegOptionOut; - private javax.swing.JLabel lblFfmpegOptionAvfilter; - private javax.swing.JLabel lblFfmpegOptionResizeWidth; - private javax.swing.JLabel lblFfmpegOptionResizeHeight; - private javax.swing.JLabel lblCommentDisplayMax; - private javax.swing.JLabel lblCommentDisplayMaxManual; - private javax.swing.JLabel lblFontPath; - private javax.swing.JLabel lblFontIndex; - private javax.swing.JLabel lblFontShadow; - private javax.swing.JLabel lblSearchCache; - private javax.swing.JLabel lblProxyHost; - private javax.swing.JLabel lblProxyPort; - private javax.swing.JLabel lblVideoDir; - private javax.swing.JLabel lblVideoFileNamepattern; - private javax.swing.JLabel lblCommentDir; - private javax.swing.JLabel lblCommentFileNamePattern; - private javax.swing.JLabel lblOutputDir; - private javax.swing.JList lstSearchVideo; - private javax.swing.JList lstSearchComment; - private javax.swing.JList lstNgWord; - private final DefaultListModel mdlNgWord = new DefaultListModel<>(); - private javax.swing.JList lstNgId; - private final DefaultListModel mdlNgId = new DefaultListModel<>(); - private javax.swing.JPanel pnlNetwork; - private javax.swing.JPanel jPanel10; - private javax.swing.JPanel pnlFfmpegParam; - private javax.swing.JPanel pnlFfmpegParamOption; - private javax.swing.JPanel pnlNgSetting; - private javax.swing.JPanel pnlCommentStandard; - private javax.swing.JPanel pnlCommentAdvanced; - private javax.swing.JPanel pnlNgWord; - private javax.swing.JPanel pnlSearch; - private javax.swing.JPanel pnlSearchVideo; - private javax.swing.JPanel pnlSearchComment; - private javax.swing.JPanel pnlAccount; - private javax.swing.JPanel pnlNgId; - private javax.swing.JPanel pnlSearchCache; - private javax.swing.JPanel pnlProxy; - private javax.swing.JPanel pnlFile; - private javax.swing.JPanel pnlFileVideo; - private javax.swing.JPanel pnlFileComment; - private javax.swing.JPanel pnlFileOutput; - private javax.swing.JPanel pnlComment; - private javax.swing.JPanel pnlFfmpeg; - private javax.swing.JRadioButton rbFfmpegOptionFile; - private javax.swing.JRadioButton rbFfmpegOptionDirectInput; - private javax.swing.JScrollPane srcSearchVideo; - private javax.swing.JScrollPane srcSearchComment; - private javax.swing.JScrollPane scrNgWord; - private javax.swing.JScrollPane scrNgId; - private javax.swing.JTabbedPane jTabbedPane1; - private javax.swing.JTextField fldMail; - private javax.swing.JTextField fldOutputFileNamePattern; - private javax.swing.JTextField fldCommentSizeManual; - private javax.swing.JTextField fldCommentMinSizeManual; - private javax.swing.JTextField fldFfmpegPath; - private javax.swing.JTextField fldFfmpegDllPath; - private javax.swing.JTextField fldFfmpegOptionResizeWidth; - private javax.swing.JTextField fldFfmpegOptionResizeHeight; - private javax.swing.JTextField fldFfmpegOptionExtension; - private javax.swing.JTextField fldFfmpegOptionMain; - private javax.swing.JTextField fldFfmpegOptionIn; - private javax.swing.JTextField fldPassword; - private javax.swing.JTextField fldFfmpegOptionOut; - private javax.swing.JTextField fldFfmpegOptionAv; - private javax.swing.JTextField fldCommentDisplaySizeManual; - private javax.swing.JTextField fldFontPath; - private javax.swing.JTextField fldFontIndex; - private javax.swing.JTextField fldFontShadow; - private javax.swing.JTextField fldNgWord; - private javax.swing.JTextField fldNgId; - private javax.swing.JTextField fldSearchCache; - private javax.swing.JTextField fldProxyHost; - private javax.swing.JTextField fldProxyPort; - private javax.swing.JTextField fldVideoDir; - private javax.swing.JTextField fldVideoFileNamePattern; - private javax.swing.JTextField fldCommentDir; - private javax.swing.JTextField fldCommentFileNamePattern; - private javax.swing.JTextField fldOutputDir; + + // ネットワーク + // ネットワーク - アカウント + private final JTextField fldMail; + private final JTextField fldPassword; + // ネットワーク - プロキシ + private final JCheckBox cbProxyUse; + private final JTextField fldProxyHost; + private final JTextField fldProxyPort; + // ファイル + // ファイル - 動画 + private final JTextField fldVideoDir; + private final JButton btnVideoDir; + private final JTextField fldVideoFileNamePattern; + private final JCheckBox cbVideoLocal; + // ファイル - コメント + private final JTextField fldCommentDir; + private final JButton btnCommentDir; + private final JTextField fldCommentFileNamePattern; + private final JCheckBox cbCommentLocal; + // ファイル - 変換動画 + private final JTextField fldOutputDir; + private final JTextField fldOutputFileNamePattern; + private final JButton btnOutputDir; + private final JCheckBox cbOutputEnable; + private final JCheckBox cbOutputCommentOverlay; + private final JCheckBox cbOutputDisplayProgress; + // ファイル - 禁則文字 + private final JTextField fldReplaceFrom = new JTextField(); + private final JTextField fldReplaceTo = new JTextField(); + // コメント + // コメント + private final JCheckBox cbCommentSizeAuto; + private final JTextField fldCommentSizeManual; + private final JCheckBox cbCommentMinSizeAuto; + private final JTextField fldCommentMinSizeManual; + private final JCheckBox cbCommentDisplaySizeDefault; + private final JTextField fldCommentDisplaySizeManual; + // コメント - 高度な設定 + private final JTextField fldFontPath; + private final JButton btnFontPath; + private final JTextField fldFontIndex; + private final JComboBox cmbFontShadow = new JComboBox<>(); + private final JCheckBox cbFontSizeArrangeDisable; + private final JCheckBox cbCommentOpaque; + // ffmpeg + // ffmpeg - ファイルパス + private final JTextField fldFfmpegPath; + private final JButton btnFfmpegPath; + private final JTextField fldFfmpegDllPath; + private final JButton btnFfmpegDllPath; + // ffmpeg - ffmpegパラメータ + private final FfmpegParamPanel pnlFfmpegParam = new FfmpegParamPanel(); + // NG設定 + // NG設定 - NGワード + private final NgRegisterPanel pnlNgWord = new NgRegisterPanel(); + // NG設定 - NGID + private final NgRegisterPanel pnlNgId = new NgRegisterPanel(); + // 検索 + // 検索 - 動画検索対象フォルダ + private final DirectoryRegisterPanel pnlSearchVideo = new DirectoryRegisterPanel(); + // 検索 - コメント検索対象フォルダ + private final DirectoryRegisterPanel pnlSearchComment = new DirectoryRegisterPanel(); + // 検索 - キャッシュ更新(秒) + private final JTextField fldSearchCache; + // システム + private final JTextField fldSystemThreadDownload = new JTextField(); + private final JTextField fldSystemWaitDownload = new JTextField(); + private final JTextField fldSystemThreadConvert = new JTextField(); + private final JTextField fldSystemTempDir = new JTextField(); + + // End of variables declaration//GEN-END:variables private void loadConfig() { @@ -1245,6 +973,12 @@ public class ConfigDialog extends javax.swing.JDialog { cbOutputCommentOverlay.setSelected(p.getOutputCommentOverlay()); cbOutputDisplayProgress.setSelected(p.getOutputDisplayProgress()); + /* + * ファイル - 禁則文字 + */ + fldReplaceFrom.setText(p.getReplaceFrom()); + fldReplaceTo.setText(p.getReplaceTo()); + /** * コメント */ @@ -1260,7 +994,7 @@ public class ConfigDialog extends javax.swing.JDialog { */ fldFontPath.setText(p.getFontPath()); fldFontIndex.setText(p.getFontIndex()); - // TODO 影の種類はコンボボックス + cmbFontShadow.setSelectedIndex(p.getFontShadow()); cbFontSizeArrangeDisable.setSelected(p.getFontSizeArrangeDisable()); cbCommentOpaque.setSelected(p.getCommentOpaque()); @@ -1273,31 +1007,31 @@ public class ConfigDialog extends javax.swing.JDialog { /* * ffmpeg - ffmpegパラメータ */ - rbFfmpegOptionFile.setSelected(!p.getFfmpegParamInputDirect()); - rbFfmpegOptionDirectInput.setSelected(p.getFfmpegParamInputDirect()); - // TODO cmbFfmpegOptionFile - fldFfmpegOptionExtension.setText(p.getFfmpegExtension()); - fldFfmpegOptionMain.setText(p.getFfmpegMainOption()); - fldFfmpegOptionIn.setText(p.getFfmpegInOption()); - fldFfmpegOptionOut.setText(p.getFfmpegOutOption()); - fldFfmpegOptionAv.setText(p.getFfmpegAvOption()); - cbFfmpegOptionResize.setSelected(p.getFfmpegResizeEnable()); - fldFfmpegOptionResizeWidth.setText(p.getFfmpegResizeWidth()); - fldFfmpegOptionResizeHeight.setText(p.getFfmpegResizeHeight()); - cbFfmpegOptionKeepAspect.setSelected(p.getFfmpegKeepAspect()); + pnlFfmpegParam.init(p); /* * NG 設定 */ final List ngWords = p.getNgWords(); - for (String s : ngWords) { - mdlNgWord.addElement(s); - } + pnlNgWord.init(ngWords); final List ngIds = p.getNgIds(); - for (String s : ngIds) { - mdlNgId.addElement(s); - } + pnlNgId.init(ngIds); + + /* + * 検索 + */ + pnlSearchVideo.init(p.getSearchVideoDirs()); + pnlSearchComment.init(p.getSearchCommentDirs()); + + /* + * システム + */ + fldSystemThreadDownload.setText(Integer.toString(p.getSystemDownloadThread())); + fldSystemWaitDownload.setText(Integer.toString(p.getSystemDownloadWait())); + fldSystemThreadConvert.setText(Integer.toString(p.getSystemConvertThread())); + fldSystemTempDir.setText(p.getSystemTempDir()); } + private void saveConfig() { final Config p = Config.INSTANCE; @@ -1338,7 +1072,13 @@ public class ConfigDialog extends javax.swing.JDialog { p.setOutputCommentOverlay(cbOutputCommentOverlay.isSelected()); p.setOutputDisplayProgress(cbOutputDisplayProgress.isSelected()); - /** + /* + * ファイル - 禁則文字 + */ + p.setReplaceFrom(fldReplaceFrom.getText()); + p.setReplaceTo(fldReplaceTo.getText()); + + /* * コメント */ p.setCommentSizeAutosize(cbCommentSizeAuto.isSelected()); @@ -1353,7 +1093,7 @@ public class ConfigDialog extends javax.swing.JDialog { */ p.setFontPath(fldFontPath.getText()); p.setFontIndex(fldFontIndex.getText()); - // TODO 影の種類はコンボボックス + p.setFontShadow(cmbFontShadow.getSelectedIndex()); p.setFontSizeArrangeDisable(cbFontSizeArrangeDisable.isSelected()); p.setCommentOpaque(cbCommentOpaque.isSelected()); @@ -1366,23 +1106,42 @@ public class ConfigDialog extends javax.swing.JDialog { /* * ffmpeg - ffmpegパラメータ */ - p.setFfmpegParamInputDirect(rbFfmpegOptionDirectInput.isSelected()); - // TODO cmbFfmpegOptionFile - p.setFfmpegExtension(fldFfmpegOptionExtension.getText()); - p.setFfmpegMainOption(fldFfmpegOptionMain.getText()); - p.setFfmpegInOption(fldFfmpegOptionIn.getText()); - p.setFfmpegOutOption(fldFfmpegOptionOut.getText()); - p.setFfmpegAvOption(fldFfmpegOptionAv.getText()); - p.setFfmpegResizeEnable(cbFfmpegOptionResize.isSelected()); - p.setFfmpegResizeWidth(fldFfmpegOptionResizeWidth.getText()); - p.setFfmpegResizeHeight(fldFfmpegOptionResizeHeight.getText()); - p.setFfmpegKeepAspect(cbFfmpegOptionKeepAspect.isSelected()); + final File fileFfmpegOption = pnlFfmpegParam.mdlFfmpegOption.getSelectedFile(); + p.setFfmpegOptionFile(fileFfmpegOption != null ? fileFfmpegOption.getPath() : null); + p.setFfmpegExtension(pnlFfmpegParam.fldFfmpegOptionExtension.getText()); + p.setFfmpegMainOption(pnlFfmpegParam.fldFfmpegOptionMain.getText()); + p.setFfmpegInOption(pnlFfmpegParam.fldFfmpegOptionIn.getText()); + p.setFfmpegOutOption(pnlFfmpegParam.fldFfmpegOptionOut.getText()); + p.setFfmpegAvOption(pnlFfmpegParam.fldFfmpegOptionAv.getText()); + p.setFfmpegResizeEnable(pnlFfmpegParam.cbFfmpegOptionResize.isSelected()); + p.setFfmpegResizeWidth(pnlFfmpegParam.fldFfmpegOptionResizeWidth.getText()); + p.setFfmpegResizeHeight(pnlFfmpegParam.fldFfmpegOptionResizeHeight.getText()); + p.setFfmpegKeepAspect(pnlFfmpegParam.cbFfmpegOptionKeepAspect.isSelected()); /* * NG 設定 */ - p.setNgWords(Arrays.asList((String[]) mdlNgWord.toArray())); - p.setNgIds(Arrays.asList((String[])mdlNgId.toArray())); + p.setNgWords(pnlNgWord.getAllElements()); + p.setNgIds(pnlNgId.getAllElements()); + /* + * 検索 + */ + p.setSearchVideoDirs(pnlSearchVideo.getAllElements()); + p.setSearchCommentDirs(pnlSearchComment.getAllElements()); + + /* + * システム + */ + p.setSystemDownloadThread(Integer.parseInt(fldSystemThreadDownload.getText())); + p.setSystemDownloadWait(Integer.parseInt(fldSystemWaitDownload.getText())); + p.setSystemConvertThread(Integer.parseInt(fldSystemThreadConvert.getText())); + p.setSystemTempDir(fldSystemTempDir.getText()); + + try { + p.save(); + } catch (ConfigurationException ex) { + logger.log(Level.SEVERE, "コンフィグファイル保存に失敗", ex); + } } }