73 lines
2.0 KiB
Java

package xyz.thastertyn.UserInterface;
import java.io.IOException;
import java.util.Arrays;
import com.googlecode.lanterna.TextColor;
import com.googlecode.lanterna.gui2.BasicWindow;
import com.googlecode.lanterna.gui2.Borders;
import com.googlecode.lanterna.gui2.DefaultWindowManager;
import com.googlecode.lanterna.gui2.Direction;
import com.googlecode.lanterna.gui2.EmptySpace;
import com.googlecode.lanterna.gui2.LinearLayout;
import com.googlecode.lanterna.gui2.MultiWindowTextGUI;
import com.googlecode.lanterna.gui2.Panel;
import com.googlecode.lanterna.gui2.Window;
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 xyz.thastertyn.Login.LoginController;
public class MainWindow {
private Terminal terminal;
private Screen screen;
private Window window;
private MultiWindowTextGUI textGUI;
public void run()
{
try {
//#region init
// Setup terminal and screen layers
terminal = new DefaultTerminalFactory().createTerminal();
screen = new TerminalScreen(terminal);
screen.startScreen();
// Create window to hold the panel
window = new BasicWindow();
window.setHints(Arrays.asList(Window.Hint.CENTERED));
// Create gui and start gui
textGUI = new MultiWindowTextGUI(screen, new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLACK_BRIGHT));
//#endregion
// Create panel to hold components
final Panel mainPanel = new Panel();
mainPanel.setLayoutManager(new LinearLayout(Direction.VERTICAL));
window.setComponent(mainPanel);
String title = "Jecnak";
Panel content = new Panel();
mainPanel.addComponent(content.withBorder(Borders.singleLine(title)));
LoginController controller = new LoginController(textGUI);
controller.login();
window.addWindowListener(new WindowSwitchListener(content, title, textGUI));
textGUI.addWindowAndWait(window);
} catch (IOException e) {
e.printStackTrace();
}
}
}