org.xith3d.utility.launching
Class DisplayOptions

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.xith3d.utility.launching.DisplayOptions
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 abstract class DisplayOptions
extends javax.swing.JFrame
implements java.awt.event.ActionListener

This class can be used to select resolution, fullscreen and OpenGLLayer and then run an application. Extend this class and fill the EAST panel with additional information to customize the dialog.

See Also:
Serialized Form

Nested Class Summary
 
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
protected  java.lang.String currentDisplayMode
           
protected  FSAA currentFSAA
           
protected  DisplayMode.FullscreenMode currentFullscreenMode
           
protected  OpenGLLayer currentOGLLayer
           
protected  boolean currentVSync
           
 
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
protected DisplayOptions()
           
protected DisplayOptions(boolean vsync)
           
protected DisplayOptions(java.lang.String title)
           
protected DisplayOptions(java.lang.String title, boolean vsync)
           
protected DisplayOptions(java.lang.String title, DisplayMode displayMode)
           
protected DisplayOptions(java.lang.String title, DisplayMode displayMode, DisplayMode.FullscreenMode fullscreen)
           
protected DisplayOptions(java.lang.String title, DisplayMode displayMode, DisplayMode.FullscreenMode fullscreen, boolean vsync)
           
protected DisplayOptions(java.lang.String title, DisplayMode displayMode, DisplayMode.FullscreenMode fullscreen, boolean vsync, FSAA fsaa)
           
protected DisplayOptions(java.lang.String title, DisplayMode displayMode, DisplayMode.FullscreenMode fullscreen, FSAA fsaa)
           
protected DisplayOptions(java.lang.String title, OpenGLLayer oglLayer, DisplayMode displayMode, DisplayMode.FullscreenMode fullscreen, boolean vsync, FSAA fsaa)
           
protected DisplayOptions(java.lang.String title, OpenGLLayer oglLayer, DisplayMode displayMode, DisplayMode.FullscreenMode fullscreen, FSAA fsaa)
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          aggretation of all resolution- and fullscreen- selections and cancel- and start-button actions.
protected  java.awt.Dimension buildGUI()
          Builds the whole GUI of the DisplayOptions Frame.
protected  javax.swing.JComponent createCenterComponent()
          Creates a new JComponent with the content for the WEST-Panel.
protected  javax.swing.JComponent createDisplayModeSelector()
          Creates a new JComponent with the DisplayMode selection controls.
protected  javax.swing.JComponent createEastComponent()
          Creates a JComponent, that will be displayed in the EAST-Panel of the DisplayOptions Frame.
protected  javax.swing.JComponent createFooterComponent()
          Creates a JComponent containing all the bottom-Buttons (like Start and Cancel).
protected  javax.swing.JComponent createFSAASelector()
          Creates a new JComponent with a JCheckBox to select FSAA.
protected  javax.swing.JComponent createFullscreenSelector()
          Creates a new JComponent with a JCheckBox to select fullscreen.
protected  javax.swing.JComponent createNorthComponent()
          Creates a new JComponent with the content for the NORTH (header).
protected  javax.swing.JComponent createNorthEastComponent()
          Creates a JComponent, that will be displayed in the EAST-Panel of the DisplayOptions Frame.
protected  javax.swing.JComponent createNorthWestComponent()
          Creates a JComponent, that will be displayed in the NORTH-WEST of the DisplayOptions Frame.
protected  javax.swing.JComponent createOpenGLLayerSelector()
          Creates a new JComponent with two RadioButtons to select the OpenGLLayer.
protected  java.util.Properties createProperties()
          Creates (and fills) the Properties object to save the current selections.
protected  javax.swing.JComponent createSouthComponent()
          Creates a JComponent, that will be displayed in the SOUTH-Panel of the DisplayOptions Frame.
protected  javax.swing.JComponent createSouthEastComponent()
          Creates a JComponent, that will be displayed in the EAST-Panel of the DisplayOptions Frame.
protected  javax.swing.JComponent createSouthWestComponent()
          Creates a JComponent, that will be displayed in the SOUTH-WEST of the DisplayOptions Frame.
protected  javax.swing.JComponent createVSyncSelector()
          Creates a new JComponent with a JCheckBox to select vsync.
protected  javax.swing.JComponent createWestComponent()
          Creates a JComponent, that will be displayed in the WEST-Panel of the DisplayOptions Frame.
protected  java.io.File findPropertiesFile(boolean forcePathExistance)
           
 DisplayMode getCurrentDisplayMode()
           
 FSAA getCurrentFSAA()
           
 DisplayMode.FullscreenMode getCurrentFullscreenMode()
           
 OpenGLLayer getCurrentOGLLayer()
           
 boolean getCurrentVSync()
           
protected  java.lang.String getPropertiesComment()
           
protected  java.io.File getPropertiesFileFolder()
           
