org.hd.d.pg2k.clApp.atHome
Class AHJWSMain

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by java.awt.Window
              extended by java.awt.Frame
                  extended by javax.swing.JFrame
                      extended by org.hd.d.pg2k.clApp.atHome.AHJWSMain
All Implemented Interfaces:
java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

public final class AHJWSMain
extends javax.swing.JFrame
implements java.awt.event.ActionListener

Main (UI) class of JWS-based exhibit uploader. Runs as a Swing App using JNLP resource-access facilities such as persistence and file read/write.

This class/file contains as little non-UI code as is reasonably practical, so that if we change the UI details then other classes should be unaffected.

We don't really want/need this class to be Serializable, but this class inherits Serializable from JFrame.

See Also:
Serialized Form

Nested Class Summary
private static class AHJWSMain.MouseHandler
          This adapter is constructed to handle mouse-over component events.
private static class AHJWSMain.SISListener
          Listener class used to veto attempts to start another app instance.
 
Nested classes/interfaces inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
private  AboutAction aboutAction
          The action performed by the "About" menu entry.
private static java.lang.String APPLICATION_WINDOW_TITLE
          Title shown for application.
private  ExitAction exitAction
          The action performed by the "Exit" menu entry.
private  SimpleLoggerIF logger
          Central logger instance for uploader; never null.
private  AHStandaloneMain logic
          Our companion "business-logic" class; never null.
private  AHJWSMain.MouseHandler mouseHandler
          Handles Mouse over messages on toolbar buttons and menu items; never null.
private  java.awt.event.ActionListener pollAL
          ActionListener invoked by pollUI; never null.
private static long serialVersionUID
          Unique Serialisation class ID generated by http://random.hd.org/.
private  AHJWSMain.SISListener sisListener
          Single listener instance.
private  javax.swing.JLabel status
          Status bar; never null.
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.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 java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
private AHJWSMain()
          Create an instance of the Worker app main window.
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent evt)
          This method acts as the Action handler delegate for all the actions.
private  Tuple.Pair<javax.swing.JComponent,java.awt.event.ActionListener> createMainPane()
          Create the (main) tabbed pane component and a lister for UI polling.
private  javax.swing.JMenuBar createMenu()
          Create the application menu bar.
private  javax.swing.JLabel createStatusBar()
          Creates and initialises a status bar.
private  Tuple.Pair<javax.swing.JComponent,java.awt.event.ActionListener> createStatusPanel()
          Make the login/status component; never null.
private  void initActions()
          This method should be called before creating the UI to create all the Actions.
static void main(java.lang.String[] args)
          Main method invoked from JWS/JNLP.
private static java.awt.Insets makeStandardInsets()
          Make the standard insets to wrap round most components.
private  void pollUI(java.awt.event.ActionEvent e)
          Poll UI (in Swing thread, ie Swing-safe).
private  void registerAction(JLFAbstractAction action)
           
private  void shutdown()
          Perform any activity required to shut down cleanly, eg save state, then exit.
 
Methods inherited from class javax.swing.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 java.awt.Frame
addNotify, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOwnedWindows, getOwner, getOwnerlessWindows, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, show, toBack, toFront
 
Methods inherited from class java.awt.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, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, transferFocusBackward, transferFocusDownCycle, validate, validateTree
 
Methods inherited from class java.awt.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, getBackground, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, 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, isOpaque, 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, requestFocusInWindow, requestFocusInWindow, resize, resize, setBackground, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

logger

private final SimpleLoggerIF logger
Central logger instance for uploader; never null. This instance may log to the status bar and elsewhere.


logic

private final AHStandaloneMain logic
Our companion "business-logic" class; never null.


aboutAction

private final AboutAction aboutAction
The action performed by the "About" menu entry.


exitAction

private final ExitAction exitAction
The action performed by the "Exit" menu entry.


status

private final javax.swing.JLabel status
Status bar; never null.


sisListener

private final AHJWSMain.SISListener sisListener
Single listener instance.


mouseHandler

private final AHJWSMain.MouseHandler mouseHandler
Handles Mouse over messages on toolbar buttons and menu items; never null.


APPLICATION_WINDOW_TITLE

private static final java.lang.String APPLICATION_WINDOW_TITLE
Title shown for application.

See Also:
Constant Field Values

pollAL

private final java.awt.event.ActionListener pollAL
ActionListener invoked by pollUI; never null.


serialVersionUID

private static final long serialVersionUID
Unique Serialisation class ID generated by http://random.hd.org/.

See Also:
Constant Field Values
Constructor Detail

AHJWSMain

private AHJWSMain()
Create an instance of the Worker app main window. Designed to be called by main().

Method Detail

shutdown

private void shutdown()
               throws java.lang.UnsupportedOperationException
Perform any activity required to shut down cleanly, eg save state, then exit. This should try to avoid taking a long time.

This may throw an UnsupportedOperationException to try to veto an exit that the user changes their mind about, eg because we have work in progress!

Throws:
java.lang.UnsupportedOperationException - if the user vetoes the shut-down

initActions

private void initActions()
This method should be called before creating the UI to create all the Actions.


registerAction

private void registerAction(JLFAbstractAction action)

createMenu

private javax.swing.JMenuBar createMenu()
Create the application menu bar.


createMainPane

private Tuple.Pair<javax.swing.JComponent,java.awt.event.ActionListener> createMainPane()
Create the (main) tabbed pane component and a lister for UI polling.


createStatusPanel

private Tuple.Pair<javax.swing.JComponent,java.awt.event.ActionListener> createStatusPanel()
Make the login/status component; never null. Also creates a listener suitable to poll regularly from the Swing thread to do async UI updates.


makeStandardInsets

private static java.awt.Insets makeStandardInsets()
Make the standard insets to wrap round most components. Note that the returned Insets() object is mutable.


createStatusBar

private javax.swing.JLabel createStatusBar()
Creates and initialises a status bar.


actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)
This method acts as the Action handler delegate for all the actions.

Specified by:
actionPerformed in interface java.awt.event.ActionListener

pollUI

private void pollUI(java.awt.event.ActionEvent e)
Poll UI (in Swing thread, ie Swing-safe).


main

public static void main(java.lang.String[] args)
Main method invoked from JWS/JNLP. We don't use any arguments passed to us.


DHD Multimedia Gallery V1.50.55

Copyright (c) 1996-2008, Damon Hart-Davis. All rights reserved.