devisor2.grid.GUI.dialogs
Class OptionsDialog

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Dialog
                  extended byjavax.swing.JDialog
                      extended bydevisor2.grid.GUI.dialogs.OptionsDialog
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class OptionsDialog
extends javax.swing.JDialog

This class represents the OptionsDialog for the DeViSoR2 application.
On various tabbed panes (tabsheets), the user can set all options for the application. All options are managed internally in the class Options in package options, which also defines the default values which can be restored if the user wants to.

Like every dialog in the application, it is controlled via two static methods: "initialize" has to be called once (e.g. in the startup class) and again every time the look&feel is changed. then, the dialog can be displayed whenever neccessary using the "showDialog" method.

This is how the dialog works:
The user can change the options via TextInputFields, secondary dialogs, tables and other GUI-only elements. This only affects the representation in the dialog (i.e. in the GUI), nothing is written back into the Options instance.
If the user clicks on CANCEL, all changes that have beed made are ignored and the dialog is closed. Accordingly, all changes are ignored if the user clicks the LOAD respectively RESTORE DEFAULTS buttons. Only if the user clicks on APPLY or SAVE, the Options instance is updated before closing the dialog or writing the Options file to disk. Note that updating might take quite a while, especially when GUI elements such as the menu (for accelerators) or even the whole GUI (for look&feel) are reconfigured and repainted.

A short description of the settings and how they are managed:
- The internal storage of Options is described in the Options class, see there for details. Note that only Strings are stored.
- everything that is represented by a String (such as paths etc) are stored the way they are without further changes.
- Path input is implemented in two ways: the user can directly type the path into a textfield (followed by a short check by the program of course), or he can use the dialog provided to browse the directory tree to his destination path.
- The draw flags on the DRAW tab sheet are stored as String literals true<\code> and false<\code> respectively.
- To assign new colors to certain elements and displayed items, an instance of the default JColorChooser Dialog is displayed when the corresponding button is clicked. Colors are converted to an integer representing the color in the RGBA model.
- Accelerator input is implemented as follows: In a JTable, all available functions that accelerators can be assigned to are listed, allowing the user to pick the function he wants to reassign. Then, the modifier and key can be changed via radiobuttons and a combobox. The user has to click the APPLY button explicitly to notify the table (the data model of which holds the accelerators). Note that APPLY only updates the table and not the Options instance, consistent with the general behaviour of this dialog. Assigning the NONE accelerator to a function disables keyboard support for the specified function. This can be accomplished by clicking the REMOVE button.
- as soon as other options are added, i will update this description subsequently

See Also:
options.Options, Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JDialog
javax.swing.JDialog.AccessibleJDialog
 
Nested classes inherited from class java.awt.Dialog
java.awt.Dialog.AccessibleAWTDialog
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.JDialog
accessibleContext, rootPane, rootPaneCheckingEnabled
 
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, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
OptionsDialog(MainFrame parent)
          creates a new Dialog and sets up its gui.
 
