Commit | Line | Data |
---|---|---|
a3b510ab NR |
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 | } |