Preferences Editor

de.jppietsch.prefedit
Class PrefEditWindow

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended byde.jppietsch.gui.MainWindow
                          extended byde.jppietsch.prefedit.PrefEditWindow
All Implemented Interfaces:
Accessible, ImageObserver, MenuContainer, RootPaneContainer, Serializable, WindowConstants

public class PrefEditWindow
extends MainWindow

The Preferences Editor window contains a tree view to the preferences nodes on the left and a table with the selected node's entries on the right.

Version:
$Revision: 1.13 $
Author:
Jan-Peter Pietsch
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class de.jppietsch.gui.MainWindow
MainWindow.ExitAction
 
Nested classes inherited from class javax.swing.JFrame
JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
private  RscAction copyAction
          An action to copy the currently selected preferences node or preference to the clipboard.
private  RscAction cutAction
          An action to cut the currently selected preferences node or preference and put it into the clipboard.
private  RscAction exportAction
          An action to export a preferences node to an XML file.
private  RscAction importAction
          An action to import a preferences node from an XML file.
private  RscAction newKeyAction
          An action to create a new key and add it to the current node.
private  RscAction newNodeAction
          An action to create a new node and add it to the current node.
private  RscAction pasteAction
          An action to paste the contents of the clipboard to currently selected preferences node.
private  boolean recentTableFocus
          Flag: "table and not tree had the focus most recently"
private  JTable table
          A table view to the currently selected preference node's keys and values.
private  PreferencesTableModel tableModel
          A table model for the currently selected preference node.
private  JTree tree
          A tree view to the preferences.
private  DefaultTreeModel treeModel
          This window's preferences tree model.
 
Fields inherited from class de.jppietsch.gui.MainWindow
EXIT, FILE, TITLE
 
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.Window
 
Fields inherited from class java.awt.Container
 
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
PrefEditWindow()
          Constructs this window and fills it with the GUI components.
 
Method Summary
private  void copy()
          Copies the selected preferences node or preference to the clipboard.
protected  JMenu createFileMenu(RscBundle aBundle)
          Adds some additional actions to the file menu.
private  void cut()
          Cuts the selected preferences node or preference to the clipboard.
private  void exportPreferences()
          Exports preferences from the selected preferences node to an XML file.
private  void importPreferences()
          Imports preferences from an XML file to the selected preferences node.
private  void initAction(JMenu aMenu, RscAction anAction)
          Adds the given action to the menu and the toolbar and disables it initially.
private  void newKey()
          Adds a new key to currently selected node.
private  void newNode()
          Adds a new subnode to currently selected node.
private  void paste()
          Pastes the contents of the clipboard to the selected preferences node.
private  void select(ListSelectionEvent anEvent)
          Called when the table selection changes.
private  void select(TreeSelectionEvent anEvent)
          Called when the tree selection changes.
private  String selectedKey()
          Returns the currently selected preference key.
private  PreferencesTreeNode selectedNode()
          Description of the Method
private  Preferences selectedPrefs()
          Returns the currently selected preferences node.
private  void tableFocusGained()
          Called when the table receives the keyboard focus.
private  void treeFocusGained()
          Called when the tree receives the keyboard focus.
private  void updateSelection()
          Updates the selection of some actions of which the state depends on tree node or table row selections.
 
Methods inherited from class de.jppietsch.gui.MainWindow
addMenu, addTool, exit, processWindowEvent
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, 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, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, 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, 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, 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, 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
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

treeModel

private final DefaultTreeModel treeModel
This window's preferences tree model.


table

private final JTable table
A table view to the currently selected preference node's keys and values.


tree

private final JTree tree
A tree view to the preferences.


tableModel

private final PreferencesTableModel tableModel
A table model for the currently selected preference node.


importAction

private RscAction importAction
An action to import a preferences node from an XML file.


exportAction

private RscAction exportAction
An action to export a preferences node to an XML file.


newKeyAction

private RscAction newKeyAction
An action to create a new key and add it to the current node.


cutAction

private RscAction cutAction
An action to cut the currently selected preferences node or preference and put it into the clipboard.


copyAction

private RscAction copyAction
An action to copy the currently selected preferences node or preference to the clipboard.


pasteAction

private RscAction pasteAction
An action to paste the contents of the clipboard to currently selected preferences node.


newNodeAction

private RscAction newNodeAction
An action to create a new node and add it to the current node.


recentTableFocus

private boolean recentTableFocus
Flag: "table and not tree had the focus most recently"

Constructor Detail

PrefEditWindow

public PrefEditWindow()
               throws BackingStoreException
Constructs this window and fills it with the GUI components.

Throws:
BackingStoreException - If something goes wrong.
Method Detail

createFileMenu

protected JMenu createFileMenu(RscBundle aBundle)
Adds some additional actions to the file menu.

Overrides:
createFileMenu in class MainWindow
Parameters:
aBundle - Description of Parameter
Returns:
A new menu.

select

private void select(TreeSelectionEvent anEvent)
Called when the tree selection changes. Displays the right table model and enables or disables some actions.

Parameters:
anEvent - contains the new tree selection.

select

private void select(ListSelectionEvent anEvent)
Called when the table selection changes. Enables or disables some actions.

Parameters:
anEvent - contains the new table selection.

tableFocusGained

private void tableFocusGained()
Called when the table receives the keyboard focus. Disables the "cut node" and "copy node" actions and, if there is a row selected, enables the "cut key" and "copy key" actions.


treeFocusGained

private void treeFocusGained()
Called when the tree receives the keyboard focus. Disables the "cut key" and "copy key" actions and, if there is a node selected, enables the "cut node" and "copy node" actions.


updateSelection

private void updateSelection()
Updates the selection of some actions of which the state depends on tree node or table row selections.


importPreferences

private void importPreferences()
Imports preferences from an XML file to the selected preferences node.


exportPreferences

private void exportPreferences()
Exports preferences from the selected preferences node to an XML file.


newKey

private void newKey()
Adds a new key to currently selected node.


cut

private void cut()
Cuts the selected preferences node or preference to the clipboard.


copy

private void copy()
Copies the selected preferences node or preference to the clipboard.


paste

private void paste()
Pastes the contents of the clipboard to the selected preferences node. That works for key-value pairs and for complete preference subtrees.


newNode

private void newNode()
Adds a new subnode to currently selected node.


selectedNode

private PreferencesTreeNode selectedNode()
Description of the Method

Returns:
Description of the Returned Value

selectedPrefs

private Preferences selectedPrefs()
Returns the currently selected preferences node.

Returns:
Currently selected Preferences.

selectedKey

private String selectedKey()
                    throws BackingStoreException
Returns the currently selected preference key.

Returns:
Currently selected key.
Throws:
BackingStoreException - If something goes wrong.

initAction

private void initAction(JMenu aMenu,
                        RscAction anAction)
Adds the given action to the menu and the toolbar and disables it initially.

Parameters:
aMenu - to which the action is added.
anAction - is added to menu and toolbar and disabled.

Preferences Editor