Class ClientPanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- com.inductiveautomation.ignition.client.launch.LaunchableApp
-
- com.inductiveautomation.factorypmi.application.runtime.ClientPanel
-
- All Implemented Interfaces:
LocaleListener
,java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.io.Serializable
,javax.accessibility.Accessible
public class ClientPanel extends LaunchableApp implements LocaleListener
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ClientPanel.DestroyEDTThreadLocals
Reflectively destroys the thread locals held onto by the Py class - used to avoid memory leakstatic class
ClientPanel.ExitButton
-
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 inherited from class com.inductiveautomation.ignition.client.launch.LaunchableApp
frameIcon, frameTitle, glassPane
-
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
-
Fields inherited from class java.awt.Component
accessibleContext, 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 com.inductiveautomation.ignition.client.model.LocaleListener
LOCAL_CHANGE_EVENT
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canShutdown()
May be called to check whether or not the application thinks that it should be allowed to be closed or not.protected void
doScriptModuleUpdate()
protected void
doUpdateProject()
ClientContextImpl
getClientContext()
java.awt.Dimension
getInitialFrameSize()
The desired initial size of any enclosing frame, if applicableLaunchContext
getLaunchContext()
LayeredGlassPane
getLayeredGlassPane()
com.inductiveautomation.factorypmi.application.runtime.RuntimeMenu
getMenu()
javax.swing.JDesktopPane
getPopupDesktop()
int
getScreenIndex()
protected void
installLoginPane(ProjectInitializationParams params)
Installs a new instance of LoginPanel as the content pane.boolean
isMenuVisible()
boolean
isScreenLocked()
boolean
isStartCentered()
If the enclosing container is a frame, should it start in centered mode?boolean
isStartMaximized()
If the enclosing container is a frame, should it start in maximized mode?void
localeChanged(java.util.Locale newLocale)
void
lockScreen(boolean obscure)
Called by fpmi.security.lockScreen()void
logout()
void
rebuildMenu()
void
setMenu(com.inductiveautomation.factorypmi.application.runtime.RuntimeMenu newMenu)
void
shutdown()
May be called when the enclosing frame/applet is externally closed down.protected void
shutdownApp()
void
startup(ProjectInitializationParams params)
Main entrypoint, called fromClientLaunchHook.startup()
protected void
startupApp(ProjectInitializationParams params)
void
unlockScreen()
-
Methods inherited from class com.inductiveautomation.ignition.client.launch.LaunchableApp
getFrameIcon, getFrameTitle, getGlassPane, setFrameIcon, setFrameTitle, setGlassPane
-
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
-
-
-
-
Method Detail
-
startup
public void startup(ProjectInitializationParams params) throws java.lang.Exception
Main entrypoint, called from
ClientLaunchHook.startup()
Adds notification listeners for project change and project deletion.
If the gateway connection's session is already valid at this point, control goes to
startupApp(ProjectInitializationParams)
directly. Otherwise,installLoginPane(ProjectInitializationParams)
is called.- Throws:
java.lang.Exception
-
installLoginPane
protected void installLoginPane(ProjectInitializationParams params)
Installs a new instance of LoginPanel as the content pane. (see
setContentPane(JComponent)
)The LoginPanel uses a pluggable "LoginScreenPainter", which is instantiated reflectively using the value of bundle string "fpmi.LoginPanel.class". This is for white-labeling.
Note that the login panel's "Login" button doesn't have any logic there. This function adds the
ClientPanel.ClassicLoginAction
action to it.
-
startupApp
protected void startupApp(ProjectInitializationParams params) throws java.lang.Exception
- Throws:
java.lang.Exception
-
doUpdateProject
protected void doUpdateProject()
-
doScriptModuleUpdate
protected void doScriptModuleUpdate()
-
canShutdown
public boolean canShutdown()
Description copied from class:LaunchableApp
May be called to check whether or not the application thinks that it should be allowed to be closed or not.- Specified by:
canShutdown
in classLaunchableApp
-
shutdown
public void shutdown()
Description copied from class:LaunchableApp
May be called when the enclosing frame/applet is externally closed down.- Specified by:
shutdown
in classLaunchableApp
-
shutdownApp
protected void shutdownApp()
-
logout
public void logout()
-
getLayeredGlassPane
public LayeredGlassPane getLayeredGlassPane()
-
lockScreen
public void lockScreen(boolean obscure)
Called by fpmi.security.lockScreen()
-
isScreenLocked
public boolean isScreenLocked()
-
unlockScreen
public void unlockScreen()
-
getInitialFrameSize
public java.awt.Dimension getInitialFrameSize()
Description copied from class:LaunchableApp
The desired initial size of any enclosing frame, if applicable- Specified by:
getInitialFrameSize
in classLaunchableApp
-
isStartMaximized
public boolean isStartMaximized()
Description copied from class:LaunchableApp
If the enclosing container is a frame, should it start in maximized mode?- Specified by:
isStartMaximized
in classLaunchableApp
-
isStartCentered
public boolean isStartCentered()
Description copied from class:LaunchableApp
If the enclosing container is a frame, should it start in centered mode?- Specified by:
isStartCentered
in classLaunchableApp
-
getScreenIndex
public int getScreenIndex()
- Overrides:
getScreenIndex
in classLaunchableApp
-
getClientContext
public ClientContextImpl getClientContext()
-
getLaunchContext
public LaunchContext getLaunchContext()
-
getPopupDesktop
public javax.swing.JDesktopPane getPopupDesktop()
-
isMenuVisible
public boolean isMenuVisible()
-
getMenu
public com.inductiveautomation.factorypmi.application.runtime.RuntimeMenu getMenu()
-
setMenu
public void setMenu(com.inductiveautomation.factorypmi.application.runtime.RuntimeMenu newMenu)
-
rebuildMenu
public void rebuildMenu()
-
localeChanged
public void localeChanged(java.util.Locale newLocale)
- Specified by:
localeChanged
in interfaceLocaleListener
-
-