import java.awt.event.ActionListener;
import java.io.File;
import java.util.List;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.GroupLayout;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
+import javax.swing.JRadioButton;
import javax.swing.JSpinner;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.SpinnerNumberModel;
-import javax.swing.UIManager;
-import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.WindowConstants;
import org.apache.commons.configuration.ConfigurationException;
import yukihane.inqubus.config.Config;
*/
public class ConfigDialog extends JDialog {
private static final long serialVersionUID = 1L;
- private static final Logger logger = Logger.getLogger(ConfigDialog.class.getName());
+ private static final Logger logger = LoggerFactory.getLogger(ConfigDialog.class);
private static final String NEED_REBOOT = "設定を有効にするにはいんきゅばすの再起動が必要です";
/** Creates new form Properties */
fldFontIndex = new JTextField();
final JPanel pnlFfmpeg = new JPanel();
final JPanel pnlFfmpegBinPath = new JPanel();
- final JLabel lblFfmpegPath = new JLabel();
- final JLabel lblFfmpegDllPath = new JLabel();
- fldFfmpegPath = new JTextField();
- fldFfmpegDllPath = new JTextField();
+ final JLabel lblFfmpegPath = new JLabel("ffmpeg");
+ final JLabel lblFfmpegDllPath = new JLabel("拡張ライブラリ");
+ final JLabel lblMediaInfoPath = new JLabel("MediaInfo");
final JPanel pnlNgSetting = new JPanel();
final JPanel pnlSearch = new JPanel();
.addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
+
+ final JCheckBox cbxCookie = new JCheckBox("ブラウザのログイン情報を使用してアクセスする");
+ final JRadioButton btnCookieIe = new JRadioButton("IE(7以降) (Windows)");
+ final JRadioButton btnCookieFirefox = new JRadioButton("Firefox(4以降) (Windows)");
+ final JRadioButton btnCookieChrome = new JRadioButton("Google Chrome (Windows)");
+ final JRadioButton btnCookieChromium = new JRadioButton("Chrome派生ブラウザ (Windows)");
+ final JRadioButton btnCookieOpera = new JRadioButton("Opera (Windows)");
+ final JRadioButton btnCookieOther = new JRadioButton("上記以外 - cookie保存ディレクトリを次に入力");
+ final JTextField fldCookie = new JTextField();
+ final JButton btnCookie = new JButton("...");
+ btnCookie.addActionListener(new FileChooseActionListener(this, JFileChooser.DIRECTORIES_ONLY, fldCookie));
+
+ final ButtonGroup grpCookie = new ButtonGroup();
+ grpCookie.add(btnCookieIe);
+ grpCookie.add(btnCookieFirefox);
+ grpCookie.add(btnCookieChrome);
+ grpCookie.add(btnCookieChromium);
+ grpCookie.add(btnCookieOpera);
+ grpCookie.add(btnCookieOther);
+
+ final JPanel pnlCookie = new JPanel();
+ pnlCookie.setBorder(BorderFactory.createTitledBorder("cookie"));
+ final GroupLayout glCookie = new GroupLayout(pnlCookie);
+ pnlCookie.setLayout(glCookie);
+ glCookie.setAutoCreateContainerGaps(true);
+ glCookie.setAutoCreateGaps(true);
+
+ glCookie.setHorizontalGroup(glCookie.createParallelGroup()
+ .addComponent(cbxCookie)
+ .addGroup(glCookie.createSequentialGroup()
+ .addGap(10)
+ .addGroup(glCookie.createParallelGroup()
+ .addComponent(btnCookieIe)
+ .addComponent(btnCookieFirefox)
+ .addComponent(btnCookieChrome)
+ .addComponent(btnCookieChromium)
+ .addComponent(btnCookieOpera)
+ .addComponent(btnCookieOther)
+ .addGroup(glCookie.createSequentialGroup()
+ .addComponent(fldCookie)
+ .addComponent(btnCookie)
+ )
+ )
+ )
+ );
+
+ glCookie.setVerticalGroup(glCookie.createSequentialGroup()
+ .addComponent(cbxCookie)
+ .addComponent(btnCookieIe)
+ .addComponent(btnCookieFirefox)
+ .addComponent(btnCookieChrome)
+ .addComponent(btnCookieChromium)
+ .addComponent(btnCookieOpera)
+ .addComponent(btnCookieOther)
+ .addGroup(glCookie.createParallelGroup(Alignment.BASELINE)
+ .addComponent(fldCookie)
+ .addComponent(btnCookie)
+ )
+ );
+
+
pnlProxy.setBorder(BorderFactory.createTitledBorder("プロキシ"));
cbProxyUse.setText("プロキシを使用する");
.addGroup(gl_pnlProxy.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(lblProxyPort)
.addComponent(fldProxyPort, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
- .addContainerGap(39, Short.MAX_VALUE))
+ .addContainerGap())
);
+
GroupLayout gl_pnlNetwork = new GroupLayout(pnlNetwork);
pnlNetwork.setLayout(gl_pnlNetwork);
gl_pnlNetwork.setHorizontalGroup(
.addGroup(GroupLayout.Alignment.TRAILING, gl_pnlNetwork.createSequentialGroup()
.addContainerGap()
.addGroup(gl_pnlNetwork.createParallelGroup(GroupLayout.Alignment.TRAILING)
+ .addComponent(pnlAccount, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(pnlCookie, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pnlProxy, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(pnlAccount, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ )
.addContainerGap())
);
gl_pnlNetwork.setVerticalGroup(
.addContainerGap()
.addComponent(pnlAccount, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addPreferredGap(ComponentPlacement.RELATED)
+ .addComponent(pnlCookie, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(ComponentPlacement.RELATED)
.addComponent(pnlProxy, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
- .addContainerGap(178, Short.MAX_VALUE))
+ .addContainerGap()
+ )
);
tabbedPane.addTab("ネットワーク", pnlNetwork);
pnlFfmpegBinPath.setBorder(BorderFactory.createTitledBorder("ファイルパス"));
- lblFfmpegPath.setText("ffmpeg");
-
- lblFfmpegDllPath.setText("拡張ライブラリ");
-
final JButton btnFfmpegPath = new JButton("...");
btnFfmpegPath.addActionListener(
new FileChooseActionListener(ConfigDialog.this, JFileChooser.FILES_ONLY, fldFfmpegPath));
btnFfmpegDllPath.addActionListener(
new FileChooseActionListener(ConfigDialog.this, JFileChooser.FILES_ONLY, fldFfmpegDllPath));
+ final JButton btnMediaInfoPath = new JButton("...");
+ btnMediaInfoPath.addActionListener(
+ new FileChooseActionListener(ConfigDialog.this, JFileChooser.FILES_ONLY, fldMediaInfoPath));
+
GroupLayout gl_jPanel10 = new GroupLayout(pnlFfmpegBinPath);
pnlFfmpegBinPath.setLayout(gl_jPanel10);
gl_jPanel10.setHorizontalGroup(
.addGroup(gl_jPanel10.createSequentialGroup()
.addContainerGap()
.addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING)
+ .addComponent(lblFfmpegPath)
.addComponent(lblFfmpegDllPath)
- .addComponent(lblFfmpegPath))
+ .addComponent(lblMediaInfoPath)
+ )
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(fldFfmpegDllPath, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)
- .addComponent(fldFfmpegPath, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE))
+ .addComponent(fldFfmpegPath, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)
+ .addComponent(fldMediaInfoPath, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 280, Short.MAX_VALUE)
+ )
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent(btnFfmpegPath, GroupLayout.Alignment.TRAILING)
- .addComponent(btnFfmpegDllPath, GroupLayout.Alignment.TRAILING))
+ .addComponent(btnFfmpegDllPath, GroupLayout.Alignment.TRAILING)
+ .addComponent(btnMediaInfoPath, GroupLayout.Alignment.TRAILING)
+ )
.addContainerGap())
);
gl_jPanel10.setVerticalGroup(
.addComponent(lblFfmpegPath)
.addComponent(fldFfmpegPath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(btnFfmpegPath))
- .addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent(lblFfmpegDllPath)
.addComponent(fldFfmpegDllPath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(btnFfmpegDllPath))
- .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addGroup(gl_jPanel10.createParallelGroup(GroupLayout.Alignment.BASELINE)
+ .addComponent(lblMediaInfoPath)
+ .addComponent(fldMediaInfoPath, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
+ .addComponent(btnMediaInfoPath))
+ )
);
pnlFfmpegParam.setBorder(BorderFactory.createTitledBorder("ffmpegパラメータ"));
loadConfig();
}
- /**
- * @param args the command line arguments
- */
- public static void main(String args[]) {
- /* Set the Nimbus look and feel */
- /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
- * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
- */
- try {
- for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
- if ("Nimbus".equals(info.getName())) {
- UIManager.setLookAndFeel(info.getClassName());
- break;
- }
- }
- } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
- java.util.logging.Logger.getLogger(ConfigDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
- }
-
- /* Create and display the form */
- java.awt.EventQueue.invokeLater(new Runnable() {
-
- @Override
- public void run() {
- new ConfigDialog().setVisible(true);
- }
- });
- }
- // Variables declaration - do not modify//GEN-BEGIN:variables
-
// ネットワーク
// ネットワーク - アカウント
private final JTextField fldMail;
private final JCheckBox cbCommentOpaque;
// ffmpeg
// ffmpeg - ファイルパス
- private final JTextField fldFfmpegPath;
- private final JTextField fldFfmpegDllPath;
+ private final JTextField fldFfmpegPath = new JTextField();
+ private final JTextField fldFfmpegDllPath = new JTextField();
+ private final JTextField fldMediaInfoPath = new JTextField();
// ffmpeg - ffmpegパラメータ
private final FfmpegParamPanel pnlFfmpegParam = new FfmpegParamPanel();
// ffmpeg - その他
*/
fldFfmpegPath.setText(p.getFfmpegPath());
fldFfmpegDllPath.setText(p.getFfmpegDllPath());
+ fldMediaInfoPath.setText(p.getMediaInfoPath());
/*
* ffmpeg - ffmpegパラメータ
*/
p.setFfmpegPath(fldFfmpegPath.getText());
p.setFfmpegDllPath(fldFfmpegDllPath.getText());
+ p.setMediaInfoPath(fldMediaInfoPath.getText());
/*
* ffmpeg - ffmpegパラメータ
try {
p.save();
} catch (ConfigurationException ex) {
- logger.log(Level.SEVERE, "コンフィグファイル保存に失敗", ex);
+ logger.error("コンフィグファイル保存に失敗", ex);
}
}
}