@@ -2,6 +2,7 @@ Some info how screen recordings were made
|
||||
|
||||
asciinema rec spring-shell-docs/src/main/asciidoc/asciinema/component-text-input-1.cast
|
||||
asciinema rec spring-shell-docs/src/main/asciidoc/asciinema/component-path-input-1.cast
|
||||
asciinema rec spring-shell-docs/src/main/asciidoc/asciinema/component-path-search-1.cast
|
||||
asciinema rec spring-shell-docs/src/main/asciidoc/asciinema/component-confirmation-1.cast
|
||||
asciinema rec spring-shell-docs/src/main/asciidoc/asciinema/component-single-select-1.cast
|
||||
asciinema rec spring-shell-docs/src/main/asciidoc/asciinema/component-multi-select-1.cast
|
||||
@@ -14,6 +15,9 @@ svg-term \
|
||||
svg-term \
|
||||
--in spring-shell-docs/src/main/asciidoc/asciinema/component-path-input-1.cast \
|
||||
--out spring-shell-docs/src/main/asciidoc/images/component-path-input-1.svg
|
||||
svg-term \
|
||||
--in spring-shell-docs/src/main/asciidoc/asciinema/component-path-search-1.cast \
|
||||
--out spring-shell-docs/src/main/asciidoc/images/component-path-search-1.svg
|
||||
svg-term \
|
||||
--in spring-shell-docs/src/main/asciidoc/asciinema/component-confirmation-1.cast \
|
||||
--out spring-shell-docs/src/main/asciidoc/images/component-confirmation-1.svg
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{"version": 2, "width": 85, "height": 10, "timestamp": 1666162443, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
|
||||
[1.881363, "o", "java -jar spring-shell-samples/build/libs/spring-shell-samples.jar"]
|
||||
[2.630692, "o", "\r\n"]
|
||||
[6.50287, "o", "\u001b[?1h\u001b=\u001b[?2004h\u001b[33mmy-shell:>\u001b[0m"]
|
||||
[8.347165, "o", "\u001b[1mcomponent path search\u001b[0m"]
|
||||
[9.422581, "o", "\r\r\n\u001b[?1l\u001b>\u001b[?1000l\u001b[?2004l"]
|
||||
[9.524556, "o", "\u001b[?1h\u001b=\u001b[?25l"]
|
||||
[9.612905, "o", "\u001b[32;1m?\u001b[0m \u001b[1mEnter value\u001b[0m \u001b[70C \u001b[32mℹ\u001b[0m \u001b[32mType '<path> <pattern>' to search\u001b[0m\u001b[A\r"]
|
||||
[10.889157, "o", "\u001b[14C.\r\r\n\u001b[35C\u001b[32m, 20/27\u001b[0m\u001b[42C \u001b[96;1m❯\u001b[0m\u001b[96;1m buildSrc/src\u001b[0m\u001b[70C \u001b[96;1mbuildSrc/src/main\u001b[0m\u001b[65C \u001b[96;1mbuildSrc/build.gradle\u001b[0m\u001b[61C \u001b[96;1mbuildSrc/src/main/java\u001b[0m\u001b[60C \u001b[96;1mbuildSrc/src/main/java/org\u001b[0m\u001b[6A\r"]
|
||||
[12.272435, "o", "\u001b[15C \r"]
|
||||
[12.486882, "o", "\u001b[16Cg\r\r\n\r\n\u001b[14C\u001b[96;1m/main/java/org/springframework/shell/\u001b[33;22mg\u001b[96;1mradle\u001b[0m\r\r\n\u001b[19C\u001b[96;1m/java/org/springframework/shell/\u001b[33;22mg\u001b[96;1mradle/BomPlugin.java\u001b[0m\r\r\n\u001b[11C\u001b[96;1msrc/main/java/org/springframework/shell/\u001b[33;22mg\u001b[96;1mradle/DocsPlugin.java\u001b[0m\u001b[K\r\r\n\u001b[24C\u001b[96;1m/org/springframework/shell/\u001b[33;22mg\u001b[96;1mradle/RootPlugin.java\u001b[0m\r\r\n\u001b[28C\u001b[96;1m/springframework/shell/\u001b[33;22mg\u001b[96;1mradle/ModulePlugin.java\u001b[0m\u001b[6A\r"]
|
||||
[12.707385, "o", "\u001b[17Cr\r\r\n\r\n\u001b[52C\u001b[33mr\u001b[0m\r\r\n\u001b[52C\u001b[33mr\u001b[0m\r\r\n\u001b[52C\u001b[33mr\u001b[96;1madle/Root\u001b[0m\r\r\n\u001b[52C\u001b[33mr\u001b[96;1madle/Docs\u001b[0m\r\r\n\u001b[52C\u001b[33mr\u001b[96;1madle/Samp\u001b[0m\u001b[6A\r"]
|
||||
[12.758464, "o", "\u001b[18Ca\r\r\n\r\n\u001b[53C\u001b[33ma\u001b[0m\r\r\n\u001b[53C\u001b[33ma\u001b[0m\r\r\n\u001b[53C\u001b[33ma\u001b[0m\r\r\n\u001b[53C\u001b[33ma\u001b[0m\r\r\n\u001b[53C\u001b[33ma\u001b[96;1mdle/Modu\u001b[0m\u001b[6A\r"]
|
||||
[13.035614, "o", "\u001b[19Cd\r\r\n\u001b[37C\u001b[32m19\u001b[0m\r\r\n\u001b[54C\u001b[33md\u001b[0m\r\r\n\u001b[54C\u001b[33md\u001b[0m\r\r\n\u001b[54C\u001b[33md\u001b[96;1mle/Docs\u001b[0m\r\r\n\u001b[54C\u001b[33md\u001b[96;1mle/Module\u001b[0m\u001b[K\u001b[96;1mPlugin.java\u001b[0m\r\r\n\u001b[54C\u001b[33md\u001b[96;1mle/Samp\u001b[0m\u001b[6A\r"]
|
||||
[13.132591, "o", "\u001b[20Cl\r\r\n\r\n\u001b[55C\u001b[33ml\u001b[0m\r\r\n\u001b[55C\u001b[33ml\u001b[0m\r\r\n\u001b[55C\u001b[33ml\u001b[0m\r\r\n\u001b[55C\u001b[33ml\u001b[96;1me/Samp\u001b[0m\r\r\n\u001b[55C\u001b[33ml\u001b[96;1me/Modu\u001b[0m\u001b[6A\r"]
|
||||
[13.226949, "o", "\u001b[21Ce\r\r\n\r\n\u001b[56C\u001b[33me\u001b[0m\r\r\n\u001b[56C\u001b[33me\u001b[0m\r\r\n\u001b[56C\u001b[33me\u001b[0m\r\r\n\u001b[56C\u001b[33me\u001b[0m\r\r\n\u001b[56C\u001b[33me\u001b[0m\u001b[6A\r"]
|
||||
[14.514777, "o", "\r\r\n\r\n \r\r\n\u001b[96;1m❯ \u001b[0m\u001b[3A\r"]
|
||||
[15.008775, "o", "\r\r\n\r\n\u001b[96;1m❯ \u001b[0m\r\r\n \u001b[3A\r"]
|
||||
[15.547301, "o", "\u001b[?1l\u001b>\u001b[?12;25h\u001b[K\r\r\n\u001b[K\r\r\n\u001b[K\r\r\n\u001b[K\r\r\n\u001b[K\r\r\n\u001b[K\r\r\n\u001b[K\u001b[6A"]
|
||||
[15.552903, "o", "\u001b[32;1m?\u001b[0m \u001b[1mEnter value\u001b[0m \u001b[34mbuildSrc/src/main/java/org/springframework/shell/gradle\u001b[0m\r\n"]
|
||||
[15.55352, "o", "Got value buildSrc/src/main/java/org/springframework/shell/gradle\r\n"]
|
||||
[16.475016, "o", "\u001b[?1h\u001b=\u001b[?2004h\u001b[33mmy-shell:>\u001b[0m"]
|
||||
[18.475016, "o", "\u001b[?1h\u001b=\u001b[?2004h\u001b[33mmy-shell:>\u001b[0m"]
|
||||
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,32 @@
|
||||
[[using-shell-components-ui-pathsearch]]
|
||||
==== Path Search
|
||||
ifndef::snippets[:snippets: ../../test/java/org/springframework/shell/docs]
|
||||
|
||||
The path search component asks base directory for scan and optional search expression.
|
||||
Results are shown in a single select list where user can pick a path.
|
||||
`PathSearchConfig` can be used to customise component behaviour.
|
||||
|
||||
====
|
||||
[source, java, indent=0]
|
||||
----
|
||||
include::{snippets}/UiComponentSnippets.java[tag=snippet9]
|
||||
----
|
||||
====
|
||||
|
||||
The following image shows typical output from a path search component:
|
||||
|
||||
image::images/component-path-search-1.svg[text input]
|
||||
|
||||
The context object is `PathSearchContext`. The following table describes its context variables:
|
||||
|
||||
[[pathsearchcontext-template-variables]]
|
||||
.PathSearchContext Template Variables
|
||||
|===
|
||||
|Key |Description
|
||||
|
||||
|`pathViewItems`
|
||||
|The items available for rendering search results.
|
||||
|
||||
|`model`
|
||||
|The parent context variables (see <<textcomponentcontext-template-variables>>).
|
||||
|===
|
||||
@@ -27,6 +27,8 @@ include::using-shell-components-ui-stringinput.adoc[]
|
||||
|
||||
include::using-shell-components-ui-pathinput.adoc[]
|
||||
|
||||
include::using-shell-components-ui-pathsearch.adoc[]
|
||||
|
||||
include::using-shell-components-ui-confirmation.adoc[]
|
||||
|
||||
include::using-shell-components-ui-singleselect.adoc[]
|
||||
|
||||
@@ -28,11 +28,14 @@ import org.jline.utils.AttributedStringBuilder;
|
||||
import org.springframework.shell.component.ConfirmationInput;
|
||||
import org.springframework.shell.component.MultiItemSelector;
|
||||
import org.springframework.shell.component.PathInput;
|
||||
import org.springframework.shell.component.PathSearch;
|
||||
import org.springframework.shell.component.SingleItemSelector;
|
||||
import org.springframework.shell.component.StringInput;
|
||||
import org.springframework.shell.component.ConfirmationInput.ConfirmationInputContext;
|
||||
import org.springframework.shell.component.MultiItemSelector.MultiItemSelectorContext;
|
||||
import org.springframework.shell.component.PathInput.PathInputContext;
|
||||
import org.springframework.shell.component.PathSearch.PathSearchConfig;
|
||||
import org.springframework.shell.component.PathSearch.PathSearchContext;
|
||||
import org.springframework.shell.component.SingleItemSelector.SingleItemSelectorContext;
|
||||
import org.springframework.shell.component.StringInput.StringInputContext;
|
||||
import org.springframework.shell.component.support.SelectorItem;
|
||||
@@ -109,7 +112,7 @@ public class UiComponentSnippets {
|
||||
@ShellComponent
|
||||
public class ComponentCommands extends AbstractShellComponent {
|
||||
|
||||
@ShellMethod(key = "component path", value = "Path input", group = "Components")
|
||||
@ShellMethod(key = "component path input", value = "Path input", group = "Components")
|
||||
public String pathInput() {
|
||||
PathInput component = new PathInput(getTerminal(), "Enter value");
|
||||
component.setResourceLoader(getResourceLoader());
|
||||
@@ -211,4 +214,28 @@ public class UiComponentSnippets {
|
||||
}
|
||||
}
|
||||
|
||||
class Dump8 {
|
||||
@ShellComponent
|
||||
public class ComponentCommands extends AbstractShellComponent {
|
||||
|
||||
@ShellMethod(key = "component path input", value = "Path search", group = "Components")
|
||||
public String pathSearch() {
|
||||
// tag::snippet9[]
|
||||
PathSearchConfig config = new PathSearch.PathSearchConfig();
|
||||
config.setMaxPathsShow(5);
|
||||
config.setMaxPathsSearch(100);
|
||||
config.setSearchForward(true);
|
||||
config.setSearchCaseSensitive(false);
|
||||
config.setSearchNormalize(false);
|
||||
|
||||
PathSearch component = new PathSearch(getTerminal(), "Enter value", config);
|
||||
component.setResourceLoader(getResourceLoader());
|
||||
component.setTemplateExecutor(getTemplateExecutor());
|
||||
|
||||
PathSearchContext context = component.run(PathSearchContext.empty());
|
||||
return "Got value " + context.getResultValue();
|
||||
// end::snippet9[]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user