jfig.gui
Class PropertiesViewer

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjfig.gui.PropertiesViewer
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable
Direct Known Subclasses:
PropertiesViewer

public class PropertiesViewer
extends java.awt.Frame
implements java.awt.event.ActionListener

simple viewer for all key/value pairs from a Properties object.

PropertiesViewer:

See Also:
Serialized Form

Nested Class Summary
(package private)  class PropertiesViewer.WindowCloser
          WindowListener stuff
 
Nested classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
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
protected  java.awt.Button applyButton
           
protected  java.awt.Button okButton
           
protected  java.util.Properties properties
           
protected  java.awt.Button reloadButton
           
protected  java.awt.Button saveAsUserPropertiesButton
           
protected  java.awt.Button saveAsWorkingDirPropertiesButton
           
protected  java.awt.TextArea textArea
           
protected  java.awt.TextField userPropertiesTF
           
protected  java.awt.TextField workingDirPropertiesTF
           
 
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 java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
PropertiesViewer(java.util.Properties _properties)
           
 
Method Summary
 java.lang.String _escapeBackslashes(java.lang.String s)
          the format specification for Properties treats backslash characters as special escape characters.
 void actionPerformed(java.awt.event.ActionEvent evt)
           
 void buildGUI()
          the panel to center the "OK", "Apply", and "Cancel" buttons
 boolean checkShouldWriteProperty(java.lang.String name)
          for jfig, we only want to save properties whose name startsWith "jfig"...
 void doApply()
          parse the key/value pairs from the textArea, and update our "properties" data.
 void doOK()
           
 void doReload()
          dispatches to showProperties.
 void doSaveUserProperties()
           
 void doSaveWorkingDirProperties()
           
 java.lang.String getDefaultPropertiesFileName()
          return ".jfigrc", which is the default name for the jfig properties file.
 java.lang.String getEscapedVisibleText()
          return the contents of the PropertiesViewer text area after replacing backslashes with double backslashes.
 void getGUIDefaults()
          load fonts and background color from the SetupManager, if any
 java.io.InputStream getSBIS(java.lang.String s)
           
static void main(java.lang.String[] argv)
          main(), for debugging mainly
 void setProperties(java.util.Properties _properties)
           
 void showProperties()
          display all key/value pairs from our "properties" collection on our textArea, one key/value per line, and sorted alphabetically by key names.
 void writeProperties(java.io.PrintStream ps, java.lang.String header)
          write a header line (with leading "#" character) and the the alphabetically sorted set of global/user/local properties to the given PrintStream.
 void writePropertiesFromVisibleText(java.io.PrintStream ps, java.lang.String header)
          write a header line (with leading "#" character) and the the alphabetically sorted set of global/user/local properties from the current textArea to the given PrintStream.
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getAccessibleContext, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, paramString, 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, processWindowEvent, 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, addImpl, 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, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, setLayout, transferFocusBackward, transferFocusDownCycle, update, 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

properties

protected java.util.Properties properties

textArea

protected java.awt.TextArea textArea

okButton

protected java.awt.Button okButton

applyButton

protected java.awt.Button applyButton

reloadButton

protected java.awt.Button reloadButton

saveAsUserPropertiesButton

protected java.awt.Button saveAsUserPropertiesButton

saveAsWorkingDirPropertiesButton

protected java.awt.Button saveAsWorkingDirPropertiesButton

userPropertiesTF

protected java.awt.TextField userPropertiesTF

workingDirPropertiesTF

protected java.awt.TextField workingDirPropertiesTF
Constructor Detail

PropertiesViewer

public PropertiesViewer(java.util.Properties _properties)
Method Detail

getDefaultPropertiesFileName

public java.lang.String getDefaultPropertiesFileName()
return ".jfigrc", which is the default name for the jfig properties file. Override for subclasses.


getGUIDefaults

public void getGUIDefaults()
load fonts and background color from the SetupManager, if any


buildGUI

public void buildGUI()
the panel to center the "OK", "Apply", and "Cancel" buttons


setProperties

public void setProperties(java.util.Properties _properties)

showProperties

public void showProperties()
display all key/value pairs from our "properties" collection on our textArea, one key/value per line, and sorted alphabetically by key names.

Note that we omit the "line.separator" property, because parsing it back using the java.util.Properties API is a complete mess... It is also a bad idea to add the line back via the GUI, because setting a wrong value for "line.separator" may really break the way the output streams handle println()...


_escapeBackslashes

public java.lang.String _escapeBackslashes(java.lang.String s)
the format specification for Properties treats backslash characters as special escape characters. When writing a property or key value, we need to write a single backslash as a double backslash...


doReload

public void doReload()
dispatches to showProperties.


doApply

public void doApply()
parse the key/value pairs from the textArea, and update our "properties" data.


doOK

public void doOK()

doSaveUserProperties

public void doSaveUserProperties()

doSaveWorkingDirProperties

public void doSaveWorkingDirProperties()

writeProperties

public void writeProperties(java.io.PrintStream ps,
                            java.lang.String header)
write a header line (with leading "#" character) and the the alphabetically sorted set of global/user/local properties to the given PrintStream. In order not to write the system properties, we call checkShouldWriteProperty() for each property.


getEscapedVisibleText

public java.lang.String getEscapedVisibleText()
return the contents of the PropertiesViewer text area after replacing backslashes with double backslashes. This method is useful to prepare the (possibly edited) GUI properties text for a later call to Properties.load().


getSBIS

public java.io.InputStream getSBIS(java.lang.String s)

writePropertiesFromVisibleText

public void writePropertiesFromVisibleText(java.io.PrintStream ps,
                                           java.lang.String header)
write a header line (with leading "#" character) and the the alphabetically sorted set of global/user/local properties from the current textArea to the given PrintStream. In order not to write the system properties, we call checkShouldWriteProperty() for each property.


checkShouldWriteProperty

public boolean checkShouldWriteProperty(java.lang.String name)
for jfig, we only want to save properties whose name startsWith "jfig"... Override as needed for other applications.


actionPerformed

public void actionPerformed(java.awt.event.ActionEvent evt)
Specified by:
actionPerformed in interface java.awt.event.ActionListener

main

public static void main(java.lang.String[] argv)
main(), for debugging mainly