このバージョンはまだ開発中であり、まだ安定しているとは見なされていません。最新の安定バージョンについては、Spring Shell 3.4.1 を使用してください!

複数選択

複数選択コンポーネントは、ユーザーにリストから複数の項目を選択するように求めます。次のリストは例を示しています。

public class ComponentCommands {

	@Command(name = "component multi", description = "Multi selector", group = "Components")
	public String multiSelector() {
		List<SelectorItem<String>> items = new ArrayList<>();
		items.add(SelectorItem.of("key1", "value1"));
		items.add(SelectorItem.of("key2", "value2", false, true));
		items.add(SelectorItem.of("key3", "value3"));
		MultiItemSelector<String, SelectorItem<String>> component = new MultiItemSelector<>(getTerminal(),
				items, "testSimple", null);
		ResourceLoader resourceLoader = null; // getResourceLoader();
		TemplateExecutor templateExecutor = null; // getTemplateExecutor();
		component.setResourceLoader(resourceLoader);
		component.setTemplateExecutor(templateExecutor);
		MultiItemSelectorContext<String, SelectorItem<String>> context = component
			.run(MultiItemSelectorContext.empty());
		String result = context.getResultItems()
			.stream()
			.map(si -> si.getItem())
			.collect(Collectors.joining(","));
		return "Got value " + result;
	}

}

次のスクリーンキャストは、典型的な複数選択コンポーネントを示しています。

コンテキストオブジェクトは MultiItemSelectorContext です。次の表に、そのコンテキスト変数を示します。

表 1: MultiItemSelectorContext テンプレート変数
キー 説明

values

コンポーネントが存在する場合に返される値。

rows

表示されているアイテム。行には、名前、選択済み、行上、有効なアイテムのマップが含まれています。

model

親コンテキスト変数 ( SelectorComponentContext テンプレート変数を参照)。