2026-08-22 11:47:35 +04:00
|
|
|
package ru.project;
|
2026-08-21 13:50:29 +04:00
|
|
|
|
2026-08-25 17:14:32 +04:00
|
|
|
import com.googlecode.lanterna.gui2.MultiWindowTextGUI;
|
|
|
|
|
import com.googlecode.lanterna.screen.Screen;
|
|
|
|
|
import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
|
2026-08-26 19:01:39 +04:00
|
|
|
import ru.project.model.AppState;
|
2026-08-27 18:03:01 +04:00
|
|
|
import ru.project.ui.menu.MainMenu;
|
2026-08-25 17:14:32 +04:00
|
|
|
|
|
|
|
|
public final class App {
|
|
|
|
|
|
|
|
|
|
private App() {}
|
|
|
|
|
|
2026-08-26 19:01:39 +04:00
|
|
|
public static void main(String[] args) {
|
|
|
|
|
Screen screen = null;
|
2026-08-25 17:14:32 +04:00
|
|
|
|
2026-08-26 19:01:39 +04:00
|
|
|
try {
|
|
|
|
|
DefaultTerminalFactory terminalFactory = new DefaultTerminalFactory();
|
2026-08-25 17:14:32 +04:00
|
|
|
|
2026-08-26 19:01:39 +04:00
|
|
|
screen = terminalFactory.createScreen();
|
|
|
|
|
screen.startScreen();
|
2026-08-25 17:14:32 +04:00
|
|
|
|
|
|
|
|
MultiWindowTextGUI gui = new MultiWindowTextGUI(screen);
|
|
|
|
|
|
2026-08-26 12:36:38 +04:00
|
|
|
AppState state = new AppState();
|
2026-08-27 00:23:02 +04:00
|
|
|
|
2026-08-27 18:03:01 +04:00
|
|
|
MainMenu mainMenu = new MainMenu(gui, state);
|
2026-08-25 17:14:32 +04:00
|
|
|
|
2026-08-27 18:03:01 +04:00
|
|
|
mainMenu.show();
|
2026-08-26 12:36:38 +04:00
|
|
|
|
2026-08-26 19:01:39 +04:00
|
|
|
} catch (Exception e) {
|
|
|
|
|
System.err.println("Произошла ошибка при выполнении программы:");
|
|
|
|
|
e.printStackTrace();
|
2026-08-26 12:36:38 +04:00
|
|
|
|
2026-08-25 17:14:32 +04:00
|
|
|
} finally {
|
2026-08-26 19:01:39 +04:00
|
|
|
if (screen != null) {
|
|
|
|
|
try {
|
|
|
|
|
screen.stopScreen();
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
System.err.println("Не удалось корректно завершить работу терминала:");
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-08-21 13:50:29 +04:00
|
|
|
}
|
2026-08-25 17:14:32 +04:00
|
|
|
}
|
2026-08-21 13:50:29 +04:00
|
|
|
}
|