Package org.jline.consoleui.prompt
Class ConsolePrompt
java.lang.Object
org.jline.consoleui.prompt.ConsolePrompt
ConsolePrompt encapsulates the prompting of a list of input questions for the user.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
ConsoleUI configuration: colors, cursor pointer and selected/unselected/unavailable boxes. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.jline.terminal.Attributes
protected final ConsolePrompt.UiConfig
protected final org.jline.utils.Display
protected List
<org.jline.utils.AttributedString> protected final org.jline.reader.LineReader
protected final org.jline.terminal.Terminal
-
Constructor Summary
ConstructorsConstructorDescriptionConsolePrompt
(org.jline.reader.LineReader reader, org.jline.terminal.Terminal terminal, ConsolePrompt.UiConfig config) ConsolePrompt
(org.jline.terminal.Terminal terminal) ConsolePrompt
(org.jline.terminal.Terminal terminal, ConsolePrompt.UiConfig config) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
close()
static int
computePageSize
(org.jline.terminal.Terminal terminal, int pageSize, PageSizeType sizeType) protected org.jline.utils.AttributedStringBuilder
createMessage
(String message, String response) Creates aPromptBuilder
.protected void
open()
prompt
(Function<Map<String, PromptResultItemIF>, List<PromptableElementIF>> promptableElementLists) Prompt a list of choices (questions).prompt
(List<PromptableElementIF> promptableElementList) Prompt a list of choices (questions).prompt
(List<org.jline.utils.AttributedString> headerIn, Function<Map<String, PromptResultItemIF>, List<PromptableElementIF>> promptableElementLists) Prompt a list of choices (questions).prompt
(List<org.jline.utils.AttributedString> header, List<PromptableElementIF> promptableElementList) Prompt a list of choices (questions).protected void
prompt
(List<org.jline.utils.AttributedString> headerIn, List<PromptableElementIF> promptableElementList, Map<String, PromptResultItemIF> resultMap) Prompt a list of choices (questions).protected PromptResultItemIF
promptElement
(List<org.jline.utils.AttributedString> header, PromptableElementIF pe, PromptResultItemIF oldResult)
-
Field Details
-
reader
protected final org.jline.reader.LineReader reader -
terminal
protected final org.jline.terminal.Terminal terminal -
display
protected final org.jline.utils.Display display -
config
-
attributes
protected org.jline.terminal.Attributes attributes -
header
-
-
Constructor Details
-
ConsolePrompt
public ConsolePrompt(org.jline.terminal.Terminal terminal) - Parameters:
terminal
- the terminal.
-
ConsolePrompt
- Parameters:
terminal
- the terminal.config
- ConsolePrompt cursor pointer and checkbox configuration
-
ConsolePrompt
public ConsolePrompt(org.jline.reader.LineReader reader, org.jline.terminal.Terminal terminal, ConsolePrompt.UiConfig config) - Parameters:
reader
- the lineReader.terminal
- the terminal.config
- ConsolePrompt cursor pointer and checkbox configuration
-
-
Method Details
-
open
protected void open() -
close
protected void close() -
prompt
public Map<String,PromptResultItemIF> prompt(List<PromptableElementIF> promptableElementList) throws IOException, org.jline.reader.UserInterruptException Prompt a list of choices (questions). This method takes a list of promptable elements, typically created withPromptBuilder
. Each of the elements is processed and the user entries and answers are filled in to the result map. The result map contains the key of each promptable element and the user entry as an object implementingPromptResultItemIF
.- Parameters:
promptableElementList
- the list of questions / prompts to ask the user for.- Returns:
- a map containing a result for each element of promptableElementList
- Throws:
IOException
- may be thrown by terminalorg.jline.reader.UserInterruptException
- if user interrupt handling is enabled and the user types the interrupt character (ctrl-C)
-
prompt
public Map<String,PromptResultItemIF> prompt(List<org.jline.utils.AttributedString> header, List<PromptableElementIF> promptableElementList) throws IOException, org.jline.reader.UserInterruptException Prompt a list of choices (questions). This method takes a list of promptable elements, typically created withPromptBuilder
. Each of the elements is processed and the user entries and answers are filled in to the result map. The result map contains the key of each promptable element and the user entry as an object implementingPromptResultItemIF
.- Parameters:
header
- info to be displayed before first prompt.promptableElementList
- the list of questions / prompts to ask the user for.- Returns:
- a map containing a result for each element of promptableElementList
- Throws:
IOException
- may be thrown by terminalorg.jline.reader.UserInterruptException
- if user interrupt handling is enabled and the user types the interrupt character (ctrl-C)
-
prompt
public Map<String,PromptResultItemIF> prompt(Function<Map<String, PromptResultItemIF>, throws IOExceptionList<PromptableElementIF>> promptableElementLists) Prompt a list of choices (questions). This method takes a function that given a map of interim results returns a list of promptable elements (typically created withPromptBuilder
). Each list is then passed toprompt(List, List, Map)
and the result added to the map of interim results. The function is then called again with the updated map of results until the function returns null. The final result map contains the key of each promptable element and the user entry as an object implementingPromptResultItemIF
.- Parameters:
promptableElementLists
- a function returning lists of questions / prompts to ask the user for.- Throws:
IOException
- may be thrown by terminal
-
prompt
public Map<String,PromptResultItemIF> prompt(List<org.jline.utils.AttributedString> headerIn, Function<Map<String, PromptResultItemIF>, throws IOExceptionList<PromptableElementIF>> promptableElementLists) Prompt a list of choices (questions). This method takes a function that given a map of interim results returns a list of promptable elements (typically created withPromptBuilder
). Each list is then passed toprompt(List, List, Map)
and the result added to the map of interim results. The function is then called again with the updated map of results until the function returns null. The final result map contains the key of each promptable element and the user entry as an object implementingPromptResultItemIF
.- Parameters:
headerIn
- info to be displayed before first prompt.promptableElementLists
- a function returning lists of questions / prompts to ask the user for.- Throws:
IOException
- may be thrown by terminal
-
prompt
protected void prompt(List<org.jline.utils.AttributedString> headerIn, List<PromptableElementIF> promptableElementList, Map<String, PromptResultItemIF> resultMap) throws IOExceptionPrompt a list of choices (questions). This method takes a list of promptable elements, typically created withPromptBuilder
. Each of the elements is processed and the user entries and answers are filled in to the result map. The result map contains the key of each promptable element and the user entry as an object implementingPromptResultItemIF
.- Parameters:
headerIn
- info to be displayed before first prompt.promptableElementList
- the list of questions / prompts to ask the user for.resultMap
- a map containing a result for each element of promptableElementList- Throws:
IOException
- may be thrown by terminal
-
promptElement
protected PromptResultItemIF promptElement(List<org.jline.utils.AttributedString> header, PromptableElementIF pe, PromptResultItemIF oldResult) -
createMessage
-
computePageSize
public static int computePageSize(org.jline.terminal.Terminal terminal, int pageSize, PageSizeType sizeType) -
getPromptBuilder
Creates aPromptBuilder
.- Returns:
- a new prompt builder object.
-