Package jmri.jmrit.throttle
Class AddressPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JInternalFrame
-
- jmri.jmrit.throttle.AddressPanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.beans.PropertyChangeListener
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.RootPaneContainer
,javax.swing.WindowConstants
,ThrottleListener
public class AddressPanel extends javax.swing.JInternalFrame implements ThrottleListener, java.beans.PropertyChangeListener
A JInternalFrame that provides a way for the user to enter a decoder address. This class also store AddressListeners and notifies them when the user enters a new address.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JInternalFrame
javax.swing.JInternalFrame.AccessibleJInternalFrame, javax.swing.JInternalFrame.JDesktopIcon
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
Nested classes/interfaces inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
-
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
-
Nested classes/interfaces inherited from interface jmri.ThrottleListener
ThrottleListener.DecisionType
-
-
Field Summary
-
Fields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY
-
Fields inherited from class javax.swing.JComponent
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
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
-
-
Constructor Summary
Constructors Constructor Description AddressPanel(ThrottleManager throttleManager)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAddressListener(AddressListener l)
Add an AddressListener.(package private) void
applyPreferences()
void
destroy()
void
dispatchAddress()
Dispatch the current address for use by other throttlesDccLocoAddress
getConsistAddress()
Consist
getConsistEntry()
Get the selected Consist if there's one for this throttle.DccLocoAddress
getCurrentAddress()
DccThrottle
getFunctionThrottle()
RosterEntry
getRosterEntry()
Get the RosterEntry if there's one for this throttle.RosterEntrySelectorPanel
getRosterEntrySelector()
int
getRosterSelectedIndex()
Gets the selected index of the roster combo box.DccThrottle
getThrottle()
org.jdom2.Element
getXml()
Create an Element of this object's preferences.void
notifyConsistThrottleFound(DccThrottle t)
Get notification that a consist throttle has been found as we requested.void
notifyDecisionRequired(LocoAddress address, ThrottleListener.DecisionType question)
A decision is required for Throttle creation to continue.void
notifyFailedThrottleRequest(LocoAddress address, java.lang.String reason)
Get notification that an attempt to request a throttle has failed.void
notifyThrottleDisposed()
Receive notification that an address has been release or dispatched.void
notifyThrottleFound(DccThrottle t)
Get notification that a throttle has been found as we requested.protected void
openProgrammer()
Open a programmer for this addressvoid
propertyChange(java.beans.PropertyChangeEvent evt)
void
releaseAddress()
Release the current address.void
removeAddressListener(AddressListener l)
Remove an AddressListener.void
selectRosterEntry()
"Sets" the current roster entry.void
setAddress(int number, boolean isLong)
set the currently used decoder address and initiate a throttle request (same as setCurrentAddress) if a consist address is already set, this address will be used only for functionsvoid
setBackgroundPanel(BackgroundPanel bp)
void
setConsistAddress(DccLocoAddress consistAddress)
set the currently used consist address and initiate a throttle requestvoid
setCurrentAddress(DccLocoAddress currentAddress)
set the currently used decoder address and initiate a throttle request if a consist address is already set, this address will be used only for functionsvoid
setRosterEntry(RosterEntry entry)
Set the RosterEntry for this throttle and initiate a throttle requestvoid
setRosterSelectedIndex(int index)
Sets the selected index of the roster combo box.void
setXml(org.jdom2.Element e)
Use the Element passed to initialize based on user prefs.-
Methods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, updateUI
-
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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, 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, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Constructor Detail
-
AddressPanel
public AddressPanel(ThrottleManager throttleManager)
Constructor- Parameters:
throttleManager
- the throttle manager
-
-
Method Detail
-
destroy
public void destroy()
-
addAddressListener
public void addAddressListener(AddressListener l)
Add an AddressListener. AddressListeners are notified when the user selects a new address and when a Throttle is acquired for that address- Parameters:
l
- listener to add.
-
removeAddressListener
public void removeAddressListener(AddressListener l)
Remove an AddressListener.- Parameters:
l
- listener to remove.
-
getRosterSelectedIndex
public int getRosterSelectedIndex()
Gets the selected index of the roster combo box. Implemented to support xboxThrottle.py- Returns:
- the selected index of the roster combo box
-
setRosterSelectedIndex
public void setRosterSelectedIndex(int index)
Sets the selected index of the roster combo box. Implemented to support xboxThrottle.py This method temporarily disables roster box actions so it can change the selected index without triggering a cascade of events.- Parameters:
index
- the index to select in the combo box
-
setBackgroundPanel
public void setBackgroundPanel(BackgroundPanel bp)
-
selectRosterEntry
public void selectRosterEntry()
"Sets" the current roster entry. Equivalent to the user pressing the "Set" button. Implemented to support xboxThrottle.py
-
notifyThrottleFound
public void notifyThrottleFound(DccThrottle t)
Get notification that a throttle has been found as we requested.- Specified by:
notifyThrottleFound
in interfaceThrottleListener
- Parameters:
t
- An instantiation of the DccThrottle with the address requested.
-
notifyFailedThrottleRequest
public void notifyFailedThrottleRequest(LocoAddress address, java.lang.String reason)
Description copied from interface:ThrottleListener
Get notification that an attempt to request a throttle has failed.- Specified by:
notifyFailedThrottleRequest
in interfaceThrottleListener
- Parameters:
address
- address of the failed requestreason
- failure cause
-
notifyDecisionRequired
public void notifyDecisionRequired(LocoAddress address, ThrottleListener.DecisionType question)
A decision is required for Throttle creation to continue.Steal / Cancel, Share / Cancel, or Steal / Share Cancel
- Specified by:
notifyDecisionRequired
in interfaceThrottleListener
- Parameters:
address
- The LocoAddress that needs the decision.question
- The question being asked, steal / cancel, share / cancel, steal / share / cancel
-
notifyConsistThrottleFound
public void notifyConsistThrottleFound(DccThrottle t)
Get notification that a consist throttle has been found as we requested.- Parameters:
t
- An instantiation of the DccThrottle with the address requested.
-
notifyThrottleDisposed
public void notifyThrottleDisposed()
Receive notification that an address has been release or dispatched.
-
getRosterEntry
public RosterEntry getRosterEntry()
Get the RosterEntry if there's one for this throttle.- Returns:
- RosterEntry or null
-
getConsistEntry
public Consist getConsistEntry()
Get the selected Consist if there's one for this throttle.- Returns:
- Consist or null
-
setRosterEntry
public void setRosterEntry(RosterEntry entry)
Set the RosterEntry for this throttle and initiate a throttle request- Parameters:
entry
- roster entry to set.
-
openProgrammer
protected void openProgrammer()
Open a programmer for this address
-
dispatchAddress
public void dispatchAddress()
Dispatch the current address for use by other throttles
-
releaseAddress
public void releaseAddress()
Release the current address.
-
getXml
public org.jdom2.Element getXml()
Create an Element of this object's preferences.- Window Preferences
- Address value
- Returns:
- org.jdom2.Element for this objects preferences. Defined in DTD/throttle-config
-
setXml
public void setXml(org.jdom2.Element e)
Use the Element passed to initialize based on user prefs.- Parameters:
e
- The Element containing prefs as defined in DTD/throttle-config
-
getRosterEntrySelector
public RosterEntrySelectorPanel getRosterEntrySelector()
- Returns:
- the RosterEntrySelectorPanel
-
getThrottle
public DccThrottle getThrottle()
- Returns:
- the curently assigned motor throttle for regular locomotives or consist
-
getFunctionThrottle
public DccThrottle getFunctionThrottle()
- Returns:
- the curently assigned function throttle for regular locomotives or consist
-
getCurrentAddress
public DccLocoAddress getCurrentAddress()
- Returns:
- the currently used decoder address
-
setCurrentAddress
public void setCurrentAddress(DccLocoAddress currentAddress)
set the currently used decoder address and initiate a throttle request if a consist address is already set, this address will be used only for functions- Parameters:
currentAddress
- the address to use
-
setAddress
public void setAddress(int number, boolean isLong)
set the currently used decoder address and initiate a throttle request (same as setCurrentAddress) if a consist address is already set, this address will be used only for functions- Parameters:
number
- the addressisLong
- long/short (true/false) address
-
getConsistAddress
@CheckForNull public DccLocoAddress getConsistAddress()
- Returns:
- the current consist address if any
-
setConsistAddress
public void setConsistAddress(DccLocoAddress consistAddress)
set the currently used consist address and initiate a throttle request- Parameters:
consistAddress
- the consist address to use
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent evt)
- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
-
applyPreferences
void applyPreferences()
-
-