Class TerminalWindow

java.lang.Object
com.iizigo.term.internal.TerminalWindow
All Implemented Interfaces:
Runnable, EventListener, org.eclipse.swt.events.DisposeListener, org.eclipse.swt.events.FocusListener, org.eclipse.swt.events.KeyListener, org.eclipse.swt.events.MouseListener, org.eclipse.swt.events.MouseMoveListener, org.eclipse.swt.events.PaintListener, org.eclipse.swt.internal.SWTEventListener

public class TerminalWindow extends Object implements org.eclipse.swt.events.FocusListener, org.eclipse.swt.events.KeyListener, org.eclipse.swt.events.MouseListener, org.eclipse.swt.events.MouseMoveListener, org.eclipse.swt.events.PaintListener, org.eclipse.swt.events.DisposeListener, Runnable
This class creates and displays the terminal window inside a JComponent, typically a JFrame or JInternalFrame. It will create a status bar at the bottom, place the terminal window display on top and possibly with scroll bars around.

This class is used by the Clients, but also by the terminal window on the Server when running in GUI mode.

  • Constructor Summary

    Constructors
    Constructor
    Description
    TerminalWindow(org.eclipse.swt.widgets.Canvas canvas, TerminalStatusBar statusBar, IScreenDesigner designer, int cx, int cy, int x, int y, char[] cd, int[] ad, TerminalWindowListener listener, TerminalSettings settings)
    The constructor creates the child components (terminal display with possible scroll bars and the status bar.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addMark(int x, int y, int cx, int cy)
    Adds a mark.
    void
    addMark(org.eclipse.swt.graphics.Rectangle mark)
    Adds a mark.
    org.eclipse.swt.graphics.Point
    computeSize(int wHint, int hHint)
    Gets the minimum size without scroll bars.
    void
    doKeyPressed(org.eclipse.swt.events.KeyEvent e)
    Key pressed.
    void
    doKeyReleased(org.eclipse.swt.events.KeyEvent e)
    Key released.
    void
    doMouseDoubleClick(org.eclipse.swt.events.MouseEvent e)
    Mouse double-click, continued.
    void
    doMouseDown(org.eclipse.swt.events.MouseEvent e)
    Mouse pressed.
    void
    doMouseUp(org.eclipse.swt.events.MouseEvent e)
    Mouse released, continued.
    void
    focusGained(org.eclipse.swt.events.FocusEvent e)
    Focus gained.
    void
    focusLost(org.eclipse.swt.events.FocusEvent e)
    Focus is lost.
    org.eclipse.swt.graphics.Point
    Gets the current pointer position relative canvas.
    org.eclipse.swt.graphics.Point
    Gets the current point of the cursor relative the "frame".
    int
    Gets the font height.
    Gets the font name used.
    int
    Gets the font width.
    int
    Gets the left margin.
    org.eclipse.swt.graphics.Rectangle[]
    Get the current selected marks.
    int
    Gets the screenHeight.
    int
    Gets the screenWidth.
    int
    Gets the top margin.
    boolean
    Get the current selected mark.
    boolean
    Check for a single mark.
    void
    keyPressed(org.eclipse.swt.events.KeyEvent e)
    Key pressed.
    void
    keyReleased(org.eclipse.swt.events.KeyEvent e)
    Key released.
    void
    mouseDoubleClick(org.eclipse.swt.events.MouseEvent e)
    Mouse double-click.
    void
    mouseDown(org.eclipse.swt.events.MouseEvent e)
    Mouse pressed.
    void
    mouseMove(org.eclipse.swt.events.MouseEvent e)
    Mouse move.
    void
    mouseUp(org.eclipse.swt.events.MouseEvent e)
    Mouse released.
    void
    onNewSize(int cx, int cy)
    Called when a new size is set.
    void
    paintControl(org.eclipse.swt.events.PaintEvent e)
    The paint listener.
    boolean
    removeMark(int x, int y, int cx, int cy)
    Removes a mark.
    void
    Repaint entire area now.
    void
    repaintCharRect(int x, int y, int cx, int cy)
    Repaints one or two rectangles in character scaling.
    void
    repaintCharRect(org.eclipse.swt.graphics.Rectangle r)
    Repaints one or two rectangles in character scaling.
    void
    repaintPixelRect(int x, int y, int cx, int cy)
    The repaint a rectangle, later.
    void
    repaintPixelRect(org.eclipse.swt.graphics.Rectangle r)
    The repaint a rectangle, later.
    void
    repaintText(int beginPos, int endPos)
    Change of character/color data between two positions.
    void
    run()
    The action performed is actually a timer message and causes the cursor to flash.
    void
    setCapture(boolean on)
    Sets mouse capture.
    boolean
    setCursorVisible(boolean on)
    Shows or hides the cursor for a session.
    void
    setFocusProcessing(boolean on)
    setIgnoreFocusTime
    void
    setInsertMode(boolean on)
    Sets the insert mode indicator.
    void
    setMoveSize(boolean on)
    Call to set moving/sizing in order to skip cursor drawing.
    void
    setPreview(boolean doAntiAlias)
    Preview anti-alias.
    void
    setScreenSize(int cx, int cy, char[] cd, int[] ad)
    Sets the current screen size.
    void
    setShowHiddenText(boolean on)
    Sets showing of hidden text.
    void
    Updates the terminal window now, after a repaint.
    void
    widgetDisposed(org.eclipse.swt.events.DisposeEvent e)
    Dispose listener.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TerminalWindow

      public TerminalWindow(org.eclipse.swt.widgets.Canvas canvas, TerminalStatusBar statusBar, IScreenDesigner designer, int cx, int cy, int x, int y, char[] cd, int[] ad, TerminalWindowListener listener, TerminalSettings settings)
      The constructor creates the child components (terminal display with possible scroll bars and the status bar. It also starts to listen to keystrokes and focus changes.
      Parameters:
      canvas - The canvas.
      statusBar - The status bar.
      designer - The designer interface.
      cx - Width.
      cy - Height.
      x - X position.
      y - Y position.
      cd - Character data.
      ad - Attribute data.
      listener - Listener.
      settings - Settings.
  • Method Details

    • setPreview

      public void setPreview(boolean doAntiAlias)
      Preview anti-alias.
      Parameters:
      doAntiAlias - Flag to perform anti-alias or not.
    • getScreenWidth

      public int getScreenWidth()
      Gets the screenWidth.
      Returns:
      The screen width.
    • getScreenHeight

      public int getScreenHeight()
      Gets the screenHeight.
      Returns:
      The screen height.
    • getTopMargin

      public int getTopMargin()
      Gets the top margin.
      Returns:
      The top margin.
    • getLeftMargin

      public int getLeftMargin()
      Gets the left margin.
      Returns:
      The left margin.
    • getFontWidth

      public int getFontWidth()
      Gets the font width.
      Returns:
      The font width in pixels.
    • getFontHeight

      public int getFontHeight()
      Gets the font height.
      Returns:
      The font height in pixels.
    • keyPressed

      public void keyPressed(org.eclipse.swt.events.KeyEvent e)
      Key pressed.
      Specified by:
      keyPressed in interface org.eclipse.swt.events.KeyListener
      Parameters:
      e - The KeyEvent.
    • doKeyPressed

      public void doKeyPressed(org.eclipse.swt.events.KeyEvent e)
      Key pressed.
      Parameters:
      e - The KeyEvent.
    • keyReleased

      public void keyReleased(org.eclipse.swt.events.KeyEvent e)
      Key released.
      Specified by:
      keyReleased in interface org.eclipse.swt.events.KeyListener
      Parameters:
      e - The KeyEvent.
    • doKeyReleased

      public void doKeyReleased(org.eclipse.swt.events.KeyEvent e)
      Key released.
      Parameters:
      e - The KeyEvent.
    • getCursorPoint

      public org.eclipse.swt.graphics.Point getCursorPoint()
      Gets the current point of the cursor relative the "frame".
    • setCapture

      public void setCapture(boolean on)
      Sets mouse capture.
    • mouseDown

      public void mouseDown(org.eclipse.swt.events.MouseEvent e)
      Mouse pressed.
      Specified by:
      mouseDown in interface org.eclipse.swt.events.MouseListener
    • doMouseDown

      public void doMouseDown(org.eclipse.swt.events.MouseEvent e)
      Mouse pressed.
    • mouseDoubleClick

      public void mouseDoubleClick(org.eclipse.swt.events.MouseEvent e)
      Mouse double-click.
      Specified by:
      mouseDoubleClick in interface org.eclipse.swt.events.MouseListener
    • doMouseDoubleClick

      public void doMouseDoubleClick(org.eclipse.swt.events.MouseEvent e)
      Mouse double-click, continued.
    • mouseUp

      public void mouseUp(org.eclipse.swt.events.MouseEvent e)
      Mouse released.
      Specified by:
      mouseUp in interface org.eclipse.swt.events.MouseListener
    • doMouseUp

      public void doMouseUp(org.eclipse.swt.events.MouseEvent e)
      Mouse released, continued.
    • mouseMove

      public void mouseMove(org.eclipse.swt.events.MouseEvent e)
      Mouse move.
      Specified by:
      mouseMove in interface org.eclipse.swt.events.MouseMoveListener
    • addMark

      public void addMark(int x, int y, int cx, int cy)
      Adds a mark.
    • addMark

      public void addMark(org.eclipse.swt.graphics.Rectangle mark)
      Adds a mark.
    • removeMark

      public boolean removeMark(int x, int y, int cx, int cy)
      Removes a mark.
      Returns:
      true for success, false if not found.
    • widgetDisposed

      public void widgetDisposed(org.eclipse.swt.events.DisposeEvent e)
      Dispose listener.
      Specified by:
      widgetDisposed in interface org.eclipse.swt.events.DisposeListener
    • paintControl

      public void paintControl(org.eclipse.swt.events.PaintEvent e)
      The paint listener.
      Specified by:
      paintControl in interface org.eclipse.swt.events.PaintListener
    • onNewSize

      public void onNewSize(int cx, int cy)
      Called when a new size is set.
    • computeSize

      public org.eclipse.swt.graphics.Point computeSize(int wHint, int hHint)
      Gets the minimum size without scroll bars.
    • repaint

      public void repaint()
      Repaint entire area now.
    • update

      public void update()
      Updates the terminal window now, after a repaint.
    • getCursorLocation

      public org.eclipse.swt.graphics.Point getCursorLocation()
      Gets the current pointer position relative canvas.
    • repaintPixelRect

      public void repaintPixelRect(org.eclipse.swt.graphics.Rectangle r)
      The repaint a rectangle, later.
    • repaintPixelRect

      public void repaintPixelRect(int x, int y, int cx, int cy)
      The repaint a rectangle, later.
    • repaintCharRect

      public void repaintCharRect(org.eclipse.swt.graphics.Rectangle r)
      Repaints one or two rectangles in character scaling.
    • repaintCharRect

      public void repaintCharRect(int x, int y, int cx, int cy)
      Repaints one or two rectangles in character scaling.
    • setFocusProcessing

      public void setFocusProcessing(boolean on)
      setIgnoreFocusTime
    • focusGained

      public void focusGained(org.eclipse.swt.events.FocusEvent e)
      Focus gained.
      Specified by:
      focusGained in interface org.eclipse.swt.events.FocusListener
    • focusLost

      public void focusLost(org.eclipse.swt.events.FocusEvent e)
      Focus is lost.
      Specified by:
      focusLost in interface org.eclipse.swt.events.FocusListener
    • setMoveSize

      public void setMoveSize(boolean on)
      Call to set moving/sizing in order to skip cursor drawing.
    • run

      public void run()
      The action performed is actually a timer message and causes the cursor to flash.
      Specified by:
      run in interface Runnable
    • setCursorVisible

      public boolean setCursorVisible(boolean on)
      Shows or hides the cursor for a session.
    • repaintText

      public void repaintText(int beginPos, int endPos)
      Change of character/color data between two positions.
    • setInsertMode

      public void setInsertMode(boolean on)
      Sets the insert mode indicator.
    • hasMark

      public boolean hasMark()
      Get the current selected mark.
      Returns:
      Rectangle
    • hasSingleMark

      public boolean hasSingleMark()
      Check for a single mark.
      Returns:
      Rectangle
    • getMarks

      public org.eclipse.swt.graphics.Rectangle[] getMarks()
      Get the current selected marks.
      Returns:
      Rectangle array.
    • setScreenSize

      public void setScreenSize(int cx, int cy, char[] cd, int[] ad)
      Sets the current screen size.
    • getFontName

      public String getFontName()
      Gets the font name used.
    • setShowHiddenText

      public void setShowHiddenText(boolean on)
      Sets showing of hidden text.