diff --git a/app/src/main/java/ru/project/view/ActionListView.java b/app/src/main/java/ru/project/view/ActionListView.java new file mode 100644 index 0000000..fa2bb07 --- /dev/null +++ b/app/src/main/java/ru/project/view/ActionListView.java @@ -0,0 +1,21 @@ +package ru.project.view; + +import com.googlecode.lanterna.gui2.ActionListBox; + +public class ActionListView extends BaseView { + + protected final ActionListBox actionList; + + public ActionListView(String title) { + this(title, new ActionListBox()); + } + + private ActionListView(String title, ActionListBox actionList) { + super(title, actionList); + this.actionList = actionList; + } + + public void addItem(String text, Runnable action) { + actionList.addItem(text, action); + } +} diff --git a/app/src/main/java/ru/project/view/BaseView.java b/app/src/main/java/ru/project/view/BaseView.java new file mode 100644 index 0000000..1bbf8c8 --- /dev/null +++ b/app/src/main/java/ru/project/view/BaseView.java @@ -0,0 +1,23 @@ +package ru.project.view; + +import com.googlecode.lanterna.gui2.BasicWindow; +import com.googlecode.lanterna.gui2.Component; +import com.googlecode.lanterna.gui2.WindowBasedTextGUI; + +public abstract class BaseView { + + protected final BasicWindow window; + + protected BaseView(String title, Component mainComponent) { + window = new BasicWindow(title); + window.setComponent(mainComponent); + } + + public void show(WindowBasedTextGUI gui) { + gui.addWindowAndWait(window); + } + + public void close() { + window.close(); + } +} diff --git a/app/src/main/java/ru/project/view/PanelView.java b/app/src/main/java/ru/project/view/PanelView.java new file mode 100644 index 0000000..ab36e50 --- /dev/null +++ b/app/src/main/java/ru/project/view/PanelView.java @@ -0,0 +1,47 @@ +package ru.project.view; + +import com.googlecode.lanterna.gui2.Button; +import com.googlecode.lanterna.gui2.Label; +import com.googlecode.lanterna.gui2.LinearLayout; +import com.googlecode.lanterna.gui2.Panel; +import com.googlecode.lanterna.gui2.TextBox; + +public class PanelView extends BaseView { + + protected final Panel panel; + + public PanelView(String title) { + this(new Panel(), title); + } + + private PanelView(Panel panel, String title) { + super(title, panel); + + this.panel = panel; + panel.setLayoutManager(new LinearLayout()); + } + + public Button addButton(String text, Runnable action) { + Button button = new Button(text, action); + + panel.addComponent(button); + + return button; + } + + public Label addLabel(String text) { + Label label = new Label(text); + + panel.addComponent(label); + + return label; + } + + public TextBox addTextBox() { + TextBox textBox = new TextBox(); + + panel.addComponent(textBox); + + return textBox; + } +}