Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.ui.net/src/org/eclipse/ui/internal/net/ProxyPreferencePage.java')
-rw-r--r--bundles/org.eclipse.ui.net/src/org/eclipse/ui/internal/net/ProxyPreferencePage.java63
1 files changed, 63 insertions, 0 deletions
diff --git a/bundles/org.eclipse.ui.net/src/org/eclipse/ui/internal/net/ProxyPreferencePage.java b/bundles/org.eclipse.ui.net/src/org/eclipse/ui/internal/net/ProxyPreferencePage.java
index 181017c37..20e77f8bb 100644
--- a/bundles/org.eclipse.ui.net/src/org/eclipse/ui/internal/net/ProxyPreferencePage.java
+++ b/bundles/org.eclipse.ui.net/src/org/eclipse/ui/internal/net/ProxyPreferencePage.java
@@ -315,6 +315,17 @@ public class ProxyPreferencePage extends PreferencePage implements
entryList[index].setUseSameProtocol(useSameProtocol, entryList[0]);
}
}
+
+ public void updateErrorMessage() {
+ for (int index = 0; index < entryList.length; index++) {
+ String message = entryList[index].getErrorMessage();
+ if (message != null) {
+ setErrorMessage(message);
+ return;
+ }
+ }
+ setErrorMessage(null);
+ }
private GridData newGridData(int span, int verticalIndent,
boolean horizontal, boolean vertical) {
@@ -344,6 +355,7 @@ public class ProxyPreferencePage extends PreferencePage implements
String prevHostname;
int prevPort;
private final IProxyData proxyData;
+ private String errorMessage;
public Entry(IProxyData proxyData) {
this.proxyData = proxyData;
@@ -359,6 +371,7 @@ public class ProxyPreferencePage extends PreferencePage implements
setEnabled(false);
}
}
+ updateMessage();
}
public void setUseSameProtocol(boolean useSameProtocol, Entry httpEntry) {
@@ -442,11 +455,47 @@ public class ProxyPreferencePage extends PreferencePage implements
boolean isHttpProxy() {
return getProxy().getType().equals(IProxyData.HTTP_PROXY_TYPE);
}
+
+ boolean isHttpsProxy() {
+ return getProxy().getType().equals(IProxyData.HTTPS_PROXY_TYPE);
+ }
public IProxyData getProxy() {
return proxyData;
}
+ public boolean updateMessage() {
+ if (hostname.isEnabled()) {
+ if (isSocksProxy() || isHttpProxy()|| !useSameProxyButton.getSelection()) {
+ String hostString = hostname.getText();
+ if (hostString.startsWith(" ") || hostString.endsWith(" ")) { //$NON-NLS-1$ //$NON-NLS-2$
+ setErrorMessage(NetUIMessages.ProxyPreferencePage_41);
+ return false;
+ }
+ String portString = port.getText();
+ if (portString.length() > 0) {
+ try {
+ int port = Integer.valueOf(portString).intValue();
+ if (port < 0) {
+ setErrorMessage(NetUIMessages.ProxyPreferencePage_42);
+ return false;
+ }
+ } catch (NumberFormatException e) {
+ setErrorMessage(NetUIMessages.ProxyPreferencePage_43);
+ return false;
+ }
+ }
+ }
+ }
+ setErrorMessage(null);
+ return true;
+ }
+
+ private void setErrorMessage(String message) {
+ errorMessage = message;
+ updateErrorMessage();
+ }
+
public void applyValues() {
IProxyData proxy = getProxy();
boolean enableAuth = enableProxyAuth.getSelection();
@@ -484,6 +533,11 @@ public class ProxyPreferencePage extends PreferencePage implements
gridData.widthHint = 120;
hostname.setLayoutData(gridData);
hostname.setText(getHostName(proxy));
+ hostname.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ Entry.this.updateMessage();
+ }
+ });
portLabel = new Label(parent, SWT.NONE);
portLabel.setText(NetUIMessages.ProxyPreferencePage_22);
@@ -493,6 +547,11 @@ public class ProxyPreferencePage extends PreferencePage implements
gridData.widthHint = 50;
port.setLayoutData(gridData);
port.setText(getPortString(proxy));
+ port.addModifyListener(new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ Entry.this.updateMessage();
+ }
+ });
}
private String getLabel(IProxyData data) {
@@ -540,5 +599,9 @@ public class ProxyPreferencePage extends PreferencePage implements
portLabel.setEnabled(enabled);
port.setEnabled(enabled);
}
+
+ public String getErrorMessage() {
+ return errorMessage;
+ }
}
}

Back to the top