Class TerminalUI
java.lang.Object
org.springframework.shell.component.view.TerminalUI
- All Implemented Interfaces:
ViewService
TerminalUI
is a main component orchestrating terminal, eventloop,
key/mouse events and view structure to work together. In many ways it can
be think of being a "main application" when terminal ui is shown in
a screen.-
Constructor Summary
ConstructorsConstructorDescriptionTerminalUI
(org.jline.terminal.Terminal terminal) Constructs a handler with a given terminal. -
Method Summary
Modifier and TypeMethodDescriptionGets anEventLoop
.getModal()
void
redraw()
Redraw a whole screen.void
run()
Run and start execution loop.void
void
setFullScreenViewRect
(BiFunction<org.jline.terminal.Terminal, View, Rectangle> fullScreenViewRect) Sets a view rect function for full screen mode.void
void
setNonfullScreenViewRect
(BiFunction<org.jline.terminal.Terminal, View, Rectangle> nonfullScreenViewRect) Sets a view rect function for full screen mode.void
Sets a root view.
-
Constructor Details
-
TerminalUI
public TerminalUI(org.jline.terminal.Terminal terminal) Constructs a handler with a given terminal.- Parameters:
terminal
- the terminal
-
-
Method Details
-
getModal
- Specified by:
getModal
in interfaceViewService
-
setModal
- Specified by:
setModal
in interfaceViewService
-
setRoot
Sets a root view.- Parameters:
root
- the root viewfullScreen
- if root view should request full screen
-
run
public void run()Run and start execution loop. This method blocks until run loop exits. -
getEventLoop
Gets anEventLoop
.- Returns:
- an event loop
-
redraw
public void redraw()Redraw a whole screen. Essentially a message is dispatched to an event loop which is handled as soon as possible. -
setFocus
-
setFullScreenViewRect
public void setFullScreenViewRect(BiFunction<org.jline.terminal.Terminal, View, Rectangle> fullScreenViewRect) Sets a view rect function for full screen mode. Default behaviour usesRectangle
area equal to terminal size.- Parameters:
fullScreenViewRect
- the view rect function
-
setNonfullScreenViewRect
public void setNonfullScreenViewRect(BiFunction<org.jline.terminal.Terminal, View, Rectangle> nonfullScreenViewRect) Sets a view rect function for full screen mode. Default behaviour usesRectangle
fromrootView
if it's not empty, otherwise uses zero based area with width matching terminal columns and height matching 5.- Parameters:
nonfullScreenViewRect
- the view rect function
-