OSDN Git Service

コンフィグのロードとセーブ
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / gui / ConfigDialog.java
1 /*
2  * To change this template, choose Tools | Templates
3  * and open the template in the editor.
4  */
5
6 /*
7  * Properties.java
8  *
9  * Created on 2011/08/20, 16:33:03
10  */
11 package yukihane.inqubus.gui;
12
13 import java.util.ArrayList;
14 import java.util.Arrays;
15 import java.util.List;
16 import javax.swing.DefaultListModel;
17 import javax.swing.JFrame;
18 import yukihane.inqubus.Config;
19
20 /**
21  *
22  * @author yuki
23  */
24 public class ConfigDialog extends javax.swing.JDialog {
25     private static final long serialVersionUID = 1L;
26
27     /** Creates new form Properties */
28     public ConfigDialog() {
29         this(null);
30     }
31
32     public ConfigDialog(JFrame owner){
33         super(owner);
34         initComponents();
35         loadConfig();
36     }
37
38     /** This method is called from within the constructor to
39      * initialize the form.
40      * WARNING: Do NOT modify this code. The content of this method is
41      * always regenerated by the Form Editor.
42      */
43     @SuppressWarnings("unchecked")
44     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
45     private void initComponents() {
46
47         buttonGroup1 = new javax.swing.ButtonGroup();
48         jTabbedPane1 = new javax.swing.JTabbedPane();
49         pnlNetwork = new javax.swing.JPanel();
50         pnlAccount = new javax.swing.JPanel();
51         lblMail = new javax.swing.JLabel();
52         fldMail = new javax.swing.JTextField();
53         lblPassword = new javax.swing.JLabel();
54         fldPassword = new javax.swing.JTextField();
55         pnlProxy = new javax.swing.JPanel();
56         cbProxyUse = new javax.swing.JCheckBox();
57         lblProxyHost = new javax.swing.JLabel();
58         lblProxyPort = new javax.swing.JLabel();
59         fldProxyHost = new javax.swing.JTextField();
60         fldProxyPort = new javax.swing.JTextField();
61         pnlFile = new javax.swing.JPanel();
62         pnlFileVideo = new javax.swing.JPanel();
63         lblVideoDir = new javax.swing.JLabel();
64         lblVideoFileNamepattern = new javax.swing.JLabel();
65         fldVideoDir = new javax.swing.JTextField();
66         fldVideoFileNamePattern = new javax.swing.JTextField();
67         btnVideoDir = new javax.swing.JButton();
68         cbVideoLocal = new javax.swing.JCheckBox();
69         pnlFileComment = new javax.swing.JPanel();
70         lblCommentDir = new javax.swing.JLabel();
71         lblCommentFileNamePattern = new javax.swing.JLabel();
72         fldCommentDir = new javax.swing.JTextField();
73         fldCommentFileNamePattern = new javax.swing.JTextField();
74         btnCommentDir = new javax.swing.JButton();
75         cbCommentLocal = new javax.swing.JCheckBox();
76         pnlFileOutput = new javax.swing.JPanel();
77         lblOutputDir = new javax.swing.JLabel();
78         lblOutputFileNamePattern = new javax.swing.JLabel();
79         fldOutputDir = new javax.swing.JTextField();
80         fldOutputFileNamePattern = new javax.swing.JTextField();
81         btnOutputDir = new javax.swing.JButton();
82         cbOutputEnable = new javax.swing.JCheckBox();
83         cbOutputCommentOverlay = new javax.swing.JCheckBox();
84         cbOutputDisplayProgress = new javax.swing.JCheckBox();
85         pnlComment = new javax.swing.JPanel();
86         pnlCommentStandard = new javax.swing.JPanel();
87         lblCommentSize = new javax.swing.JLabel();
88         cbCommentSizeAuto = new javax.swing.JCheckBox();
89         lblCommentSizeManual = new javax.swing.JLabel();
90         fldCommentSizeManual = new javax.swing.JTextField();
91         lblCommentMinSize = new javax.swing.JLabel();
92         cbCommentMinSizeAuto = new javax.swing.JCheckBox();
93         fldCommentMinSizeManual = new javax.swing.JTextField();
94         lblCommentMinSizeManual = new javax.swing.JLabel();
95         lblCommentDisplayMax = new javax.swing.JLabel();
96         cbCommentDisplaySizeDefault = new javax.swing.JCheckBox();
97         lblCommentDisplayMaxManual = new javax.swing.JLabel();
98         fldCommentDisplaySizeManual = new javax.swing.JTextField();
99         pnlCommentAdvanced = new javax.swing.JPanel();
100         lblFontPath = new javax.swing.JLabel();
101         cbFontSizeArrangeDisable = new javax.swing.JCheckBox();
102         cbCommentOpaque = new javax.swing.JCheckBox();
103         fldFontPath = new javax.swing.JTextField();
104         btnFontPath = new javax.swing.JButton();
105         lblFontIndex = new javax.swing.JLabel();
106         lblFontShadow = new javax.swing.JLabel();
107         fldFontIndex = new javax.swing.JTextField();
108         fldFontShadow = new javax.swing.JTextField();
109         pnlFfmpeg = new javax.swing.JPanel();
110         jPanel10 = new javax.swing.JPanel();
111         lblFfmpegPath = new javax.swing.JLabel();
112         lblFfmpegDllPath = new javax.swing.JLabel();
113         fldFfmpegPath = new javax.swing.JTextField();
114         fldFfmpegDllPath = new javax.swing.JTextField();
115         btnFfmpegPath = new javax.swing.JButton();
116         btnFfmpegDllPath = new javax.swing.JButton();
117         pnlFfmpegParam = new javax.swing.JPanel();
118         rbFfmpegOptionFile = new javax.swing.JRadioButton();
119         rbFfmpegOptionDirectInput = new javax.swing.JRadioButton();
120         cmbFfmpegOptionFile = new javax.swing.JComboBox();
121         pnlFfmpegParamOption = new javax.swing.JPanel();
122         lblFfmpegOptionExtension = new javax.swing.JLabel();
123         lblFfmpegOptionMain = new javax.swing.JLabel();
124         lblFfmpegOptionIn = new javax.swing.JLabel();
125         lblFfmpegOptionOut = new javax.swing.JLabel();
126         lblFfmpegOptionAvfilter = new javax.swing.JLabel();
127         cbFfmpegOptionResize = new javax.swing.JCheckBox();
128         lblFfmpegOptionResizeWidth = new javax.swing.JLabel();
129         fldFfmpegOptionResizeWidth = new javax.swing.JTextField();
130         lblFfmpegOptionResizeHeight = new javax.swing.JLabel();
131         fldFfmpegOptionResizeHeight = new javax.swing.JTextField();
132         cbFfmpegOptionKeepAspect = new javax.swing.JCheckBox();
133         fldFfmpegOptionExtension = new javax.swing.JTextField();
134         fldFfmpegOptionMain = new javax.swing.JTextField();
135         fldFfmpegOptionIn = new javax.swing.JTextField();
136         fldFfmpegOptionOut = new javax.swing.JTextField();
137         fldFfmpegOptionAv = new javax.swing.JTextField();
138         pnlNgSetting = new javax.swing.JPanel();
139         pnlNgWord = new javax.swing.JPanel();
140         scrNgWord = new javax.swing.JScrollPane();
141         lstNgWord = new javax.swing.JList<>();
142         fldNgWord = new javax.swing.JTextField();
143         btnNgWordAdd = new javax.swing.JButton();
144         btnNgWordDel = new javax.swing.JButton();
145         pnlNgId = new javax.swing.JPanel();
146         scrNgId = new javax.swing.JScrollPane();
147         lstNgId = new javax.swing.JList<>();
148         fldNgId = new javax.swing.JTextField();
149         btnNgIdAdd = new javax.swing.JButton();
150         btnNgIdDel = new javax.swing.JButton();
151         pnlSearch = new javax.swing.JPanel();
152         pnlSearchVideo = new javax.swing.JPanel();
153         srcSearchVideo = new javax.swing.JScrollPane();
154         lstSearchVideo = new javax.swing.JList();
155         btnSearchVideoAdd = new javax.swing.JButton();
156         btnSearchVideoDel = new javax.swing.JButton();
157         pnlSearchComment = new javax.swing.JPanel();
158         srcSearchComment = new javax.swing.JScrollPane();
159         lstSearchComment = new javax.swing.JList();
160         btnSearchCommentAdd = new javax.swing.JButton();
161         btnSearchCommentDel = new javax.swing.JButton();
162         pnlSearchCache = new javax.swing.JPanel();
163         lblSearchCache = new javax.swing.JLabel();
164         fldSearchCache = new javax.swing.JTextField();
165
166         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
167
168         pnlNetwork.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
169
170         pnlAccount.setBorder(javax.swing.BorderFactory.createTitledBorder("アカウント"));
171
172         lblMail.setText("ID(メールアドレス)");
173
174         lblPassword.setText("パスワード");
175
176         javax.swing.GroupLayout gl_pnlAccount = new javax.swing.GroupLayout(pnlAccount);
177         pnlAccount.setLayout(gl_pnlAccount);
178         gl_pnlAccount.setHorizontalGroup(
179             gl_pnlAccount.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
180             .addGroup(gl_pnlAccount.createSequentialGroup()
181                 .addContainerGap()
182                 .addGroup(gl_pnlAccount.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
183                     .addComponent(lblMail)
184                     .addComponent(lblPassword))
185                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
186                 .addGroup(gl_pnlAccount.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
187                     .addComponent(fldPassword, javax.swing.GroupLayout.DEFAULT_SIZE, 306, Short.MAX_VALUE)
188                     .addComponent(fldMail, javax.swing.GroupLayout.DEFAULT_SIZE, 306, Short.MAX_VALUE))
189                 .addContainerGap())
190         );
191         gl_pnlAccount.setVerticalGroup(
192             gl_pnlAccount.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
193             .addGroup(gl_pnlAccount.createSequentialGroup()
194                 .addContainerGap()
195                 .addGroup(gl_pnlAccount.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
196                     .addComponent(lblMail)
197                     .addComponent(fldMail, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
198                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
199                 .addGroup(gl_pnlAccount.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
200                     .addComponent(lblPassword)
201                     .addComponent(fldPassword, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
202                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
203         );
204
205         pnlProxy.setBorder(javax.swing.BorderFactory.createTitledBorder("プロキシ"));
206
207         cbProxyUse.setText("プロキシを使用する");
208
209         lblProxyHost.setText("ホスト名");
210
211         lblProxyPort.setText("ポート番号");
212
213         javax.swing.GroupLayout gl_pnlProxy = new javax.swing.GroupLayout(pnlProxy);
214         pnlProxy.setLayout(gl_pnlProxy);
215         gl_pnlProxy.setHorizontalGroup(
216             gl_pnlProxy.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
217             .addGroup(gl_pnlProxy.createSequentialGroup()
218                 .addContainerGap()
219                 .addGroup(gl_pnlProxy.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
220                     .addComponent(cbProxyUse)
221                     .addGroup(gl_pnlProxy.createSequentialGroup()
222                         .addComponent(lblProxyHost)
223                         .addGap(18, 18, 18)
224                         .addComponent(fldProxyHost, javax.swing.GroupLayout.PREFERRED_SIZE, 168, javax.swing.GroupLayout.PREFERRED_SIZE))
225                     .addGroup(gl_pnlProxy.createSequentialGroup()
226                         .addComponent(lblProxyPort)
227                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
228                         .addComponent(fldProxyPort, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE)))
229                 .addContainerGap(181, Short.MAX_VALUE))
230         );
231         gl_pnlProxy.setVerticalGroup(
232             gl_pnlProxy.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
233             .addGroup(gl_pnlProxy.createSequentialGroup()
234                 .addContainerGap()
235                 .addComponent(cbProxyUse)
236                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
237                 .addGroup(gl_pnlProxy.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
238                     .addComponent(lblProxyHost)
239                     .addComponent(fldProxyHost, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
240                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
241                 .addGroup(gl_pnlProxy.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
242                     .addComponent(lblProxyPort)
243                     .addComponent(fldProxyPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
244                 .addContainerGap(39, Short.MAX_VALUE))
245         );
246
247         javax.swing.GroupLayout gl_pnlNetwork = new javax.swing.GroupLayout(pnlNetwork);
248         pnlNetwork.setLayout(gl_pnlNetwork);
249         gl_pnlNetwork.setHorizontalGroup(
250             gl_pnlNetwork.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
251             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlNetwork.createSequentialGroup()
252                 .addContainerGap()
253                 .addGroup(gl_pnlNetwork.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
254                     .addComponent(pnlProxy, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
255                     .addComponent(pnlAccount, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
256                 .addContainerGap())
257         );
258         gl_pnlNetwork.setVerticalGroup(
259             gl_pnlNetwork.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
260             .addGroup(gl_pnlNetwork.createSequentialGroup()
261                 .addContainerGap()
262                 .addComponent(pnlAccount, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
263                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
264                 .addComponent(pnlProxy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
265                 .addContainerGap(178, Short.MAX_VALUE))
266         );
267
268         jTabbedPane1.addTab("ネットワーク", pnlNetwork);
269
270         pnlFileVideo.setBorder(javax.swing.BorderFactory.createTitledBorder("動画"));
271
272         lblVideoDir.setText("保存フォルダ");
273
274         lblVideoFileNamepattern.setText("ファイル名パターン");
275
276         btnVideoDir.setText("...");
277
278         cbVideoLocal.setText("local");
279
280         javax.swing.GroupLayout gl_pnlFileVideo = new javax.swing.GroupLayout(pnlFileVideo);
281         pnlFileVideo.setLayout(gl_pnlFileVideo);
282         gl_pnlFileVideo.setHorizontalGroup(
283             gl_pnlFileVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
284             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlFileVideo.createSequentialGroup()
285                 .addContainerGap()
286                 .addGroup(gl_pnlFileVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
287                     .addComponent(lblVideoFileNamepattern)
288                     .addComponent(lblVideoDir))
289                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
290                 .addGroup(gl_pnlFileVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
291                     .addGroup(gl_pnlFileVideo.createSequentialGroup()
292                         .addComponent(fldVideoDir, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)
293                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
294                         .addComponent(btnVideoDir))
295                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlFileVideo.createSequentialGroup()
296                         .addComponent(fldVideoFileNamePattern, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)
297                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 94, Short.MAX_VALUE)
298                         .addComponent(cbVideoLocal)))
299                 .addContainerGap())
300         );
301         gl_pnlFileVideo.setVerticalGroup(
302             gl_pnlFileVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
303             .addGroup(gl_pnlFileVideo.createSequentialGroup()
304                 .addGroup(gl_pnlFileVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
305                     .addComponent(lblVideoDir)
306                     .addComponent(fldVideoDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
307                     .addComponent(btnVideoDir))
308                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
309                 .addGroup(gl_pnlFileVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
310                     .addComponent(lblVideoFileNamepattern)
311                     .addComponent(fldVideoFileNamePattern, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
312                     .addComponent(cbVideoLocal))
313                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
314         );
315
316         pnlFileComment.setBorder(javax.swing.BorderFactory.createTitledBorder("コメント"));
317
318         lblCommentDir.setText("保存フォルダ");
319
320         lblCommentFileNamePattern.setText("ファイル名パターン");
321
322         btnCommentDir.setText("...");
323
324         cbCommentLocal.setText("local");
325
326         javax.swing.GroupLayout gl_pnlFileComment = new javax.swing.GroupLayout(pnlFileComment);
327         pnlFileComment.setLayout(gl_pnlFileComment);
328         gl_pnlFileComment.setHorizontalGroup(
329             gl_pnlFileComment.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
330             .addGroup(gl_pnlFileComment.createSequentialGroup()
331                 .addContainerGap()
332                 .addGroup(gl_pnlFileComment.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
333                     .addComponent(lblCommentFileNamePattern)
334                     .addComponent(lblCommentDir))
335                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
336                 .addGroup(gl_pnlFileComment.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
337                     .addGroup(gl_pnlFileComment.createSequentialGroup()
338                         .addComponent(fldCommentFileNamePattern, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE)
339                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 93, Short.MAX_VALUE)
340                         .addComponent(cbCommentLocal))
341                     .addGroup(gl_pnlFileComment.createSequentialGroup()
342                         .addComponent(fldCommentDir, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)
343                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
344                         .addComponent(btnCommentDir)))
345                 .addContainerGap())
346         );
347         gl_pnlFileComment.setVerticalGroup(
348             gl_pnlFileComment.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
349             .addGroup(gl_pnlFileComment.createSequentialGroup()
350                 .addGroup(gl_pnlFileComment.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
351                     .addComponent(lblCommentDir)
352                     .addComponent(fldCommentDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
353                     .addComponent(btnCommentDir))
354                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
355                 .addGroup(gl_pnlFileComment.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
356                     .addComponent(lblCommentFileNamePattern)
357                     .addComponent(fldCommentFileNamePattern, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
358                     .addComponent(cbCommentLocal))
359                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
360         );
361
362         pnlFileOutput.setBorder(javax.swing.BorderFactory.createTitledBorder("変換動画"));
363
364         lblOutputDir.setText("保存フォルダ");
365
366         lblOutputFileNamePattern.setText("ファイル名パターン");
367
368         btnOutputDir.setText("...");
369
370         cbOutputEnable.setText("変換");
371
372         cbOutputCommentOverlay.setText("コメント付与");
373
374         cbOutputDisplayProgress.setText("変換中動画表示");
375
376         javax.swing.GroupLayout gl_pnlFileOutput = new javax.swing.GroupLayout(pnlFileOutput);
377         pnlFileOutput.setLayout(gl_pnlFileOutput);
378         gl_pnlFileOutput.setHorizontalGroup(
379             gl_pnlFileOutput.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
380             .addGroup(gl_pnlFileOutput.createSequentialGroup()
381                 .addContainerGap()
382                 .addGroup(gl_pnlFileOutput.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
383                     .addComponent(lblOutputFileNamePattern)
384                     .addComponent(lblOutputDir))
385                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
386                 .addGroup(gl_pnlFileOutput.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
387                     .addGroup(gl_pnlFileOutput.createSequentialGroup()
388                         .addComponent(fldOutputDir, javax.swing.GroupLayout.DEFAULT_SIZE, 262, Short.MAX_VALUE)
389                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
390                         .addComponent(btnOutputDir)
391                         .addContainerGap())
392                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlFileOutput.createSequentialGroup()
393                         .addComponent(fldOutputFileNamePattern, javax.swing.GroupLayout.PREFERRED_SIZE, 167, javax.swing.GroupLayout.PREFERRED_SIZE)
394                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 23, Short.MAX_VALUE)
395                         .addGroup(gl_pnlFileOutput.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
396                             .addComponent(cbOutputDisplayProgress)
397                             .addGroup(gl_pnlFileOutput.createSequentialGroup()
398                                 .addComponent(cbOutputEnable)
399                                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
400                                 .addComponent(cbOutputCommentOverlay))))))
401         );
402         gl_pnlFileOutput.setVerticalGroup(
403             gl_pnlFileOutput.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
404             .addGroup(gl_pnlFileOutput.createSequentialGroup()
405                 .addGroup(gl_pnlFileOutput.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
406                     .addComponent(lblOutputDir)
407                     .addComponent(fldOutputDir, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
408                     .addComponent(btnOutputDir))
409                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
410                 .addGroup(gl_pnlFileOutput.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
411                     .addComponent(lblOutputFileNamePattern)
412                     .addComponent(fldOutputFileNamePattern, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
413                     .addComponent(cbOutputCommentOverlay)
414                     .addComponent(cbOutputEnable))
415                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
416                 .addComponent(cbOutputDisplayProgress)
417                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
418         );
419
420         javax.swing.GroupLayout gl_pnlFile = new javax.swing.GroupLayout(pnlFile);
421         pnlFile.setLayout(gl_pnlFile);
422         gl_pnlFile.setHorizontalGroup(
423             gl_pnlFile.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
424             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlFile.createSequentialGroup()
425                 .addContainerGap()
426                 .addGroup(gl_pnlFile.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
427                     .addComponent(pnlFileOutput, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
428                     .addComponent(pnlFileVideo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
429                     .addComponent(pnlFileComment, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
430                 .addContainerGap())
431         );
432         gl_pnlFile.setVerticalGroup(
433             gl_pnlFile.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
434             .addGroup(gl_pnlFile.createSequentialGroup()
435                 .addContainerGap()
436                 .addComponent(pnlFileVideo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
437                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
438                 .addComponent(pnlFileComment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
439                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
440                 .addComponent(pnlFileOutput, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
441                 .addContainerGap(137, Short.MAX_VALUE))
442         );
443
444         jTabbedPane1.addTab("ファイル", pnlFile);
445
446         pnlCommentStandard.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
447
448         lblCommentSize.setText("再生時間に応じたコメントの取得数");
449
450         cbCommentSizeAuto.setText("自動調整");
451
452         lblCommentSizeManual.setText("手動取得");
453
454         lblCommentMinSize.setText("1分当たりのコメント取得数");
455
456         cbCommentMinSizeAuto.setText("自動調整");
457
458         lblCommentMinSizeManual.setText("手動取得");
459
460         lblCommentDisplayMax.setText("1画面に表示する最大コメント数");
461
462         cbCommentDisplaySizeDefault.setText("標準(30)");
463
464         lblCommentDisplayMaxManual.setText("手動設定");
465
466         javax.swing.GroupLayout gl_pnlCommentStandard = new javax.swing.GroupLayout(pnlCommentStandard);
467         pnlCommentStandard.setLayout(gl_pnlCommentStandard);
468         gl_pnlCommentStandard.setHorizontalGroup(
469             gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
470             .addGroup(gl_pnlCommentStandard.createSequentialGroup()
471                 .addContainerGap()
472                 .addGroup(gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
473                     .addGroup(gl_pnlCommentStandard.createSequentialGroup()
474                         .addComponent(lblCommentSize)
475                         .addGap(18, 18, 18)
476                         .addGroup(gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
477                             .addComponent(cbCommentSizeAuto)
478                             .addComponent(cbCommentMinSizeAuto)
479                             .addComponent(cbCommentDisplaySizeDefault))
480                         .addGap(18, 18, 18)
481                         .addGroup(gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
482                             .addComponent(lblCommentDisplayMaxManual)
483                             .addGroup(gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
484                                 .addComponent(lblCommentMinSizeManual, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
485                                 .addComponent(lblCommentSizeManual, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
486                     .addComponent(lblCommentMinSize)
487                     .addComponent(lblCommentDisplayMax))
488                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
489                 .addGroup(gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
490                     .addComponent(fldCommentDisplaySizeManual, 0, 0, Short.MAX_VALUE)
491                     .addComponent(fldCommentMinSizeManual)
492                     .addComponent(fldCommentSizeManual, javax.swing.GroupLayout.DEFAULT_SIZE, 62, Short.MAX_VALUE))
493                 .addContainerGap(25, Short.MAX_VALUE))
494         );
495         gl_pnlCommentStandard.setVerticalGroup(
496             gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
497             .addGroup(gl_pnlCommentStandard.createSequentialGroup()
498                 .addContainerGap()
499                 .addGroup(gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
500                     .addComponent(lblCommentSizeManual)
501                     .addComponent(fldCommentSizeManual, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
502                     .addComponent(lblCommentSize)
503                     .addComponent(cbCommentSizeAuto))
504                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
505                 .addGroup(gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
506                     .addComponent(lblCommentMinSize)
507                     .addComponent(cbCommentMinSizeAuto)
508                     .addComponent(lblCommentMinSizeManual)
509                     .addComponent(fldCommentMinSizeManual, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
510                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
511                 .addGroup(gl_pnlCommentStandard.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
512                     .addComponent(lblCommentDisplayMax)
513                     .addComponent(cbCommentDisplaySizeDefault)
514                     .addComponent(lblCommentDisplayMaxManual)
515                     .addComponent(fldCommentDisplaySizeManual, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
516                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
517         );
518
519         pnlCommentAdvanced.setBorder(javax.swing.BorderFactory.createTitledBorder("高度な設定"));
520
521         lblFontPath.setText("フォントパス");
522
523         cbFontSizeArrangeDisable.setText("フォントサイズ調整を行わない");
524
525         cbCommentOpaque.setText("コメント透明化を行わない");
526
527         btnFontPath.setText("...");
528
529         lblFontIndex.setText("フォント番号");
530
531         lblFontShadow.setText("影の種類");
532
533         javax.swing.GroupLayout gl_pnlCommentAdvanced = new javax.swing.GroupLayout(pnlCommentAdvanced);
534         pnlCommentAdvanced.setLayout(gl_pnlCommentAdvanced);
535         gl_pnlCommentAdvanced.setHorizontalGroup(
536             gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
537             .addGroup(gl_pnlCommentAdvanced.createSequentialGroup()
538                 .addContainerGap()
539                 .addGroup(gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
540                     .addComponent(cbCommentOpaque)
541                     .addGroup(gl_pnlCommentAdvanced.createSequentialGroup()
542                         .addGroup(gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
543                             .addComponent(lblFontPath)
544                             .addComponent(lblFontIndex)
545                             .addComponent(lblFontShadow))
546                         .addGap(18, 18, 18)
547                         .addGroup(gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
548                             .addComponent(fldFontPath, javax.swing.GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE)
549                             .addGroup(gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
550                                 .addComponent(fldFontShadow, javax.swing.GroupLayout.Alignment.LEADING)
551                                 .addComponent(fldFontIndex, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 48, Short.MAX_VALUE)))
552                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
553                         .addComponent(btnFontPath))
554                     .addComponent(cbFontSizeArrangeDisable))
555                 .addContainerGap())
556         );
557         gl_pnlCommentAdvanced.setVerticalGroup(
558             gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
559             .addGroup(gl_pnlCommentAdvanced.createSequentialGroup()
560                 .addGroup(gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
561                     .addComponent(lblFontPath)
562                     .addComponent(fldFontPath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
563                     .addComponent(btnFontPath))
564                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
565                 .addGroup(gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
566                     .addComponent(lblFontIndex)
567                     .addComponent(fldFontIndex, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
568                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
569                 .addGroup(gl_pnlCommentAdvanced.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
570                     .addComponent(lblFontShadow)
571                     .addComponent(fldFontShadow, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
572                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
573                 .addComponent(cbFontSizeArrangeDisable)
574                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
575                 .addComponent(cbCommentOpaque)
576                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
577         );
578
579         javax.swing.GroupLayout gl_pnlComment = new javax.swing.GroupLayout(pnlComment);
580         pnlComment.setLayout(gl_pnlComment);
581         gl_pnlComment.setHorizontalGroup(
582             gl_pnlComment.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
583             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlComment.createSequentialGroup()
584                 .addContainerGap()
585                 .addGroup(gl_pnlComment.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
586                     .addComponent(pnlCommentAdvanced, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
587                     .addComponent(pnlCommentStandard, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
588                 .addContainerGap())
589         );
590         gl_pnlComment.setVerticalGroup(
591             gl_pnlComment.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
592             .addGroup(gl_pnlComment.createSequentialGroup()
593                 .addContainerGap()
594                 .addComponent(pnlCommentStandard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
595                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
596                 .addComponent(pnlCommentAdvanced, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
597                 .addContainerGap(168, Short.MAX_VALUE))
598         );
599
600         jTabbedPane1.addTab("コメント", pnlComment);
601
602         jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("ファイルパス"));
603
604         lblFfmpegPath.setText("ffmpeg");
605
606         lblFfmpegDllPath.setText("拡張ライブラリ");
607
608         btnFfmpegPath.setText("...");
609
610         btnFfmpegDllPath.setText("...");
611
612         javax.swing.GroupLayout gl_jPanel10 = new javax.swing.GroupLayout(jPanel10);
613         jPanel10.setLayout(gl_jPanel10);
614         gl_jPanel10.setHorizontalGroup(
615             gl_jPanel10.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
616             .addGroup(gl_jPanel10.createSequentialGroup()
617                 .addContainerGap()
618                 .addGroup(gl_jPanel10.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
619                     .addComponent(lblFfmpegDllPath)
620                     .addComponent(lblFfmpegPath))
621                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
622                 .addGroup(gl_jPanel10.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
623                     .addComponent(fldFfmpegDllPath, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)
624                     .addComponent(fldFfmpegPath, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE))
625                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
626                 .addGroup(gl_jPanel10.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
627                     .addComponent(btnFfmpegPath, javax.swing.GroupLayout.Alignment.TRAILING)
628                     .addComponent(btnFfmpegDllPath, javax.swing.GroupLayout.Alignment.TRAILING))
629                 .addContainerGap())
630         );
631         gl_jPanel10.setVerticalGroup(
632             gl_jPanel10.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
633             .addGroup(gl_jPanel10.createSequentialGroup()
634                 .addGroup(gl_jPanel10.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
635                     .addComponent(lblFfmpegPath)
636                     .addComponent(fldFfmpegPath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
637                     .addComponent(btnFfmpegPath))
638                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
639                 .addGroup(gl_jPanel10.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
640                     .addComponent(lblFfmpegDllPath)
641                     .addComponent(fldFfmpegDllPath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
642                     .addComponent(btnFfmpegDllPath))
643                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
644         );
645
646         pnlFfmpegParam.setBorder(javax.swing.BorderFactory.createTitledBorder("ffmpegパラメータ"));
647
648         buttonGroup1.add(rbFfmpegOptionFile);
649         rbFfmpegOptionFile.setText("オプションファイル");
650
651         buttonGroup1.add(rbFfmpegOptionDirectInput);
652         rbFfmpegOptionDirectInput.setText("直接入力");
653
654         cmbFfmpegOptionFile.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
655
656         pnlFfmpegParamOption.setBorder(javax.swing.BorderFactory.createEtchedBorder());
657
658         lblFfmpegOptionExtension.setText("出力動画の拡張子");
659
660         lblFfmpegOptionMain.setText("メインオプション");
661
662         lblFfmpegOptionIn.setText("入力オプション");
663
664         lblFfmpegOptionOut.setText("出力オプション");
665
666         lblFfmpegOptionAvfilter.setText("avfilterオプション");
667
668         cbFfmpegOptionResize.setText("次のサイズに収まるよう縮小(-s)");
669
670         lblFfmpegOptionResizeWidth.setText("横");
671
672         lblFfmpegOptionResizeHeight.setText("縦");
673
674         cbFfmpegOptionKeepAspect.setText("アスペクト比を維持");
675
676         javax.swing.GroupLayout gl_pnlFfmpegParamOption = new javax.swing.GroupLayout(pnlFfmpegParamOption);
677         pnlFfmpegParamOption.setLayout(gl_pnlFfmpegParamOption);
678         gl_pnlFfmpegParamOption.setHorizontalGroup(
679             gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
680             .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
681                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
682                     .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
683                         .addContainerGap()
684                         .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
685                             .addComponent(lblFfmpegOptionAvfilter)
686                             .addComponent(lblFfmpegOptionExtension)
687                             .addComponent(lblFfmpegOptionMain)
688                             .addComponent(lblFfmpegOptionIn)
689                             .addComponent(lblFfmpegOptionOut))
690                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
691                         .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
692                             .addComponent(fldFfmpegOptionExtension, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)
693                             .addComponent(fldFfmpegOptionMain, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
694                             .addComponent(fldFfmpegOptionIn, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
695                             .addComponent(fldFfmpegOptionOut, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
696                             .addComponent(fldFfmpegOptionAv, javax.swing.GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)))
697                     .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
698                         .addGap(12, 12, 12)
699                         .addComponent(cbFfmpegOptionResize)
700                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
701                         .addComponent(lblFfmpegOptionResizeWidth)
702                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
703                         .addComponent(fldFfmpegOptionResizeWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
704                         .addGap(12, 12, 12)
705                         .addComponent(lblFfmpegOptionResizeHeight)
706                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
707                         .addComponent(fldFfmpegOptionResizeHeight, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE))
708                     .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
709                         .addGap(33, 33, 33)
710                         .addComponent(cbFfmpegOptionKeepAspect)))
711                 .addContainerGap())
712         );
713         gl_pnlFfmpegParamOption.setVerticalGroup(
714             gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
715             .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
716                 .addContainerGap()
717                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
718                     .addComponent(lblFfmpegOptionExtension)
719                     .addComponent(fldFfmpegOptionExtension, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
720                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
721                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
722                     .addComponent(lblFfmpegOptionMain)
723                     .addComponent(fldFfmpegOptionMain, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
724                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
725                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
726                     .addComponent(lblFfmpegOptionIn)
727                     .addComponent(fldFfmpegOptionIn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
728                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
729                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
730                     .addComponent(lblFfmpegOptionOut)
731                     .addComponent(fldFfmpegOptionOut, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
732                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
733                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
734                     .addComponent(lblFfmpegOptionAvfilter)
735                     .addComponent(fldFfmpegOptionAv, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
736                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
737                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
738                     .addComponent(cbFfmpegOptionResize)
739                     .addComponent(lblFfmpegOptionResizeWidth)
740                     .addComponent(fldFfmpegOptionResizeWidth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
741                     .addComponent(lblFfmpegOptionResizeHeight)
742                     .addComponent(fldFfmpegOptionResizeHeight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
743                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
744                 .addComponent(cbFfmpegOptionKeepAspect)
745                 .addContainerGap(43, Short.MAX_VALUE))
746         );
747
748         javax.swing.GroupLayout gl_pnlFfmpegParam = new javax.swing.GroupLayout(pnlFfmpegParam);
749         pnlFfmpegParam.setLayout(gl_pnlFfmpegParam);
750         gl_pnlFfmpegParam.setHorizontalGroup(
751             gl_pnlFfmpegParam.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
752             .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
753                 .addContainerGap()
754                 .addGroup(gl_pnlFfmpegParam.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
755                     .addComponent(pnlFfmpegParamOption, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
756                     .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
757                         .addComponent(rbFfmpegOptionFile)
758                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
759                         .addComponent(cmbFfmpegOptionFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
760                     .addComponent(rbFfmpegOptionDirectInput))
761                 .addContainerGap())
762         );
763         gl_pnlFfmpegParam.setVerticalGroup(
764             gl_pnlFfmpegParam.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
765             .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
766                 .addContainerGap()
767                 .addGroup(gl_pnlFfmpegParam.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
768                     .addComponent(rbFfmpegOptionFile)
769                     .addComponent(cmbFfmpegOptionFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
770                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
771                 .addComponent(rbFfmpegOptionDirectInput)
772                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
773                 .addComponent(pnlFfmpegParamOption, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
774                 .addContainerGap())
775         );
776
777         javax.swing.GroupLayout gl_pnlFfmpeg = new javax.swing.GroupLayout(pnlFfmpeg);
778         pnlFfmpeg.setLayout(gl_pnlFfmpeg);
779         gl_pnlFfmpeg.setHorizontalGroup(
780             gl_pnlFfmpeg.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
781             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlFfmpeg.createSequentialGroup()
782                 .addContainerGap()
783                 .addGroup(gl_pnlFfmpeg.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
784                     .addComponent(pnlFfmpegParam, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
785                     .addComponent(jPanel10, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
786                 .addContainerGap())
787         );
788         gl_pnlFfmpeg.setVerticalGroup(
789             gl_pnlFfmpeg.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
790             .addGroup(gl_pnlFfmpeg.createSequentialGroup()
791                 .addContainerGap()
792                 .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
793                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
794                 .addComponent(pnlFfmpegParam, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
795                 .addContainerGap())
796         );
797
798         jTabbedPane1.addTab("ffmpeg", pnlFfmpeg);
799
800         pnlNgWord.setBorder(javax.swing.BorderFactory.createTitledBorder("NGワード"));
801
802         lstNgWord.setModel(mdlNgWord);
803         scrNgWord.setViewportView(lstNgWord);
804
805         btnNgWordAdd.setText("追加");
806
807         btnNgWordDel.setText("削除");
808
809         javax.swing.GroupLayout gl_pnlNgWord = new javax.swing.GroupLayout(pnlNgWord);
810         pnlNgWord.setLayout(gl_pnlNgWord);
811         gl_pnlNgWord.setHorizontalGroup(
812             gl_pnlNgWord.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
813             .addGroup(gl_pnlNgWord.createSequentialGroup()
814                 .addContainerGap()
815                 .addGroup(gl_pnlNgWord.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
816                     .addComponent(scrNgWord, javax.swing.GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE)
817                     .addGroup(gl_pnlNgWord.createSequentialGroup()
818                         .addComponent(fldNgWord, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
819                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
820                         .addComponent(btnNgWordAdd)
821                         .addGap(18, 18, 18)
822                         .addComponent(btnNgWordDel)))
823                 .addContainerGap())
824         );
825         gl_pnlNgWord.setVerticalGroup(
826             gl_pnlNgWord.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
827             .addGroup(gl_pnlNgWord.createSequentialGroup()
828                 .addComponent(scrNgWord, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
829                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
830                 .addGroup(gl_pnlNgWord.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
831                     .addComponent(fldNgWord, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
832                     .addComponent(btnNgWordDel)
833                     .addComponent(btnNgWordAdd))
834                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
835         );
836
837         pnlNgId.setBorder(javax.swing.BorderFactory.createTitledBorder("NGID"));
838
839         lstNgId.setModel(mdlNgId);
840         scrNgId.setViewportView(lstNgId);
841
842         btnNgIdAdd.setText("追加");
843
844         btnNgIdDel.setText("削除");
845
846         javax.swing.GroupLayout gl_pnlNgId = new javax.swing.GroupLayout(pnlNgId);
847         pnlNgId.setLayout(gl_pnlNgId);
848         gl_pnlNgId.setHorizontalGroup(
849             gl_pnlNgId.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
850             .addGroup(gl_pnlNgId.createSequentialGroup()
851                 .addContainerGap()
852                 .addGroup(gl_pnlNgId.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
853                     .addComponent(scrNgId, javax.swing.GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE)
854                     .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlNgId.createSequentialGroup()
855                         .addComponent(fldNgId, javax.swing.GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
856                         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
857                         .addComponent(btnNgIdAdd)
858                         .addGap(18, 18, 18)
859                         .addComponent(btnNgIdDel)))
860                 .addContainerGap())
861         );
862         gl_pnlNgId.setVerticalGroup(
863             gl_pnlNgId.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
864             .addGroup(gl_pnlNgId.createSequentialGroup()
865                 .addComponent(scrNgId, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
866                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
867                 .addGroup(gl_pnlNgId.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
868                     .addComponent(fldNgId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
869                     .addComponent(btnNgIdDel)
870                     .addComponent(btnNgIdAdd))
871                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
872         );
873
874         javax.swing.GroupLayout gl_pnlNgSetting = new javax.swing.GroupLayout(pnlNgSetting);
875         pnlNgSetting.setLayout(gl_pnlNgSetting);
876         gl_pnlNgSetting.setHorizontalGroup(
877             gl_pnlNgSetting.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
878             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlNgSetting.createSequentialGroup()
879                 .addContainerGap()
880                 .addGroup(gl_pnlNgSetting.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
881                     .addComponent(pnlNgId, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
882                     .addComponent(pnlNgWord, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
883                 .addContainerGap())
884         );
885         gl_pnlNgSetting.setVerticalGroup(
886             gl_pnlNgSetting.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
887             .addGroup(gl_pnlNgSetting.createSequentialGroup()
888                 .addContainerGap()
889                 .addComponent(pnlNgWord, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
890                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
891                 .addComponent(pnlNgId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
892                 .addContainerGap(82, Short.MAX_VALUE))
893         );
894
895         jTabbedPane1.addTab("NG設定", pnlNgSetting);
896
897         pnlSearchVideo.setBorder(javax.swing.BorderFactory.createTitledBorder("動画検索対象フォルダ"));
898
899         lstSearchVideo.setModel(new javax.swing.AbstractListModel() {
900             String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
901             public int getSize() { return strings.length; }
902             public Object getElementAt(int i) { return strings[i]; }
903         });
904         srcSearchVideo.setViewportView(lstSearchVideo);
905
906         btnSearchVideoAdd.setText("追加...");
907
908         btnSearchVideoDel.setText("削除");
909
910         javax.swing.GroupLayout gl_pnlSearchVideo = new javax.swing.GroupLayout(pnlSearchVideo);
911         pnlSearchVideo.setLayout(gl_pnlSearchVideo);
912         gl_pnlSearchVideo.setHorizontalGroup(
913             gl_pnlSearchVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
914             .addComponent(srcSearchVideo, javax.swing.GroupLayout.DEFAULT_SIZE, 419, Short.MAX_VALUE)
915             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlSearchVideo.createSequentialGroup()
916                 .addContainerGap(269, Short.MAX_VALUE)
917                 .addComponent(btnSearchVideoAdd)
918                 .addGap(18, 18, 18)
919                 .addComponent(btnSearchVideoDel)
920                 .addContainerGap())
921         );
922         gl_pnlSearchVideo.setVerticalGroup(
923             gl_pnlSearchVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
924             .addGroup(gl_pnlSearchVideo.createSequentialGroup()
925                 .addComponent(srcSearchVideo, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
926                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
927                 .addGroup(gl_pnlSearchVideo.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
928                     .addComponent(btnSearchVideoDel)
929                     .addComponent(btnSearchVideoAdd))
930                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
931         );
932
933         pnlSearchComment.setBorder(javax.swing.BorderFactory.createTitledBorder("コメント検索対象フォルダ"));
934
935         lstSearchComment.setModel(new javax.swing.AbstractListModel() {
936             String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
937             public int getSize() { return strings.length; }
938             public Object getElementAt(int i) { return strings[i]; }
939         });
940         srcSearchComment.setViewportView(lstSearchComment);
941
942         btnSearchCommentAdd.setText("追加...");
943
944         btnSearchCommentDel.setText("削除");
945
946         javax.swing.GroupLayout gl_pnlSearchComment = new javax.swing.GroupLayout(pnlSearchComment);
947         pnlSearchComment.setLayout(gl_pnlSearchComment);
948         gl_pnlSearchComment.setHorizontalGroup(
949             gl_pnlSearchComment.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
950             .addComponent(srcSearchComment, javax.swing.GroupLayout.DEFAULT_SIZE, 419, Short.MAX_VALUE)
951             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlSearchComment.createSequentialGroup()
952                 .addContainerGap(269, Short.MAX_VALUE)
953                 .addComponent(btnSearchCommentAdd)
954                 .addGap(18, 18, 18)
955                 .addComponent(btnSearchCommentDel)
956                 .addContainerGap())
957         );
958         gl_pnlSearchComment.setVerticalGroup(
959             gl_pnlSearchComment.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
960             .addGroup(gl_pnlSearchComment.createSequentialGroup()
961                 .addComponent(srcSearchComment, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
962                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
963                 .addGroup(gl_pnlSearchComment.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
964                     .addComponent(btnSearchCommentDel)
965                     .addComponent(btnSearchCommentAdd))
966                 .addContainerGap(16, Short.MAX_VALUE))
967         );
968
969         pnlSearchCache.setBorder(javax.swing.BorderFactory.createEtchedBorder());
970
971         lblSearchCache.setText("キャッシュ更新(秒)");
972
973         javax.swing.GroupLayout gl_pnlSearchCache = new javax.swing.GroupLayout(pnlSearchCache);
974         pnlSearchCache.setLayout(gl_pnlSearchCache);
975         gl_pnlSearchCache.setHorizontalGroup(
976             gl_pnlSearchCache.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
977             .addGroup(gl_pnlSearchCache.createSequentialGroup()
978                 .addContainerGap()
979                 .addComponent(lblSearchCache)
980                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
981                 .addComponent(fldSearchCache, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
982                 .addContainerGap(269, Short.MAX_VALUE))
983         );
984         gl_pnlSearchCache.setVerticalGroup(
985             gl_pnlSearchCache.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
986             .addGroup(gl_pnlSearchCache.createSequentialGroup()
987                 .addContainerGap()
988                 .addGroup(gl_pnlSearchCache.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
989                     .addComponent(lblSearchCache)
990                     .addComponent(fldSearchCache, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
991                 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
992         );
993
994         javax.swing.GroupLayout gl_pnlSearch = new javax.swing.GroupLayout(pnlSearch);
995         pnlSearch.setLayout(gl_pnlSearch);
996         gl_pnlSearch.setHorizontalGroup(
997             gl_pnlSearch.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
998             .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, gl_pnlSearch.createSequentialGroup()
999                 .addContainerGap()
1000                 .addGroup(gl_pnlSearch.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
1001                     .addComponent(pnlSearchCache, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
1002                     .addComponent(pnlSearchComment, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
1003                     .addComponent(pnlSearchVideo, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
1004                 .addContainerGap())
1005         );
1006         gl_pnlSearch.setVerticalGroup(
1007             gl_pnlSearch.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1008             .addGroup(gl_pnlSearch.createSequentialGroup()
1009                 .addContainerGap()
1010                 .addComponent(pnlSearchVideo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1011                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1012                 .addComponent(pnlSearchComment, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1013                 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
1014                 .addComponent(pnlSearchCache, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
1015                 .addContainerGap(27, Short.MAX_VALUE))
1016         );
1017
1018         jTabbedPane1.addTab("検索", pnlSearch);
1019
1020         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
1021         getContentPane().setLayout(layout);
1022         layout.setHorizontalGroup(
1023             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1024             .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 460, Short.MAX_VALUE)
1025         );
1026         layout.setVerticalGroup(
1027             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
1028             .addGroup(layout.createSequentialGroup()
1029                 .addComponent(jTabbedPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 451, javax.swing.GroupLayout.PREFERRED_SIZE)
1030                 .addContainerGap(23, Short.MAX_VALUE))
1031         );
1032
1033         pack();
1034     }// </editor-fold>//GEN-END:initComponents
1035
1036     /**
1037      * @param args the command line arguments
1038      */
1039     public static void main(String args[]) {
1040         /* Set the Nimbus look and feel */
1041         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
1042         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
1043          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
1044          */
1045         try {
1046             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
1047                 if ("Nimbus".equals(info.getName())) {
1048                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
1049                     break;
1050                 }
1051             }
1052         } catch (ClassNotFoundException ex) {
1053             java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1054         } catch (InstantiationException ex) {
1055             java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1056         } catch (IllegalAccessException ex) {
1057             java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1058         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
1059             java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1060         }
1061         //</editor-fold>
1062
1063         /* Create and display the form */
1064         java.awt.EventQueue.invokeLater(new Runnable() {
1065
1066             @Override
1067             public void run() {
1068                 new ConfigDialog().setVisible(true);
1069             }
1070         });
1071     }
1072     // Variables declaration - do not modify//GEN-BEGIN:variables
1073     private javax.swing.ButtonGroup buttonGroup1;
1074     private javax.swing.JButton btnVideoDir;
1075     private javax.swing.JButton btnNgWordDel;
1076     private javax.swing.JButton btnNgIdAdd;
1077     private javax.swing.JButton btnNgIdDel;
1078     private javax.swing.JButton btnSearchCommentAdd;
1079     private javax.swing.JButton btnSearchCommentDel;
1080     private javax.swing.JButton btnCommentDir;
1081     private javax.swing.JButton btnOutputDir;
1082     private javax.swing.JButton btnFfmpegPath;
1083     private javax.swing.JButton btnFfmpegDllPath;
1084     private javax.swing.JButton btnFontPath;
1085     private javax.swing.JButton btnSearchVideoAdd;
1086     private javax.swing.JButton btnSearchVideoDel;
1087     private javax.swing.JButton btnNgWordAdd;
1088     private javax.swing.JCheckBox cbProxyUse;
1089     private javax.swing.JCheckBox cbCommentDisplaySizeDefault;
1090     private javax.swing.JCheckBox cbOutputDisplayProgress;
1091     private javax.swing.JCheckBox cbFontSizeArrangeDisable;
1092     private javax.swing.JCheckBox cbCommentOpaque;
1093     private javax.swing.JCheckBox cbVideoLocal;
1094     private javax.swing.JCheckBox cbCommentLocal;
1095     private javax.swing.JCheckBox cbOutputEnable;
1096     private javax.swing.JCheckBox cbCommentSizeAuto;
1097     private javax.swing.JCheckBox cbCommentMinSizeAuto;
1098     private javax.swing.JCheckBox cbOutputCommentOverlay;
1099     private javax.swing.JCheckBox cbFfmpegOptionResize;
1100     private javax.swing.JCheckBox cbFfmpegOptionKeepAspect;
1101     private javax.swing.JComboBox cmbFfmpegOptionFile;
1102     private javax.swing.JLabel lblMail;
1103     private javax.swing.JLabel lblOutputFileNamePattern;
1104     private javax.swing.JLabel lblCommentSize;
1105     private javax.swing.JLabel lblCommentSizeManual;
1106     private javax.swing.JLabel lblCommentMinSize;
1107     private javax.swing.JLabel lblCommentMinSizeManual;
1108     private javax.swing.JLabel lblFfmpegPath;
1109     private javax.swing.JLabel lblFfmpegDllPath;
1110     private javax.swing.JLabel lblFfmpegOptionExtension;
1111     private javax.swing.JLabel lblFfmpegOptionMain;
1112     private javax.swing.JLabel lblFfmpegOptionIn;
1113     private javax.swing.JLabel lblPassword;
1114     private javax.swing.JLabel lblFfmpegOptionOut;
1115     private javax.swing.JLabel lblFfmpegOptionAvfilter;
1116     private javax.swing.JLabel lblFfmpegOptionResizeWidth;
1117     private javax.swing.JLabel lblFfmpegOptionResizeHeight;
1118     private javax.swing.JLabel lblCommentDisplayMax;
1119     private javax.swing.JLabel lblCommentDisplayMaxManual;
1120     private javax.swing.JLabel lblFontPath;
1121     private javax.swing.JLabel lblFontIndex;
1122     private javax.swing.JLabel lblFontShadow;
1123     private javax.swing.JLabel lblSearchCache;
1124     private javax.swing.JLabel lblProxyHost;
1125     private javax.swing.JLabel lblProxyPort;
1126     private javax.swing.JLabel lblVideoDir;
1127     private javax.swing.JLabel lblVideoFileNamepattern;
1128     private javax.swing.JLabel lblCommentDir;
1129     private javax.swing.JLabel lblCommentFileNamePattern;
1130     private javax.swing.JLabel lblOutputDir;
1131     private javax.swing.JList lstSearchVideo;
1132     private javax.swing.JList lstSearchComment;
1133     private javax.swing.JList<String> lstNgWord;
1134     private final DefaultListModel<String> mdlNgWord = new DefaultListModel<>();
1135     private javax.swing.JList<String> lstNgId;
1136     private final DefaultListModel<String> mdlNgId = new DefaultListModel<>();
1137     private javax.swing.JPanel pnlNetwork;
1138     private javax.swing.JPanel jPanel10;
1139     private javax.swing.JPanel pnlFfmpegParam;
1140     private javax.swing.JPanel pnlFfmpegParamOption;
1141     private javax.swing.JPanel pnlNgSetting;
1142     private javax.swing.JPanel pnlCommentStandard;
1143     private javax.swing.JPanel pnlCommentAdvanced;
1144     private javax.swing.JPanel pnlNgWord;
1145     private javax.swing.JPanel pnlSearch;
1146     private javax.swing.JPanel pnlSearchVideo;
1147     private javax.swing.JPanel pnlSearchComment;
1148     private javax.swing.JPanel pnlAccount;
1149     private javax.swing.JPanel pnlNgId;
1150     private javax.swing.JPanel pnlSearchCache;
1151     private javax.swing.JPanel pnlProxy;
1152     private javax.swing.JPanel pnlFile;
1153     private javax.swing.JPanel pnlFileVideo;
1154     private javax.swing.JPanel pnlFileComment;
1155     private javax.swing.JPanel pnlFileOutput;
1156     private javax.swing.JPanel pnlComment;
1157     private javax.swing.JPanel pnlFfmpeg;
1158     private javax.swing.JRadioButton rbFfmpegOptionFile;
1159     private javax.swing.JRadioButton rbFfmpegOptionDirectInput;
1160     private javax.swing.JScrollPane srcSearchVideo;
1161     private javax.swing.JScrollPane srcSearchComment;
1162     private javax.swing.JScrollPane scrNgWord;
1163     private javax.swing.JScrollPane scrNgId;
1164     private javax.swing.JTabbedPane jTabbedPane1;
1165     private javax.swing.JTextField fldMail;
1166     private javax.swing.JTextField fldOutputFileNamePattern;
1167     private javax.swing.JTextField fldCommentSizeManual;
1168     private javax.swing.JTextField fldCommentMinSizeManual;
1169     private javax.swing.JTextField fldFfmpegPath;
1170     private javax.swing.JTextField fldFfmpegDllPath;
1171     private javax.swing.JTextField fldFfmpegOptionResizeWidth;
1172     private javax.swing.JTextField fldFfmpegOptionResizeHeight;
1173     private javax.swing.JTextField fldFfmpegOptionExtension;
1174     private javax.swing.JTextField fldFfmpegOptionMain;
1175     private javax.swing.JTextField fldFfmpegOptionIn;
1176     private javax.swing.JTextField fldPassword;
1177     private javax.swing.JTextField fldFfmpegOptionOut;
1178     private javax.swing.JTextField fldFfmpegOptionAv;
1179     private javax.swing.JTextField fldCommentDisplaySizeManual;
1180     private javax.swing.JTextField fldFontPath;
1181     private javax.swing.JTextField fldFontIndex;
1182     private javax.swing.JTextField fldFontShadow;
1183     private javax.swing.JTextField fldNgWord;
1184     private javax.swing.JTextField fldNgId;
1185     private javax.swing.JTextField fldSearchCache;
1186     private javax.swing.JTextField fldProxyHost;
1187     private javax.swing.JTextField fldProxyPort;
1188     private javax.swing.JTextField fldVideoDir;
1189     private javax.swing.JTextField fldVideoFileNamePattern;
1190     private javax.swing.JTextField fldCommentDir;
1191     private javax.swing.JTextField fldCommentFileNamePattern;
1192     private javax.swing.JTextField fldOutputDir;
1193     // End of variables declaration//GEN-END:variables
1194
1195     private void loadConfig() {
1196         final Config p = Config.INSTANCE;
1197
1198         /*
1199          * ネットワーク - アカウント
1200          */
1201         fldMail.setText(p.getId());
1202         fldPassword.setText(p.getPassword());
1203
1204         /*
1205          * ネットワーク - プロキシ
1206          */
1207         cbProxyUse.setSelected(p.getProxyUse());
1208         fldProxyHost.setText(p.getProxyHost());
1209         fldProxyPort.setText(p.getProxyPort());
1210
1211         /*
1212          * ファイル - 動画
1213          */
1214         fldVideoDir.setText(p.getVideoDir());
1215         fldVideoFileNamePattern.setText(p.getVideoFileNamePattern());
1216         cbVideoLocal.setSelected(p.getVideoUseLocal());
1217
1218         /*
1219          * ファイル - コメント
1220          */
1221         fldCommentDir.setText(p.getCommentDir());
1222         fldCommentFileNamePattern.setText(p.getCommentFileNamePattern());
1223         cbCommentLocal.setSelected(p.getCommentUseLocal());
1224
1225         /*
1226          * ファイル - 変換動画
1227          */
1228         fldOutputDir.setText(p.getOutputDir());
1229         fldOutputFileNamePattern.setText(p.getOutputFileNamePattern());
1230         cbOutputEnable.setSelected(p.getOutputEnable());
1231         cbOutputCommentOverlay.setSelected(p.getOutputCommentOverlay());
1232         cbOutputDisplayProgress.setSelected(p.getOutputDisplayProgress());
1233
1234         /**
1235          * コメント
1236          */
1237         cbCommentSizeAuto.setSelected(p.getCommentSizeAutosize());
1238         fldCommentSizeManual.setText(p.getCommentSizeManual());
1239         cbCommentMinSizeAuto.setSelected(p.getCommentMinSizeAutosize());
1240         fldCommentSizeManual.setText(p.getCommentMinSizeManual());
1241         cbCommentDisplaySizeDefault.setSelected(p.getCommentDisplaySizeDefault());
1242         fldCommentDisplaySizeManual.setText(p.getCommentDisplaySizeManual());
1243
1244         /**
1245          * コメント - 高度な設定
1246          */
1247         fldFontPath.setText(p.getFontPath());
1248         fldFontIndex.setText(p.getFontIndex());
1249         // TODO 影の種類はコンボボックス
1250         cbFontSizeArrangeDisable.setSelected(p.getFontSizeArrangeDisable());
1251         cbCommentOpaque.setSelected(p.getCommentOpaque());
1252
1253         /*
1254          * ffmpeg - ファイルパス
1255          */
1256         fldFfmpegPath.setText(p.getFfmpegPath());
1257         fldFfmpegDllPath.setText(p.getFfmpegDllPath());
1258
1259         /*
1260          * ffmpeg - ffmpegパラメータ
1261          */
1262         rbFfmpegOptionFile.setSelected(!p.getFfmpegParamInputDirect());
1263         rbFfmpegOptionDirectInput.setSelected(p.getFfmpegParamInputDirect());
1264         // TODO cmbFfmpegOptionFile
1265         fldFfmpegOptionExtension.setText(p.getFfmpegExtension());
1266         fldFfmpegOptionMain.setText(p.getFfmpegMainOption());
1267         fldFfmpegOptionIn.setText(p.getFfmpegInOption());
1268         fldFfmpegOptionOut.setText(p.getFfmpegOutOption());
1269         fldFfmpegOptionAv.setText(p.getFfmpegAvOption());
1270         cbFfmpegOptionResize.setSelected(p.getFfmpegResizeEnable());
1271         fldFfmpegOptionResizeWidth.setText(p.getFfmpegResizeWidth());
1272         fldFfmpegOptionResizeHeight.setText(p.getFfmpegResizeHeight());
1273         cbFfmpegOptionKeepAspect.setSelected(p.getFfmpegKeepAspect());
1274
1275         /*
1276          * NG 設定
1277          */
1278         final List<String> ngWords = p.getNgWords();
1279         for (String s : ngWords) {
1280             mdlNgWord.addElement(s);
1281         }
1282         final List<String> ngIds = p.getNgIds();
1283         for (String s : ngIds) {
1284             mdlNgId.addElement(s);
1285         }
1286     }
1287     private void saveConfig() {
1288         final Config p = Config.INSTANCE;
1289
1290         /*
1291          * ネットワーク - アカウント
1292          */
1293
1294         p.setId(fldMail.getText());
1295         p.setPassword(fldPassword.getText());
1296
1297         /*
1298          * ネットワーク - プロキシ
1299          */
1300         p.setProxyUse(cbProxyUse.isSelected());
1301         p.setProxyHost(fldProxyHost.getText());
1302         p.setProxyPort(fldProxyPort.getText());
1303
1304         /*
1305          * ファイル - 動画
1306          */
1307         p.setVideoDir(fldVideoDir.getText());
1308         p.setVideoFileNamePattern(fldVideoFileNamePattern.getText());
1309         p.setVideoUseLocal(cbVideoLocal.isSelected());
1310
1311         /*
1312          * ファイル - コメント
1313          */
1314         p.setCommentDir(fldCommentDir.getText());
1315         p.setCommentFileNamePattern(fldCommentFileNamePattern.getText());
1316         p.setCommentUseLocal(cbCommentLocal.isSelected());
1317
1318         /*
1319          * ファイル - 変換動画
1320          */
1321         p.setOutputDir(fldOutputDir.getText());
1322         p.setOutputFileNamePattern(fldOutputFileNamePattern.getText());
1323         p.setOutputEnable(cbOutputEnable.isSelected());
1324         p.setOutputCommentOverlay(cbOutputCommentOverlay.isSelected());
1325         p.setOutputDisplayProgress(cbOutputDisplayProgress.isSelected());
1326
1327         /**
1328          * コメント
1329          */
1330         p.setCommentSizeAutosize(cbCommentSizeAuto.isSelected());
1331         p.setCommentSizeManual(fldCommentSizeManual.getText());
1332         p.setCommentMinSizeAutosize(cbCommentMinSizeAuto.isSelected());
1333         p.setCommentMinSizeManual(fldCommentSizeManual.getText());
1334         p.setCommentDisplaySizeDefault(cbCommentDisplaySizeDefault.isSelected());
1335         p.setCommentDisplaySizeManual(fldCommentDisplaySizeManual.getText());
1336
1337         /**
1338          * コメント - 高度な設定
1339          */
1340         p.setFontPath(fldFontPath.getText());
1341         p.setFontIndex(fldFontIndex.getText());
1342         // TODO 影の種類はコンボボックス
1343         p.setFontSizeArrangeDisable(cbFontSizeArrangeDisable.isSelected());
1344         p.setCommentOpaque(cbCommentOpaque.isSelected());
1345
1346         /*
1347          * ffmpeg - ファイルパス
1348          */
1349         p.setFfmpegPath(fldFfmpegPath.getText());
1350         p.setFfmpegDllPath(fldFfmpegDllPath.getText());
1351
1352         /*
1353          * ffmpeg - ffmpegパラメータ
1354          */
1355         p.setFfmpegParamInputDirect(rbFfmpegOptionDirectInput.isSelected());
1356         // TODO cmbFfmpegOptionFile
1357         p.setFfmpegExtension(fldFfmpegOptionExtension.getText());
1358         p.setFfmpegMainOption(fldFfmpegOptionMain.getText());
1359         p.setFfmpegInOption(fldFfmpegOptionIn.getText());
1360         p.setFfmpegOutOption(fldFfmpegOptionOut.getText());
1361         p.setFfmpegAvOption(fldFfmpegOptionAv.getText());
1362         p.setFfmpegResizeEnable(cbFfmpegOptionResize.isSelected());
1363         p.setFfmpegResizeWidth(fldFfmpegOptionResizeWidth.getText());
1364         p.setFfmpegResizeHeight(fldFfmpegOptionResizeHeight.getText());
1365         p.setFfmpegKeepAspect(cbFfmpegOptionKeepAspect.isSelected());
1366
1367         /*
1368          * NG 設定
1369          */
1370         p.setNgWords(Arrays.asList((String[]) mdlNgWord.toArray()));
1371         p.setNgIds(Arrays.asList((String[])mdlNgId.toArray()));
1372
1373     }
1374 }