X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fjvcard%2Ftui%2FTuiLauncher.java;h=054fe4a88eb1436314e4f56d21bdb5a526ad09d3;hb=ed91f27a4f628ec59b0e85cdbb0319287c503f9d;hp=7bee3e7bc87eb89163de7aebd677990f2641e867;hpb=296a0b75515b3a7424b98292c87cbbf2272b73f9;p=jvcard.git diff --git a/src/be/nikiroo/jvcard/tui/TuiLauncher.java b/src/be/nikiroo/jvcard/tui/TuiLauncher.java index 7bee3e7..054fe4a 100644 --- a/src/be/nikiroo/jvcard/tui/TuiLauncher.java +++ b/src/be/nikiroo/jvcard/tui/TuiLauncher.java @@ -1,11 +1,12 @@ package be.nikiroo.jvcard.tui; import java.io.IOException; +import java.util.List; + +import be.nikiroo.jvcard.tui.panes.FileList; import com.googlecode.lanterna.TerminalSize; import com.googlecode.lanterna.TextColor; -import com.googlecode.lanterna.gui2.DefaultWindowManager; -import com.googlecode.lanterna.gui2.EmptySpace; import com.googlecode.lanterna.gui2.MultiWindowTextGUI; import com.googlecode.lanterna.gui2.Window; import com.googlecode.lanterna.screen.Screen; @@ -14,19 +15,55 @@ import com.googlecode.lanterna.terminal.DefaultTerminalFactory; import com.googlecode.lanterna.terminal.ResizeListener; import com.googlecode.lanterna.terminal.Terminal; -/* - * - * Change in Lanterna 3.0.0-beta2 (issue and fix reported to GitHub): - * - * java.lang.StringIndexOutOfBoundsException: String index out of range: 83 - * at java.lang.String.charAt(String.java:686) - * at com.googlecode.lanterna.TerminalTextUtils.getWordWrappedText(TerminalTextUtils.java:237) - * +/** + * Starting the TUI. * + * @author niki + * */ - public class TuiLauncher { - public static void start(Boolean textMode, Window win) throws IOException { + static private Screen screen = null; + + /** + * Start the TUI program. + * + * @param textMode + * TRUE to force text mode, FALSE to force the Swing terminal + * emulator, null to automatically determine the best choice + * @param files + * the files to show at startup + * + * @throws IOException + * in case of IO error + */ + static public void start(Boolean textMode, List files) + throws IOException { + Window win = new MainWindow(new FileList(files)); + TuiLauncher.start(textMode, win); + } + + /** + * Return the used {@link Screen}. + * + * @return the {@link Screen} + */ + static public Screen getScreen() { + return screen; + } + + /** + * Start the TUI program. + * + * @param textMode + * TRUE to force text mode, FALSE to force the Swing terminal + * emulator, null to automatically determine the best choice + * @param win + * the window to show at start + * + * @throws IOException + * in case of IO error + */ + static public void start(Boolean textMode, Window win) throws IOException { Terminal terminal = null; DefaultTerminalFactory factory = new DefaultTerminalFactory(); @@ -40,7 +77,7 @@ public class TuiLauncher { } if (win instanceof MainWindow) { - MainWindow mwin = (MainWindow) win; + final MainWindow mwin = (MainWindow) win; mwin.refresh(terminal.getTerminalSize()); terminal.addResizeListener(new ResizeListener() { @Override @@ -50,14 +87,16 @@ public class TuiLauncher { }); } - Screen screen = new TerminalScreen(terminal); + screen = new TerminalScreen(terminal); screen.startScreen(); // Create gui and start gui MultiWindowTextGUI gui = new MultiWindowTextGUI(screen, - new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLUE)); - gui.addWindowAndWait(win); + TextColor.ANSI.BLUE); + + gui.setTheme(UiColors.getCustomTheme()); + gui.addWindowAndWait(win); screen.stopScreen(); } }