org.fife.ui
Class OptionsDialogPanel

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JPanel
                  extended by org.fife.ui.OptionsDialogPanel
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible
Direct Known Subclasses:
CaretAndSelectionOptionPanel, ClojureOptionsPanel, CPlusPlusOptionsPanel, CSharpOptionsPanel, CssOptionsPanel, FileChooserFavoritesOptionPanel, GroovyOptionsPanel, GutterOptionPanel, JsonOptionsPanel, LatexOptionsPanel, MxmlOptionsPanel, NsisOptionsPanel, PluginOptionsDialogPanel, RSyntaxTextAreaOptionPanel, RTextAreaOptionPanel, RTextFileChooserOptionPanel, ScalaOptionsPanel, SpellingOptionPanel, TemplateOptionPanel

public abstract class OptionsDialogPanel
extends javax.swing.JPanel

Base class for panels that go into an instance of OptionsDialog.

Version:
1.0
Author:
Robert Futrell
See Also:
Serialized Form

Nested Class Summary
static class OptionsDialogPanel.OptionPanelBorder
          A border useful for dividing sections of an Options panel.
static class OptionsDialogPanel.OptionsPanelCheckResult
          The class that is returned from ensureValidInputs; it contains a JComponent that had invalid input, and a String to display as the error message.
 
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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  boolean hasUnsavedChanges
          Whether or not this panel has any unsaved changes.
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
OptionsDialogPanel()
          Constructor.
OptionsDialogPanel(java.lang.String name)
          Constructor.
 
Method Summary
 void addChildPanel(OptionsDialogPanel child)
          Adds a "child" option panel to this one.
protected  void addLeftAligned(java.awt.Container parent, java.awt.Component toAdd)
          Adds a child component to a container, ensuring it is left-aligned.
protected  void addLeftAligned(java.awt.Container parent, java.awt.Component toAdd, int spacer)
          Adds a child component to a container, ensuring it is left-aligned.
protected  void addLeftAligned(java.awt.Container parent, java.awt.Component toAdd, int spacer, int indent)
          Adds a child component to a container, ensuring it is left-aligned.
protected  javax.swing.Box createHorizontalBox()
          Returns a horizontal box that respects component orientation, which Box.createHorizontalBox() does not, for backward compatibility reasons (!).
 void doApply(java.awt.Frame owner)
          Applies the settings entered into this panel on the specified application.
protected abstract  void doApplyImpl(java.awt.Frame owner)
          Applies the settings entered into this panel on the specified application.
 OptionsDialogPanel.OptionsPanelCheckResult ensureValidInputs()
          Checks whether or not all input the user specified on this panel, and any child panels, is valid.
protected abstract  OptionsDialogPanel.OptionsPanelCheckResult ensureValidInputsImpl()
          Checks whether or not all input the user specified on this panel is valid.
 OptionsDialogPanel getChildPanel(int index)
          Returns the specified child option panel.
 int getChildPanelCount()
          Gets the number of "child" option panels.
 javax.swing.Icon getIcon()
          Returns the icon to display for this options panel, if any.
 java.lang.String getId()
          Returns the ID of this option panel.
 java.lang.String getName()
          Returns the string used to describe this panel in the left-hand tree pane of the options dialog.
 OptionsDialog getOptionsDialog()
          Returns the Options dialog that contains this options panel.
protected  OptionsDialogPanel getParentPanel()
          Returns the parent options dialog panel.
abstract  javax.swing.JComponent getTopJComponent()
          Returns the JComponent at the "top" of this Options panel.
 boolean hasUnsavedChanges()
          Returns whether or not this Options panel has unsaved changes.
 void setIcon(javax.swing.Icon icon)
          Sets the icon to use for this option panel in the dialog.
 void setId(java.lang.String id)
          Sets the ID of this option panel.
 void setName(java.lang.String name)
          Sets the name of this options panel.
 void setUnsavedChanges(boolean hasUnsavedChanges)
          Sets whether or not the "Unsaved changes" flag for this Options panel is set.
 void setValues(java.awt.Frame owner)
          Sets the values displayed by this panel to reflect those in the application.
protected abstract  void setValuesImpl(java.awt.Frame owner)
          Sets the values displayed by this panel to reflect those in the application.
 java.lang.String toString()
          Returns the name of this options panel, since this is the value that is diaplayed in the Options dialog's JList.
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, 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, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

hasUnsavedChanges

protected boolean hasUnsavedChanges
Whether or not this panel has any unsaved changes. The Options panel should set this whenever an Option value is changed by the user, but it doesn't have to clear it (this is done by the parent OptionsDialog).

Constructor Detail

OptionsDialogPanel

public OptionsDialogPanel()
Constructor.


OptionsDialogPanel

public OptionsDialogPanel(java.lang.String name)
Constructor.

Parameters:
name - The name of this options panel to be used in the options dialog's selection tree.
Method Detail

addChildPanel

public void addChildPanel(OptionsDialogPanel child)
Adds a "child" option panel to this one.

Parameters:
child - The option panel to add as a child.
See Also:
getChildPanelCount(), getChildPanel(int)

addLeftAligned

protected void addLeftAligned(java.awt.Container parent,
                              java.awt.Component toAdd)
Adds a child component to a container, ensuring it is left-aligned.

Parameters:
parent - The parent container. This should have a vertical BoxLayout.
toAdd - The component to add.
See Also:
addLeftAligned(Container, Component, int), addLeftAligned(Container, Component, int, int)

addLeftAligned

protected void addLeftAligned(java.awt.Container parent,
                              java.awt.Component toAdd,
                              int spacer)
Adds a child component to a container, ensuring it is left-aligned.

