com.pixelmed.display
Class ApplicationFrame

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 com.pixelmed.display.ApplicationFrame
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants
Direct Known Subclasses:
DicomBrowser, DicomCleaner, DicomImageViewer, DoseUtility, DownloadOrTransmit, ECGViewer

public class ApplicationFrame
extends JFrame

This class provides the infrastructure for creating applications (which extend this class) and provides them with utilities for creating a main window with a title and default close and dispose behavior, as well as access to properties, and a window snapshot function.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Nested classes/interfaces inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Nested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  com.pixelmed.display.StatusBarManager statusBarManager
           
 
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
ApplicationFrame()
          Construct a window with the default size and title and no property source.
ApplicationFrame(int closeOperation)
          Construct a window with the default size and title and no property source.
ApplicationFrame(String title)
          Construct a window with the default size, specified title and no property source.
ApplicationFrame(String title, int closeOperation)
          Construct a window with the default size, specified title and no property source.
ApplicationFrame(String title, String applicationPropertyFileName)
          Construct a window with the default size, and specified title and property sources.
ApplicationFrame(String title, String applicationPropertyFileName, int closeOperation)
          Construct a window with the default size, and specified title and property sources.
ApplicationFrame(String title, String applicationPropertyFileName, int w, int h)
          Construct a window with the specified size, title and property sources.
ApplicationFrame(String title, String applicationPropertyFileName, int w, int h, int closeOperation)
          Construct a window with the specified size, title and property sources.
 
Method Summary
protected  void createGUI()
          Do what is necessary to build an application window.
protected  String getApplicationPropertyFileName()
          Get the name of the property file set for the application.
protected static String getBuildDate()
          Get the date the package was built.
protected  Properties getProperties()
          Get the properties for the application that have already been loaded (see loadProperties()).
static String getPropertyInsistently(Properties properties, String key)
          Searches for the property with the specified key in the specified property list, insisting on a value.
 String getPropertyInsistently(String key)
          Searches for the property with the specified key in this application's property list, insisting on a value.
protected static String getReleaseString()
          Get the release string for this application.
protected  JLabel getStatusBar()
          Setup a StatusBarManager and return its StatusBar.
protected  void loadProperties()
          Store the properties from the current properties file.
static void main(String[] arg)
          For testing.
protected static String makePathToFileInUsersHomeDirectory(String fileName)
          Given a file name, such as the properties file name, make a path to it in the user's home directory.
protected  void setApplicationPropertyFileName(String applicationPropertyFileName)
          Set the name of the property file set for the application.
static void setBackgroundForGUI()
          Setup background for UI.
static void setInternationalizedFontsForGUI()
          Setup internationalized fonts if possible.
static void setPreferredLookAndFeelForPlatform()
          Setup preferred Look and Feel.
protected  void storeProperties(String comment)
          Store the current properties in the current properties file.
protected  File takeSnapShot(Rectangle extent)
          Store a JPEG snapshot of the specified window in the user's home directory.
 
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, 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, transferFocusBackward, 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

statusBarManager

protected com.pixelmed.display.StatusBarManager statusBarManager
Constructor Detail

ApplicationFrame

public ApplicationFrame()

Construct a window with the default size and title and no property source.

Does not show the window.

Will exit the application when the window closes.


ApplicationFrame

public ApplicationFrame(int closeOperation)

Construct a window with the default size and title and no property source.

Does not show the window.

Parameters:
closeOperation - argument to setDefaultCloseOperation()

ApplicationFrame

public ApplicationFrame(String title)

Construct a window with the default size, specified title and no property source.

Does not show the window.

Will exit the application when the window closes.

Parameters:
title - the title for the top bar decoration

ApplicationFrame

public ApplicationFrame(String title,
                        int closeOperation)

Construct a window with the default size, specified title and no property source.

Does not show the window.

Parameters:
title - the title for the top bar decoration
closeOperation - argument to setDefaultCloseOperation()

ApplicationFrame

public ApplicationFrame(String title,
                        String applicationPropertyFileName)

Construct a window with the default size, and specified title and property sources.

