Class JmriJFrame
- All Implemented Interfaces:
ComponentListener
,WindowListener
,ImageObserver
,MenuContainer
,Serializable
,EventListener
,Accessible
,RootPaneContainer
,WindowConstants
,BeanInterface
,ModifiedFlag
,WindowInterface
- Direct Known Subclasses:
AbstractAudioFrame
,AbstractMonFrame
,AbstractPacketGenFrame
,AbstractRouteAddEditFrame
,AcelaPacketGenFrame
,AddEntryExitPairFrame
,AddNodeFrame
,AddSignalMastJFrame
,AlignTableFrame
,AnalogClockFrame
,AppsLaunchFrame
,AutomatTableFrame
,AutoTrainsFrame
,BeanTableFrame
,BlockBossFrame
,BlockPathEditFrame
,CbusEventHighlightFrame
,CbusFilterFrame
,CbusNodeEditEventFrame
,CbusNodeRestoreFcuFrame
,CircuitBuilder.CBFrame
,CMRInetManagerFrame
,CMRInetMetricsFrame
,ConditionalFrame
,ConfigBaseStationFrame
,ConsistToolFrame
,ControllerFilterFrame
,CoordinateEdit
,DataSource
,DebuggerFrame
,DiagnosticFrame
,DispatcherFrame
,DisplayFrame
,DrawFrame
,DualDecoderSelectFrame
,EasyDccPacketGenFrame
,EditFrame
,EditNodeFrame
,Editor
,Editor.JFrameItem
,EditorFrame
,FollowerFrame
,HexFileFrame
,ImageIndexEditor
,ItemDialog
,JmriServerFrame
,JmriSRCPServerFrame
,LcdClockFrame
,LearnThrottleFrame
,LI101Frame
,ListFrame
,ListFrame
,LIUSBConfigFrame
,LnTcpServerFrame
,LoaderFrame
,LogFrame
,LogFrame
,LV102Frame
,LZ100Frame
,LZV100Frame
,ManageLocationsFrame
,MastBuilderPane
,MdiMainFrame
,MeterFrame
,MultiPaneWindow
,MultiSensorIconFrame
,NixieClockFrame
,NodeConfigFrame
,NodeConfigFrame
,NodeConfigFrame
,NodeConfigFrame
,NodeConfigFrame
,NodeConfigFrame
,NodeConfigFrame
,NodeConfigManagerFrame
,NodeIOListFrame
,NodeTableFrame
,OperationsFrame
,OsIndicatorFrame
,PacketGenFrame
,PacketGenFrame
,PacketGenFrame
,PacketTableFrame
,PaneProgFrame
,PickFrame
,PollTableFrame
,PortalEditFrame
,PowerPanelFrame
,PragotronClockFrame
,PreferencesFrame
,ProtocolOptionsFrame
,RenumberFrame
,ReportFrame
,RosterGroupTableFrame
,RpsTrackingFrame
,SendPacketFrame
,SensorGroupFrame
,SensorTextEdit
,SerialFilterFrame
,SerialPacketGenFrame
,SerialPacketGenFrame
,SerialPacketGenFrame
,SerialPacketGenFrame
,SerialPacketGenFrame
,SerialPacketGenFrame
,SerialPacketGenFrame
,ServerFrame
,SignalEditFrame
,SignallingFrame
,SignallingSourceFrame
,SignalMastRepeaterJFrame
,SimpleClockFrame
,SimpleLightCtrlFrame
,SimpleProgFrame
,SimpleServerFrame
,SimpleTurnoutCtrlFrame
,SlipTurnoutTextEdit
,SoundSetFrame
,SpeedoConsoleFrame
,SpeedometerFrame
,SpeedProfileFrame
,SpeedProfileTable
,SprogCbusModeSwitcherFrame
,SprogHexFile
,SprogPacketGenFrame
,SprogSlotMonFrame
,SprogUpdateFrame
,SprogVersionFrame
,StackMonFrame
,StatusFrame
,SystemInfoFrame
,TabbedPreferencesFrame
,ThreePaneTLRWindow
,ThrottleWindow
,TieToolFrame
,TimeTableFrame
,TrackerTableAction.TableFrame
,TreeFrame
,TwoPaneTBWindow
,UsbBrowserFrame
,UserInterface
,VSDManagerFrame
,WarrantRoute
,WarrantTableFrame
,WhereUsedFrame
,XpaConfigureFrame
,XpaPacketGenFrame
,Z21ConfigFrame
public class JmriJFrame extends JFrame implements WindowListener, ModifiedFlag, ComponentListener, WindowInterface, BeanInterface
We needed a place to refactor common JFrame additions in JMRI code, so this class was created.
Features:
- Size limited to the maximum available on the screen, after removing any menu bars (macOS) and taskbars (Windows)
- Cleanup upon closing the frame: When the frame is closed (WindowClosing
event), the
dispose()
method is invoked to do cleanup. This is inherited from JFrame itself, so super.dispose() needs to be invoked in the over-loading methods. - Maintains a list of existing JmriJFrames
Window Closing
Normally, a JMRI window wants to be disposed when it closes. This is what's needed when each invocation of the corresponding action can create a new copy of the window. To do this, you don't have to do anything in your subclass.
If you want this behavior, but need to do something when the window is
closing, override the windowClosing(java.awt.event.WindowEvent)
method to do what you want. Also, if you override dispose()
, make
sure to call super.dispose().
If you want the window to just do nothing or just hide, rather than be disposed, when closed, set the DefaultCloseOperation to DO_NOTHING_ON_CLOSE or HIDE_ON_CLOSE depending on what you're looking for.
- See Also:
- Serialized Form
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JmriJFrame.ScreenDimensions
Represents the dimensions of an attached screen/displayNested classes/interfaces inherited from class java.awt.Window
Window.AccessibleAWTWindow, Window.Type
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
Nested classes/interfaces inherited from interface jmri.util.swing.WindowInterface
WindowInterface.Hint
-
Field Summary
Fields Modifier and Type Field Description protected boolean
allowInFrameServlet
protected HashMap<String,Object>
properties
protected boolean
reuseFrameSavedPosition
protected boolean
reuseFrameSavedSized
(package private) static String
WINDOW_MODIFIED
(package private) String
windowFrameRef
protected WindowInterface
windowInterface
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
-
Constructor Summary
Constructors Constructor Description JmriJFrame()
Creates a JFrame with standard settings, including saving/restoring of size and position.JmriJFrame(boolean saveSize, boolean savePosition)
Creates a JFrame with standard settings, optional save/restore of size and position.JmriJFrame(String name)
Creates a JFrame with with given name plus standard settings, including saving/restoring of size and position.JmriJFrame(String name, boolean saveSize, boolean savePosition)
Creates a JFrame with with given name plus standard settings, including optional save/restore of size and position. -
Method Summary
Modifier and Type Method Description void
addHelpMenu(String ref, boolean direct)
Add a standard help menu, including window specific help item.void
addNotify()
(package private) void
addWindowCloseShortCut()
Adds a "Close Window" key shortcut to close window on op-W.void
componentHidden(ComponentEvent e)
Does nothing in this classvoid
componentMoved(ComponentEvent e)
void
componentResized(ComponentEvent e)
void
componentShown(ComponentEvent e)
Does nothing in this classvoid
dispose()
When window is finally destroyed, remove it from the list of windows.void
generateWindowRef()
Regenerates the window frame ref that is used for saving and setting frame size and position against.boolean
getAllowInFrameServlet()
AbstractAction
getEscapeKeyAction()
The action associated with the Escape key.boolean
getEscapeKeyClosesWindow()
Does the Escape key close the window?Frame
getFrame()
Returns the WindowInterface as a Frame or null.static JmriJFrame
getFrame(String name)
Get a JmriJFrame of a particular name.static List<JmriJFrame>
getFrameList()
Get a List of the currently-existing JmriJFrame objects.static <T extends JmriJFrame>
List<T>getFrameList(Class<T> type)
Get a list of currently-existing JmriJFrame objects that are specific sub-classes of JmriJFrame.Object
getIndexedProperty(String key, int index)
Get the value of an element in an indexed property.Dimension
getMaximumSize()
Provide a maximum frame size that is limited to what can fit on the screen after toolbars, etc are deducted.boolean
getModifiedFlag()
Get the current value of the modified flag.Dimension
getPreferredSize()
The preferred size must fit on the physical screen, so calculate the lesser of either the preferred size from the layout or the screen size.Object
getProperty(String key)
Get the value of a property.Set<String>
getPropertyNames()
List all property names or keys.boolean
getSavePosition()
Returns if the frame Position is saved or not.boolean
getSaveSize()
Returns if the frame Size is saved or not.static ArrayList<JmriJFrame.ScreenDimensions>
getScreenDimensions()
returns the previously initialized array of screens.String
getWindowFrameRef()
WindowInterface
getWindowInterface()
protected void
handleModified()
Handle closing a window or quiting the program while the modified bit was set.boolean
hasIndexedProperty(String key)
Test that a property exists and is indexed.boolean
hasProperty(String key)
Test that a property exists.void
initComponents()
By default, Swing components should be created an installed in this method, rather than in the ctor itself.void
makePrivateWindow()
Remove this window from the Windows Menu by removing it from the list of active JmriJFrames.void
markWindowModified(boolean yes)
boolean
multipleInstances()
Should 2nd and subsequent requests for a panel create a new instance, or provide the 1st one for reuse?(package private) void
offSetFrameOnScreen(JmriJFrame f)
void
pack()
(package private) void
reSizeToFitOnScreen()
Tries to get window to fix entirely on screen.void
setAllowInFrameServlet(boolean allow)
void
setEscapeKeyAction(AbstractAction action)
Bind an action to the Escape key.void
setEscapeKeyClosesWindow(boolean closesWindow)
Bind the Escape key to an action that closes the window.void
setFrameLocation()
Reset frame location and size to stored preference valuevoid
setIndexedProperty(String key, int index, Object value)
Set the value of an element in an indexed property.void
setModifiedFlag(boolean flag)
Set the modified flag to a specific valuevoid
setProperty(String key, Object value)
Set the value of a property.void
setSavePosition(boolean save)
Set whether the frame Position is saved or not after it has been created.void
setSaveSize(boolean save)
Set whether the frame Size is saved or not after it has been created.protected void
setShutDownTask()
void
setWindowInterface(WindowInterface wi)
void
show(JmriPanel child, JmriAbstractAction action)
Show, in whatever way is appropriate, a specific JmriPanelvoid
show(JmriPanel child, JmriAbstractAction action, WindowInterface.Hint hint)
Show, in whatever way is appropriate, a specific JmriPanel, in a hinted locationprotected void
storeValues()
void
undecorate()
Remove any decoration, such as the title bar or close window control, from the JFrame.void
windowActivated(WindowEvent e)
Does nothing in this classvoid
windowClosed(WindowEvent e)
Does nothing in this classvoid
windowClosing(WindowEvent e)
The JmriJFrame implementation callshandleModified()
.void
windowDeactivated(WindowEvent e)
Does nothing in this classvoid
windowDeiconified(WindowEvent e)
Does nothing in this classvoid
windowIconified(WindowEvent e)
Does nothing in this classvoid
windowOpened(WindowEvent e)
Does nothing in this classMethods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getGraphics, getJMenuBar, getLayeredPane, getRootPane, getTransferHandler, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, repaint, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setIconImage, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, setTransferHandler, update
Methods inherited from class java.awt.Frame
getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setBackground, setCursor, setExtendedState, setMaximizedBounds, setMenuBar, setOpacity, setResizable, setShape, setState, setTitle, setUndecorated
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, getBackground, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getIconImages, getInputContext, getListeners, getLocale, getModalExclusionType, getMostRecentFocusOwner, getOpacity, getOwnedWindows, getOwner, getOwnerlessWindows, getShape, getToolkit, getType, getWarningString, getWindowFocusListeners, getWindowListeners, getWindows, getWindowStateListeners, hide, isActive, isAlwaysOnTop, isAlwaysOnTopSupported, isAutoRequestFocus, isFocusableWindow, isFocusCycleRoot, isFocused, isLocationByPlatform, isOpaque, isShowing, isValidateRoot, paint, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, reshape, setAlwaysOnTop, setAutoRequestFocus, setBounds, setBounds, setCursor, setFocusableWindowState, setFocusCycleRoot, setIconImages, setLocation, setLocation, setLocationByPlatform, setLocationRelativeTo, setMinimumSize, setModalExclusionType, setSize, setSize, setType, setVisible, show, toBack, toFront
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMinimumSize, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalKeys, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setFont, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBaseline, getBaselineResizeBehavior, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, requestFocusInWindow, resize, resize, revalidate, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setMaximumSize, setMixingCutoutShape, setName, setPreferredSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
Constructor Details
-
JmriJFrame
Creates a JFrame with standard settings, optional save/restore of size and position.- Parameters:
saveSize
- Set true to save the last known sizesavePosition
- Set true to save the last known location
-
JmriJFrame
public JmriJFrame()Creates a JFrame with standard settings, including saving/restoring of size and position. -
JmriJFrame
Creates a JFrame with with given name plus standard settings, including saving/restoring of size and position.- Parameters:
name
- Title of the JFrame
-
JmriJFrame
Creates a JFrame with with given name plus standard settings, including optional save/restore of size and position.- Parameters:
name
- Title of the JFramesaveSize
- Set true to save the last knowm sizesavePosition
- Set true to save the last known location
-
-
Method Details
-
makePrivateWindow
Remove this window from the Windows Menu by removing it from the list of active JmriJFrames. -
setFrameLocation
Reset frame location and size to stored preference value -
getScreenDimensions
returns the previously initialized array of screens. See getScreenDimensionsOnce()- Returns:
- ArrayList of screen bounds and insets
-
generateWindowRef
Regenerates the window frame ref that is used for saving and setting frame size and position against. -
pack
-
undecorate
Remove any decoration, such as the title bar or close window control, from the JFrame.JmriJFrames are often built internally and presented to the user before any scripting action can interact with them. At that point it's too late to directly invoke setUndecorated(true) because the JFrame is already displayable. This method uses dispose() to drop the windowing resources, sets undecorated, and then redisplays the window.
-
reSizeToFitOnScreen
void reSizeToFitOnScreen()Tries to get window to fix entirely on screen. First choice is to move the origin up and left as needed, then to make the window smaller -
offSetFrameOnScreen
-
getWindowFrameRef
-
initComponents
By default, Swing components should be created an installed in this method, rather than in the ctor itself. -
addHelpMenu
Add a standard help menu, including window specific help item. Final because it defines the content of a standard help menu, not to be messed with individually- Parameters:
ref
- JHelp reference for the desired window-specific help pagedirect
- true if the help main-menu item goes directly to the help system, such as when there are no items in the help menu
-
addWindowCloseShortCut
void addWindowCloseShortCut()Adds a "Close Window" key shortcut to close window on op-W. -
setEscapeKeyAction
Bind an action to the Escape key.Binds an AbstractAction to the Escape key. If an action is already bound to the Escape key, that action will be replaced. Passing
null
unbinds any existing actions from the Escape key.Note that binding the Escape key to any action may break expected or standardized behaviors. See Keyboard Shortcuts, Mnemonics, and Other Keyboard Operations in the Java Look and Feel Design Guidelines for standardized behaviors.
- Parameters:
action
- The AbstractAction to bind to.- See Also:
getEscapeKeyAction()
,setEscapeKeyClosesWindow(boolean)
-
getEscapeKeyAction
The action associated with the Escape key.- Returns:
- An AbstractAction or null if no action is bound to the Escape key.
- See Also:
setEscapeKeyAction(javax.swing.AbstractAction)
,AbstractAction
-
setEscapeKeyClosesWindow
Bind the Escape key to an action that closes the window.If closesWindow is true, this method creates an action that triggers the "window is closing" event; otherwise this method removes any actions from the Escape key.
- Parameters:
closesWindow
- Create or destroy an action to close the window.- See Also:
WindowEvent.WINDOW_CLOSING
,setEscapeKeyAction(javax.swing.AbstractAction)
-
getEscapeKeyClosesWindow
Does the Escape key close the window?- Returns:
true
if Escape key is bound to action created by setEscapeKeyClosesWindow,false
in all other cases.- See Also:
setEscapeKeyClosesWindow(boolean)
,setEscapeKeyAction(javax.swing.AbstractAction)
-
getMaximumSize
Provide a maximum frame size that is limited to what can fit on the screen after toolbars, etc are deducted.Some of the methods used here return null pointers on some Java implementations, however, so this will return the superclasses's maximum size if the algorithm used here fails.
- Overrides:
getMaximumSize
in classContainer
- Returns:
- the maximum window size
-
getPreferredSize
The preferred size must fit on the physical screen, so calculate the lesser of either the preferred size from the layout or the screen size.- Overrides:
getPreferredSize
in classContainer
- Returns:
- the preferred size or the maximum size, whichever is smaller
-
getFrameList
Get a List of the currently-existing JmriJFrame objects. The returned list is a copy made at the time of the call, so it can be manipulated as needed by the caller.- Returns:
- a list of JmriJFrame instances. If there are no instances, an empty list is returned.
-
getFrameList
Get a list of currently-existing JmriJFrame objects that are specific sub-classes of JmriJFrame.The returned list is a copy made at the time of the call, so it can be manipulated as needed by the caller.
- Type Parameters:
T
- generic JmriJframe.- Parameters:
type
- The Class the list should be limited to.- Returns:
- An ArrayList of Frames.
-
getFrame
Get a JmriJFrame of a particular name. If more than one exists, there's no guarantee as to which is returned.- Parameters:
name
- the name of one or more JmriJFrame objects- Returns:
- a JmriJFrame with the matching name or null if no matching frames exist
-
addNotify
-
setSavePosition
Set whether the frame Position is saved or not after it has been created.- Parameters:
save
- true if the frame position should be saved.
-
setSaveSize
Set whether the frame Size is saved or not after it has been created.- Parameters:
save
- true if the frame size should be saved.
-
getSavePosition
Returns if the frame Position is saved or not.- Returns:
- true if the frame position should be saved
-
getSaveSize
Returns if the frame Size is saved or not.- Returns:
- true if the frame size should be saved
-
setModifiedFlag
Set the modified flag to a specific value A frame is considered "modified" if it has changes that have not been stored.- Specified by:
setModifiedFlag
in interfaceModifiedFlag
- Parameters:
flag
- true if the object has been modified
-
getModifiedFlag
Get the current value of the modified flag.- Specified by:
getModifiedFlag
in interfaceModifiedFlag
- Returns:
- true if the object has been modified and needs to be stored
-
handleModified
Handle closing a window or quiting the program while the modified bit was set. -
storeValues
-
markWindowModified
-
windowOpened
Does nothing in this class- Specified by:
windowOpened
in interfaceWindowListener
-
windowClosed
Does nothing in this class- Specified by:
windowClosed
in interfaceWindowListener
-
windowActivated
Does nothing in this class- Specified by:
windowActivated
in interfaceWindowListener
-
windowDeactivated
Does nothing in this class- Specified by:
windowDeactivated
in interfaceWindowListener
-
windowIconified
Does nothing in this class- Specified by:
windowIconified
in interfaceWindowListener
-
windowDeiconified
Does nothing in this class- Specified by:
windowDeiconified
in interfaceWindowListener
-
windowClosing
The JmriJFrame implementation callshandleModified()
.- Specified by:
windowClosing
in interfaceWindowListener
-
componentHidden
Does nothing in this class- Specified by:
componentHidden
in interfaceComponentListener
-
componentMoved
- Specified by:
componentMoved
in interfaceComponentListener
-
componentResized
- Specified by:
componentResized
in interfaceComponentListener
-
componentShown
Does nothing in this class- Specified by:
componentShown
in interfaceComponentListener
-
setShutDownTask
-
dispose
When window is finally destroyed, remove it from the list of windows.Subclasses that over-ride this method must invoke this implementation with super.dispose() right before returning.
- Specified by:
dispose
in interfaceWindowInterface
- Overrides:
dispose
in classWindow
-
setIndexedProperty
Set the value of an element in an indexed property.NOTE Implementing methods must not call
Bean.setIndexedProperty()
, as doing so will cause a stack overflow. Implementing methods may callBeans.setIntrospectedIndexedProperty()
instead.- Specified by:
setIndexedProperty
in interfaceBeanInterface
- Parameters:
key
- name of the propertyindex
- index of the property element to changevalue
- the value to set the property to
-
getIndexedProperty
Get the value of an element in an indexed property.NOTE Implementing methods must not call
Bean.getIndexedProperty()
, as doing so will cause a stack overflow. Implementing methods may callBeans.getIntrospectedIndexedProperty()
instead.- Specified by:
getIndexedProperty
in interfaceBeanInterface
- Parameters:
key
- name of the propertyindex
- index of the property element to change- Returns:
- value of the property or null
-
setProperty
Set the value of a property.NOTE Implementing methods must not call
Bean.setProperty()
, as doing so will cause a stack overflow. Implementing methods may callBeans.setIntrospectedProperty()
instead. Subclasses should override this method with something more direct and faster- Specified by:
setProperty
in interfaceBeanInterface
- Parameters:
key
- name of the propertyvalue
- the value to set the property to
-
getProperty
Get the value of a property.NOTE Implementing methods must not call
Bean.getProperty()
, as doing so will cause a stack overflow. Implementing methods may callBeans.getIntrospectedProperty()
instead. Subclasses should override this method with something more direct and faster- Specified by:
getProperty
in interfaceBeanInterface
- Parameters:
key
- name of the property- Returns:
- The value of the property or null
-
hasProperty
Test that a property exists.NOTE Implementing method must not call
Bean.hasProperty()
, as doing so will cause a stack overflow. Implementing methods may callBeans.hasIntrospectedProperty()
instead.- Specified by:
hasProperty
in interfaceBeanInterface
- Parameters:
key
- name of the property- Returns:
- true is property key exists
-
hasIndexedProperty
Test that a property exists and is indexed.NOTE Implementing method must not call
Bean.hasIndexedProperty()
, as doing so will cause a stack overflow. Implementing methods may callBeans.hasIntrospectedIndexedProperty()
instead.- Specified by:
hasIndexedProperty
in interfaceBeanInterface
- Parameters:
key
- name of the property- Returns:
- true is property key exists and is indexed
-
show
Show, in whatever way is appropriate, a specific JmriPanel- Specified by:
show
in interfaceWindowInterface
- Parameters:
child
- new JmriPanel to showaction
- JmriAbstractAction making the request
-
show
Show, in whatever way is appropriate, a specific JmriPanel, in a hinted location- Specified by:
show
in interfaceWindowInterface
- Parameters:
child
- new JmriPanel to showaction
- JmriAbstractAction making the requesthint
- suggestion on where to put the content
-
multipleInstances
Should 2nd and subsequent requests for a panel create a new instance, or provide the 1st one for reuse?- Specified by:
multipleInstances
in interfaceWindowInterface
- Returns:
- true if multiple instances should be provided, false if only one should be provided
-
setWindowInterface
-
getWindowInterface
-
getPropertyNames
List all property names or keys.NOTE Implementing method must not call
Bean.getPropertyNames()
, as doing so will cause a stack overflow. Implementing methods may callBeans.getIntrospectedPropertyNames()
instead.NOTE Implementations of this method should not return null.
- Specified by:
getPropertyNames
in interfaceBeanInterface
- Returns:
- property names or an empty Set.
-
setAllowInFrameServlet
-
getAllowInFrameServlet
-
getFrame
Returns the WindowInterface as a Frame or null.- Specified by:
getFrame
in interfaceWindowInterface
- Returns:
- a Frame or null
-