Method Summary
 javax.swing.JTable getAcceleratorTable()
           
 java.util.Vector getAcceleratorTableData()
           
 javax.swing.JRadioButton getALTbutton()
           
 javax.swing.JLabel getBound0Label()
           
 javax.swing.JLabel getBound10Label()
           
 javax.swing.JLabel getBound11Label()
           
 javax.swing.JLabel getBound12Label()
           
 javax.swing.JLabel getBound13Label()
           
 javax.swing.JLabel getBound14Label()
           
 javax.swing.JLabel getBound15Label()
           
 javax.swing.JLabel getBound1Label()
           
 javax.swing.JLabel getBound2Label()
           
 javax.swing.JLabel getBound3Label()
           
 javax.swing.JLabel getBound4Label()
           
 javax.swing.JLabel getBound5Label()
           
 javax.swing.JLabel getBound6Label()
           
 javax.swing.JLabel getBound7Label()
           
 javax.swing.JLabel getBound8Label()
           
 javax.swing.JLabel getBound9Label()
           
 javax.swing.JLabel getColoredgebaseLabel()
           
 javax.swing.JLabel getColoredgeLabel()
           
 javax.swing.JLabel getColorelementLabel()
           
 javax.swing.JLabel getColornodeLabel()
           
 javax.swing.JRadioButton getCTRLbutton()
           
 javax.swing.JTextField getDevHomeTextField()
          quick getters and setters for the ones used from outside
 javax.swing.JSlider getEpsilonSlider()
           
 javax.swing.JTextField getFeatlibTextField()
           
 javax.swing.JLabel getFill0Label()
           
 javax.swing.JLabel getFill10Label()
           
 javax.swing.JLabel getFill11Label()
           
 javax.swing.JLabel getFill12Label()
           
 javax.swing.JLabel getFill13Label()
           
 javax.swing.JLabel getFill14Label()
           
 javax.swing.JLabel getFill15Label()
           
 javax.swing.JLabel getFill1Label()
           
 javax.swing.JLabel getFill2Label()
           
 javax.swing.JLabel getFill3Label()
           
 javax.swing.JLabel getFill4Label()
           
 javax.swing.JLabel getFill5Label()
           
 javax.swing.JLabel getFill6Label()
           
 javax.swing.JLabel getFill7Label()
           
 javax.swing.JLabel getFill8Label()
           
 javax.swing.JLabel getFill9Label()
           
 javax.swing.JLabel getHighlightrectLabel()
           
 javax.swing.JLabel getHighlightselectionLabel()
           
 javax.swing.JComboBox getKeySelectionComboBox()
           
 javax.swing.JLabel getMiscbackgroundLabel()
           
 javax.swing.JLabel getMiscgridLabel()
           
 javax.swing.JLabel getMisclassoLabel()
           
 javax.swing.JRadioButton getNONEbutton()
           
 javax.swing.JLabel getNumberboundaryLabel()
           
 javax.swing.JLabel getNumberedgeLabel()
           
 javax.swing.JLabel getNumberelementLabel()
           
 javax.swing.JLabel getNumbernodeLabel()
           
 javax.swing.JTextField getPathTextField()
           
 javax.swing.JRadioButton getSHIFTbutton()
           
 javax.swing.JCheckBox getSnapCheck()
           
 javax.swing.JTextField getSnapXTF()
           
 javax.swing.JTextField getSnapYTF()
           
 javax.swing.JTextField getTrigenTextField()
           
static void initialize(MainFrame parent)
          this is one of the two important methods in this class.
 void setFocusToAccelerator()
          sets the focus to the Accelerator tab
 void setFocusToColor()
          sets the focus to the Color tab
 void setFocusToDraw()
          sets the focus to the Draw tab
 void setFocusToGeneral()
          sets the focus to the General tab
 void setFocusToMisc()
          sets the focus to the Misc tab
static void showAccelerator()
          shows the dialog with initial focus to the accelerator tab
static void showColor()
          shows the dialog with initial focus to the Color tab
