This version is still in development and is not considered stable yet. For the latest stable version, please use Spring Shell 3.4.1!

StatusBarView

StatusBarView is a base implementation providing functionality to draw a status bar. StatusBarView inherits from BoxView.

┌─────────────────────────────┐
│ Item1 | Item2 | Item3       │
└─────────────────────────────┘

You can create a simple status bar with an item:

StatusItem item1 = new StatusBarView.StatusItem("Item1");
StatusBarView statusBar = new StatusBarView(List.of(item1));

The constructor can take array form which allows to lay out simple item definitions in a dsl style:

new StatusBarView(new StatusItem[] { StatusItem.of("Item1"), StatusItem.of("Item2").setAction(() -> {
}), StatusItem.of("Item3").setAction(() -> {
}).setHotKey(Key.f10) });

Items support runnable actions which generally are executed when item is selected. It can also get attached to a hot key.

StatusItem item1 = StatusBarView.StatusItem.of("Item1");

Runnable action1 = () -> {
};
StatusItem item2 = StatusBarView.StatusItem.of("Item2", action1);

Runnable action2 = () -> {
};
StatusItem item3 = StatusBarView.StatusItem.of("Item3", action2, KeyEvent.Key.f10);

StatusBarView statusBar = new StatusBarView();
statusBar.setItems(List.of(item1, item2, item3));

Events

Table 1. StatusBarView Events
Event Description

StatusBarViewOpenSelectedItemEvent

StatusItem is selected.