OSDN Git Service

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