Does not show the window.

Will exit the application when the window closes.

Parameters:
title - the title for the top bar decoration
applicationPropertyFileName - the name of the properties file

ApplicationFrame

public ApplicationFrame(String title,
                        String applicationPropertyFileName,
                        int closeOperation)

Construct a window with the default size, and specified title and property sources.

Does not show the window.

Parameters:
title - the title for the top bar decoration
applicationPropertyFileName - the name of the properties file
closeOperation - argument to setDefaultCloseOperation()

ApplicationFrame

public ApplicationFrame(String title,
                        String applicationPropertyFileName,
                        int w,
                        int h)

Construct a window with the specified size, title and property sources.

Does not show the window.

Will exit the application when the window closes.

Parameters:
title - the title for the top bar decoration
applicationPropertyFileName - the name of the properties file
w - width
h - height

ApplicationFrame

public ApplicationFrame(String title,
                        String applicationPropertyFileName,
                        int w,
                        int h,
                        int closeOperation)

Construct a window with the specified size, title and property sources.

Does not show the window.

Parameters:
title - the title for the top bar decoration
applicationPropertyFileName - the name of the properties file
w - width
h - height
closeOperation - argument to setDefaultCloseOperation()
Method Detail

getReleaseString

protected static String getReleaseString()

Get the release string for this application.

Returns:
the release string

getBuildDate

protected static String getBuildDate()

Get the date the package was built.

Returns:
the build date

getStatusBar

protected JLabel getStatusBar()

Setup a StatusBarManager and return its StatusBar.

The initial string in the StatusBar is composed of the build date and release string.

Returns:
the StatusBar

makePathToFileInUsersHomeDirectory

protected static String makePathToFileInUsersHomeDirectory(String fileName)

Given a file name, such as the properties file name, make a path to it in the user's home directory.

Parameters:
fileName - the file name to make a path to

loadProperties

protected void loadProperties()

Store the properties from the current properties file.


storeProperties

protected void storeProperties(String comment)
                        throws IOException

Store the current properties in the current properties file.

Parameters:
comment - the description to store as the header of the properties file
Throws:
IOException

getProperties

protected Properties getProperties()

Get the properties for the application that have already been loaded (see loadProperties()).

Returns:
the properties

getApplicationPropertyFileName

protected String getApplicationPropertyFileName()

Get the name of the property file set for the application.

Returns:
the property file name

setApplicationPropertyFileName

protected void setApplicationPropertyFileName(String applicationPropertyFileName)

Set the name of the property file set for the application.

Parameters:
applicationPropertyFileName - the property file name

getPropertyInsistently

public static String getPropertyInsistently(Properties properties,
                                            String key)
                                     throws Exception

Searches for the property with the specified key in the specified property list, insisting on a value.

Parameters:
properties - the property list to search
key - the property name
Throws:
Exception - if there is no such property or it has no value

getPropertyInsistently

public String getPropertyInsistently(String key)
                              throws Exception

Searches for the property with the specified key in this application's property list, insisting on a value.

Parameters:
key - the property name
Throws:
Exception - if there is no such property or it has no value

takeSnapShot

protected File takeSnapShot(Rectangle extent)

Store a JPEG snapshot of the specified window in the user's home directory.

Parameters:
extent - the rectangle to take a snapshot of (typically this.getBounds() for whole application)

setInternationalizedFontsForGUI

public static void setInternationalizedFontsForGUI()

Setup internationalized fonts if possible.

Invoked by createGUI().


setBackgroundForGUI

public static void setBackgroundForGUI()

Setup background for UI.

Invoked by createGUI().


setPreferredLookAndFeelForPlatform

public static void setPreferredLookAndFeelForPlatform()

Setup preferred Look and Feel.

Invoked by createGUI().


createGUI

protected void createGUI()

Do what is necessary to build an application window.

Invoked by constructors.

Sub-classes should call this if they do not use the super() constructors, but should NOT usually need to override it, but rather should override the methods that it calls.


main

public static void main(String[] arg)

For testing.

Shows an empty default sized window.

Parameters:
arg - ignored