X-Git-Url: http://git.sourceforge.jp/view?p=coroid%2Finqubus.git;a=blobdiff_plain;f=frontend%2Fsrc%2Fyukihane%2Finqubus%2Fgui%2FConfigDialog.java;h=87f8d2b284fe7ab389a2fd6dd794a4b8bf572358;hp=ab1bbf087978bfa8c5988f3c4b16cc5f81845bb0;hb=d1c822efae148ada260d30f78b5e65eb79a849fc;hpb=0a91b55fbac9313892328390ab1f44a3db99d5b1 diff --git a/frontend/src/yukihane/inqubus/gui/ConfigDialog.java b/frontend/src/yukihane/inqubus/gui/ConfigDialog.java index ab1bbf0..87f8d2b 100644 --- a/frontend/src/yukihane/inqubus/gui/ConfigDialog.java +++ b/frontend/src/yukihane/inqubus/gui/ConfigDialog.java @@ -15,6 +15,7 @@ import java.util.List; 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; @@ -28,6 +29,7 @@ import javax.swing.JFrame; 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; @@ -36,6 +38,7 @@ import javax.swing.SpinnerNumberModel; import javax.swing.WindowConstants; import org.apache.commons.configuration.ConfigurationException; import yukihane.inqubus.config.Config; +import yukihane.inqubus.config.Config.CookieBrowser; /** * @@ -57,10 +60,8 @@ public class ConfigDialog extends JDialog { final JTabbedPane tabbedPane = new JTabbedPane(); final JPanel pnlNetwork = new JPanel(); final JPanel pnlAccount = new JPanel(); - final JLabel lblMail = new JLabel(); fldMail = new JTextField(); fldPassword.setEchoChar('*'); - final JLabel lblPassword = new JLabel(); final JPanel pnlProxy = new JPanel(); cbProxyUse = new JCheckBox(); final JLabel lblProxyHost = new JLabel(); @@ -104,29 +105,34 @@ public class ConfigDialog extends JDialog { pnlAccount.setBorder(BorderFactory.createTitledBorder("アカウント")); - lblMail.setText("ID(メールアドレス)"); - - lblPassword.setText("パスワード"); + final JLabel lblMail = new JLabel("ID(メールアドレス)"); + final JLabel lblPassword = new JLabel("パスワード"); GroupLayout gl_pnlAccount = new GroupLayout(pnlAccount); pnlAccount.setLayout(gl_pnlAccount); - gl_pnlAccount.setHorizontalGroup( - gl_pnlAccount.createParallelGroup(GroupLayout.Alignment.LEADING) + gl_pnlAccount.setHorizontalGroup(gl_pnlAccount.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(btnAccount) .addGroup(gl_pnlAccount.createSequentialGroup() .addContainerGap() + .addGap(10) .addGroup(gl_pnlAccount.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(lblMail) - .addComponent(lblPassword)) + .addComponent(lblPassword) + ) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_pnlAccount.createParallelGroup(GroupLayout.Alignment.LEADING) .addComponent(fldPassword, GroupLayout.DEFAULT_SIZE, 306, Short.MAX_VALUE) - .addComponent(fldMail, GroupLayout.DEFAULT_SIZE, 306, Short.MAX_VALUE)) - .addContainerGap()) + .addComponent(fldMail, GroupLayout.DEFAULT_SIZE, 306, Short.MAX_VALUE) + ) + .addContainerGap() + ) ); gl_pnlAccount.setVerticalGroup( gl_pnlAccount.createParallelGroup(GroupLayout.Alignment.LEADING) .addGroup(gl_pnlAccount.createSequentialGroup() .addContainerGap() + .addComponent(btnAccount) + .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_pnlAccount.createParallelGroup(GroupLayout.Alignment.BASELINE) .addComponent(lblMail) .addComponent(fldMail, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)) @@ -137,6 +143,63 @@ public class ConfigDialog extends JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); + + final JButton btnCookie = new JButton("..."); + btnCookie.addActionListener(new FileChooseActionListener(this, JFileChooser.FILES_AND_DIRECTORIES, fldCookie)); + + final ButtonGroup grpLoginType = new ButtonGroup(); + grpLoginType.add(btnAccount); + grpLoginType.add(btnLoginCookie); + + 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(btnLoginCookie) + .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(btnLoginCookie) + .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("プロキシを使用する"); @@ -176,9 +239,10 @@ public class ConfigDialog extends JDialog { .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( @@ -186,8 +250,10 @@ public class ConfigDialog extends JDialog { .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( @@ -196,8 +262,11 @@ public class ConfigDialog extends JDialog { .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); @@ -265,38 +334,6 @@ public class ConfigDialog extends JDialog { .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); - final JPanel pnlFileProhibit = new JPanel(); - pnlFileProhibit.setBorder(BorderFactory.createTitledBorder("禁則文字")); - final JLabel lblReplaceFrom = new JLabel("置換対象文字"); - final JLabel lblReplaceTo = new JLabel("置換後文字"); - - final GroupLayout glProhibit = new GroupLayout(pnlFileProhibit); - glProhibit.setAutoCreateContainerGaps(true); - glProhibit.setAutoCreateGaps(true); - pnlFileProhibit.setLayout(glProhibit); - - glProhibit.setHorizontalGroup(glProhibit.createSequentialGroup() - .addGroup(glProhibit.createParallelGroup() - .addComponent(lblReplaceFrom) - .addComponent(lblReplaceTo) - ) - .addGroup(glProhibit.createParallelGroup() - .addComponent(fldReplaceFrom) - .addComponent(fldReplaceTo) - ) - ); - - glProhibit.setVerticalGroup(glProhibit.createSequentialGroup() - .addGroup(glProhibit.createParallelGroup(Alignment.BASELINE) - .addComponent(lblReplaceFrom) - .addComponent(fldReplaceFrom) - ) - .addGroup(glProhibit.createParallelGroup(Alignment.BASELINE) - .addComponent(lblReplaceTo) - .addComponent(fldReplaceTo) - ) - ); - GroupLayout gl_pnlFile = new GroupLayout(pnlFile); pnlFile.setLayout(gl_pnlFile); gl_pnlFile.setHorizontalGroup( @@ -307,7 +344,6 @@ public class ConfigDialog extends JDialog { .addComponent(pnlFileOutput, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlFileVideo, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(pnlFileComment, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(pnlFileProhibit, GroupLayout.Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ) .addContainerGap()) ); @@ -321,7 +357,6 @@ public class ConfigDialog extends JDialog { .addPreferredGap(ComponentPlacement.RELATED) .addComponent(pnlFileOutput, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) - .addComponent(pnlFileProhibit, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); @@ -758,8 +793,18 @@ public class ConfigDialog extends JDialog { // ネットワーク // ネットワーク - アカウント + final JRadioButton btnAccount = new JRadioButton("次の情報を使用してログインする"); private final JTextField fldMail; private final JPasswordField fldPassword = new JPasswordField(); + // ネットワーク - cookie + final JRadioButton btnLoginCookie = new JRadioButton("ブラウザのログイン情報を使用してアクセスする"); + 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(); // ネットワーク - プロキシ private final JCheckBox cbProxyUse; private final JTextField fldProxyHost = new JTextField(); @@ -776,9 +821,6 @@ public class ConfigDialog extends JDialog { private final JCheckBox cbOutputEnable; private final JCheckBox cbOutputCommentOverlay; private final JCheckBox cbOutputDisplayProgress; - // ファイル - 禁則文字 - private final JTextField fldReplaceFrom = new JTextField(); - private final JTextField fldReplaceTo = new JTextField(); // コメント // コメント private final JCheckBox cbCommentSizeAuto = new JCheckBox("自動調整"); @@ -829,10 +871,42 @@ public class ConfigDialog extends JDialog { /* * ネットワーク - アカウント */ + btnAccount.setSelected(p.getNeedsLogin()); fldMail.setText(p.getId()); fldPassword.setText(p.getPassword()); /* + * ネットワーク - cookie + */ + btnLoginCookie.setSelected(!p.getNeedsLogin()); + final CookieBrowser cookieBrowser = p.getCookieBrowser(); + final JRadioButton enabledBrowser; + switch(cookieBrowser){ + case MSIE: + enabledBrowser = btnCookieIe; + break; + case FIREFOX: + enabledBrowser = btnCookieFirefox; + break; + case CHROME: + enabledBrowser = btnCookieChrome; + break; + case CHROMIUM: + enabledBrowser = btnCookieChromium; + break; + case OPERA: + enabledBrowser = btnCookieOpera; + break; + case OTHER: + enabledBrowser = btnCookieOther; + break; + default: + throw new UnsupportedOperationException(); + } + enabledBrowser.setSelected(true); + fldCookie.setText(p.getCookieDir()); + + /* * ネットワーク - プロキシ */ cbProxyUse.setSelected(p.getProxyUse()); @@ -862,12 +936,6 @@ public class ConfigDialog extends JDialog { cbOutputCommentOverlay.setSelected(p.getOutputCommentOverlay()); cbOutputDisplayProgress.setSelected(p.getOutputDisplayProgress()); - /* - * ファイル - 禁則文字 - */ - fldReplaceFrom.setText(p.getReplaceFrom()); - fldReplaceTo.setText(p.getReplaceTo()); - /** * コメント */ @@ -935,11 +1003,33 @@ public class ConfigDialog extends JDialog { /* * ネットワーク - アカウント */ - + p.setNeedsLogin(btnAccount.isSelected()); p.setId(fldMail.getText()); p.setPassword(String.valueOf(fldPassword.getPassword())); /* + * ネットワーク - cookie + */ + final CookieBrowser cookieBrowser; + if(btnCookieIe.isSelected()) { + cookieBrowser = CookieBrowser.MSIE; + } else if(btnCookieFirefox.isSelected()) { + cookieBrowser = CookieBrowser.FIREFOX; + } else if (btnCookieChrome.isSelected()) { + cookieBrowser = CookieBrowser.CHROME; + } else if (btnCookieChromium.isSelected()) { + cookieBrowser = CookieBrowser.CHROMIUM; + } else if(btnCookieOpera.isSelected()) { + cookieBrowser = CookieBrowser.OPERA; + } else if(btnCookieOther.isSelected()) { + cookieBrowser = CookieBrowser.OTHER; + } else { + throw new UnsupportedOperationException(); + } + p.setCookieBrowser(cookieBrowser); + p.setCookieDir(fldCookie.getText()); + + /* * ネットワーク - プロキシ */ p.setProxyUse(cbProxyUse.isSelected()); @@ -970,12 +1060,6 @@ public class ConfigDialog extends JDialog { p.setOutputDisplayProgress(cbOutputDisplayProgress.isSelected()); /* - * ファイル - 禁則文字 - */ - p.setReplaceFrom(fldReplaceFrom.getText()); - p.setReplaceTo(fldReplaceTo.getText()); - - /* * コメント */ p.setCommentSizeAutosize(cbCommentSizeAuto.isSelected());