public class ClientPanel extends LaunchableApp implements LocaleListener
Modifier and Type | Class and Description |
---|---|
static class |
ClientPanel.DestroyEDTThreadLocals
Reflectively destroys the thread locals held onto by the Py class - used to avoid memory leak
|
static class |
ClientPanel.ExitButton |
javax.swing.JPanel.AccessibleJPanel
javax.swing.JComponent.AccessibleJComponent
frameIcon, frameTitle, glassPane
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
Modifier and Type | Method and 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 applicable
|
LaunchContext |
getLaunchContext() |
LayeredGlassPane |
getLayeredGlassPane() |
com.inductiveautomation.factorypmi.application.runtime.RuntimeMenu |
getMenu() |
javax.swing.JDesktopPane |
getPopupDesktop() |
static java.lang.String |
getProjectVersionSafe(LaunchContext context)
A safe wrapper around
LaunchContext.getProjectVersion() that is used because we may be launched from a
pre-7.2 bootstrap launcher on a retarget, and we don't want to explode. |
int |
getScreenIndex() |
protected void |
installLoginPane(ProjectInitializationParams params)
Installs a new instance of LoginPanel as the content pane.
|
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() |
static void |
restartSafe(LaunchParent launch,
java.util.List<GatewayAddress> addresses,
java.lang.String projectName,
java.lang.String projectVersion,
java.lang.String scope,
byte[] userObj)
A safe wrapper around
LaunchParent.restart(List, String, String, String, byte[]) that will fall back to
the pre-7.2 version if the 7.2 version doesn't exist. |
void |
setFrameTitle(java.lang.String title) |
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 from
ClientLaunchHook.startup() |
protected void |
startupApp(ProjectInitializationParams params) |
void |
unlockScreen() |
getFrameIcon, getFrameTitle, getGlassPane, setFrameIcon, setGlassPane
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
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
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
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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
public static java.lang.String getProjectVersionSafe(LaunchContext context)
LaunchContext.getProjectVersion()
that is used because we may be launched from a
pre-7.2 bootstrap launcher on a retarget, and we don't want to explode.public static void restartSafe(LaunchParent launch, java.util.List<GatewayAddress> addresses, java.lang.String projectName, java.lang.String projectVersion, java.lang.String scope, byte[] userObj)
LaunchParent.restart(List, String, String, String, byte[])
that will fall back to
the pre-7.2 version if the 7.2 version doesn't exist.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.
java.lang.Exception
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
LoginAction
action to it.
public void setFrameTitle(java.lang.String title)
setFrameTitle
in class LaunchableApp
protected void startupApp(ProjectInitializationParams params) throws java.lang.Exception
java.lang.Exception
@GuardedBy(value="projectChangeListener") protected void doUpdateProject()
@GuardedBy(value="modulesChangeListener") protected void doScriptModuleUpdate()
public boolean canShutdown()
LaunchableApp
canShutdown
in class LaunchableApp
public void shutdown()
LaunchableApp
shutdown
in class LaunchableApp
protected void shutdownApp()
public void logout()
public LayeredGlassPane getLayeredGlassPane()
public void lockScreen(boolean obscure)
public boolean isScreenLocked()
public void unlockScreen()
public java.awt.Dimension getInitialFrameSize()
LaunchableApp
getInitialFrameSize
in class LaunchableApp
public boolean isStartMaximized()
LaunchableApp
isStartMaximized
in class LaunchableApp
public boolean isStartCentered()
LaunchableApp
isStartCentered
in class LaunchableApp
public int getScreenIndex()
getScreenIndex
in class LaunchableApp
public ClientContextImpl getClientContext()
public LaunchContext getLaunchContext()
public javax.swing.JDesktopPane getPopupDesktop()
public com.inductiveautomation.factorypmi.application.runtime.RuntimeMenu getMenu()
public void setMenu(com.inductiveautomation.factorypmi.application.runtime.RuntimeMenu newMenu)
public void localeChanged(java.util.Locale newLocale)
localeChanged
in interface LocaleListener