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, 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 static String releaseString
           
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(String title)
          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 w, int h)
          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 that closes when told.
protected  String getApplicationPropertyFileName()
          Get the name of the property file set for the application.
protected  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  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.
protected  void setInternationalizedFontsForGUI()
          Setup internationalized fonts if possible.
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, 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

releaseString

protected static String releaseString

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.


ApplicationFrame

public ApplicationFrame(String title)

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

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.

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

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.

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

getReleaseString

protected String getReleaseString()

Get the release string for this application.

Returns:
the release string

getBuildDate

protected 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

protected void setInternationalizedFontsForGUI()

Setup internationalized fonts if possible.


createGUI

protected void createGUI()

Do what is necessary to build an application window that closes when told.


main

public static void main(String[] arg)

For testing.

Shows an empty default sized window.

Parameters:
arg - ignored