jfig.gui
Class StatusCanvas

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Canvas
          extended byjfig.gui.StatusCanvas
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, StatusMessage

public class StatusCanvas
extends java.awt.Canvas
implements StatusMessage

canvas to display one-line status messages.

StatusCanvas provides a canvas for the "status line" messages. We cannot use a java.awt.Label, because the current implementation of Label is broken...

This class maintains a stack of status messages, so that old status messages will reappear for nested commands. This is especially useful to display info about GUI components in combination with push() for mouseEntered() and pop() for mouseExited(). See the jfig editor for an example.

Note that the current implementation of some AWT components (e.g. Choice) sometimes generates spurious mouseExited() events, so that the message stack may underflow. This is no problem of StatusCanvas, however.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class java.awt.Canvas
java.awt.Canvas.AccessibleAWTCanvas
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
(package private)  java.awt.FontMetrics fm
           
(package private)  java.awt.Font font
           
(package private)  int h
           
(package private)  java.lang.String msg
           
(package private)  java.util.Stack statusMessageStack
           
(package private)  int w
           
(package private)  int y
           
 
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
StatusCanvas()
           
StatusCanvas(java.lang.String msg)
           
 
Method Summary
 java.awt.Dimension getMinimumSize()
           
 java.awt.Dimension getPreferredSize()
           
 void paint(java.awt.Graphics g)
           
 void popStatusMessage()
           
(package private)  void printThread(java.lang.String s)
           
 void pushStatusMessage(java.lang.String msg)
          pushStatusMessage(): display a new status/help message and push it to the message stack.
 void setPreferredSize(java.awt.Dimension dm)
           
 void setStatusMessage(java.lang.String msg)
          set a new status message, changing the top of the message stack
 void setText(java.lang.String msg)
          directly set the new message, without touching the message stack
 
Methods inherited from class java.awt.Canvas
addNotify, createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy, update
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

msg

java.lang.String msg

font

java.awt.Font font

fm

java.awt.FontMetrics fm

w

int w

h

int h

y

int y

statusMessageStack

java.util.Stack statusMessageStack
Constructor Detail

StatusCanvas

public StatusCanvas()

StatusCanvas

public StatusCanvas(java.lang.String msg)
Method Detail

setText

public void setText(java.lang.String msg)
directly set the new message, without touching the message stack


setStatusMessage

public void setStatusMessage(java.lang.String msg)
set a new status message, changing the top of the message stack

Specified by:
setStatusMessage in interface StatusMessage

pushStatusMessage

public void pushStatusMessage(java.lang.String msg)
pushStatusMessage(): display a new status/help message and push it to the message stack. Create the stack, if necessary.

Specified by:
pushStatusMessage in interface StatusMessage

popStatusMessage

public void popStatusMessage()
Specified by:
popStatusMessage in interface StatusMessage

paint

public void paint(java.awt.Graphics g)

getPreferredSize

public java.awt.Dimension getPreferredSize()

getMinimumSize

public java.awt.Dimension getMinimumSize()

setPreferredSize

public void setPreferredSize(java.awt.Dimension dm)

printThread

void printThread(java.lang.String s)