com.levigo.util.swing
Class AbstractGeometryFrame

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.levigo.util.swing.AbstractGeometryFrame
All Implemented Interfaces:
ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants
Direct Known Subclasses:
AbstractPropertyGeometryFrame

public abstract class AbstractGeometryFrame
extends JFrame

Use AbstractGeometryFrame class as superclass for frames which provides services to read and save their location and size from a predefined preference store. Developers should override the restore geometry method as well as the save geometry method, because some preference stores might store blobs, eg. a Point or a Dimension, others not. As well, developers might use this class to define a unique window icon and to install common UI settings.

Caveat: The support of the automatic saving and of frames geometry DO NOT WORK PROPERLY if the frames default closing operation is set to JFrame.EXIT_ON_CLOSE. Use another default closing operation and make use of a WindowListener to shut down your application.

Author:
Carolin Köhler
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
static Image WINDOW_ICON
          The image that is used as a frame's icon image.
 
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
AbstractGeometryFrame(String title)
          Constructor for AbstractGeometryFrame.
 
Method Summary
protected static AbstractGeometryFrame getActiveFrame(String frameType, String frameID)
          Retrieve the first (i.e.
static Collection<JFrame> getActiveFrames()
          Retrieves a collection of all currently active frames.
protected static Collection<JFrame> getActiveFrames(String frameType)
          Retrieve all currently active frames of a given type.
static Collection<JFrame> getActiveFramesinZOrder()
          Retrieves a collection of all currently active frames in the current z-order.
protected static Image getAuxiliaryWindowIcon(String iconIdentifier)
          Returns the auxiliary window icon defined via the given icon identifier.
protected  Point getDefaultLocation()
          The default location for new frames.
protected  Dimension getDefaultSize()
          The default size for new frames.
 String getFrameID()
          Get the frame's ID.
abstract  String getFrameType()
          Returns the type or identification of this frame instance.
static com.levigo.util.preferences.PreferenceStore getPreferenceStore()
          Gets the PreferenceStore where user preferences can be stored.
static Frame getRecentlyFocusedFrame()
          Returns the most recently activated and focused AbstractGeometryFrame instance.
protected static Image getWindowIcon()
          Gets the window icon used as default icon for all frames of this type.
 void hide()
          Deprecated.  
protected  boolean isExistingFrameAt(Point p)
          Check whether there is already an active frame with the same type like this frame at the given location.
protected  void processWindowEvent(WindowEvent e)
           
static void putAuxiliaryWindowIcon(String iconIdentifier, Image image)
          Associates the specified auxiliary window icon with the specified identifier.
abstract  void restoreGeometry()
          Restore the frame geometry (size, location) from the preferences.
abstract  void saveGeometry()
          Save the frame geometry into the properties.
static void setPreferenceStore(com.levigo.util.preferences.PreferenceStore preferenceStore)
          Sets the preferenceStore.
static void setRecentlyFocusedFrame(AbstractGeometryFrame recentlyFocusedFrame)
          Sets the most recently activated and focused AbstractGeometryFrame instance.
static void setWindowIcon(Image image)
          Sets a window icon for all frames using this class as superclass.
 void show()
          Deprecated.  
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, 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, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isShowing, pack, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setVisible, 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, 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

WINDOW_ICON

public static Image WINDOW_ICON
The image that is used as a frame's icon image.

Constructor Detail

AbstractGeometryFrame

public AbstractGeometryFrame(String title)
Constructor for AbstractGeometryFrame.

Parameters:
title - The title of the frame
Method Detail

getDefaultLocation

protected Point getDefaultLocation()
The default location for new frames. This method may be overridden by subclasses to control the default location. The non overridden default is 1/10 from the top left corner of the screen down and right.

Returns:
The default location for a frame

getDefaultSize

protected Dimension getDefaultSize()
The default size for new frames. This method may be overridden by subclasses to control the default size. The non overridden default size is preset with 400x400.

Returns:
The default size for a frame

restoreGeometry

public abstract void restoreGeometry()
Restore the frame geometry (size, location) from the preferences.


isExistingFrameAt

protected boolean isExistingFrameAt(Point p)
Check whether there is already an active frame with the same type like this frame at the given location.

Parameters:
p - The location to check for an existing frame
Returns:
true, if a Frame is already existing at the given location

saveGeometry

public abstract void saveGeometry()
Save the frame geometry into the properties.


show

@Deprecated
public void show()
Deprecated. 

Overrides:
show in class Window
See Also:
Window.show()

hide

@Deprecated
public void hide()
Deprecated. 

Overrides:
hide in class Window
See Also:
Window.hide()

getRecentlyFocusedFrame

public static Frame getRecentlyFocusedFrame()
Returns the most recently activated and focused AbstractGeometryFrame instance.

Returns:
the recently focused frame

getActiveFrames

public static Collection<JFrame> getActiveFrames()
Retrieves a collection of all currently active frames. This collection is a clone of the active frame registry, so changes of this collection will not change the frame registry and vice versa. Understand this collection as a snapshot of the actual active registered frames.

Returns:
A snapshot of all currently registered active frames.

getActiveFramesinZOrder

public static Collection<JFrame> getActiveFramesinZOrder()
Retrieves a collection of all currently active frames in the current z-order. This collection is a clone of the active frame registry, so changes of this collection will not change the frame registry and vice versa. Understand this collection as a snapshot of the actual active registered frames.

The resulting collection will be ordered in ascending z-order, i.e. the top-most frame appears first. This order, however, will only reflect frames which are derived from AbstractGeometryFrame. Therefore the top-most frame is not guaranteed to be the focus owner.

Returns:
A snapshot of all currently registered active frames.

getActiveFrames

protected static Collection<JFrame> getActiveFrames(String frameType)
Retrieve all currently active frames of a given type.

Parameters:
frameType - The type of a frame.
Returns:
All currently registered active frames of a given type.

getActiveFrame

protected static AbstractGeometryFrame getActiveFrame(String frameType,
                                                      String frameID)
Retrieve the first (i.e. the one and only) active frame of a given type and ID.

Parameters:
frameType - The type of a frame
frameID - The ID of the frame to find
Returns:
The active frame with the given type and ID that was found among the registered frames.

getPreferenceStore

public static com.levigo.util.preferences.PreferenceStore getPreferenceStore()
Gets the PreferenceStore where user preferences can be stored. This getter is especially useful to store further preference values.

Returns:
Returns a PreferenceStore

setPreferenceStore

public static void setPreferenceStore(com.levigo.util.preferences.PreferenceStore preferenceStore)
Sets the preferenceStore. This will be done by the initializing component that is responsible for the startup.

Parameters:
preferenceStore - The preferenceStore to set

setWindowIcon

public static void setWindowIcon(Image image)
Sets a window icon for all frames using this class as superclass. Already existing frames will be updated.

Parameters:
image - new Window icon for all frames of this type

putAuxiliaryWindowIcon

public static void putAuxiliaryWindowIcon(String iconIdentifier,
                                          Image image)
Associates the specified auxiliary window icon with the specified identifier. Auxiliary window icons can be used, if an application requires several geometry frames, but these frame should be marked with different icons. Adding an icon as auxiliary icon does not change any existing frames.

Parameters:
iconIdentifier - key with which the specified value is to be associated.
image - value to be associated with the specified key.

getAuxiliaryWindowIcon

protected static Image getAuxiliaryWindowIcon(String iconIdentifier)
Returns the auxiliary window icon defined via the given icon identifier.

Parameters:
iconIdentifier -
Returns:
Image

getWindowIcon

protected static Image getWindowIcon()
Gets the window icon used as default icon for all frames of this type.

Returns:
Icon

getFrameID

public String getFrameID()
Get the frame's ID. The ID should be unique among all client frames.

Returns:
frame id

getFrameType

public abstract String getFrameType()
Returns the type or identification of this frame instance. This type information should be unique because it is used as identifier for re-/storing frames location, size and so on.

Returns:
frame type

setRecentlyFocusedFrame

public static void setRecentlyFocusedFrame(AbstractGeometryFrame recentlyFocusedFrame)
Sets the most recently activated and focused AbstractGeometryFrame instance.

Parameters:
recentlyFocusedFrame -

processWindowEvent

protected void processWindowEvent(WindowEvent e)
Overrides:
processWindowEvent in class JFrame
See Also:
Window.processWindowEvent(java.awt.event.WindowEvent)


Copyright © 1995-2020 levigo holding gmbh. All Rights Reserved.