jfig.gui
Class JStateButton

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byjfig.gui.JStateButton
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:
JColorButton, JFillPatternButton, JFontButton, JNumericStateButton

public class JStateButton
extends javax.swing.JPanel
implements java.awt.event.MouseListener

multiple-state button with images and bubble-help.

JStateButton (state button) is a button which supports stepping through its state sequence. The button displays an image for each state and calls action() if clicked. Behavior can be added to an ImageButton by subclassing it and overriding the action method.

The default background color is taken from the SetupManager property "jfig.gui.Editor.BackgroundColor".

See Also:
Serialized Form

Nested Class Summary
(package private)  class JStateButton.SelectDialog
           
 
Nested classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
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.event.ActionListener actionListener
           
static boolean debug
           
protected  int height
           
protected  StatusMessage helper
           
protected  java.lang.String helpMessage
           
protected  java.awt.Image[] images
           
protected  int img_height
           
protected  int img_width
           
protected  java.lang.String label
           
protected  boolean mouseInside
           
protected  java.lang.Object[] objs
           
protected  java.awt.Component parent
           
protected  JStateButton.SelectDialog sd
           
protected  int state
           
protected  java.lang.String ttt
           
static int UPDATE_RECT_SIZE
           
protected  boolean updateMode
           
protected  boolean updateStatus
           
protected  int width
           
 
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.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
JStateButton(java.awt.Component parent, java.lang.String label, java.awt.Image[] images, java.lang.Object[] objs)
          Construct the JStateButton from an array of images, from the corresponing array of objects.
JStateButton(java.awt.Component parent, java.lang.String label, java.awt.Image[] images, java.lang.Object[] objs, StatusMessage helper, java.lang.String helpMessage)
           
JStateButton(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 checkCreateMouseWheelHandler()
           
 void createActionEvent()
           
 void disableToolTip()
           
 java.awt.Frame findParentFrame()
           
 java.awt.Dialog getDialog()
           
 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.
 java.awt.Point getToolTipLocation(java.awt.event.MouseEvent evt)
          return a good position for a tool tip in this Components coordinate system.
 boolean getUpdateMode()
           
 boolean getUpdateStatus()
           
static void main(java.lang.String[] argv)
           
 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 paintComponent(java.awt.Graphics g)
          This method is used to handle repaints
 void paintOLD(java.awt.Graphics g)
          paint this custom button.
 void reEnableToolTip()
           
 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 javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getNextFocusableComponent, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, 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, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

debug

public static boolean debug

UPDATE_RECT_SIZE

public static final int UPDATE_RECT_SIZE
See Also:
Constant Field Values

label

protected java.lang.String label

images

protected java.awt.Image[] images

objs

protected java.lang.Object[] objs

parent

protected java.awt.Component parent

width

protected int width

height

protected int height

img_width

protected int img_width

img_height

protected int img_height

state

protected int state

updateMode

protected boolean updateMode

updateStatus

protected boolean updateStatus

mouseInside

protected boolean mouseInside

helper

protected StatusMessage helper

helpMessage

protected java.lang.String helpMessage

ttt

protected java.lang.String ttt

actionListener

protected java.awt.event.ActionListener actionListener

sd

protected JStateButton.SelectDialog sd
Constructor Detail

JStateButton

public JStateButton(java.awt.Component parent,
                    java.lang.String label,
                    java.awt.Image[] images,
                    java.lang.Object[] objs)
Construct the JStateButton 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.

JStateButton

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

JStateButton

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

calculateSize

public void calculateSize()

checkCreateMouseWheelHandler

public void checkCreateMouseWheelHandler()

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()

getDialog

public java.awt.Dialog getDialog()

getToolTipLocation

public java.awt.Point getToolTipLocation(java.awt.event.MouseEvent evt)
return a good position for a tool tip in this Components coordinate system. We return the fixed value (15,-20) in order to avoid stupid Swing to draw the tooltip right over this button itself...


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

disableToolTip

public void disableToolTip()

reEnableToolTip

public void reEnableToolTip()

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).


paintComponent

public void paintComponent(java.awt.Graphics g)
This method is used to handle repaints


toString

public java.lang.String toString()

findParentFrame

public java.awt.Frame findParentFrame()

main

public static void main(java.lang.String[] argv)