55 lines
1.7 KiB
Java
55 lines
1.7 KiB
Java
package ui;
|
|
|
|
import models.User;
|
|
import repository.UserRepository;
|
|
import service.UserService;
|
|
import util.Session;
|
|
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
import java.util.Optional;
|
|
import java.util.function.Consumer;
|
|
|
|
public class LoginPanel extends BasePanel {
|
|
|
|
public LoginPanel(Consumer<String> changePanel) {
|
|
super(changePanel);
|
|
|
|
JTextField username = new JTextField("Login");
|
|
JPasswordField password = new JPasswordField("Password");
|
|
|
|
add(username, BorderLayout.NORTH);
|
|
add(password, BorderLayout.CENTER);
|
|
|
|
JButton loginButton = new JButton("Login");
|
|
loginButton.addActionListener(e -> {
|
|
try {
|
|
String usernameText = username.getText();
|
|
String passwordText = new String(password.getPassword());
|
|
|
|
UserRepository userRepository = Session.getUserRepository();
|
|
UserService service = new UserService(userRepository);
|
|
|
|
Optional<User> user = service.login(usernameText, passwordText);
|
|
if (user.isPresent()) {
|
|
Session.getInstance().setUser(user.get());
|
|
changePanel.accept("home");
|
|
} else {
|
|
JOptionPane.showMessageDialog(this, "User not found");
|
|
}
|
|
|
|
} catch (Exception ex) {
|
|
ex.printStackTrace();
|
|
JOptionPane.showMessageDialog(this, ex.getMessage());
|
|
}
|
|
});
|
|
add(loginButton, BorderLayout.SOUTH);
|
|
|
|
JButton returnButton = new JButton("Return");
|
|
returnButton.addActionListener(e -> {
|
|
changePanel.accept("auth");
|
|
});
|
|
add(returnButton, BorderLayout.EAST);
|
|
}
|
|
}
|