Parameters:
parent - The parent container. This should have a vertical BoxLayout.
toAdd - The component to add.
spacer - The amount of vertical space to add after the component. This may be zero.
See Also:
addLeftAligned(Container, Component), addLeftAligned(Container, Component, int, int)

addLeftAligned

protected void addLeftAligned(java.awt.Container parent,
                              java.awt.Component toAdd,
                              int spacer,
                              int indent)
Adds a child component to a container, ensuring it is left-aligned.

Parameters:
parent - The parent container. This should have a vertical BoxLayout.
toAdd - The component to add.
spacer - The amount of vertical space to add after the component. This may be zero.
indent - An amount to indent toAdd by. This may be zero.
See Also:
addLeftAligned(Container, Component), addLeftAligned(Container, Component, int)

createHorizontalBox

protected javax.swing.Box createHorizontalBox()
Returns a horizontal box that respects component orientation, which Box.createHorizontalBox() does not, for backward compatibility reasons (!).

Returns:
The horizontal box.

doApply

public final void doApply(java.awt.Frame owner)
Applies the settings entered into this panel on the specified application. Child panels are also handled.

Parameters:
owner - The application.
See Also:
setValues(Frame)

doApplyImpl

protected abstract void doApplyImpl(java.awt.Frame owner)
Applies the settings entered into this panel on the specified application. Child panels are not handled.

Parameters:
owner - The application.
See Also:
doApply(Frame)

ensureValidInputs

public final OptionsDialogPanel.OptionsPanelCheckResult ensureValidInputs()
Checks whether or not all input the user specified on this panel, and any child panels, is valid.

Returns:
null if the panel has all valid inputs, or an OptionsPanelCheckResult if an input was invalid. This component is the one that had the error and will be given focus, and the string is an error message that will be displayed.

ensureValidInputsImpl

protected abstract OptionsDialogPanel.OptionsPanelCheckResult ensureValidInputsImpl()
Checks whether or not all input the user specified on this panel is valid. This should be overridden to check, for example, whether text fields have valid values, etc. This method will be called whenever the user clicks "OK" or "Apply" on the options dialog to ensure all input is valid. If it isn't, the component with invalid data will be given focus and the user will be prompted to fix it.

Returns:
null if the panel has all valid inputs, or an OptionsPanelCheckResult if an input was invalid. This component is the one that had the error and will be given focus, and the string is an error message that will be displayed.

getChildPanel

public OptionsDialogPanel getChildPanel(int index)
Returns the specified child option panel.

Parameters:
index - The index of the child option panel to return.
Returns:
The child option panel.
See Also:
addChildPanel(org.fife.ui.OptionsDialogPanel), getChildPanelCount()

getChildPanelCount

public int getChildPanelCount()
Gets the number of "child" option panels.

Returns:
The child option panel count.
See Also:
addChildPanel(org.fife.ui.OptionsDialogPanel), getChildPanel(int)

getIcon

public javax.swing.Icon getIcon()
Returns the icon to display for this options panel, if any.

Returns:
The icon for this options dialog panel, or null if there isn't one.
See Also:
setIcon(Icon)

getId

public java.lang.String getId()
Returns the ID of this option panel.

Returns:
The ID of this option panel, or null for none.
See Also:
setId(String)

getName

public java.lang.String getName()
Returns the string used to describe this panel in the left-hand tree pane of the options dialog.

Overrides:
getName in class java.awt.Component
Returns:
This option panel's name.

getOptionsDialog

public OptionsDialog getOptionsDialog()
Returns the Options dialog that contains this options panel.

Returns:
The options dialog, or null if this panel hasn't been added to an Options dialog yet.

getParentPanel

protected OptionsDialogPanel getParentPanel()
Returns the parent options dialog panel. This value may be null if there is no parent panel (e.g. the parent of this panel is the options dialog itself).

Returns:
The parent options dialog panel.

getTopJComponent

public abstract javax.swing.JComponent getTopJComponent()
Returns the JComponent at the "top" of this Options panel. This is the component that will receive focus if the user switches to this Options panel in the Options dialog. As an added bonus, if this component is a JTextComponent, its text is selected for easy changing.


hasUnsavedChanges

public boolean hasUnsavedChanges()
Returns whether or not this Options panel has unsaved changes. Note that these changes may or may not be invalid.

See Also:
setUnsavedChanges(boolean)

setIcon

public void setIcon(javax.swing.Icon icon)
Sets the icon to use for this option panel in the dialog.

Parameters:
icon - The icon to use, or null for none.
See Also:
getIcon()

setId

public void setId(java.lang.String id)
Sets the ID of this option panel.

Parameters:
id - The ID of this option panel.
See Also:
getId()

setName

public void setName(java.lang.String name)
Sets the name of this options panel.

Overrides:
setName in class java.awt.Component
Parameters:
name - The name to use for this options panel.

setUnsavedChanges

public void setUnsavedChanges(boolean hasUnsavedChanges)
Sets whether or not the "Unsaved changes" flag for this Options panel is set. You should call this method with a parameter set to false before displaying an Options dialog.

Parameters:
hasUnsavedChanges - Whether or not the flag should be set.
See Also:
hasUnsavedChanges

setValues

public final void setValues(java.awt.Frame owner)
Sets the values displayed by this panel to reflect those in the application. Child panels are also handled.

Parameters:
owner - The parent application.
See Also:
doApply(Frame)

setValuesImpl

protected abstract void setValuesImpl(java.awt.Frame owner)
Sets the values displayed by this panel to reflect those in the application. Child panels are not handled.

Parameters:
owner - The parent application.
See Also:
setValues(Frame)

toString

public final java.lang.String toString()
Returns the name of this options panel, since this is the value that is diaplayed in the Options dialog's JList.

Overrides:
toString in class java.awt.Component