protected  java.lang.String getPropertiesFilename()
           
protected abstract  boolean onStartButtonClicked()
          This event method is executed, when the "Start"-Button is was clicked.
protected  void refillDisplayModeSelector()
           
 void requestStart()
           
protected  void restoreSelections(java.util.Properties props)
           
 void setCurrentDisplayMode(DisplayMode displayMode)
          Sets the currently selected DisplayMode.
 void setCurrentFSAA(FSAA fsaa)
          Changes the current state of the FSAA selector checkbox.
 void setCurrentFullscreenMode(DisplayMode.FullscreenMode fs)
          Changes the current state of the fullscreen selector checkbox.
 void setCurrentOGLLayer(OpenGLLayer oglLayer)
          Sets the current selected OpenGLLayer.
 void setCurrentVSync(boolean vsync)
          Changes the current state of the fullscreen selector checkbox.
protected  void setIcon()
          Sets the icon of this JFrame.
protected  void setStartButtonEnabled(boolean enabled)
          Defines, if the Start-Button is enabled or not.
protected  void waitForStart()
          Waits for the start Button to be clicked in this Thread.
 
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, paint, 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, 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

currentOGLLayer

protected OpenGLLayer currentOGLLayer

currentDisplayMode

protected java.lang.String currentDisplayMode

currentFullscreenMode

protected DisplayMode.FullscreenMode currentFullscreenMode

currentVSync

protected boolean currentVSync

currentFSAA

protected FSAA currentFSAA
Constructor Detail

DisplayOptions

protected DisplayOptions(java.lang.String title,
                         OpenGLLayer oglLayer,
                         DisplayMode displayMode,
                         DisplayMode.FullscreenMode fullscreen,
                         boolean vsync,
                         FSAA fsaa)

DisplayOptions

protected DisplayOptions(java.lang.String title,
                         OpenGLLayer oglLayer,
                         DisplayMode displayMode,
                         DisplayMode.FullscreenMode fullscreen,
                         FSAA fsaa)

DisplayOptions

protected DisplayOptions(java.lang.String title,
                         DisplayMode displayMode,
                         DisplayMode.FullscreenMode fullscreen,
                         boolean vsync,
                         FSAA fsaa)

DisplayOptions

protected DisplayOptions(java.lang.String title,
                         DisplayMode displayMode,
                         DisplayMode.FullscreenMode fullscreen,
                         FSAA fsaa)

DisplayOptions

protected DisplayOptions(java.lang.String title,
                         DisplayMode displayMode,
                         DisplayMode.FullscreenMode fullscreen,
                         boolean vsync)

DisplayOptions

protected DisplayOptions(java.lang.String title,
                         DisplayMode displayMode,
                         DisplayMode.FullscreenMode fullscreen)

DisplayOptions

protected DisplayOptions(java.lang.String title,
                         DisplayMode displayMode)

DisplayOptions

protected DisplayOptions(java.lang.String title,
                         boolean vsync)

DisplayOptions

protected DisplayOptions(java.lang.String title)

DisplayOptions

protected DisplayOptions(boolean vsync)

DisplayOptions

protected DisplayOptions()
Method Detail

getPropertiesFileFolder

protected java.io.File getPropertiesFileFolder()
Returns:
a File reference to the folder, where the properties file is to be stored.

getPropertiesFilename

protected java.lang.String getPropertiesFilename()
Returns:
the name of the file, where the properties are to be stored.

getPropertiesComment

protected java.lang.String getPropertiesComment()
Returns:
the comment to write to the properties file

findPropertiesFile

protected java.io.File findPropertiesFile(boolean forcePathExistance)
Parameters:
forcePathExistance - if true, the path is created, if it doesn't exist
Returns:
the File reference to the properties file.

createProperties

protected java.util.Properties createProperties()
Creates (and fills) the Properties object to save the current selections.

Returns:
the created (and filled) Properties instance

restoreSelections

protected void restoreSelections(java.util.Properties props)
                          throws java.lang.Throwable
Throws:
java.lang.Throwable

onStartButtonClicked

protected abstract boolean onStartButtonClicked()
This event method is executed, when the "Start"-Button is was clicked.

Returns:
true, to indicate success. false to indicate an error (the DisplayOptions frame is re-shown)

setStartButtonEnabled

protected void setStartButtonEnabled(boolean enabled)
Defines, if the Start-Button is enabled or not.

Parameters:
enabled -

requestStart

public void requestStart()

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
aggretation of all resolution- and fullscreen- selections and cancel- and start-button actions.

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

createOpenGLLayerSelector

protected javax.swing.JComponent createOpenGLLayerSelector()
Creates a new JComponent with two RadioButtons to select the OpenGLLayer.

Returns:
the new JComponent

setCurrentOGLLayer

