Initial commit
[jvcard.git] / src / be / nikiroo / jvcard / tui / TuiLauncher.java
1 package be.nikiroo.jvcard.tui;
2
3 import java.io.IOException;
4
5 import com.googlecode.lanterna.TextColor;
6 import com.googlecode.lanterna.gui2.DefaultWindowManager;
7 import com.googlecode.lanterna.gui2.EmptySpace;
8 import com.googlecode.lanterna.gui2.MultiWindowTextGUI;
9 import com.googlecode.lanterna.gui2.Window;
10 import com.googlecode.lanterna.screen.Screen;
11 import com.googlecode.lanterna.screen.TerminalScreen;
12 import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
13 import com.googlecode.lanterna.terminal.Terminal;
14
15 /*
16 *
17 * Change in Lanterna3 (issue and fix reported to GitHub):
18 *
19 * java.lang.StringIndexOutOfBoundsException: String index out of range: 83
20 * at java.lang.String.charAt(String.java:686)
21 * at com.googlecode.lanterna.TerminalTextUtils.getWordWrappedText(TerminalTextUtils.java:237)
22 *
23 *
24 */
25
26 public class TuiLauncher {
27 public static void start(Boolean textMode, Window win)
28 throws IOException {
29 Terminal terminal = null;
30
31 DefaultTerminalFactory factory = new DefaultTerminalFactory();
32 if (textMode == null) {
33 terminal = factory.createTerminal();
34 } else if (textMode) {
35 factory.setForceTextTerminal(true);
36 terminal = factory.createTerminal();
37 } else {
38 terminal = factory.createTerminalEmulator();
39 }
40
41 Screen screen = new TerminalScreen(terminal);
42 screen.startScreen();
43
44 // Create gui and start gui
45 MultiWindowTextGUI gui = new MultiWindowTextGUI(screen,
46 new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLUE));
47 gui.addWindowAndWait(win);
48
49 screen.stopScreen();
50 }
51 }