org.jhotdraw.gui
Class JFontChooser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.jhotdraw.gui.JFontChooser
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable

public class JFontChooser
extends javax.swing.JComponent

Font chooser dialog.

Version:
$Id: JFontChooser.java 527 2009-06-07 14:28:19Z rawcoder $
Author:
Werner Randelshofer
See Also:
Serialized Form

Nested Class Summary
 
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
static int APPROVE_OPTION
          Return value if approve (yes, ok) is chosen.
static java.lang.String APPROVE_SELECTION
          Instruction to approve the current selection (same as pressing yes or ok).
static int CANCEL_OPTION
          Return value if cancel is chosen.
static java.lang.String CANCEL_SELECTION
          Instruction to cancel the current selection.
private  javax.swing.JDialog dialog
           
static int ERROR_OPTION
          Return value if an error occured.
private static java.util.concurrent.FutureTask<java.awt.Font[]> future
          This future is used to load fonts lazily
private  FontChooserModel model
          Holds the model of the JFontChooser.
static java.lang.String MODEL_PROPERTY
          Identifies the "model" property.
private  javax.swing.event.TreeModelListener modelHandler
           
private  int returnValue
           
static java.lang.String SELECTED_FONT_PROPERTY
          Identifies the "selectedFont" property.
private  java.awt.Font selectedFont
          Holds the selected font of the JFontChooser.
static java.lang.String SELECTION_PATH_PROPERTY
          Identifies the "selectionPath" property.
private  javax.swing.tree.TreePath selectionPath
          Holds the selected path of the JFontChooser.
private static java.lang.String uiClassID
           
 
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
JFontChooser()
          Creates new form JFontChooser
 
Method Summary
 void addActionListener(java.awt.event.ActionListener l)
          Adds an ActionListener to the font chooser.
 void approveSelection()
          Called by the UI when the user hits the Approve button (labeled "Open" or "Save", by default).
 void cancelSelection()
          Called by the UI when the user chooses the Cancel button.
protected  void fireActionPerformed(java.lang.String command)
          Notifies all listeners that have registered interest for notification on this event type.
static java.awt.Font[] getAllFonts()
          Gets all fonts from the graphics environment.
 FontChooserModel getModel()
          Gets the selected Font.
 java.awt.Font getSelectedFont()
          Gets the selected Font.
 javax.swing.tree.TreePath getSelectionPath()
          Gets the selected Font.
 FontChooserUI getUI()
          Returns the look and feel (L&F) object that renders this component.
 java.lang.String getUIClassID()
          Returns a string that specifies the name of the L&F class that renders this component.
static void loadAllFonts()
          Starts loading all fonts from the local graphics environment using a worker thread.
 void removeActionListener(java.awt.event.ActionListener l)
          Removes an ActionListener from the font chooser.
 void setModel(FontChooserModel newValue)
          Sets the selected Font.
 void setSelectedFont(java.awt.Font newValue)
          Sets the selected Font.
 void setSelectionPath(javax.swing.tree.TreePath newValue)
          Sets the selected Font.
 void setUI(FontChooserUI ui)
          Sets the look and feel (L&F) object that renders this component.
protected  void updateSelectionPath(java.awt.Font newValue)
          Updates the selection path to the selected font.
 void updateUI()
          Resets the UI property with a value from the current look and feel.
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, paramString, 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, getName, 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, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

uiClassID

private static final java.lang.String uiClassID
See Also:
getUIClassID(), JComponent.readObject(java.io.ObjectInputStream), Constant Field Values

SELECTED_FONT_PROPERTY

public static final java.lang.String SELECTED_FONT_PROPERTY
Identifies the "selectedFont" property.

See Also:
Constant Field Values

SELECTION_PATH_PROPERTY

public static final java.lang.String SELECTION_PATH_PROPERTY
Identifies the "selectionPath" property.

See Also:
Constant Field Values

CANCEL_SELECTION

public static final java.lang.String CANCEL_SELECTION
Instruction to cancel the current selection.

See Also:
Constant Field Values

APPROVE_SELECTION

public static final java.lang.String APPROVE_SELECTION
Instruction to approve the current selection (same as pressing yes or ok).

See Also:
Constant Field Values

MODEL_PROPERTY

public static final java.lang.String MODEL_PROPERTY
Identifies the "model" property.

See Also:
Constant Field Values

selectionPath

private javax.swing.tree.TreePath selectionPath
Holds the selected path of the JFontChooser.


selectedFont

private java.awt.Font selectedFont
Holds the selected font of the JFontChooser.


model

private FontChooserModel model
Holds the model of the JFontChooser.


