summaryrefslogtreecommitdiff
path: root/platform/platform-api/src/com/intellij/util/net/HTTPProxySettingsPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/platform-api/src/com/intellij/util/net/HTTPProxySettingsPanel.java')
-rw-r--r--platform/platform-api/src/com/intellij/util/net/HTTPProxySettingsPanel.java389
1 files changed, 9 insertions, 380 deletions
diff --git a/platform/platform-api/src/com/intellij/util/net/HTTPProxySettingsPanel.java b/platform/platform-api/src/com/intellij/util/net/HTTPProxySettingsPanel.java
index 46ea422a3f69..f53c88f372e5 100644
--- a/platform/platform-api/src/com/intellij/util/net/HTTPProxySettingsPanel.java
+++ b/platform/platform-api/src/com/intellij/util/net/HTTPProxySettingsPanel.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -15,389 +15,18 @@
*/
package com.intellij.util.net;
-import com.intellij.openapi.application.Application;
-import com.intellij.openapi.application.ApplicationManager;
-import com.intellij.openapi.options.Configurable;
-import com.intellij.openapi.options.SearchableConfigurable;
-import com.intellij.openapi.ui.Messages;
-import com.intellij.openapi.ui.MultiLineLabelUI;
-import com.intellij.openapi.util.Comparing;
-import com.intellij.openapi.util.text.StringUtil;
-import com.intellij.openapi.wm.IdeFocusManager;
-import com.intellij.openapi.wm.IdeFrame;
-import com.intellij.ui.components.JBLabel;
-import com.intellij.ui.components.JBRadioButton;
-import com.intellij.util.proxy.CommonProxy;
-import com.intellij.util.proxy.JavaProxyProperty;
-import com.intellij.util.ui.UIUtil;
-import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
-import javax.swing.*;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
-import java.awt.*;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.util.concurrent.atomic.AtomicReference;
-
+@SuppressWarnings("UnusedDeclaration")
+@Deprecated
/**
- * Created by IntelliJ IDEA.
- * User: stathik
- * Date: Aug 28, 2003
- * Time: 3:52:47 PM
- * To change this template use Options | File Templates.
+ * @deprecated Use {@link HttpProxyConfigurable}
+ * to remove in IDEA 15
*/
-public class HTTPProxySettingsPanel implements SearchableConfigurable, Configurable.NoScroll {
+public class HTTPProxySettingsPanel extends HttpProxyConfigurable {
public static final String NAME = "Proxy";
- private JPanel myMainPanel;
-
- private JTextField myProxyLoginTextField;
- private JPasswordField myProxyPasswordTextField;
- private JCheckBox myProxyAuthCheckBox;
- private JTextField myProxyPortTextField;
- private JTextField myProxyHostTextField;
- private JCheckBox myRememberProxyPasswordCheckBox;
-
- private JLabel myProxyLoginLabel;
- private JLabel myProxyPasswordLabel;
- private JLabel myHostNameLabel;
- private JLabel myPortNumberLabel;
- private JBRadioButton myAutoDetectProxyRb;
- private JBRadioButton myUseHTTPProxyRb;
- private JBLabel mySystemProxyDefined;
- private JBRadioButton myNoProxyRb;
- private JBRadioButton myHTTP;
- private JBRadioButton mySocks;
- private JButton myClearPasswordsButton;
- private JLabel myErrorLabel;
- private JButton myCheckButton;
- private JBLabel myOtherWarning;
- private JLabel myProxyExceptionsLabel;
- private JTextArea myProxyExceptions;
- private JLabel myNoProxyForLabel;
- private JCheckBox myPacUrlCheckBox;
- private JTextField myPacUrlTextField;
- private final HttpConfigurable myHttpConfigurable;
- private volatile boolean myConnectionCheckInProgress;
-
- public boolean isModified() {
- boolean isModified = false;
- HttpConfigurable httpConfigurable = myHttpConfigurable;
- if (! Comparing.equal(myProxyExceptions.getText().trim(), httpConfigurable.PROXY_EXCEPTIONS)) return true;
- isModified |= httpConfigurable.USE_PROXY_PAC != myAutoDetectProxyRb.isSelected();
- isModified |= httpConfigurable.USE_PAC_URL != myPacUrlCheckBox.isSelected();
- isModified |= !Comparing.strEqual(httpConfigurable.PAC_URL, myPacUrlTextField.getText());
- isModified |= httpConfigurable.USE_HTTP_PROXY != myUseHTTPProxyRb.isSelected();
- isModified |= httpConfigurable.PROXY_AUTHENTICATION != myProxyAuthCheckBox.isSelected();
- isModified |= httpConfigurable.KEEP_PROXY_PASSWORD != myRememberProxyPasswordCheckBox.isSelected();
- isModified |= httpConfigurable.PROXY_TYPE_IS_SOCKS != mySocks.isSelected();
-
- isModified |= !Comparing.strEqual(httpConfigurable.PROXY_LOGIN, myProxyLoginTextField.getText());
- isModified |= !Comparing.strEqual(httpConfigurable.getPlainProxyPassword(),new String (myProxyPasswordTextField.getPassword()));
-
- try {
- isModified |= httpConfigurable.PROXY_PORT != Integer.valueOf(myProxyPortTextField.getText()).intValue();
- } catch (NumberFormatException e) {
- isModified = true;
- }
- isModified |= !Comparing.strEqual(httpConfigurable.PROXY_HOST, myProxyHostTextField.getText());
- return isModified;
- }
-
- public HTTPProxySettingsPanel(final HttpConfigurable httpConfigurable) {
- final ButtonGroup group = new ButtonGroup();
- group.add(myUseHTTPProxyRb);
- group.add(myAutoDetectProxyRb);
- group.add(myNoProxyRb);
- myNoProxyRb.setSelected(true);
-
- final ButtonGroup proxyTypeGroup = new ButtonGroup();
- proxyTypeGroup.add(myHTTP);
- proxyTypeGroup.add(mySocks);
- myHTTP.setSelected(true);
-
- myProxyExceptions.setBorder(UIUtil.getTextFieldBorder());
-
- final Boolean property = Boolean.getBoolean(JavaProxyProperty.USE_SYSTEM_PROXY);
- mySystemProxyDefined.setVisible(Boolean.TRUE.equals(property));
- if (Boolean.TRUE.equals(property)) {
- mySystemProxyDefined.setIcon(Messages.getWarningIcon());
- mySystemProxyDefined.setFont(mySystemProxyDefined.getFont().deriveFont(Font.BOLD));
- mySystemProxyDefined.setUI(new MultiLineLabelUI());
- }
-
- myProxyAuthCheckBox.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- enableProxyAuthentication(myProxyAuthCheckBox.isSelected());
- }
- });
- myPacUrlCheckBox.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- myPacUrlTextField.setEnabled(myPacUrlCheckBox.isSelected());
- }
- });
-
- final ActionListener listener = new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- enableProxy(myUseHTTPProxyRb.isSelected());
- }
- };
- myUseHTTPProxyRb.addActionListener(listener);
- myAutoDetectProxyRb.addActionListener(listener);
- myNoProxyRb.addActionListener(listener);
- myHttpConfigurable = httpConfigurable;
-
- myClearPasswordsButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- myHttpConfigurable.clearGenericPasswords();
- Messages.showMessageDialog(myMainPanel, "Proxy passwords were cleared.", "Auto-detected proxy", Messages.getInformationIcon());
- }
- });
-
- if (HttpConfigurable.getInstance() != null) {
- myCheckButton.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- final String title = "Check Proxy Settings";
- final String answer = Messages
- .showInputDialog(myMainPanel, "Warning: your settings will be saved.\n\nEnter any URL to check connection to:",
- title, Messages.getQuestionIcon(), "http://", null);
- if (! StringUtil.isEmptyOrSpaces(answer)) {
- apply();
- final HttpConfigurable instance = HttpConfigurable.getInstance();
- final AtomicReference<IOException> exc = new AtomicReference<IOException>();
- myCheckButton.setEnabled(false);
- myCheckButton.setText("Check connection (in progress...)");
- myConnectionCheckInProgress = true;
- final Application application = ApplicationManager.getApplication();
- application.executeOnPooledThread(new Runnable() {
- @Override
- public void run() {
- HttpURLConnection connection = null;
- try {
- //already checked for null above
- //noinspection ConstantConditions
- connection = instance.openHttpConnection(answer);
- connection.setReadTimeout(3 * 1000);
- connection.setConnectTimeout(3 * 1000);
- connection.connect();
- final int code = connection.getResponseCode();
- if (HttpURLConnection.HTTP_OK != code) {
- exc.set(new IOException("Error code: " + code));
- }
- }
- catch (IOException e1) {
- exc.set(e1);
- }
- finally {
- if (connection != null) {
- connection.disconnect();
- }
- }
- //noinspection SSBasedInspection
- SwingUtilities.invokeLater(new Runnable() {
- @Override
- public void run() {
- myConnectionCheckInProgress = false;
- reset(); // since password might have been set
- Component parent = null;
- if (myMainPanel.isShowing()) {
- parent = myMainPanel;
- myCheckButton.setText("Check connection");
- myCheckButton.setEnabled(canEnableConnectionCheck());
- } else {
- final IdeFrame frame = IdeFocusManager.findInstance().getLastFocusedFrame();
- if (frame == null) {
- return;
- }
- parent = frame.getComponent();
- }
- //noinspection ThrowableResultOfMethodCallIgnored
- final IOException exception = exc.get();
- if (exception == null) {
- Messages.showMessageDialog(parent, "Connection successful", title, Messages.getInformationIcon());
- }
- else {
- final String message = exception.getMessage();
- if (instance.USE_HTTP_PROXY) {
- instance.LAST_ERROR = message;
- }
- Messages.showErrorDialog(parent, errorText(message));
- }
- }
- });
- }
- });
- }
- }
- });
- } else {
- myCheckButton.setVisible(false);
- }
- }
-
- private boolean canEnableConnectionCheck() {
- return ! myNoProxyRb.isSelected() && ! myConnectionCheckInProgress;
- }
-
- public void reset() {
- myNoProxyRb.setSelected(true); // default
- HttpConfigurable httpConfigurable = myHttpConfigurable;
- myAutoDetectProxyRb.setSelected(httpConfigurable.USE_PROXY_PAC);
- myPacUrlCheckBox.setSelected(httpConfigurable.USE_PAC_URL);
- myPacUrlTextField.setText(httpConfigurable.PAC_URL);
- myUseHTTPProxyRb.setSelected(httpConfigurable.USE_HTTP_PROXY);
- myProxyAuthCheckBox.setSelected(httpConfigurable.PROXY_AUTHENTICATION);
-
- enableProxy(httpConfigurable.USE_HTTP_PROXY);
-
- myProxyLoginTextField.setText(httpConfigurable.PROXY_LOGIN);
- myProxyPasswordTextField.setText(httpConfigurable.getPlainProxyPassword());
-
- myProxyPortTextField.setText(Integer.toString(httpConfigurable.PROXY_PORT));
- myProxyHostTextField.setText(httpConfigurable.PROXY_HOST);
- myProxyExceptions.setText(httpConfigurable.PROXY_EXCEPTIONS);
-
- myRememberProxyPasswordCheckBox.setSelected(httpConfigurable.KEEP_PROXY_PASSWORD);
- mySocks.setSelected(httpConfigurable.PROXY_TYPE_IS_SOCKS);
- myHTTP.setSelected(!httpConfigurable.PROXY_TYPE_IS_SOCKS);
-
- final boolean showError = !StringUtil.isEmptyOrSpaces(httpConfigurable.LAST_ERROR);
- myErrorLabel.setVisible(showError);
- myErrorLabel.setText(showError ? errorText(httpConfigurable.LAST_ERROR) : "");
-
- final String oldStyleText = CommonProxy.getMessageFromProps(CommonProxy.getOldStyleProperties());
- myOtherWarning.setVisible(oldStyleText != null);
- if (oldStyleText != null) {
- myOtherWarning.setText(oldStyleText);
- myOtherWarning.setUI(new MultiLineLabelUI());
- myOtherWarning.setIcon(Messages.getWarningIcon());
- }
- }
-
- private String errorText(final String s) {
- return "Problem with connection: " + s;
- }
-
- public void apply () {
- HttpConfigurable httpConfigurable = myHttpConfigurable;
- if (isModified()){
- httpConfigurable.AUTHENTICATION_CANCELLED = false;
- }
- httpConfigurable.USE_PROXY_PAC = myAutoDetectProxyRb.isSelected();
- httpConfigurable.USE_PAC_URL = myPacUrlCheckBox.isSelected();
- httpConfigurable.PAC_URL = trimFieldText(myPacUrlTextField);
- httpConfigurable.USE_HTTP_PROXY = myUseHTTPProxyRb.isSelected();
- httpConfigurable.PROXY_TYPE_IS_SOCKS = mySocks.isSelected();
- httpConfigurable.PROXY_AUTHENTICATION = myProxyAuthCheckBox.isSelected();
- httpConfigurable.KEEP_PROXY_PASSWORD = myRememberProxyPasswordCheckBox.isSelected();
-
- httpConfigurable.PROXY_LOGIN = trimFieldText(myProxyLoginTextField);
- httpConfigurable.setPlainProxyPassword(new String(myProxyPasswordTextField.getPassword()));
- httpConfigurable.PROXY_EXCEPTIONS = myProxyExceptions.getText();
-
- try {
- httpConfigurable.PROXY_PORT = Integer.valueOf(trimFieldText(myProxyPortTextField)).intValue();
- } catch (NumberFormatException e) {
- httpConfigurable.PROXY_PORT = 80;
- }
- httpConfigurable.PROXY_HOST = trimFieldText(myProxyHostTextField);
- }
-
- private static String trimFieldText(JTextField field) {
- String trimmed = field.getText().trim();
- field.setText(trimmed);
- return trimmed;
- }
-
- private void enableProxy (boolean enabled) {
- myHostNameLabel.setEnabled(enabled);
- myPortNumberLabel.setEnabled(enabled);
- myProxyHostTextField.setEnabled(enabled);
- myProxyPortTextField.setEnabled(enabled);
- mySocks.setEnabled(enabled);
- myHTTP.setEnabled(enabled);
- myProxyExceptions.setEnabled(enabled);
- myProxyExceptions.setBackground(myProxyPortTextField.getBackground());
- myProxyExceptionsLabel.setEnabled(enabled);
- myNoProxyForLabel.setEnabled(enabled);
-
- myProxyAuthCheckBox.setEnabled(enabled);
- enableProxyAuthentication(enabled && myProxyAuthCheckBox.isSelected());
- myCheckButton.setEnabled(canEnableConnectionCheck());
-
- final boolean autoDetectProxy = myAutoDetectProxyRb.isSelected();
- myPacUrlCheckBox.setEnabled(autoDetectProxy);
- myClearPasswordsButton.setEnabled(autoDetectProxy);
- myPacUrlTextField.setEnabled(autoDetectProxy && myPacUrlCheckBox.isSelected());
- }
-
- private void enableProxyAuthentication (boolean enabled) {
- myProxyPasswordLabel.setEnabled(enabled);
- myProxyLoginLabel.setEnabled(enabled);
-
- myProxyLoginTextField.setEnabled(enabled);
- myProxyPasswordTextField.setEnabled(enabled);
-
- myRememberProxyPasswordCheckBox.setEnabled(enabled);
- }
-
- public JComponent getComponent() {
- return myMainPanel;
- }
-
- public JComponent createComponent() {
- return myMainPanel;
- }
-
- @NotNull
- public String getId() {
- return getHelpTopic();
- }
-
- public Runnable enableSearch(final String option) {
- return null;
- }
-
- @Nls
- public String getDisplayName() {
- return NAME;
- }
-
- public String getHelpTopic() {
- return "http.proxy";
- }
-
- public void addActionListener(final ActionListener actionListener) {
- myProxyLoginTextField.addActionListener(actionListener);
- DocumentListener docListener = new DocumentListener() {
- public void insertUpdate(DocumentEvent e) {
- actionListener.actionPerformed(null);
- }
-
- public void removeUpdate(DocumentEvent e) {
- actionListener.actionPerformed(null);
- }
-
- public void changedUpdate(DocumentEvent e) {
- actionListener.actionPerformed(null);
- }
- };
- myProxyPasswordTextField.getDocument().addDocumentListener(docListener);
- myProxyAuthCheckBox.addActionListener(actionListener);
- myProxyPortTextField.getDocument().addDocumentListener(docListener);
- myProxyHostTextField.getDocument().addDocumentListener(docListener);
- myUseHTTPProxyRb.addActionListener(actionListener);
- myRememberProxyPasswordCheckBox.addActionListener(actionListener);
-
- }
- @Override
- public void disposeUIResources() {
+ public HTTPProxySettingsPanel(@NotNull HttpConfigurable settings) {
+ super(settings);
}
-}
+} \ No newline at end of file