Java 1.6+ compatibility (at least) instead of 1.8+ only
[jvcard.git] / src / be / nikiroo / jvcard / tui / TuiLauncher.java
CommitLineData
a3b510ab
NR
1package be.nikiroo.jvcard.tui;
2
3import java.io.IOException;
4
296a0b75 5import com.googlecode.lanterna.TerminalSize;
a3b510ab
NR
6import com.googlecode.lanterna.TextColor;
7import com.googlecode.lanterna.gui2.DefaultWindowManager;
8import com.googlecode.lanterna.gui2.EmptySpace;
9import com.googlecode.lanterna.gui2.MultiWindowTextGUI;
10import com.googlecode.lanterna.gui2.Window;
11import com.googlecode.lanterna.screen.Screen;
12import com.googlecode.lanterna.screen.TerminalScreen;
13import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
296a0b75 14import com.googlecode.lanterna.terminal.ResizeListener;
a3b510ab
NR
15import com.googlecode.lanterna.terminal.Terminal;
16
668268fc
NR
17/**
18 * Starting the TUI.
a3b510ab 19 *
668268fc
NR
20 * @author niki
21 *
a3b510ab 22 */
a3b510ab 23public class TuiLauncher {
668268fc
NR
24
25 static public void start(Boolean textMode, Window win) throws IOException {
a3b510ab
NR
26 Terminal terminal = null;
27
28 DefaultTerminalFactory factory = new DefaultTerminalFactory();
29 if (textMode == null) {
30 terminal = factory.createTerminal();
31 } else if (textMode) {
32 factory.setForceTextTerminal(true);
33 terminal = factory.createTerminal();
34 } else {
35 terminal = factory.createTerminalEmulator();
36 }
37
296a0b75 38 if (win instanceof MainWindow) {
6b6a62ca 39 final MainWindow mwin = (MainWindow) win;
296a0b75
NR
40 mwin.refresh(terminal.getTerminalSize());
41 terminal.addResizeListener(new ResizeListener() {
42 @Override
43 public void onResized(Terminal terminal, TerminalSize newSize) {
44 mwin.refresh(newSize);
45 }
46 });
47 }
48
a3b510ab
NR
49 Screen screen = new TerminalScreen(terminal);
50 screen.startScreen();
51
52 // Create gui and start gui
53 MultiWindowTextGUI gui = new MultiWindowTextGUI(screen,
54 new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLUE));
55 gui.addWindowAndWait(win);
56
57 screen.stopScreen();
58 }
59}