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 TypeMethodDescriptionvoidGets anEventLoop.getModal()Gets a current modal view.Gets atheme name.Sets aThemeResolver.Gets aViewService.voidredraw()Redraw a whole screen.voidrun()Run and start execution loop.voidSets a view to be focused.voidsetFullScreenViewRect(BiFunction<org.jline.terminal.Terminal, View, Rectangle> fullScreenViewRect) Sets a view rect function for full screen mode.voidSets a new modal view.voidsetNonfullScreenViewRect(BiFunction<org.jline.terminal.Terminal, View, Rectangle> nonfullScreenViewRect) Sets a view rect function for full screen mode.voidSets a root view.voidsetThemeName(String themeName) Sets atheme name.voidsetThemeResolver(ThemeResolver themeResolver) Sets aThemeResolver.
-
Constructor Details
-
TerminalUI
public TerminalUI(org.jline.terminal.Terminal terminal) Constructs a handler with a given terminal.- Parameters:
terminal- the terminal
-
-
Method Details
-
getModal
Description copied from interface:ViewServiceGets a current modal view.- Specified by:
getModalin interfaceViewService- Returns:
- current modal view
-
setModal
Description copied from interface:ViewServiceSets a new modal view. Setting modal tonullclears existing modal.- Specified by:
setModalin interfaceViewService- Parameters:
view- a view to use as modal
-
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. -
setThemeResolver
Sets aThemeResolver.- Parameters:
themeResolver- the theme resolver
-
getThemeResolver
Sets aThemeResolver.- Returns:
- a theme resolver
-
setThemeName
Sets atheme name.- Parameters:
themeName- the theme name
-
getThemeName
Gets atheme name.- Returns:
- a theme name
-
getViewService
Gets aViewService.- Returns:
- a view service
-
configure
- Parameters:
view- the view to configure
-
setFocus
Description copied from interface:ViewServiceSets a view to be focused. Setting focus tonullclears focused view.- Specified by:
setFocusin interfaceViewService- Parameters:
view- a view to be focused
-
setFullScreenViewRect
public void setFullScreenViewRect(BiFunction<org.jline.terminal.Terminal, View, Rectangle> fullScreenViewRect) Sets a view rect function for full screen mode. Default behaviour usesRectanglearea 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 usesRectanglefromrootViewif it's not empty, otherwise uses zero based area with width matching terminal columns and height matching 5.- Parameters:
nonfullScreenViewRect- the view rect function
-