package hirondelle.movies.login;
import hirondelle.movies.util.ui.OnClose;
import hirondelle.movies.util.ui.StandardDialog;
import java.util.*;
import hirondelle.movies.util.ui.UiUtil;
import javax.swing.*;
final class LoginView {
LoginView(LoginController aController){
fController = aController;
}
void showLoginScreen(){
JFrame NO_OWNER = null;
fStandardDialog = new StandardDialog(
NO_OWNER, "Login",
true, OnClose.DISPOSE, getBody(), getButtons()
);
fStandardDialog.setDefaultButton(fLogin);
fStandardDialog.display();
}
void tryAgain(){
fMessage.setText("Failed. Please try again.");
}
String getUserName(){
return fUserName.getText();
}
String getPassword(){
return fPassword.getPassword().toString();
}
void close(){
fStandardDialog.dispose();
}
private LoginController fController;
private StandardDialog fStandardDialog;
private JTextField fUserName;
private JPasswordField fPassword;
private JLabel fMessage;
private JButton fLogin;
private JPanel getBody(){
JPanel result = new JPanel();
result.setLayout(new BoxLayout(result, BoxLayout.Y_AXIS));
fMessage = new JLabel("Please log in.");
result.add(fMessage);
result.add(Box.createVerticalStrut(5));
result.add(new JLabel("User Name"));
fUserName = new JTextField();
fUserName.setColumns(15);
result.add(fUserName);
result.add(new JLabel("Password"));
fPassword = new JPasswordField();
result.add(fPassword);
UiUtil.alignAllX(result, UiUtil.AlignX.LEFT);
return result;
}
private List<JButton> getButtons(){
List<JButton> result = new ArrayList<>();
fLogin = new JButton("Login");
fLogin.setActionCommand(LoginController.LOGIN);
fLogin.addActionListener(fController);
result.add(fLogin);
JButton cancel = new JButton("Cancel");
cancel.setActionCommand(LoginController.CANCEL);
cancel.addActionListener(fController);
result.add(cancel);
return result;
}
}