OSDN Git Service

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