Package jmri.jmrix
Class JmrixConfigPane
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- jmri.jmrix.JmrixConfigPane
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
,JmriServiceProviderInterface
,PreferencesPanel
- Direct Known Subclasses:
StreamConfigPane
public class JmrixConfigPane extends javax.swing.JPanel implements PreferencesPanel
Provide GUI to configure communications links.This is really just a catalog of connections to classes within the systems. Reflection is used to reduce coupling at load time.
Objects of this class are based on an underlying ConnectionConfig implementation, which in turn is obtained from the InstanceManager. Those must be created at load time by the ConfigXml process, or in some Application class.
The classes referenced are the specific subclasses of
ConnectionConfig
which provides the methods providing data to the configuration GUI, and responding to its changes.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description (package private) ConnectionConfig
ccCurrent
(package private) ConnectionConfig[]
classConnectionList
(package private) java.lang.String[]
classConnectionNameList
(package private) javax.swing.JPanel
details
(package private) javax.swing.JComboBox<java.lang.String>
manuBox
(package private) java.lang.String[]
manufactureNameList
(package private) javax.swing.JComboBox<java.lang.String>
modeBox
static java.lang.String
NO_PORTS_FOUND
static java.lang.String
NONE
static java.lang.String
NONE_SELECTED
(package private) UserPreferencesManager
p
-
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
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
JmrixConfigPane()
protected
JmrixConfigPane(ConnectionConfig original)
Use "instance" to get one of these.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static JmrixConfigPane
createNewPanel()
Get access to a new pane for creating new connections.static JmrixConfigPane
createPanel(int index)
Create a new connection configuration panel.static JmrixConfigPane
createPanel(ConnectionConfig c)
Create a new configuration panel for the given connection.static void
dispose(JmrixConfigPane confPane)
Disposes of the underlying connection for a configuration pane.java.lang.String
getConnectionName()
java.lang.String
getCurrentManufacturerName()
ConnectionConfig
getCurrentObject()
java.lang.String
getCurrentProtocolInfo()
java.lang.String
getCurrentProtocolName()
boolean
getDisabled()
java.lang.String
getLabelKey()
Text displayed above the preferences panel This label is only displayed if the preferences panel is in a tabbed set of preferences.javax.swing.JComponent
getPreferencesComponent()
Get the preferences component for displayjava.lang.String
getPreferencesItem()
Get the Preferences Item identifier.java.lang.String
getPreferencesItemText()
Get the text for the Preferences Item in the preferences window list of preferences categories.java.lang.String
getPreferencesTooltip()
The tooltip to display for a tabbed preferences paneljava.lang.String
getTabbedPreferencesTitle()
Get the title for the tab containing this preferences item.boolean
isDirty()
Indicate that preferences need to be saved.boolean
isPersistant()
Indicates that this PrefernecesPanel should be stored across application starts by the PreferencesManager This should be true if the implementing class relies on theConfigureManager
stores and retrieves the preferences managed by the implementing class on behalf of the implementing class.boolean
isPreferencesValid()
Indicate that the preferences are valid.boolean
isRestartRequired()
Indicate that the preferences will not take effect until restarted.void
savePreferences()
Save any changes to preferences.(package private) void
selection()
void
setDisabled(boolean disabled)
void
updateComboConnection()
-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, 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, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, 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, reshape, 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, addImpl, 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, setLayout, 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, 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, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface jmri.swing.PreferencesPanel
getIsEnabled, getSortOrder
-
-
-
-
Field Detail
-
NONE_SELECTED
public static final java.lang.String NONE_SELECTED
-
NO_PORTS_FOUND
public static final java.lang.String NO_PORTS_FOUND
-
NONE
public static final java.lang.String NONE
-
modeBox
javax.swing.JComboBox<java.lang.String> modeBox
-
manuBox
javax.swing.JComboBox<java.lang.String> manuBox
-
details
javax.swing.JPanel details
-
classConnectionNameList
java.lang.String[] classConnectionNameList
-
classConnectionList
ConnectionConfig[] classConnectionList
-
manufactureNameList
java.lang.String[] manufactureNameList
-
ccCurrent
ConnectionConfig ccCurrent
-
-
Constructor Detail
-
JmrixConfigPane
protected JmrixConfigPane()
-
JmrixConfigPane
protected JmrixConfigPane(ConnectionConfig original)
Use "instance" to get one of these. That allows it to reconnect to existing information in an existing ConnectionConfig object. It's permitted to call this with a null argument, e.g. for when first configuring the system.- Parameters:
original
- Existing ConnectionConfig object to (re)connect with
-
-
Method Detail
-
createPanel
public static JmrixConfigPane createPanel(int index)
Create a new connection configuration panel.- Parameters:
index
- the index of the desired connection configuration fromConnectionConfigManager.getConnections(int)
- Returns:
- the panel for the requested connection or for a new connection if index did not match an existing connection configuration
-
createPanel
public static JmrixConfigPane createPanel(ConnectionConfig c)
Create a new configuration panel for the given connection.- Parameters:
c
- the connection; if null, the panel is ready for a new connection- Returns:
- the new panel
-
createNewPanel
public static JmrixConfigPane createNewPanel()
Get access to a new pane for creating new connections.- Returns:
- a new configuration panel
-
dispose
public static void dispose(JmrixConfigPane confPane)
Disposes of the underlying connection for a configuration pane.- Parameters:
confPane
- the pane to dispose of
-
updateComboConnection
public void updateComboConnection()
-
selection
void selection()
-
getConnectionName
public java.lang.String getConnectionName()
-
getCurrentManufacturerName
public java.lang.String getCurrentManufacturerName()
-
getCurrentProtocolName
public java.lang.String getCurrentProtocolName()
-
getCurrentProtocolInfo
public java.lang.String getCurrentProtocolInfo()
-
getCurrentObject
public ConnectionConfig getCurrentObject()
-
getDisabled
public boolean getDisabled()
-
setDisabled
public void setDisabled(boolean disabled)
-
getPreferencesItem
public java.lang.String getPreferencesItem()
Description copied from interface:PreferencesPanel
Get the Preferences Item identifier. Multiple PreferencePanels can be displayed as tabs in a single item. Preferences items are listed in the menu on the left of the preferences window.- Specified by:
getPreferencesItem
in interfacePreferencesPanel
- Returns:
- the preferences item identifier.
-
getPreferencesItemText
public java.lang.String getPreferencesItemText()
Description copied from interface:PreferencesPanel
Get the text for the Preferences Item in the preferences window list of preferences categories. Multiple PreferencePanels can be displayed as tabs in a single item. Preferences items are listed in the menu on the left of the preferences window.- Specified by:
getPreferencesItemText
in interfacePreferencesPanel
- Returns:
- the text for the preferences item.
-
getTabbedPreferencesTitle
public java.lang.String getTabbedPreferencesTitle()
Description copied from interface:PreferencesPanel
Get the title for the tab containing this preferences item.- Specified by:
getTabbedPreferencesTitle
in interfacePreferencesPanel
- Returns:
- a tab title
-
getLabelKey
public java.lang.String getLabelKey()
Description copied from interface:PreferencesPanel
Text displayed above the preferences panel This label is only displayed if the preferences panel is in a tabbed set of preferences. This label can contain multiple lines.- Specified by:
getLabelKey
in interfacePreferencesPanel
- Returns:
- label text
-
getPreferencesComponent
public javax.swing.JComponent getPreferencesComponent()
Description copied from interface:PreferencesPanel
Get the preferences component for display- Specified by:
getPreferencesComponent
in interfacePreferencesPanel
- Returns:
- the preferences panel
-
isPersistant
public boolean isPersistant()
Description copied from interface:PreferencesPanel
Indicates that this PrefernecesPanel should be stored across application starts by the PreferencesManager This should be true if the implementing class relies on theConfigureManager
stores and retrieves the preferences managed by the implementing class on behalf of the implementing class.- Specified by:
isPersistant
in interfacePreferencesPanel
- Returns:
- false if the implementing class stores its own preferences
-
getPreferencesTooltip
public java.lang.String getPreferencesTooltip()
Description copied from interface:PreferencesPanel
The tooltip to display for a tabbed preferences panel- Specified by:
getPreferencesTooltip
in interfacePreferencesPanel
- Returns:
- tooltip text
-
savePreferences
public void savePreferences()
Description copied from interface:PreferencesPanel
Save any changes to preferences. This method is called for every instance of a PreferencesPanel that is loaded byTabbedPreferences
ifPreferencesPanel.isPersistant()
is false.- Specified by:
savePreferences
in interfacePreferencesPanel
-
isDirty
public boolean isDirty()
Description copied from interface:PreferencesPanel
Indicate that preferences need to be saved.- Specified by:
isDirty
in interfacePreferencesPanel
- Returns:
- true if preferences need to be saved, false otherwise
-
isRestartRequired
public boolean isRestartRequired()
Description copied from interface:PreferencesPanel
Indicate that the preferences will not take effect until restarted.- Specified by:
isRestartRequired
in interfacePreferencesPanel
- Returns:
- true if the application needs to restart
-
isPreferencesValid
public boolean isPreferencesValid()
Description copied from interface:PreferencesPanel
Indicate that the preferences are valid.- Specified by:
isPreferencesValid
in interfacePreferencesPanel
- Returns:
- true if the preferences are valid, false otherwise
-
-