jfig.gui
Class NumericStateButton

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

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

a button to display and select a numerical value.

This button implements the xfig-style behaviour to select a value: left button opens a dialog window for direct value input, middle and right button select the previous and next value, where an array of "stepping values" can be preset. Note that the "state" variable of our parent class is used as the value.

See Also:
Serialized Form

Nested Class Summary
(package private)  class NumericStateButton.SelectValueDialog
          inner class to display a dialog window for direct value selection.
 
Nested classes inherited from class jfig.gui.StateButton
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)  int maxValue
           
(package private)  int minValue
           
(package private)  NumericStateButton.SelectValueDialog selectDialog
           
(package private)  int[] steps
           
 
Fields inherited from class jfig.gui.StateButton
actionListener, backgroundColor, debug, height, helper, helpMessage, images, img_height, img_width, label, mouseInside, objs, parent, sd, state, UPDATE_RECT_SIZE, updateMode, updateStatus, 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
NumericStateButton(java.awt.Component parent, java.lang.String label, StatusMessage helper, java.lang.String helpMessage)
           
 
Method Summary
 void calculateSize()
           
 void decrementStepValue()
           
 void incrementStepValue()
          increment the current value of this button by one step.
static void main(java.lang.String[] argv)
          simple selftest
 void mousePressed(java.awt.event.MouseEvent evt)
           
 void paint(java.awt.Graphics g)
          paint this custom button.
 void setMaxValue(int max)
           
 void setMinValue(int min)
           
 void setState(int i)
          set the (initial) state for this button
 void setSteps(int[] steps)
          set the "stepping" values for the increment/decrement function of this button.
 java.lang.String toString()
          the usual info method
 
Methods inherited from class jfig.gui.StateButton
addActionListener, createActionEvent, findParentFrame, getLabel, getMinimumSize, getObject, getPreferredSize, getState, getUpdateMode, getUpdateStatus, mouseClicked, mouseEntered, mouseExited, mouseReleased, paintOLD, setBackgroundColor, setUpdateMode, setUpdateStatus
 
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
 
Methods inherited from interface java.awt.event.MouseListener
mouseClicked, mouseEntered, mouseExited, mouseReleased
 

Field Detail

minValue

int minValue

maxValue

int maxValue

steps

int[] steps

selectDialog

NumericStateButton.SelectValueDialog selectDialog
Constructor Detail

NumericStateButton

public NumericStateButton(java.awt.Component parent,
                          java.lang.String label,
                          StatusMessage helper,
                          java.lang.String helpMessage)
Method Detail

setState

public void setState(int i)
Description copied from class: StateButton
set the (initial) state for this button

Overrides:
setState in class StateButton

setMinValue

public void setMinValue(int min)

setMaxValue

public void setMaxValue(int max)

setSteps

public void setSteps(int[] steps)
set the "stepping" values for the increment/decrement function of this button. The "steps" array must be sorted by ascending values. To get consistent behaviour, this method automatically sets the minValue to steps[0] and maxValue to steps[length-1].


incrementStepValue

public void incrementStepValue()
increment the current value of this button by one step. If no "steps" values are set, this increments the value by one, until the maximum value is reached. If the "steps" array is not empty, the value is set to the next larger value than the current value, or wraparound to the minimum value if the button value is currently at the maximum value.


decrementStepValue

public void decrementStepValue()

calculateSize

public void calculateSize()
Overrides:
calculateSize in class StateButton

paint

public void paint(java.awt.Graphics g)
paint this custom button.

Overrides:
paint in class StateButton

mousePressed

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

toString

public java.lang.String toString()
the usual info method

Overrides:
toString in class StateButton

main

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