81 lines
2.0 KiB
Java

package xyz.thastertyn.UserInterface.Dialogs;
import java.util.Arrays;
import com.googlecode.lanterna.gui2.Button;
import com.googlecode.lanterna.gui2.Direction;
import com.googlecode.lanterna.gui2.GridLayout;
import com.googlecode.lanterna.gui2.LinearLayout;
import com.googlecode.lanterna.gui2.Panel;
import com.googlecode.lanterna.gui2.Window;
import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
import com.googlecode.lanterna.gui2.dialogs.DialogWindow;
import xyz.thastertyn.Login.LocalCredentials;
import xyz.thastertyn.Login.LoginController;
import xyz.thastertyn.UserInterface.Listeners.ContentResetListener;
public class EscapeDialog extends DialogWindow {
private WindowBasedTextGUI textGUI;
private ContentResetListener resetListener;
public EscapeDialog(WindowBasedTextGUI textGUI, ContentResetListener resetListener)
{
super("Escape Menu");
this.textGUI = textGUI;
this.resetListener = resetListener;
Panel mainPanel = new Panel()
.setLayoutManager(new GridLayout(1)
.setLeftMarginSize(1)
.setRightMarginSize(1));
new Panel()
.setLayoutManager(
new LinearLayout(Direction.VERTICAL))
.addComponent(new Button("Return", this::onReturn))
.addComponent(new Button("Logout", this::onLogout))
.addComponent(new Button("Delete stored login", this::onDeleteLogin))
.addComponent(new Button("Exit", this::onExit))
.addTo(mainPanel);
setHints(Arrays.asList(Window.Hint.CENTERED));
setComponent(mainPanel);
}
public void onReturn()
{
close();
}
public void onDeleteLogin()
{
close();
LocalCredentials.getInstance().deleteCredentials();
LoginController controller = new LoginController(textGUI);
controller.loginUsingGui();
resetListener.reset();
}
public void onLogout()
{
close();
LoginController controller = new LoginController(textGUI);
controller.login(true);
resetListener.reset();
}
public void onExit()
{
close();
System.exit(0);
}
@Override
public Object showDialog(WindowBasedTextGUI textGUI) {
super.showDialog(textGUI);
return null;
}
}