Package jexer.backend

Class MultiBackend

  • All Implemented Interfaces:
    Backend

    public class MultiBackend
    extends java.lang.Object
    implements Backend
    MultiBackend mirrors its I/O to several backends.
    • Constructor Summary

      Constructors 
      Constructor Description
      MultiBackend​(Backend backend)
      Public constructor requires one backend.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addBackend​(Backend backend)
      Add a backend to the list.
      void addBackend​(Backend backend, boolean readOnly)
      Add a backend to the list.
      void flushScreen()
      Subclasses must provide an implementation that syncs the logical screen to the physical device.
      java.util.List<Backend> getBackends()
      Get the active backends.
      void getEvents​(java.util.List<TInputEvent> queue)
      Subclasses must provide an implementation to get keyboard, mouse, and screen resize events.
      Screen getScreen()
      Getter for screen.
      SessionInfo getSessionInfo()
      Getter for sessionInfo.
      boolean hasEvents()
      Check if there are events in the queue.
      boolean isImagesOverText()
      Check if backend will support incomplete image fragments over text display.
      boolean isPixelMouse()
      Check if backend is reporting pixel-based mouse position.
      boolean isReadOnly()
      Check if backend is read-only.
      void reloadOptions()
      Reload backend options from System properties.
      void removeBackend​(Backend backend)
      Remove a backend from the list.
      void setListener​(java.lang.Object listener)
      Set listener to a different Object.
      void setMouseStyle​(java.lang.String mouseStyle)
      Set the mouse pointer (cursor) style.
      void setPixelMouse​(boolean pixelMouse)
      Set request for backend to report pixel-based mouse position.
      void setReadOnly​(boolean readOnly)
      Set read-only flag.
      void setTitle​(java.lang.String title)
      Subclasses must provide an implementation that sets the window title.
      void shutdown()
      Subclasses must provide an implementation that closes sockets, restores console, etc.
      • Methods inherited from class java.lang.Object

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

      • MultiBackend

        public MultiBackend​(Backend backend)
        Public constructor requires one backend. Note that this backend's screen will be replaced with a MultiScreen.
        Parameters:
        backend - the backend to add
    • Method Detail

      • getScreen

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

        public void flushScreen()
        Subclasses must provide an implementation that syncs 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)
        Subclasses must provide an implementation to 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()
        Subclasses must provide an implementation that closes sockets, restores console, etc.
        Specified by:
        shutdown in interface Backend
      • setTitle

        public void setTitle​(java.lang.String title)
        Subclasses must provide an implementation that sets 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
      • 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
      • addBackend

        public void addBackend​(Backend backend)
        Add a backend to the list.
        Parameters:
        backend - the backend to add
      • addBackend

        public void addBackend​(Backend backend,
                               boolean readOnly)
        Add a backend to the list.
        Parameters:
        backend - the backend to add
        readOnly - set the backend as read-only. If this would result in all backends begin read-only, it is ignored.
      • removeBackend

        public void removeBackend​(Backend backend)
        Remove a backend from the list.
        Parameters:
        backend - the backend to remove
      • getBackends

        public java.util.List<Backend> getBackends()
        Get the active backends.
        Returns:
        the list of active (not headless) backends, including read-only backends
      • isReadOnly

        public boolean isReadOnly()
        Check if backend is read-only. For a MultiBackend, this is always false.
        Specified by:
        isReadOnly in interface Backend
        Returns:
        false
      • setReadOnly

        public void setReadOnly​(boolean readOnly)
        Set read-only flag. This does nothing for MultiBackend.
        Specified by:
        setReadOnly in interface Backend
        Parameters:
        readOnly - ignored
      • 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"