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
ConnectionConfigwhich 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) ConnectionConfigccCurrent(package private) ConnectionConfig[]classConnectionList(package private) java.lang.String[]classConnectionNameList(package private) javax.swing.JPaneldetailsjavax.swing.JComboBox<java.lang.String>manuBox(package private) java.lang.String[]manufactureNameList(package private) javax.swing.JComboBox<java.lang.String>modeBoxstatic java.lang.StringNO_PORTS_FOUNDstatic java.lang.StringNONEstatic java.lang.StringNONE_SELECTED(package private) UserPreferencesManagerp-
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 protectedJmrixConfigPane()protectedJmrixConfigPane(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 JmrixConfigPanecreateNewPanel()Get access to a new pane for creating new connections.static JmrixConfigPanecreatePanel(int index)Create a new connection configuration panel.static JmrixConfigPanecreatePanel(ConnectionConfig c)Create a new configuration panel for the given connection.static voiddispose(JmrixConfigPane confPane)Disposes of the underlying connection for a configuration pane.java.lang.StringgetConnectionName()java.lang.StringgetCurrentManufacturerName()ConnectionConfiggetCurrentObject()java.lang.StringgetCurrentProtocolInfo()java.lang.StringgetCurrentProtocolName()booleangetDisabled()java.lang.StringgetLabelKey()Text displayed above the preferences panel This label is only displayed if the preferences panel is in a tabbed set of preferences.javax.swing.JComponentgetPreferencesComponent()Get the preferences component for displayjava.lang.StringgetPreferencesItem()Get the Preferences Item identifier.java.lang.StringgetPreferencesItemText()Get the text for the Preferences Item in the preferences window list of preferences categories.java.lang.StringgetPreferencesTooltip()The tooltip to display for a tabbed preferences paneljava.lang.StringgetTabbedPreferencesTitle()Get the title for the tab containing this preferences item.booleanisDirty()Indicate that preferences need to be saved.booleanisPersistant()Indicates that this PrefernecesPanel should be stored across application starts by the PreferencesManager This should be true if the implementing class relies on theConfigureManagerstores and retrieves the preferences managed by the implementing class on behalf of the implementing class.booleanisPreferencesValid()Indicate that the preferences are valid.booleanisRestartRequired()Indicate that the preferences will not take effect until restarted.voidsavePreferences()Save any changes to preferences.(package private) voidselection()voidsetDisabled(boolean disabled)voidupdateComboConnection()-
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
public 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:PreferencesPanelGet 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:
getPreferencesItemin interfacePreferencesPanel- Returns:
- the preferences item identifier.
-
getPreferencesItemText
public java.lang.String getPreferencesItemText()
Description copied from interface:PreferencesPanelGet 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:
getPreferencesItemTextin interfacePreferencesPanel- Returns:
- the text for the preferences item.
-
getTabbedPreferencesTitle
public java.lang.String getTabbedPreferencesTitle()
Description copied from interface:PreferencesPanelGet the title for the tab containing this preferences item.- Specified by:
getTabbedPreferencesTitlein interfacePreferencesPanel- Returns:
- a tab title
-
getLabelKey
public java.lang.String getLabelKey()
Description copied from interface:PreferencesPanelText 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:
getLabelKeyin interfacePreferencesPanel- Returns:
- label text
-
getPreferencesComponent
public javax.swing.JComponent getPreferencesComponent()
Description copied from interface:PreferencesPanelGet the preferences component for display- Specified by:
getPreferencesComponentin interfacePreferencesPanel- Returns:
- the preferences panel
-
isPersistant
public boolean isPersistant()
Description copied from interface:PreferencesPanelIndicates that this PrefernecesPanel should be stored across application starts by the PreferencesManager This should be true if the implementing class relies on theConfigureManagerstores and retrieves the preferences managed by the implementing class on behalf of the implementing class.- Specified by:
isPersistantin interfacePreferencesPanel- Returns:
- false if the implementing class stores its own preferences
-
getPreferencesTooltip
public java.lang.String getPreferencesTooltip()
Description copied from interface:PreferencesPanelThe tooltip to display for a tabbed preferences panel- Specified by:
getPreferencesTooltipin interfacePreferencesPanel- Returns:
- tooltip text
-
savePreferences
public void savePreferences()
Description copied from interface:PreferencesPanelSave any changes to preferences. This method is called for every instance of a PreferencesPanel that is loaded byTabbedPreferencesifPreferencesPanel.isPersistant()is false.- Specified by:
savePreferencesin interfacePreferencesPanel
-
isDirty
public boolean isDirty()
Description copied from interface:PreferencesPanelIndicate that preferences need to be saved.- Specified by:
isDirtyin interfacePreferencesPanel- Returns:
- true if preferences need to be saved, false otherwise
-
isRestartRequired
public boolean isRestartRequired()
Description copied from interface:PreferencesPanelIndicate that the preferences will not take effect until restarted.- Specified by:
isRestartRequiredin interfacePreferencesPanel- Returns:
- true if the application needs to restart
-
isPreferencesValid
public boolean isPreferencesValid()
Description copied from interface:PreferencesPanelIndicate that the preferences are valid.- Specified by:
isPreferencesValidin interfacePreferencesPanel- Returns:
- true if the preferences are valid, false otherwise
-
-