Files
TodoGuiApp/src/main/java/ui/LoginPanel.java
2026-04-28 20:33:08 +02:00

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);
}
}