Package com.iizigo.term
Class TerminalComposite
- java.lang.Object
- org.eclipse.swt.widgets.Widget
- org.eclipse.swt.widgets.Control
- org.eclipse.swt.widgets.Scrollable
- org.eclipse.swt.widgets.Composite
- com.iizigo.term.TerminalComposite
- All Implemented Interfaces:
ITerminalListener
,HostSessionListener
,org.eclipse.swt.graphics.Drawable
public class TerminalComposite extends org.eclipse.swt.widgets.Composite implements ITerminalListener, HostSessionListener
The terminal composite.- Author:
- Christopher Mindus
Field Summary
Fields Modifier and Type Field Description PartAction
actionCopy
Actions.PartAction
actionCut
Actions.PartAction
actionNewScreen
Actions.PartAction
actionPaste
Actions.PartAction
actionPrint
Actions.PartAction
actionSelectAll
Actions.PartAction
actionTermCapture
Actions.PartAction
actionTermClear
Actions.PartAction
actionTermConfig
Actions.PartAction
actionTermConnect
Actions.PartAction
actionTermDisconnect
Actions.PartAction
actionTermPref
Actions.PartAction
actionTermResume
Actions.PartAction
actionTermSuspend
Actions.static java.lang.String
MEMENTO_STATE
Memento variable, cursor position and insert mode: "terminalComposite.state".
Constructor Summary
Constructors Constructor Description TerminalComposite(org.eclipse.ui.IWorkbenchPart part, org.eclipse.swt.widgets.Composite parent)
Constructor.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addListener(ITerminalStateListener listener)
Adds a listener.void
createActions(IPartExtensionIZ extension)
Creates the actions such as Copy/Paste/Select All, etc.static TerminalComposite
createComposite(org.eclipse.swt.widgets.Composite parent, EditorTerminalProps props, int charPixelSizeX, int charPixelSizeY, boolean doConnect, boolean allowNonConnected, boolean doAntiAlias)
Creates a composite for use with tooltips or previews.Terminal
createTerminalAndWindow(EditorActiveTerminalSession session, HostSessionProps hostSessionProps)
Creates the Terminal and Terminal Window instance for a remote terminal session.Terminal
createTerminalAndWindow(HostSession _hostSession, EditorTerminalProps _properties, IScreenDesigner designer)
Creates the Terminal and Terminal Window instance for local terminal use in the Designer.java.lang.Object[]
getActions()
Gets the contribution menu items as an Object [] where null is menu separator, the rest are IAction instances.org.eclipse.swt.widgets.Canvas
getCanvas()
Gets the Canvas used for the terminal, used e.g.HostSession
getHostSession()
Gets the host session.Terminal
getTerminal()
Gets the terminal.boolean
isCaptureEnabled()
Check for Capture enabled.boolean
isClearEnabled()
Check for Clear enabled.boolean
isConfigEnabled()
Check for Capture enabled.boolean
isConnectEnabled()
Check for Connect enabled.boolean
isCopyEnabled()
Check for Cut enabled.boolean
isCutEnabled()
Check for Cut enabled.boolean
isDisconnectEnabled()
Check for Disconnect enabled.boolean
isNewScreenEnabled()
Checks if new screen is enabled.boolean
isPasteEnabled()
Check for Cut enabled.boolean
isPrintEnabled()
Check for Print enabled.boolean
isResumeEnabled()
Check for Resume enabled.boolean
isSelectAllEnabled()
Check for Select All enabled.boolean
isSuspendEnabled()
Check for Suspend enabled.boolean
onActivateMenu(boolean isPopup)
Handles display of the pop-up window or activation of the menu bar, called from the TerminalWindow.void
onConnectChange(HostSessionPeer peer, boolean connected)
Notifies the session of a connect state change.void
onCursorPositionChange(HostSessionPeer peer, int x, int y)
Notifies the session that the cursor position has changed.void
onFieldChange(HostSessionPeer peer)
Notifies the session that fields have changed.void
onHostDataStreamProcessing(HostSessionPeer peer, boolean isEntering, int updates)
Repaint listener.void
onInsertModeToggle()
Called from the Status Bar to toggle Insert mode.void
onKeyboardReset()
Called from the Status Bar to Reset the host.void
onMarkChange()
Called when the mark changes, called from the TerminalWindow.boolean
onPopup(int x, int y)
Handles display of the pop-up window.void
onRemoteState(int state)
Updates the states in a discrete way for the remote terminal.void
onScreenChange(HostSessionPeer peer, int beginPos, int endPos)
Notifies the session of a screen change.void
onScreenSizeChange(HostSessionPeer peer, int cx, int cy)
Notifies the session that the screen size has changed.void
onSessionFailure(HostSessionPeer peer, java.lang.Throwable exception)
Called when a session has had a failure.void
onStateChange(HostSessionPeer peer)
Notifies the session of a state change (such as insert mode, lock state, error state).void
performCapture()
Capture action.void
performClear()
Performs Clear.void
performConfig()
Config action.void
performConnect()
Connect action.void
performCopy()
Performs Copy.void
performCut()
Performs Cut.void
performDisconnect()
Disconnect action.void
performNewScreen()
Performs new screen.void
performPaste()
Performs Paste.void
performPref()
Performs Terminal Preferences.void
performPrint()
Performs Print.void
performResume()
Resume action.void
performSelectAll()
Performs Select All.void
performSuspend()
Suspend action.void
removeListener(ITerminalStateListener listener)
Removes a listener.void
resizePreview(int charPixelSizeX, int charPixelSizeY)
Resizes a terminal composite for preview.void
restoreState(org.eclipse.ui.IMemento memento)
Restores the terminal composite state: the cursor position and insert mode.void
saveState(org.eclipse.ui.IMemento memento)
Saves the state: the cursor position and insert mode.void
setException(java.lang.Throwable exception)
Sets an Exception in the status bar.boolean
setFocus()
Sets focus to the table.void
soundAlarm(HostSessionPeer peer)
Sound alarm on the client.void
switchSession(HostSession _hostSession, EditorTerminalProps _properties)
Switches session.void
triggerUpdateStates()
Triggers updates of the states of the actions.Methods inherited from class org.eclipse.swt.widgets.Composite
changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setLayout, setLayoutDeferred, setTabList, toString
Methods inherited from class org.eclipse.swt.widgets.Scrollable
computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar
Methods inherited from class org.eclipse.swt.widgets.Control
addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update
Methods inherited from class org.eclipse.swt.widgets.Widget
addDisposeListener, addListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData
Field Detail
MEMENTO_STATE
public static final java.lang.String MEMENTO_STATE
Memento variable, cursor position and insert mode: "terminalComposite.state".- See Also:
- Constant Field Values
actionNewScreen
public PartAction actionNewScreen
Actions.
actionTermCapture
public PartAction actionTermCapture
Actions.
actionCut
public PartAction actionCut
Actions.
actionCopy
public PartAction actionCopy
Actions.
actionPaste
public PartAction actionPaste
Actions.
actionSelectAll
public PartAction actionSelectAll
Actions.
actionTermClear
public PartAction actionTermClear
Actions.
actionPrint
public PartAction actionPrint
Actions.
actionTermConnect
public PartAction actionTermConnect
Actions.
actionTermSuspend
public PartAction actionTermSuspend
Actions.
actionTermResume
public PartAction actionTermResume
Actions.
actionTermDisconnect
public PartAction actionTermDisconnect
Actions.
actionTermConfig
public PartAction actionTermConfig
Actions.
actionTermPref
public PartAction actionTermPref
Actions.
Method Detail
createComposite
public static TerminalComposite createComposite(org.eclipse.swt.widgets.Composite parent, EditorTerminalProps props, int charPixelSizeX, int charPixelSizeY, boolean doConnect, boolean allowNonConnected, boolean doAntiAlias) throws java.io.IOException
Creates a composite for use with tooltips or previews.- Throws:
java.io.IOException
resizePreview
public void resizePreview(int charPixelSizeX, int charPixelSizeY)
Resizes a terminal composite for preview.
createActions
public void createActions(IPartExtensionIZ extension)
Creates the actions such as Copy/Paste/Select All, etc.- Parameters:
extension
- The IIZI part.
getActions
public java.lang.Object[] getActions()
Gets the contribution menu items as an Object [] where null is menu separator, the rest are IAction instances.
getCanvas
public org.eclipse.swt.widgets.Canvas getCanvas()
Gets the Canvas used for the terminal, used e.g. for context menus.
getTerminal
public Terminal getTerminal()
Gets the terminal.- Returns:
- The terminal instance or null if not yet created.
getHostSession
public HostSession getHostSession()
Gets the host session.- Returns:
- The host session or null for none.
addListener
public void addListener(ITerminalStateListener listener)
Adds a listener.
removeListener
public void removeListener(ITerminalStateListener listener)
Removes a listener.
createTerminalAndWindow
public Terminal createTerminalAndWindow(HostSession _hostSession, EditorTerminalProps _properties, IScreenDesigner designer)
Creates the Terminal and Terminal Window instance for local terminal use in the Designer.
createTerminalAndWindow
public Terminal createTerminalAndWindow(EditorActiveTerminalSession session, HostSessionProps hostSessionProps)
Creates the Terminal and Terminal Window instance for a remote terminal session.
switchSession
public void switchSession(HostSession _hostSession, EditorTerminalProps _properties)
Switches session.
setFocus
public boolean setFocus()
Sets focus to the table.- Overrides:
setFocus
in classorg.eclipse.swt.widgets.Composite
triggerUpdateStates
public void triggerUpdateStates()
Triggers updates of the states of the actions.
onRemoteState
public void onRemoteState(int state)
Updates the states in a discrete way for the remote terminal.
isCutEnabled
public boolean isCutEnabled()
Check for Cut enabled.
isCopyEnabled
public boolean isCopyEnabled()
Check for Cut enabled.
isPasteEnabled
public boolean isPasteEnabled()
Check for Cut enabled.
isClearEnabled
public boolean isClearEnabled()
Check for Clear enabled.
isSelectAllEnabled
public boolean isSelectAllEnabled()
Check for Select All enabled.
isPrintEnabled
public boolean isPrintEnabled()
Check for Print enabled.
isConnectEnabled
public boolean isConnectEnabled()
Check for Connect enabled.
isSuspendEnabled
public boolean isSuspendEnabled()
Check for Suspend enabled.
isResumeEnabled
public boolean isResumeEnabled()
Check for Resume enabled.
isDisconnectEnabled
public boolean isDisconnectEnabled()
Check for Disconnect enabled.
isCaptureEnabled
public boolean isCaptureEnabled()
Check for Capture enabled.
isNewScreenEnabled
public boolean isNewScreenEnabled()
Checks if new screen is enabled.
isConfigEnabled
public boolean isConfigEnabled()
Check for Capture enabled.
performCut
public void performCut()
Performs Cut.
performCopy
public void performCopy()
Performs Copy.
performPaste
public void performPaste()
Performs Paste.
performClear
public void performClear()
Performs Clear.
performSelectAll
public void performSelectAll()
Performs Select All.
performPrint
public void performPrint()
Performs Print.
performConnect
public void performConnect()
Connect action.
performSuspend
public void performSuspend()
Suspend action.
performResume
public void performResume()
Resume action.
performDisconnect
public void performDisconnect()
Disconnect action.
performCapture
public void performCapture()
Capture action.
performNewScreen
public void performNewScreen()
Performs new screen.
performConfig
public void performConfig()
Config action.
performPref
public void performPref()
Performs Terminal Preferences.
onScreenChange
public void onScreenChange(HostSessionPeer peer, int beginPos, int endPos)
Notifies the session of a screen change.- Specified by:
onScreenChange
in interfaceHostSessionListener
onFieldChange
public void onFieldChange(HostSessionPeer peer)
Notifies the session that fields have changed.- Specified by:
onFieldChange
in interfaceHostSessionListener
onScreenSizeChange
public void onScreenSizeChange(HostSessionPeer peer, int cx, int cy)
Notifies the session that the screen size has changed.- Specified by:
onScreenSizeChange
in interfaceHostSessionListener
onCursorPositionChange
public void onCursorPositionChange(HostSessionPeer peer, int x, int y)
Notifies the session that the cursor position has changed.- Specified by:
onCursorPositionChange
in interfaceHostSessionListener
onConnectChange
public void onConnectChange(HostSessionPeer peer, boolean connected)
Notifies the session of a connect state change.- Specified by:
onConnectChange
in interfaceHostSessionListener
onStateChange
public void onStateChange(HostSessionPeer peer)
Notifies the session of a state change (such as insert mode, lock state, error state).- Specified by:
onStateChange
in interfaceHostSessionListener
onHostDataStreamProcessing
public void onHostDataStreamProcessing(HostSessionPeer peer, boolean isEntering, int updates)
Repaint listener.- Specified by:
onHostDataStreamProcessing
in interfaceHostSessionListener
- Parameters:
peer
- The peer.isEntering
- The state of processing (true=before, false=after).updates
- What has been updated on screen (bit flag: 0x01=characters, 0x02=fields).
onSessionFailure
public void onSessionFailure(HostSessionPeer peer, java.lang.Throwable exception)
Called when a session has had a failure.- Specified by:
onSessionFailure
in interfaceHostSessionListener
soundAlarm
public void soundAlarm(HostSessionPeer peer)
Sound alarm on the client.- Specified by:
soundAlarm
in interfaceHostSessionListener
onPopup
public boolean onPopup(int x, int y)
Handles display of the pop-up window.- Specified by:
onPopup
in interfaceITerminalListener
- Parameters:
x
- The mouse position in X relative the terminal container.y
- The mouse position in Y relative the terminal container.- Returns:
- true if handled (i.e. menu is displayed).
onActivateMenu
public boolean onActivateMenu(boolean isPopup)
Handles display of the pop-up window or activation of the menu bar, called from the TerminalWindow.- Specified by:
onActivateMenu
in interfaceITerminalListener
- Parameters:
isPopup
- Flag indicating it's a pop-up that should be activated, as opposed to the menu bar.- Returns:
- true if handled (i.e. menu is displayed).
onMarkChange
public void onMarkChange()
Called when the mark changes, called from the TerminalWindow.- Specified by:
onMarkChange
in interfaceITerminalListener
onKeyboardReset
public void onKeyboardReset()
Called from the Status Bar to Reset the host.
onInsertModeToggle
public void onInsertModeToggle()
Called from the Status Bar to toggle Insert mode.
setException
public void setException(java.lang.Throwable exception)
Sets an Exception in the status bar.
saveState
public void saveState(org.eclipse.ui.IMemento memento)
Saves the state: the cursor position and insert mode.
restoreState
public void restoreState(org.eclipse.ui.IMemento memento)
Restores the terminal composite state: the cursor position and insert mode.