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 voidaddAddressListener(AddressListener l)Add an AddressListener.(package private) voidapplyPreferences()voiddestroy()voiddispatchAddress()Dispatch the current address for use by other throttlesDccLocoAddressgetConsistAddress()ConsistgetConsistEntry()Get the selected Consist if there's one for this throttle.DccLocoAddressgetCurrentAddress()DccThrottlegetFunctionThrottle()RosterEntrygetRosterEntry()Get the RosterEntry if there's one for this throttle.RosterEntrySelectorPanelgetRosterEntrySelector()intgetRosterSelectedIndex()Gets the selected index of the roster combo box.DccThrottlegetThrottle()org.jdom2.ElementgetXml()Create an Element of this object's preferences.voidnotifyConsistThrottleFound(DccThrottle t)Get notification that a consist throttle has been found as we requested.voidnotifyDecisionRequired(LocoAddress address, ThrottleListener.DecisionType question)A decision is required for Throttle creation to continue.voidnotifyFailedThrottleRequest(LocoAddress address, java.lang.String reason)Get notification that an attempt to request a throttle has failed.voidnotifyThrottleDisposed()Receive notification that an address has been release or dispatched.voidnotifyThrottleFound(DccThrottle t)Get notification that a throttle has been found as we requested.protected voidopenProgrammer()Open a programmer for this addressvoidpropertyChange(java.beans.PropertyChangeEvent evt)voidreleaseAddress()Release the current address.voidremoveAddressListener(AddressListener l)Remove an AddressListener.voidselectRosterEntry()"Sets" the current roster entry.voidsetAddress(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 functionsvoidsetBackgroundPanel(BackgroundPanel bp)voidsetConsistAddress(DccLocoAddress consistAddress)set the currently used consist address and initiate a throttle requestvoidsetCurrentAddress(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 functionsvoidsetRosterEntry(RosterEntry entry)Set the RosterEntry for this throttle and initiate a throttle requestvoidsetRosterSelectedIndex(int index)Sets the selected index of the roster combo box.voidsetXml(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:
notifyThrottleFoundin 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:ThrottleListenerGet notification that an attempt to request a throttle has failed.- Specified by:
notifyFailedThrottleRequestin 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:
notifyDecisionRequiredin 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:
propertyChangein interfacejava.beans.PropertyChangeListener
-
applyPreferences
void applyPreferences()
-
-