108 lines
3.2 KiB
Java
108 lines
3.2 KiB
Java
package client;
|
|
|
|
import client.communication.Communicator;
|
|
import client.components.MainWindow;
|
|
import client.components.loginWindow.ErrorLoginDialog;
|
|
import client.components.loginWindow.LoginWindow;
|
|
import client.components.loginWindow.SuccessLoginDialog;
|
|
import shared.communication.params.ValidateUser_Param;
|
|
import shared.communication.responses.ValidateUser_Res;
|
|
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
import java.awt.event.*;
|
|
|
|
public class Client {
|
|
|
|
private LoginWindow loginWindow;
|
|
private Communicator communicator;
|
|
|
|
public Client(Communicator communicator) {
|
|
this.communicator = communicator;
|
|
}
|
|
|
|
public void run() {
|
|
loginWindow = new LoginWindow(communicator);
|
|
loginWindow.addLoginListener(loginListener);
|
|
|
|
// Run
|
|
EventQueue.invokeLater(new Runnable() {
|
|
public void run() {
|
|
loginWindow.setVisible(true);
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
// Create Window
|
|
String host = args[0];
|
|
String port = args[1];
|
|
String server = "http://"+host+":"+port+"/";
|
|
Communicator communicator = new Communicator(server);
|
|
|
|
Client client = new Client(communicator);
|
|
client.run();
|
|
}
|
|
|
|
private ActionListener loginListener = new AbstractAction() {
|
|
@Override
|
|
public void actionPerformed(ActionEvent e) {
|
|
ValidateUser_Param param = new ValidateUser_Param();
|
|
param.setUsername(loginWindow.getUsername());
|
|
param.setPassword(loginWindow.getPassword());
|
|
|
|
try {
|
|
ValidateUser_Res validateUserRes;
|
|
validateUserRes = communicator.validateUser(param);
|
|
|
|
loginWindow.setVisible(false);
|
|
|
|
SuccessLoginDialog successLoginDialog = new SuccessLoginDialog(validateUserRes);
|
|
successLoginDialog.addWindowListener(openMainWindowListener);
|
|
successLoginDialog.setVisible(true);
|
|
|
|
|
|
} catch (Exception execption) {
|
|
ErrorLoginDialog errorLoginDialog = new ErrorLoginDialog();
|
|
errorLoginDialog.setVisible(true);
|
|
}
|
|
}
|
|
};
|
|
|
|
private WindowListener openMainWindowListener = new WindowAdapter() {
|
|
@Override
|
|
public void windowClosed(WindowEvent e) {
|
|
super.windowClosed(e);
|
|
|
|
// Run
|
|
EventQueue.invokeLater(new Runnable() {
|
|
public void run() {
|
|
MainWindow frame = new MainWindow(communicator, loginWindow.getUsername(),
|
|
loginWindow.getPassword());
|
|
frame.addWindowListener(logoutListener);
|
|
frame.setVisible(true);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
private WindowListener logoutListener = new WindowAdapter() {
|
|
@Override
|
|
public void windowClosed(WindowEvent e) {
|
|
super.windowClosed(e);
|
|
|
|
loginWindow = new LoginWindow(communicator);
|
|
loginWindow.addLoginListener(loginListener);
|
|
|
|
// Run
|
|
EventQueue.invokeLater(new Runnable() {
|
|
public void run() {
|
|
loginWindow.setVisible(true);
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
}
|