Package jexer.backend

Class GenericBackend

  • All Implemented Interfaces:
    Backend
    Direct Known Subclasses:
    ECMA48Backend, SwingBackend

    public abstract class GenericBackend
    extends java.lang.Object
    implements Backend
    This abstract class provides a screen, keyboard, and mouse to TApplication. It also exposes session information as gleaned from lower levels of the communication stack.
    • Field Detail

      • sessionInfo

        protected SessionInfo sessionInfo
        The session information.
      • screen

        protected Screen screen
        The screen to draw on.
      • terminal

        protected TerminalReader terminal
        Input events are processed by this Terminal.
      • lastUserInputTime

        protected long lastUserInputTime
        The last time user input (mouse or keyboard) was received.
      • readOnly

        protected boolean readOnly
        Whether or not this backend is read-only.
    • Constructor Detail

      • GenericBackend

        protected GenericBackend()
        Default constructor used by subclasses.
    • Method Detail

      • getSessionInfo

        public final SessionInfo getSessionInfo()
        Getter for sessionInfo.
        Specified by:
        getSessionInfo in interface Backend
        Returns:
        the SessionInfo
      • getScreen

        public final Screen getScreen()
        Getter for screen.
        Specified by:
        getScreen in interface Backend
        Returns:
        the Screen
      • flushScreen

        public void flushScreen()
        Sync the logical screen to the physical device.
        Specified by:
        flushScreen in interface Backend
      • hasEvents

        public boolean hasEvents()
        Check if there are events in the queue.
        Specified by:
        hasEvents in interface Backend
        Returns:
        if true, getEvents() has something to return to the application
      • getEvents

        public void getEvents​(java.util.List<TInputEvent> queue)
        Get keyboard, mouse, and screen resize events.
        Specified by:
        getEvents in interface Backend
        Parameters:
        queue - list to append new events to
      • shutdown

        public void shutdown()
        Close the I/O, restore the console, etc.
        Specified by:
        shutdown in interface Backend
      • setTitle

        public void setTitle​(java.lang.String title)
        Set the window title.
        Specified by:
        setTitle in interface Backend
        Parameters:
        title - the new title
      • setListener

        public void setListener​(java.lang.Object listener)
        Set listener to a different Object.
        Specified by:
        setListener in interface Backend
        Parameters:
        listener - the new listening object that run() wakes up on new input
      • reloadOptions

        public void reloadOptions()
        Reload backend options from System properties.
        Specified by:
        reloadOptions in interface Backend
      • isReadOnly

        public boolean isReadOnly()
        Check if backend is read-only.
        Specified by:
        isReadOnly in interface Backend
        Returns:
        true if user input events from the backend are discarded
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
        Set read-only flag.
        Specified by:
        setReadOnly in interface Backend
        Parameters:
        readOnly - if true, then input events will be discarded
      • isImagesOverText

        public boolean isImagesOverText()
        Check if backend will support incomplete image fragments over text display.
        Specified by:
        isImagesOverText in interface Backend
        Returns:
        true if images can partially obscure text
      • isPixelMouse

        public boolean isPixelMouse()
        Check if backend is reporting pixel-based mouse position.
        Specified by:
        isPixelMouse in interface Backend
        Returns:
        true if single-pixel mouse movements are reported
      • setPixelMouse

        public void setPixelMouse​(boolean pixelMouse)
        Set request for backend to report pixel-based mouse position.
        Specified by:
        setPixelMouse in interface Backend
        Parameters:
        pixelMouse - if true, single-pixel mouse movements will be reported, if the backend supports it
      • setMouseStyle

        public void setMouseStyle​(java.lang.String mouseStyle)
        Set the mouse pointer (cursor) style.
        Specified by:
        setMouseStyle in interface Backend
        Parameters:
        mouseStyle - the pointer style string, one of: "default", "none", "hand", "text", "move", or "crosshair"