/*
* This file is part of lanterna (http://code.google.com/p/lanterna/).
*
* lanterna is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* Copyright (C) 2010-2017 Martin Berglund
*/
package com.googlecode.lanterna.issue;
import com.googlecode.lanterna.TextColor;
import com.googlecode.lanterna.gui2.*;
import com.googlecode.lanterna.screen.Screen;
import com.googlecode.lanterna.screen.TerminalScreen;
import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
import com.googlecode.lanterna.terminal.Terminal;
import java.io.IOException;
public class Issue150 {
public static void main(String... args) throws IOException {
Terminal term = new DefaultTerminalFactory().createTerminal();
Screen screen = new TerminalScreen(term);
WindowManager windowManager = new DefaultWindowManager();
Component background = new EmptySpace(TextColor.ANSI.DEFAULT);
final WindowBasedTextGUI gui = new MultiWindowTextGUI(screen, windowManager, background);
screen.startScreen();
gui.addWindowAndWait(new BasicWindow("Issue150") {{
setComponent(createUi());
}});
screen.stopScreen();
}
private static Component createUi() {
ActionListBox actions = new ActionListBox();
actions.addItem("Enter terminal in a strange state", new Runnable() {
@Override public void run() {
stub();
}
});
return actions;
}
private static <T> T stub() {
throw new UnsupportedOperationException("What a terrible failure!");
}
}