de.enough.polish.swing
Class SwingApplication

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 de.enough.polish.swing.SwingApplication
All Implemented Interfaces:
Application, ImageObserver, MenuContainer, Serializable, Accessible, RootPaneContainer, WindowConstants
Direct Known Subclasses:
FontCreator, SwingDataEditor

public class SwingApplication
extends JFrame
implements Application

Base class for standalong swing applications.

Copyright Enough Software 2004 - 2011

 history
        Dec 3, 2004 - rob creation
 

Author:
Robert Virkus, robert@enough.de
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  de.enough.polish.swing.SwingApplication.ApplicationDropListener applicationDropListener
           
protected  String applicationName
           
protected  boolean isMacOsX
           
protected  NativeIntegration nativeIntegration
           
protected  boolean systemExitOnQuit
           
 
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
SwingApplication(String title, boolean systemExitOnQuit)
           
 
Method Summary
 void about()
           
 JScrollPane createScrollPane(JComponent component)
           
protected  String getAboutText()
           
protected  String getLookAndFeel()
          Retrieves the look and feel that should be set.
protected  Class getNativeIntegrationClass()
           
protected  int getNativeShortcutKeyMask()
           
protected  void loadNativeIntegration()
          Loads the integration for the underlying OS.
 void openApplication()
           
 void openDocument(File file)
           
 void preferences()
           
 void quit()
          Quits the application and calls saveSettings() first.
protected  void registerDropTarget(Component component)
           
protected  void registerWindowListener()
          Registers a standard window listener that in turns calls quit when the main window is closed.
protected  boolean saveSettings()
          Saves the settings of the application.
 void setIcon(String url)
          Sets the icon for this application.
 void setIcon(String url, Class applicationClass)
          Sets the icon for this application.
protected  void setLookAndFeel()
          Sets the look and feel of this application.
protected  void setWindowDirtyFlag(boolean isDirty)
           
 void showErrorMessageDialog(String message, String title)
          Shows the user a error message with a OK option.
 void showInformationMessageDialog(String message, String title)
          Shows the user a message with a OK option.
 int showYesNoCancelDialog(String message, String title)
          Queries the user with a yes/no question with the option to cancel.
 boolean showYesNoDialog(String message, String title)
          Queries the user with a yes/no question.
 
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

systemExitOnQuit

protected boolean systemExitOnQuit

isMacOsX

protected boolean isMacOsX

nativeIntegration

protected NativeIntegration nativeIntegration

applicationName

protected String applicationName

applicationDropListener

protected final de.enough.polish.swing.SwingApplication.ApplicationDropListener applicationDropListener
Constructor Detail

SwingApplication

public SwingApplication(String title,
                        boolean systemExitOnQuit)
Method Detail

setIcon

public void setIcon(String url)
Sets the icon for this application. When the icon was not found, nothing is changed.

Parameters:
url - the URL of the icon

setIcon

public void setIcon(String url,
                    Class applicationClass)
Sets the icon for this application. When the icon was not found, nothing is changed.

Parameters:
url - the URL of the icon
applicationClass -

registerDropTarget

protected void registerDropTarget(Component component)

loadNativeIntegration

protected void loadNativeIntegration()
Loads the integration for the underlying OS.


setLookAndFeel

protected void setLookAndFeel()
Sets the look and feel of this application. Subclasses can override the setting of the "native" look and feel.


getLookAndFeel

protected String getLookAndFeel()
Retrieves the look and feel that should be set. Subclasses can override this method for using another L&F.

Returns:
the system's look and feel class name, when null is returned no look and feel will be set.

getNativeIntegrationClass

protected Class getNativeIntegrationClass()
                                   throws ClassNotFoundException
Throws:
ClassNotFoundException

getAboutText

protected String getAboutText()

createScrollPane

public JScrollPane createScrollPane(JComponent component)

setWindowDirtyFlag

protected void setWindowDirtyFlag(boolean isDirty)

getNativeShortcutKeyMask

protected int getNativeShortcutKeyMask()

quit

public void quit()
Quits the application and calls saveSettings() first.

Specified by:
quit in interface Application
See Also:
saveSettings()

saveSettings

protected boolean saveSettings()
Saves the settings of the application. The default implementation always returns true.

Returns:
true when the settings could be saved and the application can continue to quit.

about

public void about()
Specified by:
about in interface Application

preferences

public void preferences()
Specified by:
preferences in interface Application

openApplication

public void openApplication()
Specified by:
openApplication in interface Application

openDocument

public void openDocument(File file)
Specified by:
openDocument in interface Application

registerWindowListener

protected void registerWindowListener()
Registers a standard window listener that in turns calls quit when the main window is closed.


showYesNoDialog

public boolean showYesNoDialog(String message,
                               String title)
Queries the user with a yes/no question.

Parameters:
message - the question
title - the title
Returns:
true when the YES option was selected

showYesNoCancelDialog

public int showYesNoCancelDialog(String message,
                                 String title)
Queries the user with a yes/no question with the option to cancel.

Parameters:
message - the question
title - the title
Returns:
either JOptionPane.YES_OPTION, JOptionPane.NO_OPTION or JOptionPane.CANCEL_OPTION

showErrorMessageDialog

public void showErrorMessageDialog(String message,
                                   String title)
Shows the user a error message with a OK option.

Parameters:
message - the message
title - the title

showInformationMessageDialog

public void showInformationMessageDialog(String message,
                                         String title)
Shows the user a message with a OK option.

Parameters:
message - the message
title - the title