jfig.gui
Class StateButton

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Canvas
          extended byjfig.gui.StateButton
All Implemented Interfaces:
javax.accessibility.Accessible, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.awt.event.MouseListener, java.io.Serializable
Direct Known Subclasses:
ColorStateButton, FillPatternButton, FontStateButton, NumericStateButton

public class StateButton
extends java.awt.Canvas
implements java.awt.event.MouseListener

multiple-state button with images and bubble-help.

StateButton (state button) is a button which supports stepping through its state (value) sequence. The button displays an image for each state and calls action() if clicked.

Clicking the:
middle button will decrement the state,
right button will increment the state,
left button opens a Dialog window which allows direct value selection.

Behavior can be added to an ImageButton by subclassing it and overriding the action method.

See Also:
Serialized Form

Nested Class Summary
(package private)  class StateButton.SelectDialog
           
 
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.event.ActionListener actionListener
           
(package private)  java.awt.Color backgroundColor
           
static boolean debug
           
(package private)  int height
           
(package private)  StatusMessage helper
           
(package private)  java.lang.String helpMessage
           
(package private)  java.awt.Image[] images
           
(package private)  int img_height
           
(package private)  int img_width
           
(package private)  java.lang.String label
           
protected  boolean mouseInside
           
(package private)  java.lang.Object[] objs
           
(package private)  java.awt.Component parent
           
(package private)  StateButton.SelectDialog sd
           
(package private)  int state
           
static int UPDATE_RECT_SIZE
           
protected  boolean updateMode
           
protected  boolean updateStatus
           
(package private)  int width
           
 
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
StateButton(java.awt.Component parent, java.lang.String label, java.awt.Image[] images, java.lang.Object[] objs)
          Construct the StateButton from an array of images, from the corresponing array of objects.
StateButton(java.awt.Component parent, java.lang.String label, java.awt.Image[] images, java.lang.Object[] objs, StatusMessage helper, java.lang.String helpMessage)
           
StateButton(java.lang.String label, java.awt.Image[] images, java.lang.Object[] objs, StatusMessage helper, java.lang.String helpMessage)
           
 
Method Summary
 void addActionListener(java.awt.event.ActionListener l)
          addActionListener
 void calculateSize()
           
 void createActionEvent()
           
 java.awt.Frame findParentFrame()
           
 java.lang.String getLabel()
          getLabel(): return our label String
 java.awt.Dimension getMinimumSize()
           
 java.lang.Object getObject()
          return the object corresponding to the current button state.
 java.awt.Dimension getPreferredSize()
           
 int getState()
          return the value of the current button state.
 boolean getUpdateMode()
           
 boolean getUpdateStatus()
           
 void mouseClicked(java.awt.event.MouseEvent evt)
           
 void mouseEntered(java.awt.event.MouseEvent evt)
           
 void mouseExited(java.awt.event.MouseEvent evt)
           
 void mousePressed(java.awt.event.MouseEvent evt)
           
 void mouseReleased(java.awt.event.MouseEvent evt)
           
 void paint(java.awt.Graphics g)
          This method is used to handle repaints - it should never be called by the user.
 void paintOLD(java.awt.Graphics g)
          paint this custom button.
 void setBackgroundColor(java.awt.Color c)
           
 void setState(int _state)
          set the (initial) state for this button
 void setUpdateMode(boolean mode)
           
 void setUpdateStatus(boolean s)
           
 java.lang.String toString()
           
 
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, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

label

java.lang.String label

images

java.awt.Image[] images

parent

java.awt.Component parent

width

int width

height

int height

img_width

int img_width

img_height

int img_height

objs

java.lang.Object[] objs

state

int state

updateMode

protected boolean updateMode

updateStatus

protected boolean updateStatus

mouseInside

protected boolean mouseInside

UPDATE_RECT_SIZE

public static final int UPDATE_RECT_SIZE
See Also:
Constant Field Values

backgroundColor

java.awt.Color backgroundColor

debug

public static boolean debug

helper

StatusMessage helper

helpMessage

java.lang.String helpMessage

actionListener

java.awt.event.ActionListener actionListener

sd

StateButton.SelectDialog sd
Constructor Detail

StateButton

public StateButton(java.awt.Component parent,
                   java.lang.String label,
                   java.awt.Image[] images,
                   java.lang.Object[] objs)
Construct the StateButton from an array of images, from the corresponing array of objects.

Parameters:
parent - Not used anymore: a reference to our parent applet
label - A String to identify this stateButton.
images - The array of images to use for drawing. All images must be of the same size.
objs - The array of objects to return with getValue when clicked in the corresponding state.

StateButton

public StateButton(java.awt.Component parent,
                   java.lang.String label,
                   java.awt.Image[] images,
                   java.lang.Object[] objs,
                   StatusMessage helper,
                   java.lang.String helpMessage)

StateButton

public StateButton(java.lang.String label,
                   java.awt.Image[] images,
                   java.lang.Object[] objs,
                   StatusMessage helper,
                   java.lang.String helpMessage)
Method Detail

calculateSize

public void calculateSize()

addActionListener

public void addActionListener(java.awt.event.ActionListener l)
addActionListener


createActionEvent

public void createActionEvent()

getLabel

public java.lang.String getLabel()
getLabel(): return our label String


getState

public int getState()
return the value of the current button state.


setState

public void setState(int _state)
set the (initial) state for this button


setUpdateMode

public void setUpdateMode(boolean mode)

getUpdateMode

public boolean getUpdateMode()

setUpdateStatus

public void setUpdateStatus(boolean s)

getUpdateStatus

public boolean getUpdateStatus()

getObject

public java.lang.Object getObject()
return the object corresponding to the current button state.


getMinimumSize

public java.awt.Dimension getMinimumSize()

getPreferredSize

public java.awt.Dimension getPreferredSize()

setBackgroundColor

public void setBackgroundColor(java.awt.Color c)

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent evt)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent evt)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent evt)
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent evt)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent evt)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

paintOLD

public void paintOLD(java.awt.Graphics g)
paint this custom button. Currently, this paints a 1-pixel 3D border, the image corresponding to the current button state, and the FIG "update mode" icon on the top left corner (if update mode).


paint

public void paint(java.awt.Graphics g)
This method is used to handle repaints - it should never be called by the user.


toString

public java.lang.String toString()

findParentFrame

public java.awt.Frame findParentFrame()