LoginDialog and source target

Source target changed to 1.8 to allow a few things
This commit is contained in:
Thastertyn 2023-02-23 16:18:21 +01:00
parent a66d67676f
commit 4464cd2840
24 changed files with 178 additions and 12 deletions

View File

@ -14,8 +14,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>

View File

@ -9,10 +9,7 @@ import xyz.thastertyn.Window.MainWindow;
*/
public class App {
public static void main(String[] args) {
//System.out.println("Hello World!");
//Login l = new Login();
//l.login(Credentials.user, Credentials.pass);
System.out.println("Hello World!");
MainWindow window = new MainWindow();
window.run();

View File

@ -43,6 +43,25 @@ public class Login {
return true;
}
public void saveCredentials(String user, String pass)
{
File credentials = null;
if(System.getProperty("os.name").equals("Linux"))
{
credentials = new File("~/.local/share/jecnak/credentials.json");
}else if(System.getProperty("os.name").contains("Windows"))
{
credentials = new File(System.getenv("APPDATA\\jecnak\\"));
}
if(!credentials.exists())
{
}
}
public String getJSESSIONID()
{
return Jsessionid;

View File

@ -0,0 +1,36 @@
package xyz.thastertyn.Window;
import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
public class Login {
String user = "";
String pass = "";
xyz.thastertyn.Jecna.Login login = new xyz.thastertyn.Jecna.Login();
LoginDialog dialog = new LoginDialog("Login", "Enter your username and password");
public void showDialog(WindowBasedTextGUI textGUI)
{
String[] input = dialog.showDialog(textGUI);
user = input[0];
pass = input[1];
login();
}
private void login()
{
login.login(user, pass);
user = null;
pass = null;
}
public String getJsessionId()
{
return login.getJSESSIONID();
}
}

View File

@ -0,0 +1,112 @@
package xyz.thastertyn.Window;
import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.gui2.Button;
import com.googlecode.lanterna.gui2.EmptySpace;
import com.googlecode.lanterna.gui2.GridLayout;
import com.googlecode.lanterna.gui2.Label;
import com.googlecode.lanterna.gui2.LocalizedString;
import com.googlecode.lanterna.gui2.Panel;
import com.googlecode.lanterna.gui2.TextBox;
import com.googlecode.lanterna.gui2.WindowBasedTextGUI;
import com.googlecode.lanterna.gui2.GridLayout.Alignment;
import com.googlecode.lanterna.gui2.dialogs.DialogWindow;
import com.googlecode.lanterna.gui2.dialogs.MessageDialog;
import com.googlecode.lanterna.gui2.dialogs.MessageDialogButton;
public class LoginDialog extends DialogWindow {
private TextBox username;
private TextBox password;
private String user;
private String pass;
LoginDialog(
String title,
String description
)
{
super(title);
this.user = null;
this.pass = null;
this.username = new TextBox();
this.password = new TextBox().setMask('*');
Panel buttonPanel = new Panel();
buttonPanel.setLayoutManager((new GridLayout(2).setHorizontalSpacing(1)));
buttonPanel
.addComponent((new Button(LocalizedString.OK.toString(), this::onOK)
.setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.CENTER, GridLayout.Alignment.CENTER, true, false))));
buttonPanel.addComponent(new Button(LocalizedString.Cancel.toString(), this::onCancel));
Panel mainPanel = new Panel();
mainPanel.setLayoutManager(new GridLayout(1).setLeftMarginSize(1).setRightMarginSize(1));
if(description != null)
{
mainPanel.addComponent(new Label(description));
}
mainPanel.addComponent(new EmptySpace(TerminalSize.ONE));
Panel userPanel = new Panel()
.setLayoutManager(new GridLayout(3))
.setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.FILL, Alignment.CENTER, true, false));
this.username.setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.FILL, GridLayout.Alignment.CENTER, true, false));
userPanel.addComponent(new Label("Username: "))
.addComponent(username)
.addTo(mainPanel);
this.password.setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.FILL, GridLayout.Alignment.CENTER, true, false))
.addTo(mainPanel);
Panel passPanel = new Panel()
.setLayoutManager(new GridLayout(3))
.setLayoutData(GridLayout.createLayoutData(GridLayout.Alignment.FILL, Alignment.CENTER, true, false));
passPanel.addComponent(new Label("Password: "))
.addComponent(password)
.addTo(mainPanel);
mainPanel.addComponent(new EmptySpace(TerminalSize.ONE));
buttonPanel.setLayoutData(
GridLayout.createLayoutData(
Alignment.END,
Alignment.CENTER,
false, false))
.addTo(mainPanel);
setComponent(mainPanel);
}
public void onOK()
{
if(username.getText().isEmpty() || password.getText().isEmpty())
{
MessageDialog.showMessageDialog(getTextGUI(), getTitle(), "Username and password cannot be blank", MessageDialogButton.OK);
return;
}
this.user = username.getText();
this.pass = password.getText();
close();
}
public void onCancel()
{
close();
}
@Override
public String[] showDialog(WindowBasedTextGUI textGUI)
{
user = null;
pass = null;
super.showDialog(textGUI);
return new String[] {user, pass};
}
}

View File

@ -5,6 +5,7 @@ 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;
@ -49,16 +50,17 @@ public class MainWindow {
final Panel content = new Panel();
mainPanel.addComponent(content);
Login l = new Login();
l.login(Credentials.user, Credentials.pass);
Rozvrh r = new Rozvrh();
r.download(l.getJSESSIONID());
xyz.thastertyn.Window.Login login = new xyz.thastertyn.Window.Login();
/*Rozvrh r = new Rozvrh();
r.download(login.getJsessionId());
content.addComponent(r.getPanel());
content.addComponent(r.getPanel());*/
// Create gui and start gui
final MultiWindowTextGUI gui = new MultiWindowTextGUI(screen, new DefaultWindowManager(), new EmptySpace(TextColor.ANSI.BLACK_BRIGHT));
login.showDialog(gui);
/*KeyStroke k = terminal.readInput();
if(k.equals(KeyStroke.fromString("<up>")))
{

Binary file not shown.

Binary file not shown.