jfig.gui
Class JNumericStateButton

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byjfig.gui.JStateButton
                      extended byjfig.gui.JNumericStateButton
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 JNumericStateButton
extends JStateButton
implements java.awt.event.MouseListener

a Swing 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 JNumericStateButton.SelectValueDialog
          inner class to display a dialog window for direct value selection.
 
Nested classes inherited from class jfig.gui.JStateButton
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
(package private)  java.awt.Font labelFont
           
(package private)  int maxValue
           
(package private)  int minValue
           
(package private)  JNumericStateButton.SelectValueDialog selectDialog
           
(package private)  int[] steps
           
 
Fields inherited from class jfig.gui.JStateButton
actionListener, debug, height, helper, helpMessage, images, img_height, img_width, label, mouseInside, objs, parent, sd, state, ttt, UPDATE_RECT_SIZE, updateMode, updateStatus, 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
JNumericStateButton(java.awt.Component parent, java.lang.String label, StatusMessage helper, java.lang.String helpMessage)
           
 
Method Summary
 void calculateSize()
           
 void decrementStepValue()
           
 java.awt.Dialog getDialog()
          return a reference to our SelectValueDialog, or null if this has not yet been created.
 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 paintComponent(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.JStateButton
addActionListener, checkCreateMouseWheelHandler, createActionEvent, disableToolTip, findParentFrame, getLabel, getMinimumSize, getObject, getPreferredSize, getState, getToolTipLocation, getUpdateMode, getUpdateStatus, mouseClicked, mouseEntered, mouseExited, mouseReleased, paintOLD, reEnableToolTip, setBackgroundColor, setUpdateMode, setUpdateStatus
 
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
 
Methods inherited from interface java.awt.event.MouseListener
mouseClicked, mouseEntered, mouseExited, mouseReleased
 

Field Detail

minValue

int minValue

maxValue

int maxValue

steps

int[] steps

labelFont

java.awt.Font labelFont

selectDialog

JNumericStateButton.SelectValueDialog selectDialog
Constructor Detail

JNumericStateButton

public JNumericStateButton(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: JStateButton
set the (initial) state for this button

Overrides:
setState in class JStateButton

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 JStateButton

getDialog

public java.awt.Dialog getDialog()
return a reference to our SelectValueDialog, or null if this has not yet been created.

Overrides:
getDialog in class JStateButton

paintComponent

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

Overrides:
paintComponent in class JStateButton

mousePressed

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

toString

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

Overrides:
toString in class JStateButton

main

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