OSDN Git Service

ffmpegオプション設定パネル内のギャップを除去してコンパクトに
[coroid/inqubus.git] / frontend / src / yukihane / inqubus / gui / FfmpegParamPanel.java
1 package yukihane.inqubus.gui;
2
3 import javax.swing.BorderFactory;
4 import javax.swing.GroupLayout;
5 import javax.swing.GroupLayout.Alignment;
6 import javax.swing.JCheckBox;
7 import javax.swing.JComboBox;
8 import javax.swing.JLabel;
9 import javax.swing.JPanel;
10 import javax.swing.JTextField;
11 import javax.swing.LayoutStyle.ComponentPlacement;
12 import saccubus.FFmpegSelectedItem;
13 import saccubus.OptionComboBoxModel;
14
15 /**
16  *
17  * @author yuki
18  */
19 class FfmpegParamPanel extends JPanel {
20
21     private static final long serialVersionUID = 1L;
22     // ffmpeg - ffmpegパラメータ
23     final OptionComboBoxModel mdlFfmpegOption = new OptionComboBoxModel();
24     final JComboBox<FFmpegSelectedItem> cmbFfmpegOptionFile = new JComboBox<>(mdlFfmpegOption);
25     final JTextField fldFfmpegOptionExtension = new JTextField();
26     final JTextField fldFfmpegOptionMain = new JTextField();
27     final JTextField fldFfmpegOptionIn = new JTextField();
28     final JTextField fldFfmpegOptionOut = new JTextField();
29     final JTextField fldFfmpegOptionAv = new JTextField();
30     final JCheckBox cbFfmpegOptionResize = new JCheckBox("次のサイズに収まるよう縮小(-s)");
31     final JTextField fldFfmpegOptionResizeWidth = new JTextField();
32     final JTextField fldFfmpegOptionResizeHeight = new JTextField();
33     final JCheckBox cbFfmpegOptionKeepAspect = new JCheckBox("アスペクト比を維持");
34
35     FfmpegParamPanel() {
36         final JLabel lblFfmpegOptionExtension = new JLabel("出力動画の拡張子");
37         final JLabel lblFfmpegOptionMain = new JLabel("メインオプション");
38         final JLabel lblFfmpegOptionIn = new JLabel("入力オプション");
39         final JLabel lblFfmpegOptionOut = new JLabel("出力オプション");
40         final JLabel lblFfmpegOptionAvfilter = new JLabel("avfilterオプション");
41         final JLabel lblFfmpegOptionResizeWidth = new JLabel("横");
42         final JLabel lblFfmpegOptionResizeHeight = new JLabel("縦");
43
44
45
46         final JPanel pnlFfmpegParamOption = new JPanel();
47         pnlFfmpegParamOption.setBorder(BorderFactory.createEtchedBorder());
48
49         final GroupLayout glFfmpegParamOption = new GroupLayout(pnlFfmpegParamOption);
50         pnlFfmpegParamOption.setLayout(glFfmpegParamOption);
51         glFfmpegParamOption.setHorizontalGroup(
52             glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
53             .addGroup(glFfmpegParamOption.createSequentialGroup()
54                 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
55                     .addGroup(glFfmpegParamOption.createSequentialGroup()
56                         .addContainerGap()
57                         .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
58                             .addComponent(lblFfmpegOptionAvfilter)
59                             .addComponent(lblFfmpegOptionExtension)
60                             .addComponent(lblFfmpegOptionMain)
61                             .addComponent(lblFfmpegOptionIn)
62                             .addComponent(lblFfmpegOptionOut))
63                         .addPreferredGap(ComponentPlacement.RELATED)
64                         .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
65                             .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, 51, GroupLayout.PREFERRED_SIZE)
66                             .addComponent(fldFfmpegOptionMain, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
67                             .addComponent(fldFfmpegOptionIn, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
68                             .addComponent(fldFfmpegOptionOut, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)
69                             .addComponent(fldFfmpegOptionAv, GroupLayout.DEFAULT_SIZE, 268, Short.MAX_VALUE)))
70                     .addGroup(glFfmpegParamOption.createSequentialGroup()
71                         .addGap(12, 12, 12)
72                         .addComponent(cbFfmpegOptionResize)
73                         .addPreferredGap(ComponentPlacement.UNRELATED)
74                         .addComponent(lblFfmpegOptionResizeWidth)
75                         .addPreferredGap(ComponentPlacement.RELATED)
76                         .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE)
77                         .addGap(12, 12, 12)
78                         .addComponent(lblFfmpegOptionResizeHeight)
79                         .addPreferredGap(ComponentPlacement.RELATED)
80                         .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, 48, GroupLayout.PREFERRED_SIZE))
81                     .addGroup(glFfmpegParamOption.createSequentialGroup()
82                         .addGap(33, 33, 33)
83                         .addComponent(cbFfmpegOptionKeepAspect)))
84                 .addContainerGap())
85         );
86         glFfmpegParamOption.setVerticalGroup(
87             glFfmpegParamOption.createParallelGroup(Alignment.LEADING)
88             .addGroup(glFfmpegParamOption.createSequentialGroup()
89                 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
90                     .addComponent(lblFfmpegOptionExtension)
91                     .addComponent(fldFfmpegOptionExtension, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
92                 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
93                     .addComponent(lblFfmpegOptionMain)
94                     .addComponent(fldFfmpegOptionMain, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
95                 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
96                     .addComponent(lblFfmpegOptionIn)
97                     .addComponent(fldFfmpegOptionIn, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
98                 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
99                     .addComponent(lblFfmpegOptionOut)
100                     .addComponent(fldFfmpegOptionOut, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
101                 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
102                     .addComponent(lblFfmpegOptionAvfilter)
103                     .addComponent(fldFfmpegOptionAv, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
104                 .addGroup(glFfmpegParamOption.createParallelGroup(Alignment.BASELINE)
105                     .addComponent(cbFfmpegOptionResize)
106                     .addComponent(lblFfmpegOptionResizeWidth)
107                     .addComponent(fldFfmpegOptionResizeWidth, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
108                     .addComponent(lblFfmpegOptionResizeHeight)
109                     .addComponent(fldFfmpegOptionResizeHeight, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
110                 .addComponent(cbFfmpegOptionKeepAspect)
111             )
112         );
113
114
115
116         final GroupLayout glFfmpegParam = new GroupLayout(this);
117         setLayout(glFfmpegParam);
118         glFfmpegParam.setHorizontalGroup(
119             glFfmpegParam.createParallelGroup(Alignment.LEADING)
120             .addGroup(glFfmpegParam.createSequentialGroup()
121                 .addContainerGap()
122                 .addGroup(glFfmpegParam.createParallelGroup(Alignment.LEADING)
123                     .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
124                     .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
125                 .addContainerGap())
126         );
127         glFfmpegParam.setVerticalGroup(
128             glFfmpegParam.createParallelGroup(Alignment.LEADING)
129             .addGroup(glFfmpegParam.createSequentialGroup()
130                 .addContainerGap()
131                 .addComponent(cmbFfmpegOptionFile, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
132                 .addPreferredGap(ComponentPlacement.RELATED)
133                 .addComponent(pnlFfmpegParamOption, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
134                 .addContainerGap())
135         );
136     }
137 }