public void setCurrentOGLLayer(OpenGLLayer oglLayer)
Sets the current selected OpenGLLayer.

Parameters:
oglLayer -

getCurrentOGLLayer

public OpenGLLayer getCurrentOGLLayer()
Returns:
the current selected OpenGLLayer.

refillDisplayModeSelector

protected void refillDisplayModeSelector()

createDisplayModeSelector

protected final javax.swing.JComponent createDisplayModeSelector()
Creates a new JComponent with the DisplayMode selection controls.

Returns:
the created JPanel

setCurrentDisplayMode

public void setCurrentDisplayMode(DisplayMode displayMode)
Sets the currently selected DisplayMode.

Parameters:
displayMode -

getCurrentDisplayMode

public DisplayMode getCurrentDisplayMode()
Returns:
the currently selected resolution.

createFullscreenSelector

protected javax.swing.JComponent createFullscreenSelector()
Creates a new JComponent with a JCheckBox to select fullscreen.

Returns:
the new JComponent

createVSyncSelector

protected javax.swing.JComponent createVSyncSelector()
Creates a new JComponent with a JCheckBox to select vsync.

Returns:
the new JComponent

setCurrentFullscreenMode

public void setCurrentFullscreenMode(DisplayMode.FullscreenMode fs)
Changes the current state of the fullscreen selector checkbox.


getCurrentFullscreenMode

public DisplayMode.FullscreenMode getCurrentFullscreenMode()
Returns:
the current state of the fullscreen selector checkbox.

setCurrentVSync

public void setCurrentVSync(boolean vsync)
Changes the current state of the fullscreen selector checkbox.


getCurrentVSync

public boolean getCurrentVSync()
Returns:
the current state of the vsync selector checkbox.

createFSAASelector

protected javax.swing.JComponent createFSAASelector()
Creates a new JComponent with a JCheckBox to select FSAA.

Returns:
the new JComponent

setCurrentFSAA

public void setCurrentFSAA(FSAA fsaa)
Changes the current state of the FSAA selector checkbox.


getCurrentFSAA

public FSAA getCurrentFSAA()
Returns:
the current state of the FSAA selector checkbox.

createNorthComponent

protected javax.swing.JComponent createNorthComponent()
Creates a new JComponent with the content for the NORTH (header).

Returns:
the created JComponent

createCenterComponent

protected javax.swing.JComponent createCenterComponent()
Creates a new JComponent with the content for the WEST-Panel.

Returns:
the created JComponent

createWestComponent

protected javax.swing.JComponent createWestComponent()
Creates a JComponent, that will be displayed in the WEST-Panel of the DisplayOptions Frame. Return null to not display a component at this place.

Returns:
the created WEST-Component (or null for no component at this place)

createNorthWestComponent

protected javax.swing.JComponent createNorthWestComponent()
Creates a JComponent, that will be displayed in the NORTH-WEST of the DisplayOptions Frame.
By default this returns null.

Returns:
the created NORTH-WEST-Component (or null for no Component)

createSouthWestComponent

protected javax.swing.JComponent createSouthWestComponent()
Creates a JComponent, that will be displayed in the SOUTH-WEST of the DisplayOptions Frame. Normally it displays a logo. Return null to not display a component at this place.

Returns:
the created SOUTH-WEST-Component (or null for no Component)

createEastComponent

protected javax.swing.JComponent createEastComponent()
Creates a JComponent, that will be displayed in the EAST-Panel of the DisplayOptions Frame. Return null to not display a component at this place.

Returns:
the created EAST-Component (or null for no component at this place)

createNorthEastComponent

protected javax.swing.JComponent createNorthEastComponent()
Creates a JComponent, that will be displayed in the EAST-Panel of the DisplayOptions Frame. Return null to not display a component at this place.

Returns:
the created EAST-Component (or null for no component at this place)

createSouthEastComponent

protected javax.swing.JComponent createSouthEastComponent()
Creates a JComponent, that will be displayed in the EAST-Panel of the DisplayOptions Frame. Return null to not display a component at this place.

Returns:
the created EAST-Component (or null for no component at this place)

createSouthComponent

protected javax.swing.JComponent createSouthComponent()
Creates a JComponent, that will be displayed in the SOUTH-Panel of the DisplayOptions Frame. Return null to not display a component at this place.

Returns:
the created SOUTH-Component (or null for no component at this place)

createFooterComponent

protected javax.swing.JComponent createFooterComponent()
Creates a JComponent containing all the bottom-Buttons (like Start and Cancel).

Returns:
the JComponent with the bottom-Buttons

setIcon

protected void setIcon()
Sets the icon of this JFrame.


buildGUI

protected java.awt.Dimension buildGUI()
Builds the whole GUI of the DisplayOptions Frame.

Returns:
the GUI's size

waitForStart

protected void waitForStart()
Waits for the start Button to be clicked in this Thread.