Author: Josef Holy
Version: final
Last update: 1/8/2006
Table Of Contents
1.
Goal
2.
UI Spec
2.1.
General
Options Dialog
2.1.1.
General Options Dialog
Components
2.2.
Advanced
Proxy Options Dialog
2.2.1.
Advanced
Proxy Options Components
3.
Issues
1. Goal
The goal is to unify the way of how our users set up their proxy
settings in NetBeans. The initial set of requirements for this spec is
here.
UI described in this document should be invoked whenever the NB user is
asked to configure the proxy - e.g. when using various versioning
systems, welcome screen and other network-dependent functionality in
NetBeans.
2. UI Spec
It is important from the UI point of view to provide the users with
some consistent way of setting the proxy. The users should use one
proxy setting dialog all across the IDE. The most natural way to do
that is to use the current dialog in the Options General tab. This
dialog just has to be a bit extended in order to reflect all the
requirements gathered at
http://jupiter.czech.sun.com/wiki/view/Coreteam/NetworkProxyAPIRequirements,
e.g. HTTPS and
SOCKS proxy settings, as well as the settings for a case when the proxy
requires authentication.
2.1. General Options Dialog
The Proxy configuration dialog is a part of the General Options Dialog,
as shown on the Figure 1 below.
Figure
1: General options dialog with redesigned proxy settings.
2.1.1. General
Options Dialog Components
The dialog on the Figure 1 consists out of the following components:
- Proxy Configuration HTTP Proxy
input field - serves for configuring the HTTP Proxy.
- Proxy Settings radio-buttons
- No Proxy Radio-button - When
checked, there is no proxy set. When checked, the HTTP Proxy component
is disabled. If it was set to some value before, this value should be
persisted and reused again later on. The More button is disabled as well.
- Use System Proxy Settings
- When checked, the system-wide proxy is used. This should work on
Windows as well as on Gnome and MacOS systems. When checked, the HTTP
Proxy textfield as well as the More
button are disabled.
- Manual Proxy Configuration
- When checked, the HTTP Proxy and More Button components are enabled,
otherwise they are disabled - this means, that unless the user checks
this radio button, he is unable to get to the Advanced Proxy
Configuration Dialog described below.
- More button - When
pressed, it invokes the Advanced
Proxy Configuration modal dialog, which is described further.
2.2. Advanced Proxy
Options dialog
Figure
2: Advanced Proxy Options dialog.
2.2.1. Advanced Proxy Options
Dialog components
This dialog contains the following components:
- Proxy configuration input fields
- serve for configuring the respective proxy types - HTTP Proxy, HTTPS
Proxy, SOCKS Proxy. The HTTP Proxy field value should be taken from the
General Options Dialog.
- 'Use the same proxy settings for
all protocols.' check-box - Should be checked on by default.
When checked, the HTTPS Proxy and SOCKS Proxy components are disabled
and their values are set to the value of the HTTP proxy value. If the
HTTPS and SOCKS values were already set before, then their values are
persisted and used later again when the check-box is unset. When this
check-box is set and when the user is typing something into the HTTP
proxy/port text-fields, the text should be dynamically added to the
HTTPS and SOCKS text-fields as well.
- No proxy for text-field: The user can enter hosts, or IP
address ranges which shouldn't be accessed via proxy. Default should be
detected and should contain localhost, 127.0.0.1 etc. The label below
the text-field shows example values.
- Proxy Requires Authentication
check-box: When checked, the Username
and Password textfields are enabled.
The user is then allowed to enter the Username and Password values for
the proxy, which requires the authentication.
3. Issues
- How is it with the SOCKS V4/V5 switch? Does this need to be part
of the configuration? Do we have to bother our users with that? If we
need it, then we should add 2 radio buttons below the SOCKS Proxy
text-fields.
- Can there be more than one authorization proxy at once - e.g. 2
different authorization settings, one for the HTTP and one for the
SOCKS proxy? It's most likely a corner case.