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.JDesktopPaneThis 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 FPMIWindowactiveWindowprotected VisionClientContextcontextstatic java.lang.ThreadLocal<java.lang.String>CURRENT_DESKTOPstatic java.lang.StringPRIMARY_DESKTOP_HANDLEprotected java.lang.StringselectedWindowTitleprotected WindowCachewindowControllerThe 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 voidaddDesktopListener(DesktopListener l)protected voidaddImpl(java.awt.Component frame, java.lang.Object constraints, int layer)protected voidfireWindowEvent(FPMIWindow window, int eventType)VisionClientContextgetAdapterContext()DockingDesktopManager.AxisPrecedencegetAxisPrecedence()java.lang.StringgetHandle()java.awt.DimensiongetMinSize()java.util.List<FPMIWindow>getOpenedWindows()Returns a List<FHMIWindow> of all open windowsjava.lang.StringgetPath(FPMIWindow window)intgetScreenIndexSafe()Returns the index of the monitor the desktop is set to display on, or zero if the screen index falls outside of the available screensScriptManagergetScriptManager()java.lang.StringgetSelectedWindowTitle()FPMIWindowgetWindow(ResourcePath id)Returns the opened window with resource idid.FPMIWindowgetWindow(java.lang.String path)Returns the opened window of namename.WindowCachegetWindowCache()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 VisionClientContextinitContext(ClientContext clientContext)booleanisInfiniteDesktop()booleanisRestrictFloatingFrames()voidlayoutDocks()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.voidnotifyWindowDeleted(ResourcePath id)Removes (permanently) the window of the specified name.javax.swing.RootPaneContaineropenWindow(ResourcePath path)javax.swing.RootPaneContaineropenWindow(java.lang.String path)Opens, or brings to front, the window with namename.javax.swing.RootPaneContaineropenWindow(java.lang.String path, WindowInitializer initializer)javax.swing.RootPaneContaineropenWindow(java.lang.String path, WindowInitializer initializer, boolean openAdditional)voidremove(java.awt.Component c)voidremoveDesktopListener(DesktopListener l)voidsetAxisPrecedence(DockingDesktopManager.AxisPrecedence axisPrecedence)voidsetBackground(java.awt.Color bg)voidsetBounds(int x, int y, int w, int h)voidsetInfiniteDesktop(boolean infiniteDesktop)voidsetMinSize(java.awt.Dimension minSize)voidsetRestrictFloatingFrames(boolean restrictFloatingFrames)voidsetScreenIndex(int screenIndex)Sets the index of the monitor the desktop is set to display on.voidsetSelectedWindowTitle(java.lang.String selectedWindowTitle)voidsetWindowOpener(WindowOpener windowOpener)protected voidshutdown(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:
setBoundsin classjava.awt.Component
-
addImpl
protected void addImpl(java.awt.Component frame, java.lang.Object constraints, int layer)- Overrides:
addImplin classjavax.swing.JDesktopPane
-
remove
public void remove(java.awt.Component c)
- Overrides:
removein classjavax.swing.JDesktopPane
-
setBackground
public void setBackground(java.awt.Color bg)
- Overrides:
setBackgroundin 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()
-
-