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.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())
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.setAutoCreateContainerGaps(true);
473         gl_pnlCommentStandard.setAutoCreateGaps(true);
474         gl_pnlCommentStandard.setHorizontalGroup(
475             gl_pnlCommentStandard.createSequentialGroup()
476                 .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING)
477                     .addComponent(lblCommentSize)
478                     .addComponent(lblCommentMinSize)
479                     .addComponent(lblCommentDisplayMax))
480                 .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING)
481                     .addComponent(cbCommentSizeAuto)
482                     .addComponent(cbCommentMinSizeAuto)
483                     .addComponent(cbCommentDisplaySizeDefault))
484                 .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING)
485                     .addComponent(lblCommentSizeManual)
486                     .addComponent(lblCommentMinSizeManual)
487                     .addComponent(lblCommentDisplayMaxManual))
488                 .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.LEADING)
489                     .addComponent(fldCommentSizeManual, 48, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
490                     .addComponent(fldCommentMinSizeManual, 48, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
491                     .addComponent(fldCommentDisplaySizeManual, 48, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
492         );
493         gl_pnlCommentStandard.setVerticalGroup(
494             gl_pnlCommentStandard.createSequentialGroup()
495                 .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.BASELINE)
496                     .addComponent(lblCommentSize)
497                     .addComponent(cbCommentSizeAuto)
498                     .addComponent(lblCommentSizeManual)
499                     .addComponent(fldCommentSizeManual))
500                 .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.BASELINE)
501                     .addComponent(lblCommentMinSize)
502                     .addComponent(cbCommentMinSizeAuto)
503                     .addComponent(lblCommentMinSizeManual)
504                     .addComponent(fldCommentMinSizeManual))
505                 .addGroup(gl_pnlCommentStandard.createParallelGroup(GroupLayout.Alignment.BASELINE)
506                     .addComponent(lblCommentDisplayMax)
507                     .addComponent(cbCommentDisplaySizeDefault)
508                     .addComponent(lblCommentDisplayMaxManual)
509                     .addComponent(fldCommentDisplaySizeManual))
510         );
511
512         pnlCommentAdvanced.setBorder(javax.swing.BorderFactory.createTitledBorder("高度な設定"));
513
514         lblFontPath.setText("フォントパス");
515
516         cbFontSizeArrangeDisable.setText("フォントサイズ調整を行わない");
517
518         cbCommentOpaque.setText("コメント透明化を行わない");
519
520         btnFontPath.setText("...");
521
522         lblFontIndex.setText("フォント番号");
523
524         lblFontShadow.setText("影の種類");
525
526         javax.swing.GroupLayout gl_pnlCommentAdvanced = new javax.swing.GroupLayout(pnlCommentAdvanced);
527         pnlCommentAdvanced.setLayout(gl_pnlCommentAdvanced);
528         gl_pnlCommentAdvanced.setHorizontalGroup(
529             gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.LEADING)
530             .addGroup(gl_pnlCommentAdvanced.createSequentialGroup()
531                 .addContainerGap()
532                 .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.LEADING)
533                     .addComponent(cbCommentOpaque)
534                     .addGroup(gl_pnlCommentAdvanced.createSequentialGroup()
535                         .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.LEADING)
536                             .addComponent(lblFontPath)
537                             .addComponent(lblFontIndex)
538                             .addComponent(lblFontShadow))
539                         .addGap(18, 18, 18)
540                         .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.LEADING)
541                             .addComponent(fldFontPath, GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE)
542                             .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.TRAILING, false)
543                                 .addComponent(fldFontShadow, GroupLayout.Alignment.LEADING)
544                                 .addComponent(fldFontIndex, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 48, Short.MAX_VALUE)))
545                         .addPreferredGap(ComponentPlacement.RELATED)
546                         .addComponent(btnFontPath))
547                     .addComponent(cbFontSizeArrangeDisable))
548                 .addContainerGap())
549         );
550         gl_pnlCommentAdvanced.setVerticalGroup(
551             gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.LEADING)
552             .addGroup(gl_pnlCommentAdvanced.createSequentialGroup()
553                 .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.BASELINE)
554                     .addComponent(lblFontPath)
555                     .addComponent(fldFontPath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
556                     .addComponent(btnFontPath))
557                 .addPreferredGap(ComponentPlacement.RELATED)
558                 .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.BASELINE)
559                     .addComponent(lblFontIndex)
560                     .addComponent(fldFontIndex, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
561                 .addPreferredGap(ComponentPlacement.RELATED)
562                 .addGroup(gl_pnlCommentAdvanced.createParallelGroup(GroupLayout.Alignment.BASELINE)
563                     .addComponent(lblFontShadow)
564                     .addComponent(fldFontShadow, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
565                 .addPreferredGap(ComponentPlacement.RELATED)
566                 .addComponent(cbFontSizeArrangeDisable)
567                 .addPreferredGap(ComponentPlacement.RELATED)
568                 .addComponent(cbCommentOpaque)
569                 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
570         );
571
572         javax.swing.GroupLayout gl_pnlComment = new javax.swing.GroupLayout(pnlComment);
573         pnlComment.setLayout(gl_pnlComment);
574         gl_pnlComment.setHorizontalGroup(
575             gl_pnlComment.createParallelGroup(GroupLayout.Alignment.LEADING)
576             .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlComment.createSequentialGroup()
577                 .addContainerGap()
578                 .addGroup(gl_pnlComment.createParallelGroup(GroupLayout.Alignment.TRAILING)
579                     .addComponent(pnlCommentAdvanced, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
580                     .addComponent(pnlCommentStandard, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
581                 .addContainerGap())
582         );
583         gl_pnlComment.setVerticalGroup(
584             gl_pnlComment.createParallelGroup(GroupLayout.Alignment.LEADING)
585             .addGroup(gl_pnlComment.createSequentialGroup()
586                 .addContainerGap()
587                 .addComponent(pnlCommentStandard, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
588                 .addPreferredGap(ComponentPlacement.RELATED)
589                 .addComponent(pnlCommentAdvanced, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
590                 .addContainerGap(168, Short.MAX_VALUE))
591         );
592
593         jTabbedPane1.addTab("コメント", pnlComment);
594
595         jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("ファイルパス"));
596
597         lblFfmpegPath.setText("ffmpeg");
598
599         lblFfmpegDllPath.setText("拡張ライブラリ");
600
601         btnFfmpegPath.setText("...");
602
603         btnFfmpegDllPath.setText("...");
604
605         javax.swing.GroupLayout gl_jPanel10 = new javax.swing.GroupLayout(jPanel10);
606         jPanel10.setLayout(gl_jPanel10);
607         gl_jPanel10.setHorizontalGroup(
608             gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING)
609             .addGroup(gl_jPanel10.createSequentialGroup()
610                 .addContainerGap()
611                 .addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING)
612                     .addComponent(lblFfmpegDllPath)
613                     .addComponent(lblFfmpegPath))
614                 .addPreferredGap(ComponentPlacement.RELATED)
615                 .addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING)
616                     .addComponent(fldFfmpegDllPath, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)
617                     .addComponent(fldFfmpegPath, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE))
618                 .addPreferredGap(ComponentPlacement.RELATED)
619                 .addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING)
620                     .addComponent(btnFfmpegPath, GroupLayout.Alignment.TRAILING)
621                     .addComponent(btnFfmpegDllPath, GroupLayout.Alignment.TRAILING))
622                 .addContainerGap())
623         );
624         gl_jPanel10.setVerticalGroup(
625             gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING)
626             .addGroup(gl_jPanel10.createSequentialGroup()
627                 .addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.BASELINE)
628                     .addComponent(lblFfmpegPath)
629                     .addComponent(fldFfmpegPath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
630                     .addComponent(btnFfmpegPath))
631                 .addPreferredGap(ComponentPlacement.RELATED)
632                 .addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.BASELINE)
633                     .addComponent(lblFfmpegDllPath)
634                     .addComponent(fldFfmpegDllPath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
635                     .addComponent(btnFfmpegDllPath))
636                 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
637         );
638
639         pnlFfmpegParam.setBorder(javax.swing.BorderFactory.createTitledBorder("ffmpegパラメータ"));
640
641         buttonGroup1.add(rbFfmpegOptionFile);
642         rbFfmpegOptionFile.setText("オプションファイル");
643
644         buttonGroup1.add(rbFfmpegOptionDirectInput);
645         rbFfmpegOptionDirectInput.setText("直接入力");
646
647         cmbFfmpegOptionFile.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
648
649         pnlFfmpegParamOption.setBorder(javax.swing.BorderFactory.createEtchedBorder());
650
651         lblFfmpegOptionExtension.setText("出力動画の拡張子");
652
653         lblFfmpegOptionMain.setText("メインオプション");
654
655         lblFfmpegOptionIn.setText("入力オプション");
656
657         lblFfmpegOptionOut.setText("出力オプション");
658
659         lblFfmpegOptionAvfilter.setText("avfilterオプション");
660
661         cbFfmpegOptionResize.setText("次のサイズに収まるよう縮小(-s)");
662
663         lblFfmpegOptionResizeWidth.setText("横");
664
665         lblFfmpegOptionResizeHeight.setText("縦");
666
667         cbFfmpegOptionKeepAspect.setText("アスペクト比を維持");
668
669         javax.swing.GroupLayout gl_pnlFfmpegParamOption = new javax.swing.GroupLayout(pnlFfmpegParamOption);
670         pnlFfmpegParamOption.setLayout(gl_pnlFfmpegParamOption);
671         gl_pnlFfmpegParamOption.setHorizontalGroup(
672             gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
673             .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
674                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
675                     .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
676                         .addContainerGap()
677                         .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
678                             .addComponent(lblFfmpegOptionAvfilter)
679                             .addComponent(lblFfmpegOptionExtension)
680                             .addComponent(lblFfmpegOptionMain)
681                             .addComponent(lblFfmpegOptionIn)
682                             .addComponent(lblFfmpegOptionOut))
683                         .addPreferredGap(ComponentPlacement.RELATED)
684                         .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
685                             .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, 51, GroupLayout.PREFERRED_SIZE)
686                             .addComponent(fldFfmpegOptionMain, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
687                             .addComponent(fldFfmpegOptionIn, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
688                             .addComponent(fldFfmpegOptionOut, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
689                             .addComponent(fldFfmpegOptionAv, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)))
690                     .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
691                         .addGap(12, 12, 12)
692                         .addComponent(cbFfmpegOptionResize)
693                         .addPreferredGap(ComponentPlacement.UNRELATED)
694                         .addComponent(lblFfmpegOptionResizeWidth)
695                         .addPreferredGap(ComponentPlacement.RELATED)
696                         .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE)
697                         .addGap(12, 12, 12)
698                         .addComponent(lblFfmpegOptionResizeHeight)
699                         .addPreferredGap(ComponentPlacement.RELATED)
700                         .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE))
701                     .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
702                         .addGap(33, 33, 33)
703                         .addComponent(cbFfmpegOptionKeepAspect)))
704                 .addContainerGap())
705         );
706         gl_pnlFfmpegParamOption.setVerticalGroup(
707             gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.LEADING)
708             .addGroup(gl_pnlFfmpegParamOption.createSequentialGroup()
709                 .addContainerGap()
710                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
711                     .addComponent(lblFfmpegOptionExtension)
712                     .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
713                 .addPreferredGap(ComponentPlacement.RELATED)
714                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
715                     .addComponent(lblFfmpegOptionMain)
716                     .addComponent(fldFfmpegOptionMain, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
717                 .addPreferredGap(ComponentPlacement.RELATED)
718                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
719                     .addComponent(lblFfmpegOptionIn)
720                     .addComponent(fldFfmpegOptionIn, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
721                 .addPreferredGap(ComponentPlacement.RELATED)
722                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
723                     .addComponent(lblFfmpegOptionOut)
724                     .addComponent(fldFfmpegOptionOut, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
725                 .addPreferredGap(ComponentPlacement.RELATED)
726                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
727                     .addComponent(lblFfmpegOptionAvfilter)
728                     .addComponent(fldFfmpegOptionAv, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
729                 .addPreferredGap(ComponentPlacement.RELATED)
730                 .addGroup(gl_pnlFfmpegParamOption.createParallelGroup(GroupLayout.Alignment.BASELINE)
731                     .addComponent(cbFfmpegOptionResize)
732                     .addComponent(lblFfmpegOptionResizeWidth)
733                     .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
734                     .addComponent(lblFfmpegOptionResizeHeight)
735                     .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
736                 .addPreferredGap(ComponentPlacement.RELATED)
737                 .addComponent(cbFfmpegOptionKeepAspect)
738                 .addContainerGap())
739         );
740
741         GroupLayout gl_pnlFfmpegParam = new GroupLayout(pnlFfmpegParam);
742         pnlFfmpegParam.setLayout(gl_pnlFfmpegParam);
743         gl_pnlFfmpegParam.setHorizontalGroup(
744             gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
745             .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
746                 .addContainerGap()
747                 .addGroup(gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
748                     .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
749                     .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
750                         .addComponent(rbFfmpegOptionFile)
751                         .addPreferredGap(ComponentPlacement.RELATED)
752                         .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
753                     .addComponent(rbFfmpegOptionDirectInput))
754                 .addContainerGap())
755         );
756         gl_pnlFfmpegParam.setVerticalGroup(
757             gl_pnlFfmpegParam.createParallelGroup(Alignment.LEADING)
758             .addGroup(gl_pnlFfmpegParam.createSequentialGroup()
759                 .addContainerGap()
760                 .addGroup(gl_pnlFfmpegParam.createParallelGroup(Alignment.BASELINE)
761                     .addComponent(rbFfmpegOptionFile)
762                     .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
763                 .addPreferredGap(ComponentPlacement.RELATED)
764                 .addComponent(rbFfmpegOptionDirectInput)
765                 .addPreferredGap(ComponentPlacement.RELATED)
766                 .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
767                 .addContainerGap())
768         );
769
770         javax.swing.GroupLayout gl_pnlFfmpeg = new javax.swing.GroupLayout(pnlFfmpeg);
771         pnlFfmpeg.setLayout(gl_pnlFfmpeg);
772         gl_pnlFfmpeg.setHorizontalGroup(
773             gl_pnlFfmpeg.createParallelGroup(GroupLayout.Alignment.LEADING)
774             .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlFfmpeg.createSequentialGroup()
775                 .addContainerGap()
776                 .addGroup(gl_pnlFfmpeg.createParallelGroup(GroupLayout.Alignment.TRAILING)
777                     .addComponent(pnlFfmpegParam, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
778                     .addComponent(jPanel10, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
779                 .addContainerGap())
780         );
781         gl_pnlFfmpeg.setVerticalGroup(
782             gl_pnlFfmpeg.createParallelGroup(GroupLayout.Alignment.LEADING)
783             .addGroup(gl_pnlFfmpeg.createSequentialGroup()
784                 .addContainerGap()
785                 .addComponent(jPanel10, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
786                 .addPreferredGap(ComponentPlacement.RELATED)
787                 .addComponent(pnlFfmpegParam, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
788                 .addContainerGap())
789         );
790
791         jTabbedPane1.addTab("ffmpeg", pnlFfmpeg);
792
793         pnlNgWord.setBorder(javax.swing.BorderFactory.createTitledBorder("NGワード"));
794
795         lstNgWord.setModel(mdlNgWord);
796         scrNgWord.setViewportView(lstNgWord);
797
798         btnNgWordAdd.setText("追加");
799
800         btnNgWordDel.setText("削除");
801
802         javax.swing.GroupLayout gl_pnlNgWord = new javax.swing.GroupLayout(pnlNgWord);
803         pnlNgWord.setLayout(gl_pnlNgWord);
804         gl_pnlNgWord.setHorizontalGroup(
805             gl_pnlNgWord.createParallelGroup(GroupLayout.Alignment.LEADING)
806             .addGroup(gl_pnlNgWord.createSequentialGroup()
807                 .addContainerGap()
808                 .addGroup(gl_pnlNgWord.createParallelGroup(GroupLayout.Alignment.LEADING)
809                     .addComponent(scrNgWord, GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE)
810                     .addGroup(gl_pnlNgWord.createSequentialGroup()
811                         .addComponent(fldNgWord, GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
812                         .addPreferredGap(ComponentPlacement.RELATED)
813                         .addComponent(btnNgWordAdd)
814                         .addGap(18, 18, 18)
815                         .addComponent(btnNgWordDel)))
816                 .addContainerGap())
817         );
818         gl_pnlNgWord.setVerticalGroup(
819             gl_pnlNgWord.createParallelGroup(GroupLayout.Alignment.LEADING)
820             .addGroup(gl_pnlNgWord.createSequentialGroup()
821                 .addComponent(scrNgWord, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)
822                 .addPreferredGap(ComponentPlacement.RELATED)
823                 .addGroup(gl_pnlNgWord.createParallelGroup(GroupLayout.Alignment.BASELINE)
824                     .addComponent(fldNgWord, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
825                     .addComponent(btnNgWordDel)
826                     .addComponent(btnNgWordAdd))
827                 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
828         );
829
830         pnlNgId.setBorder(javax.swing.BorderFactory.createTitledBorder("NGID"));
831
832         lstNgId.setModel(mdlNgId);
833         scrNgId.setViewportView(lstNgId);
834
835         btnNgIdAdd.setText("追加");
836
837         btnNgIdDel.setText("削除");
838
839         javax.swing.GroupLayout gl_pnlNgId = new javax.swing.GroupLayout(pnlNgId);
840         pnlNgId.setLayout(gl_pnlNgId);
841         gl_pnlNgId.setHorizontalGroup(
842             gl_pnlNgId.createParallelGroup(GroupLayout.Alignment.LEADING)
843             .addGroup(gl_pnlNgId.createSequentialGroup()
844                 .addContainerGap()
845                 .addGroup(gl_pnlNgId.createParallelGroup(GroupLayout.Alignment.LEADING)
846                     .addComponent(scrNgId, GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE)
847                     .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlNgId.createSequentialGroup()
848                         .addComponent(fldNgId, GroupLayout.DEFAULT_SIZE, 256, Short.MAX_VALUE)
849                         .addPreferredGap(ComponentPlacement.RELATED)
850                         .addComponent(btnNgIdAdd)
851                         .addGap(18, 18, 18)
852                         .addComponent(btnNgIdDel)))
853                 .addContainerGap())
854         );
855         gl_pnlNgId.setVerticalGroup(
856             gl_pnlNgId.createParallelGroup(GroupLayout.Alignment.LEADING)
857             .addGroup(gl_pnlNgId.createSequentialGroup()
858                 .addComponent(scrNgId, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)
859                 .addPreferredGap(ComponentPlacement.RELATED)
860                 .addGroup(gl_pnlNgId.createParallelGroup(GroupLayout.Alignment.BASELINE)
861                     .addComponent(fldNgId, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
862                     .addComponent(btnNgIdDel)
863                     .addComponent(btnNgIdAdd))
864                 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
865         );
866
867         javax.swing.GroupLayout gl_pnlNgSetting = new javax.swing.GroupLayout(pnlNgSetting);
868         pnlNgSetting.setLayout(gl_pnlNgSetting);
869         gl_pnlNgSetting.setHorizontalGroup(
870             gl_pnlNgSetting.createParallelGroup(GroupLayout.Alignment.LEADING)
871             .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlNgSetting.createSequentialGroup()
872                 .addContainerGap()
873                 .addGroup(gl_pnlNgSetting.createParallelGroup(GroupLayout.Alignment.TRAILING)
874                     .addComponent(pnlNgId, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
875                     .addComponent(pnlNgWord, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
876                 .addContainerGap())
877         );
878         gl_pnlNgSetting.setVerticalGroup(
879             gl_pnlNgSetting.createParallelGroup(GroupLayout.Alignment.LEADING)
880             .addGroup(gl_pnlNgSetting.createSequentialGroup()
881                 .addContainerGap()
882                 .addComponent(pnlNgWord, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
883                 .addPreferredGap(ComponentPlacement.RELATED)
884                 .addComponent(pnlNgId, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
885                 .addContainerGap(82, Short.MAX_VALUE))
886         );
887
888         jTabbedPane1.addTab("NG設定", pnlNgSetting);
889
890         pnlSearchVideo.setBorder(javax.swing.BorderFactory.createTitledBorder("動画検索対象フォルダ"));
891
892         lstSearchVideo.setModel(new javax.swing.AbstractListModel() {
893             String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
894             public int getSize() { return strings.length; }
895             public Object getElementAt(int i) { return strings[i]; }
896         });
897         srcSearchVideo.setViewportView(lstSearchVideo);
898
899         btnSearchVideoAdd.setText("追加...");
900
901         btnSearchVideoDel.setText("削除");
902
903         javax.swing.GroupLayout gl_pnlSearchVideo = new javax.swing.GroupLayout(pnlSearchVideo);
904         pnlSearchVideo.setLayout(gl_pnlSearchVideo);
905         gl_pnlSearchVideo.setHorizontalGroup(
906             gl_pnlSearchVideo.createParallelGroup(GroupLayout.Alignment.LEADING)
907             .addComponent(srcSearchVideo, GroupLayout.DEFAULT_SIZE, 419, Short.MAX_VALUE)
908             .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlSearchVideo.createSequentialGroup()
909                 .addContainerGap(269, Short.MAX_VALUE)
910                 .addComponent(btnSearchVideoAdd)
911                 .addGap(18, 18, 18)
912                 .addComponent(btnSearchVideoDel)
913                 .addContainerGap())
914         );
915         gl_pnlSearchVideo.setVerticalGroup(
916             gl_pnlSearchVideo.createParallelGroup(GroupLayout.Alignment.LEADING)
917             .addGroup(gl_pnlSearchVideo.createSequentialGroup()
918                 .addComponent(srcSearchVideo, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)
919                 .addPreferredGap(ComponentPlacement.RELATED)
920                 .addGroup(gl_pnlSearchVideo.createParallelGroup(GroupLayout.Alignment.BASELINE)
921                     .addComponent(btnSearchVideoDel)
922                     .addComponent(btnSearchVideoAdd))
923                 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
924         );
925
926         pnlSearchComment.setBorder(javax.swing.BorderFactory.createTitledBorder("コメント検索対象フォルダ"));
927
928         lstSearchComment.setModel(new javax.swing.AbstractListModel() {
929             String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
930             public int getSize() { return strings.length; }
931             public Object getElementAt(int i) { return strings[i]; }
932         });
933         srcSearchComment.setViewportView(lstSearchComment);
934
935         btnSearchCommentAdd.setText("追加...");
936
937         btnSearchCommentDel.setText("削除");
938
939         javax.swing.GroupLayout gl_pnlSearchComment = new javax.swing.GroupLayout(pnlSearchComment);
940         pnlSearchComment.setLayout(gl_pnlSearchComment);
941         gl_pnlSearchComment.setHorizontalGroup(
942             gl_pnlSearchComment.createParallelGroup(GroupLayout.Alignment.LEADING)
943             .addComponent(srcSearchComment, GroupLayout.DEFAULT_SIZE, 419, Short.MAX_VALUE)
944             .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlSearchComment.createSequentialGroup()
945                 .addContainerGap(269, Short.MAX_VALUE)
946                 .addComponent(btnSearchCommentAdd)
947                 .addGap(18, 18, 18)
948                 .addComponent(btnSearchCommentDel)
949                 .addContainerGap())
950         );
951         gl_pnlSearchComment.setVerticalGroup(
952             gl_pnlSearchComment.createParallelGroup(GroupLayout.Alignment.LEADING)
953             .addGroup(gl_pnlSearchComment.createSequentialGroup()
954                 .addComponent(srcSearchComment, GroupLayout.PREFERRED_SIZE, 100, GroupLayout.PREFERRED_SIZE)
955                 .addPreferredGap(ComponentPlacement.RELATED)
956                 .addGroup(gl_pnlSearchComment.createParallelGroup(GroupLayout.Alignment.BASELINE)
957                     .addComponent(btnSearchCommentDel)
958                     .addComponent(btnSearchCommentAdd))
959                 .addContainerGap(16, Short.MAX_VALUE))
960         );
961
962         pnlSearchCache.setBorder(javax.swing.BorderFactory.createEtchedBorder());
963
964         lblSearchCache.setText("キャッシュ更新(秒)");
965
966         javax.swing.GroupLayout gl_pnlSearchCache = new javax.swing.GroupLayout(pnlSearchCache);
967         pnlSearchCache.setLayout(gl_pnlSearchCache);
968         gl_pnlSearchCache.setHorizontalGroup(
969             gl_pnlSearchCache.createParallelGroup(GroupLayout.Alignment.LEADING)
970             .addGroup(gl_pnlSearchCache.createSequentialGroup()
971                 .addContainerGap()
972                 .addComponent(lblSearchCache)
973                 .addPreferredGap(ComponentPlacement.RELATED)
974                 .addComponent(fldSearchCache, GroupLayout.PREFERRED_SIZE, 55, GroupLayout.PREFERRED_SIZE)
975                 .addContainerGap(269, Short.MAX_VALUE))
976         );
977         gl_pnlSearchCache.setVerticalGroup(
978             gl_pnlSearchCache.createParallelGroup(GroupLayout.Alignment.LEADING)
979             .addGroup(gl_pnlSearchCache.createSequentialGroup()
980                 .addContainerGap()
981                 .addGroup(gl_pnlSearchCache.createParallelGroup(GroupLayout.Alignment.BASELINE)
982                     .addComponent(lblSearchCache)
983                     .addComponent(fldSearchCache, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
984                 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
985         );
986
987         javax.swing.GroupLayout gl_pnlSearch = new javax.swing.GroupLayout(pnlSearch);
988         pnlSearch.setLayout(gl_pnlSearch);
989         gl_pnlSearch.setHorizontalGroup(
990             gl_pnlSearch.createParallelGroup(GroupLayout.Alignment.LEADING)
991             .addGroup(GroupLayout.Alignment.TRAILING, gl_pnlSearch.createSequentialGroup()
992                 .addContainerGap()
993                 .addGroup(gl_pnlSearch.createParallelGroup(GroupLayout.Alignment.TRAILING)
994                     .addComponent(pnlSearchCache, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
995                     .addComponent(pnlSearchComment, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
996                     .addComponent(pnlSearchVideo, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
997                 .addContainerGap())
998         );
999         gl_pnlSearch.setVerticalGroup(
1000             gl_pnlSearch.createParallelGroup(GroupLayout.Alignment.LEADING)
1001             .addGroup(gl_pnlSearch.createSequentialGroup()
1002                 .addContainerGap()
1003                 .addComponent(pnlSearchVideo, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
1004                 .addPreferredGap(ComponentPlacement.RELATED)
1005                 .addComponent(pnlSearchComment, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
1006                 .addPreferredGap(ComponentPlacement.RELATED)
1007                 .addComponent(pnlSearchCache, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
1008                 .addContainerGap(27, Short.MAX_VALUE))
1009         );
1010
1011         jTabbedPane1.addTab("検索", pnlSearch);
1012
1013         final JPanel pnlButton = new JPanel();
1014         final JButton btnOk = new JButton("OK");
1015         final JButton btnCancel = new JButton("Cancel");
1016         pnlButton.add(btnOk);
1017         pnlButton.add(btnCancel);
1018
1019         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
1020         getContentPane().setLayout(layout);
1021         layout.setHorizontalGroup(
1022             layout.createParallelGroup(GroupLayout.Alignment.LEADING)
1023             .addComponent(jTabbedPane1, GroupLayout.DEFAULT_SIZE, 460, Short.MAX_VALUE)
1024             .addComponent(pnlButton)
1025         );
1026         layout.setVerticalGroup(
1027 //            layout.createParallelGroup(GroupLayout.Alignment.LEADING)
1028 //            .addGroup(layout.createSequentialGroup()
1029 //                .addComponent(jTabbedPane1, GroupLayout.DEFAULT_SIZE, 451, GroupLayout.PREFERRED_SIZE)
1030 //                .addContainerGap(23, Short.MAX_VALUE))
1031             layout.createSequentialGroup()
1032                 .addComponent(jTabbedPane1,GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
1033                 .addComponent(pnlButton)
1034         );
1035
1036         pack();
1037     }// </editor-fold>//GEN-END:initComponents
1038
1039     /**
1040      * @param args the command line arguments
1041      */
1042     public static void main(String args[]) {
1043         /* Set the Nimbus look and feel */
1044         //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
1045         /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
1046          * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
1047          */
1048         try {
1049             for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
1050                 if ("Nimbus".equals(info.getName())) {
1051                     javax.swing.UIManager.setLookAndFeel(info.getClassName());
1052                     break;
1053                 }
1054             }
1055         } catch (ClassNotFoundException ex) {
1056             java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1057         } catch (InstantiationException ex) {
1058             java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1059         } catch (IllegalAccessException ex) {
1060             java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1061         } catch (javax.swing.UnsupportedLookAndFeelException ex) {
1062             java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
1063         }
1064         //</editor-fold>
1065
1066         /* Create and display the form */
1067         java.awt.EventQueue.invokeLater(new Runnable() {
1068
1069             @Override
1070             public void run() {
1071                 new ConfigDialog().setVisible(true);
1072             }
1073         });
1074     }
1075     // Variables declaration - do not modify//GEN-BEGIN:variables
1076     private javax.swing.ButtonGroup buttonGroup1;
1077     private javax.swing.JButton btnVideoDir;
1078     private javax.swing.JButton btnNgWordDel;
1079     private javax.swing.JButton btnNgIdAdd;
1080     private javax.swing.JButton btnNgIdDel;
1081     private javax.swing.JButton btnSearchCommentAdd;
1082     private javax.swing.JButton btnSearchCommentDel;
1083     private javax.swing.JButton btnCommentDir;
1084     private javax.swing.JButton btnOutputDir;
1085     private javax.swing.JButton btnFfmpegPath;
1086     private javax.swing.JButton btnFfmpegDllPath;
1087     private javax.swing.JButton btnFontPath;
1088     private javax.swing.JButton btnSearchVideoAdd;
1089     private javax.swing.JButton btnSearchVideoDel;
1090     private javax.swing.JButton btnNgWordAdd;
1091     private javax.swing.JCheckBox cbProxyUse;
1092     private javax.swing.JCheckBox cbCommentDisplaySizeDefault;
1093     private javax.swing.JCheckBox cbOutputDisplayProgress;
1094     private javax.swing.JCheckBox cbFontSizeArrangeDisable;
1095     private javax.swing.JCheckBox cbCommentOpaque;
1096     private javax.swing.JCheckBox cbVideoLocal;
1097     private javax.swing.JCheckBox cbCommentLocal;
1098     private javax.swing.JCheckBox cbOutputEnable;
1099     private javax.swing.JCheckBox cbCommentSizeAuto;
1100     private javax.swing.JCheckBox cbCommentMinSizeAuto;
1101     private javax.swing.JCheckBox cbOutputCommentOverlay;
1102     private javax.swing.JCheckBox cbFfmpegOptionResize;
1103     private javax.swing.JCheckBox cbFfmpegOptionKeepAspect;
1104     private javax.swing.JComboBox cmbFfmpegOptionFile;
1105     private javax.swing.JLabel lblMail;
1106     private javax.swing.JLabel lblOutputFileNamePattern;
1107     private javax.swing.JLabel lblCommentSize;
1108     private javax.swing.JLabel lblCommentSizeManual;
1109     private javax.swing.JLabel lblCommentMinSize;
1110     private javax.swing.JLabel lblCommentMinSizeManual;
1111     private javax.swing.JLabel lblFfmpegPath;
1112     private javax.swing.JLabel lblFfmpegDllPath;
1113     private javax.swing.JLabel lblFfmpegOptionExtension;
1114     private javax.swing.JLabel lblFfmpegOptionMain;
1115     private javax.swing.JLabel lblFfmpegOptionIn;
1116     private javax.swing.JLabel lblPassword;
1117     private javax.swing.JLabel lblFfmpegOptionOut;
1118     private javax.swing.JLabel lblFfmpegOptionAvfilter;
1119     private javax.swing.JLabel lblFfmpegOptionResizeWidth;
1120     private javax.swing.JLabel lblFfmpegOptionResizeHeight;
1121     private javax.swing.JLabel lblCommentDisplayMax;
1122     private javax.swing.JLabel lblCommentDisplayMaxManual;
1123     private javax.swing.JLabel lblFontPath;
1124     private javax.swing.JLabel lblFontIndex;
1125     private javax.swing.JLabel lblFontShadow;
1126     private javax.swing.JLabel lblSearchCache;
1127     private javax.swing.JLabel lblProxyHost;
1128     private javax.swing.JLabel lblProxyPort;
1129     private javax.swing.JLabel lblVideoDir;
1130     private javax.swing.JLabel lblVideoFileNamepattern;
1131     private javax.swing.JLabel lblCommentDir;
1132     private javax.swing.JLabel lblCommentFileNamePattern;
1133     private javax.swing.JLabel lblOutputDir;
1134     private javax.swing.JList lstSearchVideo;
1135     private javax.swing.JList lstSearchComment;
1136     private javax.swing.JList<String> lstNgWord;
1137     private final DefaultListModel<String> mdlNgWord = new DefaultListModel<>();
1138     private javax.swing.JList<String> lstNgId;
1139     private final DefaultListModel<String> mdlNgId = new DefaultListModel<>();
1140     private javax.swing.JPanel pnlNetwork;
1141     private javax.swing.JPanel jPanel10;
1142     private javax.swing.JPanel pnlFfmpegParam;
1143     private javax.swing.JPanel pnlFfmpegParamOption;
1144     private javax.swing.JPanel pnlNgSetting;
1145     private javax.swing.JPanel pnlCommentStandard;
1146     private javax.swing.JPanel pnlCommentAdvanced;
1147     private javax.swing.JPanel pnlNgWord;
1148     private javax.swing.JPanel pnlSearch;
1149     private javax.swing.JPanel pnlSearchVideo;
1150     private javax.swing.JPanel pnlSearchComment;
1151     private javax.swing.JPanel pnlAccount;
1152     private javax.swing.JPanel pnlNgId;
1153     private javax.swing.JPanel pnlSearchCache;
1154     private javax.swing.JPanel pnlProxy;
1155     private javax.swing.JPanel pnlFile;
1156     private javax.swing.JPanel pnlFileVideo;
1157     private javax.swing.JPanel pnlFileComment;
1158     private javax.swing.JPanel pnlFileOutput;
1159     private javax.swing.JPanel pnlComment;
1160     private javax.swing.JPanel pnlFfmpeg;
1161     private javax.swing.JRadioButton rbFfmpegOptionFile;
1162     private javax.swing.JRadioButton rbFfmpegOptionDirectInput;
1163     private javax.swing.JScrollPane srcSearchVideo;
1164     private javax.swing.JScrollPane srcSearchComment;
1165     private javax.swing.JScrollPane scrNgWord;
1166     private javax.swing.JScrollPane scrNgId;
1167     private javax.swing.JTabbedPane jTabbedPane1;
1168     private javax.swing.JTextField fldMail;
1169     private javax.swing.JTextField fldOutputFileNamePattern;
1170     private javax.swing.JTextField fldCommentSizeManual;
1171     private javax.swing.JTextField fldCommentMinSizeManual;
1172     private javax.swing.JTextField fldFfmpegPath;
1173     private javax.swing.JTextField fldFfmpegDllPath;
1174     private javax.swing.JTextField fldFfmpegOptionResizeWidth;
1175     private javax.swing.JTextField fldFfmpegOptionResizeHeight;
1176     private javax.swing.JTextField fldFfmpegOptionExtension;
1177     private javax.swing.JTextField fldFfmpegOptionMain;
1178     private javax.swing.JTextField fldFfmpegOptionIn;
1179     private javax.swing.JTextField fldPassword;
1180     private javax.swing.JTextField fldFfmpegOptionOut;
1181     private javax.swing.JTextField fldFfmpegOptionAv;
1182     private javax.swing.JTextField fldCommentDisplaySizeManual;
1183     private javax.swing.JTextField fldFontPath;
1184     private javax.swing.JTextField fldFontIndex;
1185     private javax.swing.JTextField fldFontShadow;
1186     private javax.swing.JTextField fldNgWord;
1187     private javax.swing.JTextField fldNgId;
1188     private javax.swing.JTextField fldSearchCache;
1189     private javax.swing.JTextField fldProxyHost;
1190     private javax.swing.JTextField fldProxyPort;
1191     private javax.swing.JTextField fldVideoDir;
1192     private javax.swing.JTextField fldVideoFileNamePattern;
1193     private javax.swing.JTextField fldCommentDir;
1194     private javax.swing.JTextField fldCommentFileNamePattern;
1195     private javax.swing.JTextField fldOutputDir;
1196     // End of variables declaration//GEN-END:variables
1197
1198     private void loadConfig() {
1199         final Config p = Config.INSTANCE;
1200
1201         /*
1202          * ネットワーク - アカウント
1203          */
1204         fldMail.setText(p.getId());
1205         fldPassword.setText(p.getPassword());
1206
1207         /*
1208          * ネットワーク - プロキシ
1209          */
1210         cbProxyUse.setSelected(p.getProxyUse());
1211         fldProxyHost.setText(p.getProxyHost());
1212         fldProxyPort.setText(p.getProxyPort());
1213
1214         /*
1215          * ファイル - 動画
1216          */
1217         fldVideoDir.setText(p.getVideoDir());
1218         fldVideoFileNamePattern.setText(p.getVideoFileNamePattern());
1219         cbVideoLocal.setSelected(p.getVideoUseLocal());
1220
1221         /*
1222          * ファイル - コメント
1223          */
1224         fldCommentDir.setText(p.getCommentDir());
1225         fldCommentFileNamePattern.setText(p.getCommentFileNamePattern());
1226         cbCommentLocal.setSelected(p.getCommentUseLocal());
1227
1228         /*
1229          * ファイル - 変換動画
1230          */
1231         fldOutputDir.setText(p.getOutputDir());
1232         fldOutputFileNamePattern.setText(p.getOutputFileNamePattern());
1233         cbOutputEnable.setSelected(p.getOutputEnable());
1234         cbOutputCommentOverlay.setSelected(p.getOutputCommentOverlay());
1235         cbOutputDisplayProgress.setSelected(p.getOutputDisplayProgress());
1236
1237         /**
1238          * コメント
1239          */
1240         cbCommentSizeAuto.setSelected(p.getCommentSizeAutosize());
1241         fldCommentSizeManual.setText(p.getCommentSizeManual());
1242         cbCommentMinSizeAuto.setSelected(p.getCommentMinSizeAutosize());
1243         fldCommentSizeManual.setText(p.getCommentMinSizeManual());
1244         cbCommentDisplaySizeDefault.setSelected(p.getCommentDisplaySizeDefault());
1245         fldCommentDisplaySizeManual.setText(p.getCommentDisplaySizeManual());
1246
1247         /**
1248          * コメント - 高度な設定
1249          */
1250         fldFontPath.setText(p.getFontPath());
1251         fldFontIndex.setText(p.getFontIndex());
1252         // TODO 影の種類はコンボボックス
1253         cbFontSizeArrangeDisable.setSelected(p.getFontSizeArrangeDisable());
1254         cbCommentOpaque.setSelected(p.getCommentOpaque());
1255
1256         /*
1257          * ffmpeg - ファイルパス
1258          */
1259         fldFfmpegPath.setText(p.getFfmpegPath());
1260         fldFfmpegDllPath.setText(p.getFfmpegDllPath());
1261
1262         /*
1263          * ffmpeg - ffmpegパラメータ
1264          */
1265         rbFfmpegOptionFile.setSelected(!p.getFfmpegParamInputDirect());
1266         rbFfmpegOptionDirectInput.setSelected(p.getFfmpegParamInputDirect());
1267         // TODO cmbFfmpegOptionFile
1268         fldFfmpegOptionExtension.setText(p.getFfmpegExtension());
1269         fldFfmpegOptionMain.setText(p.getFfmpegMainOption());
1270         fldFfmpegOptionIn.setText(p.getFfmpegInOption());
1271         fldFfmpegOptionOut.setText(p.getFfmpegOutOption());
1272         fldFfmpegOptionAv.setText(p.getFfmpegAvOption());
1273         cbFfmpegOptionResize.setSelected(p.getFfmpegResizeEnable());
1274         fldFfmpegOptionResizeWidth.setText(p.getFfmpegResizeWidth());
1275         fldFfmpegOptionResizeHeight.setText(p.getFfmpegResizeHeight());
1276         cbFfmpegOptionKeepAspect.setSelected(p.getFfmpegKeepAspect());
1277
1278         /*
1279          * NG 設定
1280          */
1281         final List<String> ngWords = p.getNgWords();
1282         for (String s : ngWords) {
1283             mdlNgWord.addElement(s);
1284         }
1285         final List<String> ngIds = p.getNgIds();
1286         for (String s : ngIds) {
1287             mdlNgId.addElement(s);
1288         }
1289     }
1290     private void saveConfig() {
1291         final Config p = Config.INSTANCE;
1292
1293         /*
1294          * ネットワーク - アカウント
1295          */
1296
1297         p.setId(fldMail.getText());
1298         p.setPassword(fldPassword.getText());
1299
1300         /*
1301          * ネットワーク - プロキシ
1302          */
1303         p.setProxyUse(cbProxyUse.isSelected());
1304         p.setProxyHost(fldProxyHost.getText());
1305         p.setProxyPort(fldProxyPort.getText());
1306
1307         /*
1308          * ファイル - 動画
1309          */
1310         p.setVideoDir(fldVideoDir.getText());
1311         p.setVideoFileNamePattern(fldVideoFileNamePattern.getText());
1312         p.setVideoUseLocal(cbVideoLocal.isSelected());
1313
1314         /*
1315          * ファイル - コメント
1316          */
1317         p.setCommentDir(fldCommentDir.getText());
1318         p.setCommentFileNamePattern(fldCommentFileNamePattern.getText());
1319         p.setCommentUseLocal(cbCommentLocal.isSelected());
1320
1321         /*
1322          * ファイル - 変換動画
1323          */
1324         p.setOutputDir(fldOutputDir.getText());
1325         p.setOutputFileNamePattern(fldOutputFileNamePattern.getText());
1326         p.setOutputEnable(cbOutputEnable.isSelected());
1327         p.setOutputCommentOverlay(cbOutputCommentOverlay.isSelected());
1328         p.setOutputDisplayProgress(cbOutputDisplayProgress.isSelected());
1329
1330         /**
1331          * コメント
1332          */
1333         p.setCommentSizeAutosize(cbCommentSizeAuto.isSelected());
1334         p.setCommentSizeManual(fldCommentSizeManual.getText());
1335         p.setCommentMinSizeAutosize(cbCommentMinSizeAuto.isSelected());
1336         p.setCommentMinSizeManual(fldCommentSizeManual.getText());
1337         p.setCommentDisplaySizeDefault(cbCommentDisplaySizeDefault.isSelected());
1338         p.setCommentDisplaySizeManual(fldCommentDisplaySizeManual.getText());
1339
1340         /**
1341          * コメント - 高度な設定
1342          */
1343         p.setFontPath(fldFontPath.getText());
1344         p.setFontIndex(fldFontIndex.getText());
1345         // TODO 影の種類はコンボボックス
1346         p.setFontSizeArrangeDisable(cbFontSizeArrangeDisable.isSelected());
1347         p.setCommentOpaque(cbCommentOpaque.isSelected());
1348
1349         /*
1350          * ffmpeg - ファイルパス
1351          */
1352         p.setFfmpegPath(fldFfmpegPath.getText());
1353         p.setFfmpegDllPath(fldFfmpegDllPath.getText());
1354
1355         /*
1356          * ffmpeg - ffmpegパラメータ
1357          */
1358         p.setFfmpegParamInputDirect(rbFfmpegOptionDirectInput.isSelected());
1359         // TODO cmbFfmpegOptionFile
1360         p.setFfmpegExtension(fldFfmpegOptionExtension.getText());
1361         p.setFfmpegMainOption(fldFfmpegOptionMain.getText());
1362         p.setFfmpegInOption(fldFfmpegOptionIn.getText());
1363         p.setFfmpegOutOption(fldFfmpegOptionOut.getText());
1364         p.setFfmpegAvOption(fldFfmpegOptionAv.getText());
1365         p.setFfmpegResizeEnable(cbFfmpegOptionResize.isSelected());
1366         p.setFfmpegResizeWidth(fldFfmpegOptionResizeWidth.getText());
1367         p.setFfmpegResizeHeight(fldFfmpegOptionResizeHeight.getText());
1368         p.setFfmpegKeepAspect(cbFfmpegOptionKeepAspect.isSelected());
1369
1370         /*
1371          * NG 設定
1372          */
1373         p.setNgWords(Arrays.asList((String[]) mdlNgWord.toArray()));
1374         p.setNgIds(Arrays.asList((String[])mdlNgId.toArray()));
1375
1376     }
1377 }