Untitled
unknown
plain_text
3 years ago
6.0 kB
10
Indexable
package com.jwrms.view;
import com.jwrms.controller.loginViewControllers.LoginViewController;
import com.jwrms.domain.Staff;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class LoginView extends JFrame implements MouseListener {
private JLabel employeeIdLabel;
private JTextField employeeIdTextField;
private JPanel employeeIdPanel;
private JLabel passwordLabel;
private JPasswordField passwordField;
private JPanel passwordPanel;
private Button showPasswordButton;
private Button loginButton;
private JPanel loginPanel;
private JButton continueAsAdminButton;
private JPanel continueAsAdminPanel;
private LoginViewController loginViewController;
private Boolean showPassword = false;
public LoginView(LoginViewController controller){
configureComponents();
addComponentsToFrame();
configureFrame();
this.loginViewController = controller;
}
private void configureComponents(){
employeeIdLabel = new JLabel("Employee ID: ");
employeeIdTextField = new JTextField(20);
employeeIdPanel = new JPanel(new FlowLayout(FlowLayout.LEFT,20,0));
employeeIdPanel.add(employeeIdLabel);
employeeIdPanel.add(employeeIdTextField);
passwordLabel = new JLabel("Password: ");
passwordField = new JPasswordField(20);
showPasswordButton = new Button("Show Password");
showPasswordButton.addMouseListener(this);
showPasswordButton.setFocusable(false);
showHidePassword(showPassword);
passwordPanel = new JPanel(new FlowLayout(FlowLayout.LEFT,20,0));
passwordPanel.add(passwordLabel);
passwordPanel.add(passwordField);
passwordPanel.add(showPasswordButton);
loginButton = new Button("LOGIN");
loginButton.addMouseListener(this);
loginButton.setFocusable(false);
loginPanel = new JPanel(new GridLayout(1,1));
loginPanel.setBorder(new EmptyBorder(20,20,10,20));
loginPanel.add(loginButton);
continueAsAdminButton = new JButton("CONTINUE AS ADMIN");
continueAsAdminButton.addMouseListener(this);
continueAsAdminButton.setFocusable(false);
continueAsAdminPanel = new JPanel(new GridLayout(1,1));
continueAsAdminPanel.setBorder(new EmptyBorder(20,20,20,20));
continueAsAdminPanel.add(continueAsAdminButton);
}
private void addComponentsToFrame(){
this.add(employeeIdPanel);
this.add(passwordPanel);
this.add(loginPanel);
this.add(continueAsAdminPanel);
}
private void configureFrame(){
this.setSize(520,300);
this.setLocationRelativeTo(null);
this.setLayout(new GridLayout(4,1));
this.setTitle("Jan's Wholesale and Retail Management System");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
if(e.getSource() == loginButton){
String employeeId = employeeIdTextField.getText().trim();
String password = passwordField.getText().trim();
if(!employeeId.isEmpty() && !password.isEmpty()){
Staff result = loginViewController.attemptLogin(Integer.parseInt(employeeId),password);
if (result != null){
JOptionPane.showMessageDialog(null,"Login Successful\nWelcome " +result.getName(),"Login Status",JOptionPane.INFORMATION_MESSAGE);
employeeIdTextField.setText(null);
passwordField.setText(null);
loginViewController.goToDashBoard();
}else{
JOptionPane.showMessageDialog(null,"Login Failed\nCheck your ID or password and try again.","Login Status",JOptionPane.ERROR_MESSAGE);
}
}else{
JOptionPane.showMessageDialog(null,"Fields cannot be empty.","Error",JOptionPane.ERROR_MESSAGE);
}
}
if(e.getSource() == showPasswordButton){
showHidePassword(showPassword);
}
if(e.getSource() == continueAsAdminButton){
Boolean result = loginViewController.checkIfAdminExists();
loginViewController.goToAdminLogin(result);
}
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
if(e.getSource() == loginButton){
loginButton.setForeground(Color.BLUE);
} else if (e.getSource() == continueAsAdminButton) {
continueAsAdminButton.setForeground(Color.BLUE);
}else if (e.getSource() == showPasswordButton) {
showPasswordButton.setForeground(Color.BLUE);
}
}
@Override
public void mouseExited(MouseEvent e) {
if(e.getSource() == loginButton){
loginButton.setForeground(Color.BLACK);
} else if (e.getSource() == continueAsAdminButton) {
continueAsAdminButton.setForeground(Color.BLACK);
} else if (e.getSource() == showPasswordButton) {
showPasswordButton.setForeground(Color.BLACK);
}
}
private void showHidePassword(Boolean show){
if (show){
passwordField.setEchoChar((char)0);
showPasswordButton.setLabel("Hide Password");
showPassword = false;
}else{
passwordField.setEchoChar('*');
showPasswordButton.setLabel("Show Password");
showPassword = true;
}
}
}
Editor is loading...