CANCEL_OPTION

public static final int CANCEL_OPTION
Return value if cancel is chosen.

See Also:
Constant Field Values

APPROVE_OPTION

public static final int APPROVE_OPTION
Return value if approve (yes, ok) is chosen.

See Also:
Constant Field Values

ERROR_OPTION

public static final int ERROR_OPTION
Return value if an error occured.

See Also:
Constant Field Values

returnValue

private int returnValue

dialog

private javax.swing.JDialog dialog

future

private static java.util.concurrent.FutureTask<java.awt.Font[]> future
This future is used to load fonts lazily


modelHandler

private javax.swing.event.TreeModelListener modelHandler
Constructor Detail

JFontChooser

public JFontChooser()
Creates new form JFontChooser

Method Detail

updateUI

public void updateUI()
Resets the UI property with a value from the current look and feel.

Overrides:
updateUI in class javax.swing.JComponent
See Also:
JComponent.updateUI()

getUI

public FontChooserUI getUI()
Returns the look and feel (L&F) object that renders this component.

Returns:
the PanelUI object that renders this component
Since:
1.4

setUI

public void setUI(FontChooserUI ui)
Sets the look and feel (L&F) object that renders this component.

Parameters:
ui - the PanelUI L&F object
See Also:
UIDefaults.getUI(javax.swing.JComponent)

getUIClassID

public java.lang.String getUIClassID()
Returns a string that specifies the name of the L&F class that renders this component.

Overrides:
getUIClassID in class javax.swing.JComponent
Returns:
"FontChooserUI"
See Also:
JComponent.getUIClassID(), UIDefaults.getUI(javax.swing.JComponent)

approveSelection

public void approveSelection()
Called by the UI when the user hits the Approve button (labeled "Open" or "Save", by default). This can also be called by the programmer. This method causes an action event to fire with the command string equal to APPROVE_SELECTION.

See Also:
APPROVE_SELECTION

cancelSelection

public void cancelSelection()
Called by the UI when the user chooses the Cancel button. This can also be called by the programmer. This method causes an action event to fire with the command string equal to CANCEL_SELECTION.

See Also:
CANCEL_SELECTION

addActionListener

public void addActionListener(java.awt.event.ActionListener l)
Adds an ActionListener to the font chooser.

Parameters:
l - the listener to be added
See Also:
approveSelection(), cancelSelection()

removeActionListener

public void removeActionListener(java.awt.event.ActionListener l)
Removes an ActionListener from the font chooser.

Parameters:
l - the listener to be removed
See Also:
addActionListener(java.awt.event.ActionListener)

fireActionPerformed

protected void fireActionPerformed(java.lang.String command)
Notifies all listeners that have registered interest for notification on this event type. The event instance is lazily created using the command parameter.


getSelectionPath

public javax.swing.tree.TreePath getSelectionPath()
Gets the selected Font. This is a bound property.

Returns:
The selected font, or null, if no font is selected.

setSelectionPath

public void setSelectionPath(javax.swing.tree.TreePath newValue)
Sets the selected Font. This is a bound property.

Changing the selection path, causes a change of the selected font, if the selected font is not the last path segment of the selection path.

Parameters:
newValue - The new selected font, or null if no font is to be selected..

loadAllFonts

public static void loadAllFonts()
Starts loading all fonts from the local graphics environment using a worker thread.


getAllFonts

public static java.awt.Font[] getAllFonts()
Gets all fonts from the graphics environment. This may take a long time. It is recommended to call loadAllFonts during the startup of an application. If you do this, you can retrieve the fonts from this method from the AWT Event Dispatcher Thread.

Returns:
All fonts.

getSelectedFont

public java.awt.Font getSelectedFont()
Gets the selected Font. This is a bound property.

Returns:
The selected font, or null, if no font is selected.

setSelectedFont

public void setSelectedFont(java.awt.Font newValue)
Sets the selected Font.

Changing the selected font, causes a change of the selection path, if the selected font is not the last path segment of the selection path. This is a bound property.

Parameters:
newValue - The new selected font, or null if no font is to be selected.

updateSelectionPath

protected void updateSelectionPath(java.awt.Font newValue)
Updates the selection path to the selected font.

This method is invoked, when a font is selected, and when then structure of the model has changed.

Parameters:
newValue -

getModel

public FontChooserModel getModel()
Gets the selected Font. This is a bound property.

Returns:
The selected font, or null, if no font is selected.

setModel

public void setModel(FontChooserModel newValue)
Sets the selected Font. This is a bound property.

Parameters:
newValue - The new selected font, or null if no font is to be selected..