static void showDialog()
          if initialize() has been called before (i.e.
static void showDraw()
          shows the dialog with initial focus to the draw tab
static void showGeneral()
          shows the dialog with initial focus to the general tab
static void showMisc()
          shows the dialog with initial focus to the misc tab
 void updateGUI()
          reads all values in the Options class and sets the GUI elements accordingly
 void updateOptions()
          reads all values from the GUI elements and sets the Options class accordingly
 
Methods inherited from class javax.swing.JDialog
addImpl, createRootPane, dialogInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Dialog
addNotify, dispose, getTitle, hide, isModal, isResizable, isUndecorated, setModal, setResizable, setTitle, setUndecorated, show
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, finalize, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, 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, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, removeNotify, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, 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, isOpaque, 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, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OptionsDialog

public OptionsDialog(MainFrame parent)
creates a new Dialog and sets up its gui. please don't use this constructor directly, use the two static methods provided.

Parameters:
parent - - the mainframe connects the dialog to the rest of the application.
Method Detail

setFocusToGeneral

public void setFocusToGeneral()
sets the focus to the General tab


setFocusToDraw

public void setFocusToDraw()
sets the focus to the Draw tab


setFocusToColor

public void setFocusToColor()
sets the focus to the Color tab


setFocusToAccelerator

public void setFocusToAccelerator()
sets the focus to the Accelerator tab


setFocusToMisc

public void setFocusToMisc()
sets the focus to the Misc tab


initialize

public static void initialize(MainFrame parent)
this is one of the two important methods in this class. it instantiates a new dialog object and sets up its gui

Parameters:
parent - - the parent frame for the dialog it is centered on

showDialog

public static void showDialog()
if initialize() has been called before (i.e. the dialog has been instanciated), this method just lets the dialog pop up modally on the screen.


showGeneral

public static void showGeneral()
shows the dialog with initial focus to the general tab


showDraw

public static void showDraw()
shows the dialog with initial focus to the draw tab


showColor

public static void showColor()
shows the dialog with initial focus to the Color tab


showAccelerator

public static void showAccelerator()
shows the dialog with initial focus to the accelerator tab


showMisc

public static void showMisc()
shows the dialog with initial focus to the misc tab


updateGUI

public void updateGUI()
reads all values in the Options class and sets the GUI elements accordingly


updateOptions

public void updateOptions()
reads all values from the GUI elements and sets the Options class accordingly


getDevHomeTextField

public javax.swing.JTextField getDevHomeTextField()
quick getters and setters for the ones used from outside


getPathTextField

public javax.swing.JTextField getPathTextField()

getTrigenTextField

public javax.swing.JTextField getTrigenTextField()

getFeatlibTextField

public javax.swing.JTextField getFeatlibTextField()

getKeySelectionComboBox

public javax.swing.JComboBox getKeySelectionComboBox()

getCTRLbutton

public javax.swing.JRadioButton getCTRLbutton()

getALTbutton

public javax.swing.JRadioButton getALTbutton()

getSHIFTbutton

public javax.swing.JRadioButton getSHIFTbutton()

getNONEbutton

public javax.swing.JRadioButton getNONEbutton()

getSnapCheck

public javax.swing.JCheckBox getSnapCheck()

getSnapXTF

public javax.swing.JTextField getSnapXTF()

getSnapYTF

public javax.swing.JTextField getSnapYTF()

getEpsilonSlider

public javax.swing.JSlider getEpsilonSlider()

getAcceleratorTableData

public java.util.Vector getAcceleratorTableData()

getAcceleratorTable

public javax.swing.JTable getAcceleratorTable()

getColornodeLabel

public javax.swing.JLabel getColornodeLabel()

getColoredgeLabel

public javax.swing.JLabel getColoredgeLabel()

getColoredgebaseLabel

public javax.swing.JLabel getColoredgebaseLabel()

getColorelementLabel

public javax.swing.JLabel getColorelementLabel()

getNumberboundaryLabel

public javax.swing.JLabel getNumberboundaryLabel()

getNumbernodeLabel

public javax.swing.JLabel getNumbernodeLabel()

getNumberedgeLabel

public javax.swing.JLabel getNumberedgeLabel()

getNumberelementLabel

public javax.swing.JLabel getNumberelementLabel()

getHighlightselectionLabel

public javax.swing.JLabel getHighlightselectionLabel()

getHighlightrectLabel

public javax.swing.JLabel getHighlightrectLabel()

getMiscgridLabel

public javax.swing.JLabel getMiscgridLabel()

getMiscbackgroundLabel

public javax.swing.JLabel getMiscbackgroundLabel()

getMisclassoLabel

public javax.swing.JLabel getMisclassoLabel()

getFill0Label

public javax.swing.JLabel getFill0Label()

getFill1Label

public javax.swing.JLabel getFill1Label()

getFill2Label

public javax.swing.JLabel getFill2Label()

getFill3Label

public javax.swing.JLabel getFill3Label()

getFill4Label

public javax.swing.JLabel getFill4Label()

getFill5Label

public javax.swing.JLabel getFill5Label()

getFill6Label

public javax.swing.JLabel getFill6Label()

getFill7Label

public javax.swing.JLabel getFill7Label()

getFill8Label

public javax.swing.JLabel getFill8Label()

getFill9Label

public javax.swing.JLabel getFill9Label()

getFill10Label

public javax.swing.JLabel getFill10Label()

getFill11Label

public javax.swing.JLabel getFill11Label()

getFill12Label

public javax.swing.JLabel getFill12Label()

getFill13Label

public javax.swing.JLabel getFill13Label()

getFill14Label

public javax.swing.JLabel getFill14Label()

getFill15Label

public javax.swing.JLabel getFill15Label()

getBound0Label

public javax.swing.JLabel getBound0Label()

getBound1Label

public javax.swing.JLabel getBound1Label()

getBound2Label

public javax.swing.JLabel getBound2Label()

getBound3Label

public javax.swing.JLabel getBound3Label()

getBound4Label

public javax.swing.JLabel getBound4Label()

getBound5Label

public javax.swing.JLabel getBound5Label()

getBound6Label

public javax.swing.JLabel getBound6Label()

getBound7Label

public javax.swing.JLabel getBound7Label()

getBound8Label

public javax.swing.JLabel getBound8Label()

getBound9Label

public javax.swing.JLabel getBound9Label()

getBound10Label

public javax.swing.JLabel getBound10Label()

getBound11Label

public javax.swing.JLabel getBound11Label()

getBound12Label

public javax.swing.JLabel getBound12Label()

getBound13Label

public javax.swing.JLabel getBound13Label()

getBound14Label

public javax.swing.JLabel getBound14Label()

getBound15Label

public javax.swing.JLabel getBound15Label()