jmri.jmrit.throttle
Class FunctionButton

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.AbstractButton
                  extended by javax.swing.JToggleButton
                      extended by jmri.jmrit.throttle.FunctionButton
All Implemented Interfaces:
ActionListener, ImageObserver, ItemSelectable, MenuContainer, Serializable, EventListener, Accessible, SwingConstants

public class FunctionButton
extends JToggleButton
implements ActionListener

A JButton to activate functions on the decoder. FunctionButtons have a right-click popup menu with several configuration options:

Author:
Glen Oberhauser, Bob Jacobsen Copyright 2008
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JToggleButton
JToggleButton.AccessibleJToggleButton, JToggleButton.ToggleButtonModel
 
Nested classes/interfaces inherited from class javax.swing.AbstractButton
AbstractButton.AccessibleAbstractButton, AbstractButton.ButtonChangeListener
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class javax.swing.AbstractButton
actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY
 
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.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.SwingConstants
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
FunctionButton()
          Construct the FunctionButton.
 
Method Summary
 void actionPerformed(ActionEvent e)
          Handle the selection from the popup menu.
 void addFunctionListener(FunctionListener l)
          Add a listener to this button, probably some sort of keypad panel.
 void changeState(boolean newState)
          Change the state of the function.
 boolean checkKeyCode(int keycode)
          Check to see whether a particular KeyCode corresponds to this function button.
static int getButtonHeight()
           
 String getButtonLabel()
           
static int getButtonWidth()
           
 boolean getDisplay()
          Get the display state of the button
 String getIconPath()
           
 int getIdentity()
          Get the function number this button operates
 boolean getIsLockable()
          Get the locking state of the function
 String getSelectedIconPath()
           
 boolean getState()
          get the state of the function
 Element getXml()
          Collect the prefs of this object into XML Element identity text isLockable
 boolean isDirty()
           
 boolean isImageOK()
           
 boolean isSelectedImageOK()
           
 void removeFunctionListener(FunctionListener l)
          Remove a listener from this button.
 void setButtonLabel(String label)
           
 void setDirty(boolean dirty)
          True when function button has been modified by user.
 void setDisplay(boolean displayed)
          Set the display state of the button
 void setFunctionListener(FunctionListener l)
          Add a listener to this button, probably some sort of keypad panel.
 void setIconPath(String fnImg)
           
 void setIdentity(int id)
          Set the function number this button will operate
 void setIsLockable(boolean isLockable)
          Set the locking state of the button
 void setKeyCode(int key)
          Set the keycode that this button should respond to.
 void setSelectedIconPath(String fnImg)
           
 void setState(boolean isOn)
          Set the state of the function button.
 void setText(String s)
           
 void setXml(Element e)
          Set the preferences based on the XML Element.
 void updateLnF()
          Decide if it should show the label or an image with text as tooltip Button UI updated according to above result.
 
Methods inherited from class javax.swing.JToggleButton
getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.AbstractButton
actionPropertyChanged, addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, configurePropertiesFromAction, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, init, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, isSelected, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setEnabled, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setModel, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelected, setSelectedIcon, setUI, setVerticalAlignment, setVerticalTextPosition
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, 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, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FunctionButton

public FunctionButton()
Construct the FunctionButton.

Method Detail

getButtonHeight

public static int getButtonHeight()

getButtonWidth

public static int getButtonWidth()

setIdentity

public void setIdentity(int id)
Set the function number this button will operate

Parameters:
id - An integer from 0 to 28.

getIdentity

public int getIdentity()
Get the function number this button operates

Returns:
An integer from 0 to 28.

setKeyCode

public void setKeyCode(int key)
Set the keycode that this button should respond to.

Later, when a key is being processed, checkKeyCode will determine if there's a match between the key that was pressed and the key for this button


checkKeyCode

public boolean checkKeyCode(int keycode)
Check to see whether a particular KeyCode corresponds to this function button.

Returns:
true if the button should respond to this key

setState

public void setState(boolean isOn)
Set the state of the function button. Does NOT notify any listeners

Parameters:
isOn - True if the function should be active.

getState

public boolean getState()
get the state of the function

Returns:
true if the function is active.

setIsLockable

public void setIsLockable(boolean isLockable)
Set the locking state of the button

Parameters:
isLockable - True if the a clicking and releasing the button changes the function state. False if the state is changed back when the button is released

getIsLockable

public boolean getIsLockable()
Get the locking state of the function

Returns:
True if the a clicking and releasing the button changes the function state. False if the state is changed back when the button is released

setDisplay

public void setDisplay(boolean displayed)
Set the display state of the button

Parameters:
displayed - True if the button exists False if the button has been removed by the user

getDisplay

public boolean getDisplay()
Get the display state of the button

Returns:
True if the button exists False if the button has been removed by the user

setDirty

public void setDirty(boolean dirty)
True when function button has been modified by user.


isDirty

public boolean isDirty()
Returns:
true when function button has been modified by user.

getButtonLabel

public String getButtonLabel()

setButtonLabel

public void setButtonLabel(String label)

setText

public void setText(String s)
Overrides:
setText in class AbstractButton

updateLnF

public void updateLnF()
Decide if it should show the label or an image with text as tooltip Button UI updated according to above result.


actionPerformed

public void actionPerformed(ActionEvent e)
Handle the selection from the popup menu.

Specified by:
actionPerformed in interface ActionListener
Parameters:
e - The ActionEvent causing the action.

changeState

public void changeState(boolean newState)
Change the state of the function.

Parameters:
newState - The new state. True = Is on, False = Is off.

setFunctionListener

public void setFunctionListener(FunctionListener l)
Add a listener to this button, probably some sort of keypad panel.

Parameters:
l - The FunctionListener that wants notifications via the FunctionListener.notifyFunctionStateChanged.

addFunctionListener

public void addFunctionListener(FunctionListener l)
Add a listener to this button, probably some sort of keypad panel.

Parameters:
l - The FunctionListener that wants notifications via the FunctionListener.notifyFunctionStateChanged.

removeFunctionListener

public void removeFunctionListener(FunctionListener l)
Remove a listener from this button.

Parameters:
l - The FunctionListener to be removed

getXml

public Element getXml()
Collect the prefs of this object into XML Element

Returns:
the XML of this object.

setXml

public void setXml(Element e)
Set the preferences based on the XML Element.

Parameters:
e - The Element for this object.

setIconPath

public void setIconPath(String fnImg)

getIconPath

public String getIconPath()

setSelectedIconPath

public void setSelectedIconPath(String fnImg)

getSelectedIconPath

public String getSelectedIconPath()

isImageOK

public boolean isImageOK()

isSelectedImageOK

public boolean isSelectedImageOK()


Copyright © 1997 - 2011 JMRI Community.
JMRI, DecoderPro, PanelPro, SoundPro, DispatcherPro and associated logos are our trademarks.

Additional information on copyright, trademarks and licenses is linked here.
Site hosted by: Get JMRI Model Railroad Interface at SourceForge.net. Fast, secure and Free Open Source software downloads