Skip to content

Commit 88c1f56

Browse files
committed
Add about dialog to catalog app
- Relates spring-projects#825
1 parent b271c44 commit 88c1f56

File tree

1 file changed

+28
-0
lines changed
  • spring-shell-samples/spring-shell-sample-catalog/src/main/java/org/springframework/shell/samples/catalog

1 file changed

+28
-0
lines changed

spring-shell-samples/spring-shell-sample-catalog/src/main/java/org/springframework/shell/samples/catalog/Catalog.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@
3131
import org.springframework.shell.component.view.TerminalUI;
3232
import org.springframework.shell.component.view.control.AppView;
3333
import org.springframework.shell.component.view.control.AppView.AppViewEvent;
34+
import org.springframework.shell.component.view.control.BoxView;
35+
import org.springframework.shell.component.view.control.ButtonView;
36+
import org.springframework.shell.component.view.control.DialogView;
3437
import org.springframework.shell.component.view.control.GridView;
3538
import org.springframework.shell.component.view.control.ListView;
3639
import org.springframework.shell.component.view.control.ListView.ListViewOpenSelectedItemEvent;
@@ -47,7 +50,9 @@
4750
import org.springframework.shell.component.view.event.KeyEvent;
4851
import org.springframework.shell.component.view.event.KeyEvent.Key;
4952
import org.springframework.shell.component.view.event.KeyEvent.KeyMask;
53+
import org.springframework.shell.component.view.geom.HorizontalAlign;
5054
import org.springframework.shell.component.view.geom.Rectangle;
55+
import org.springframework.shell.component.view.geom.VerticalAlign;
5156
import org.springframework.shell.component.view.message.ShellMessageBuilder;
5257
import org.springframework.shell.component.view.screen.Screen;
5358
import org.springframework.shell.component.view.screen.Screen.Writer;
@@ -273,7 +278,30 @@ private Runnable styleAction(String style) {
273278
return () -> setStyle(style);
274279
}
275280

281+
private DialogView buildAboutDialog() {
282+
ButtonView button = new ButtonView("OK");
283+
button.setThemeResolver(themeResolver);
284+
button.setThemeName(activeThemeName);
285+
button.setEventLoop(eventLoop);
286+
287+
BoxView content = new BoxView();
288+
content.setDrawFunction((screen, rect) -> {
289+
screen.writerBuilder().layer(1).build().text("Catalog Sample App", rect, HorizontalAlign.CENTER, VerticalAlign.CENTER);
290+
return rect;
291+
});
292+
DialogView dialog = new DialogView(content, button);
293+
dialog.setThemeResolver(themeResolver);
294+
dialog.setThemeName(activeThemeName);
295+
dialog.setEventLoop(eventLoop);
296+
dialog.setViewService(ui);
297+
298+
dialog.setTransparent(false);
299+
return dialog;
300+
}
301+
276302
private void about() {
303+
DialogView dialog = buildAboutDialog();
304+
ui.setModal(dialog);
277305
}
278306

279307
private MenuBarView buildMenuBar(EventLoop eventLoop) {

0 commit comments

Comments
 (0)