Class VisionDesktop
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JLayeredPane
-
- javax.swing.JDesktopPane
-
- com.inductiveautomation.factorypmi.application.VisionDesktop
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
- Direct Known Subclasses:
FPMIApp
public abstract class VisionDesktop extends javax.swing.JDesktopPane
This is the custom JDesktopPane that makes up the the top level of the Vision client that manages all of the open windows. The primary desktop is a subclass of this class, called FPMIApp. Through scripting, additional desktops in separate JFrames may be opened.- See Also:
FPMIApp
,SecondaryDesktops
, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JDesktopPane
javax.swing.JDesktopPane.AccessibleJDesktopPane
-
Nested classes/interfaces inherited from class javax.swing.JLayeredPane
javax.swing.JLayeredPane.AccessibleJLayeredPane
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected FPMIWindow
activeWindow
protected VisionClientContext
context
static java.lang.ThreadLocal<java.lang.String>
CURRENT_DESKTOP
static java.lang.String
PRIMARY_DESKTOP_HANDLE
protected java.lang.String
selectedWindowTitle
protected WindowCache
windowController
The window controller stores the serialized code for each window, and is in charge of deserializing the windows.-
Fields inherited from class javax.swing.JLayeredPane
DEFAULT_LAYER, DRAG_LAYER, FRAME_CONTENT_LAYER, LAYER_PROPERTY, MODAL_LAYER, PALETTE_LAYER, POPUP_LAYER
-
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 Constructor Description VisionDesktop(ClientContext clientContext)
VisionDesktop(ClientContext clientContext, java.lang.String handle)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addDesktopListener(DesktopListener l)
protected void
addImpl(java.awt.Component frame, java.lang.Object constraints, int layer)
protected void
fireWindowEvent(FPMIWindow window, int eventType)
VisionClientContext
getAdapterContext()
DockingDesktopManager.AxisPrecedence
getAxisPrecedence()
java.lang.String
getHandle()
java.awt.Dimension
getMinSize()
java.util.List<FPMIWindow>
getOpenedWindows()
Returns a List<FHMIWindow> of all open windowsjava.lang.String
getPath(FPMIWindow window)
int
getScreenIndexSafe()
Returns the index of the monitor the desktop is set to display on, or zero if the screen index falls outside of the available screensScriptManager
getScriptManager()
java.lang.String
getSelectedWindowTitle()
FPMIWindow
getWindow(ResourcePath id)
Returns the opened window with resource idid
.FPMIWindow
getWindow(java.lang.String path)
Returns the opened window of namename
.WindowCache
getWindowCache()
FPMIWindow[]
getWindows(ResourcePath id)
Returns all opened windows with the given resource id.FPMIWindow[]
getWindows(java.lang.String path)
Returns all opened windows with the given name.protected abstract VisionClientContext
initContext(ClientContext clientContext)
boolean
isInfiniteDesktop()
boolean
isRestrictFloatingFrames()
void
layoutDocks()
This function verifies the layout of the docked windows, by checking to see if they are in the correct position, and moving/resizing them if necessary.void
notifyWindowDeleted(ResourcePath id)
Removes (permanently) the window of the specified name.javax.swing.RootPaneContainer
openWindow(ResourcePath path)
javax.swing.RootPaneContainer
openWindow(java.lang.String path)
Opens, or brings to front, the window with namename
.javax.swing.RootPaneContainer
openWindow(java.lang.String path, WindowInitializer initializer)
javax.swing.RootPaneContainer
openWindow(java.lang.String path, WindowInitializer initializer, boolean openAdditional)
void
remove(java.awt.Component c)
void
removeDesktopListener(DesktopListener l)
void
setAxisPrecedence(DockingDesktopManager.AxisPrecedence axisPrecedence)
void
setBackground(java.awt.Color bg)
void
setBounds(int x, int y, int w, int h)
void
setInfiniteDesktop(boolean infiniteDesktop)
void
setMinSize(java.awt.Dimension minSize)
void
setRestrictFloatingFrames(boolean restrictFloatingFrames)
void
setScreenIndex(int screenIndex)
Sets the index of the monitor the desktop is set to display on.void
setSelectedWindowTitle(java.lang.String selectedWindowTitle)
void
setWindowOpener(WindowOpener windowOpener)
protected void
shutdown(boolean designer)
-
Methods inherited from class javax.swing.JDesktopPane
getAccessibleContext, getAllFrames, getAllFramesInLayer, getDesktopManager, getDragMode, getSelectedFrame, getUI, getUIClassID, paramString, remove, removeAll, selectFrame, setComponentZOrder, setDesktopManager, setDragMode, setSelectedFrame, setUI, updateUI
-
Methods inherited from class javax.swing.JLayeredPane
getComponentCountInLayer, getComponentsInLayer, getComponentToLayer, getIndexOf, getLayer, getLayer, getLayeredPaneAbove, getObjectForLayer, getPosition, highestLayer, insertIndexForLayer, isOptimizedDrawingEnabled, lowestLayer, moveToBack, moveToFront, paint, putLayer, setLayer, setLayer, setPosition
-
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, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, 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, 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, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, 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, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
-
-
-
Field Detail
-
PRIMARY_DESKTOP_HANDLE
public static final java.lang.String PRIMARY_DESKTOP_HANDLE
- See Also:
- Constant Field Values
-
CURRENT_DESKTOP
public static final java.lang.ThreadLocal<java.lang.String> CURRENT_DESKTOP
-
context
protected final VisionClientContext context
-
windowController
protected final WindowCache windowController
The window controller stores the serialized code for each window, and is in charge of deserializing the windows.
-
activeWindow
protected FPMIWindow activeWindow
-
selectedWindowTitle
protected java.lang.String selectedWindowTitle
-
-
Constructor Detail
-
VisionDesktop
public VisionDesktop(ClientContext clientContext)
-
VisionDesktop
public VisionDesktop(ClientContext clientContext, java.lang.String handle)
-
-
Method Detail
-
initContext
protected abstract VisionClientContext initContext(ClientContext clientContext)
-
getHandle
public java.lang.String getHandle()
-
shutdown
protected void shutdown(boolean designer)
-
notifyWindowDeleted
public void notifyWindowDeleted(ResourcePath id)
Removes (permanently) the window of the specified name. All code for the window is deleted.
-
getAdapterContext
public VisionClientContext getAdapterContext()
-
setWindowOpener
public void setWindowOpener(WindowOpener windowOpener)
-
getWindowCache
public WindowCache getWindowCache()
-
openWindow
public javax.swing.RootPaneContainer openWindow(ResourcePath path)
-
openWindow
public javax.swing.RootPaneContainer openWindow(java.lang.String path)
Opens, or brings to front, the window with namename
.- Parameters:
path
- the path of the window to open/select- Returns:
- the window that was opened or selected.
-
openWindow
public javax.swing.RootPaneContainer openWindow(java.lang.String path, WindowInitializer initializer)
-
openWindow
public javax.swing.RootPaneContainer openWindow(java.lang.String path, WindowInitializer initializer, boolean openAdditional)
-
getWindow
public FPMIWindow getWindow(java.lang.String path)
Returns the opened window of namename
. If there is no open window with the given name, null is returned.- Parameters:
path
- The path of the window to find
-
getPath
public java.lang.String getPath(FPMIWindow window)
-
getWindows
public FPMIWindow[] getWindows(java.lang.String path)
Returns all opened windows with the given name. Returns an empty array if there are none.
-
getWindow
public FPMIWindow getWindow(ResourcePath id)
Returns the opened window with resource idid
. If there is no open window with the given id, null is returned.
-
getWindows
public FPMIWindow[] getWindows(ResourcePath id)
Returns all opened windows with the given resource id. Returns an empty array if there are none.
-
getOpenedWindows
public java.util.List<FPMIWindow> getOpenedWindows()
Returns a List<FHMIWindow> of all open windows
-
getMinSize
public java.awt.Dimension getMinSize()
-
setMinSize
public void setMinSize(java.awt.Dimension minSize)
-
getScreenIndexSafe
public int getScreenIndexSafe()
Returns the index of the monitor the desktop is set to display on, or zero if the screen index falls outside of the available screens
-
setScreenIndex
public void setScreenIndex(int screenIndex)
Sets the index of the monitor the desktop is set to display on. Does not actually move the desktop to a display, nor does it check to ensure the index maps to an actual monitor. Used for record keeping.
-
setAxisPrecedence
public void setAxisPrecedence(DockingDesktopManager.AxisPrecedence axisPrecedence)
-
getAxisPrecedence
public DockingDesktopManager.AxisPrecedence getAxisPrecedence()
-
setRestrictFloatingFrames
public void setRestrictFloatingFrames(boolean restrictFloatingFrames)
-
isRestrictFloatingFrames
public boolean isRestrictFloatingFrames()
-
setInfiniteDesktop
public void setInfiniteDesktop(boolean infiniteDesktop)
-
isInfiniteDesktop
public boolean isInfiniteDesktop()
-
layoutDocks
public void layoutDocks()
This function verifies the layout of the docked windows, by checking to see if they are in the correct position, and moving/resizing them if necessary.
-
setBounds
public void setBounds(int x, int y, int w, int h)
- Overrides:
setBounds
in classjava.awt.Component
-
addImpl
protected void addImpl(java.awt.Component frame, java.lang.Object constraints, int layer)
- Overrides:
addImpl
in classjavax.swing.JDesktopPane
-
remove
public void remove(java.awt.Component c)
- Overrides:
remove
in classjavax.swing.JDesktopPane
-
setBackground
public void setBackground(java.awt.Color bg)
- Overrides:
setBackground
in classjavax.swing.JComponent
-
addDesktopListener
public void addDesktopListener(DesktopListener l)
-
removeDesktopListener
public void removeDesktopListener(DesktopListener l)
-
fireWindowEvent
protected void fireWindowEvent(FPMIWindow window, int eventType)
-
getSelectedWindowTitle
public java.lang.String getSelectedWindowTitle()
-
setSelectedWindowTitle
public void setSelectedWindowTitle(java.lang.String selectedWindowTitle)
-
getScriptManager
public ScriptManager getScriptManager()
-
-