# Class ProxySetupFrame

java.lang.Object
java.awt.Component
java.awt.Container
java.awt.Window
java.awt.Frame
javax.swing.JFrame
uk.ac.starlink.util.gui.ProxySetupFrame

All Implemented Interfaces:
  `ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants`

public class ProxySetupFrame extends JFrame
Create a dialog window for displaying and modifying the current proxy server configuration as found in a backing store.

This is basically an interface to changes the values of the system properties:

- `http.proxySet` A boolean (true or false) indicating whether to use the proxy.
- `http.proxyHost` The proxy server name.
- `http.proxyPort` The proxy server port.
- `http.nonProxyHosts` A list of names that do not require the proxy server (e.g. *.dur.ac.uk|localhost)

A typical invocation would follow the sequence:

        ProxySetupFrame.restore( null );
        ...
        ProxySetupFrame frame = new ProxySetupFrame();

Which would restore the backing store configuration first and then create a dialog to change or view it. Typically the restoration would occur in an network aware applications startup code (i.e. well before the creation of the frame itself).

Version:
  $Id$
Author:
  Peter W. Draper
See Also:
  - Serialized Form

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`protected class`
`ProxySetupFrame.AcceptAction`
Inner class defining Action for closing window and keeping changes.
`protected class`
`ProxySetupFrame.CancelAction`
Inner class defining Action for closing window and discarding changes.

### Nested classes/interfaces inherited from class JFrame

`JFrame.AccessibleJFrame`

### Nested classes/interfaces inherited from class Frame

`Frame.AccessibleAWTFrame`

### Nested classes/interfaces inherited from class Window

`Window.AccessibleAWTWindow, Window.Type`

### Nested classes/interfaces inherited from class Container

`Container.AccessibleAWTContainer`

### Nested classes/interfaces inherited from class Component

`Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected JButton`
`acceptButton`
`protected JButton`
`cancelButton`
`protected JMenuItem`
`closeFileMenu`
`protected JMenu`
`fileMenu`
`protected JTextField`
`hostName`
`protected JMenuBar`
`menuBar`
Menubar and various menus and items that it contains.
`protected JCheckBox`
`needProxy`
Other UI elements
`protected JTextField`
`nonHostNames`
`protected JTextField`
`portNumber`

### Fields inherited from class JFrame

`accessibleContext, rootPane, rootPaneCheckingEnabled`

### Fields inherited from class Frame

`CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR`

### Fields inherited from class Component

`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

### Fields inherited from interface WindowConstants

`DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

## Constructor Summary

Constructors
Constructor
Description
`ProxySetupFrame()`
Create an instance.

## Method Summary

Modifier and Type
Method
Description
`protected void`
`checkEntryStates()`
Check the entry states for the proxy hostname and port.
`protected void`
`closeWindowEvent(boolean accept)`
Close the window by withdrawing it.
`protected void`
`initFrame()`
Initialise frame properties (disposal, menus etc.).
`protected void`
`initMenus()`
Initialise the menu bar and related actions.
`protected void`
`initUI()`
Initialise the main part of the user interface.
`protected void`
`matchToInterface()`
Match the system properties to the state of interface.
`protected void`
`matchToProperties()`
Match interface to the current state of the system properties.
`static void`
`restore(ProxySetupFrame target)`
Restore from backing store, updating the system properties.
`static void`
`store(ProxySetupFrame target)`
Save state of system properties to backing store.

### Methods inherited from class JFrame

`addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update`

### Methods inherited from class Frame

`addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated`

### Methods inherited from class Window

`addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront`

### Methods inherited from class Container

`add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getMousePosition, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusDownCycle, validate, validateTree`

### Methods inherited from class Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface MenuContainer

`getFont, postEvent`

## Field Details

### menuBar

protected JMenuBar menuBar
Menubar and various menus and items that it contains.

### fileMenu

protected JMenu fileMenu

### closeFileMenu

protected JMenuItem closeFileMenu

### needProxy

protected JCheckBox needProxy
Other UI elements

### hostName

protected JTextField hostName

### portNumber

protected JTextField portNumber

### nonHostNames

protected JTextField nonHostNames

### acceptButton

protected JButton acceptButton

### cancelButton

protected JButton cancelButton

## Constructor Details

### ProxySetupFrame

public ProxySetupFrame()
Create an instance.

## Method Details

### initUI

protected void initUI()
Initialise the main part of the user interface.

### initFrame

protected void initFrame()
Initialise frame properties (disposal, menus etc.).

### initMenus

protected void initMenus()
Initialise the menu bar and related actions.

### matchToProperties

protected void matchToProperties()
Match interface to the current state of the system properties.

### matchToInterface

protected void matchToInterface()
Match the system properties to the state of interface.

### checkEntryStates

protected void checkEntryStates()
Check the entry states for the proxy hostname and port. These are enabled when a proxy is required and disabled when not.

### closeWindowEvent

protected void closeWindowEvent(boolean accept)
Close the window by withdrawing it.

Parameters:
  `accept` - if true then the system global properties are matched to those of the interface. Otherwise the interface is modified to match the system properties (thus "accepting" or "cancelling" modifications to the proxy).

### restore

public static void restore(ProxySetupFrame target)
Restore from backing store, updating the system properties.

Parameters:
  `target` - if not null, then this should be a ProxySetupFrame that will be initialise to match the state of the backing store contents.

### store

public static void store(ProxySetupFrame target)
Save state of system properties to backing store.

Parameters:
  `target` - if not null, then this should be a ProxySetupFrame that has a setup that should be used in preference to the system properties. Note that after this method the system properties will be modified to reflect the stored state.