package cz.cvut.fel.restauracefel.restauracefel.gui;
import cz.cvut.fel.restauracefel.library.Enums.EnumLoginResult;
import cz.cvut.fel.restauracefel.library.library_gui.Keyboard;
import cz.cvut.fel.restauracefel.library.service.LocalizationManager;
import cz.cvut.fel.restauracefel.restauracefel.main.Main;
import java.awt.Point;
import javax.swing.JTextField;
/**
* Trida reprezentujici GUI formular pro prihlasovani do systemu.
*
* @author Tomas Hnizdil
*/
public class LogingForm extends AbstractForm {
private StatusBar statusBar = null;
protected JTextField actualTF;
private Keyboard keyboard;
private ViewController viewController;
/**
* Konstruktor tridy LogingForm.
*
* @param parent
* @param bar
*/
public LogingForm(MainFrame parent, StatusBar bar) {
this.statusBar = bar;
initComponents();
LocalizationManager manager = LocalizationManager.getInstance();
manager.localizeLabel(Main.DEFAULT_BUNDLE_BASE_NAME, "LoggingLabel", jLabelInfo);
manager.localizeLabel(Main.DEFAULT_BUNDLE_BASE_NAME, "UsernameLabel", jLabelUsername);
manager.localizeLabel(Main.DEFAULT_BUNDLE_BASE_NAME, "PasswordLabel", jLabelPassword);
manager.localizeButton(Main.DEFAULT_BUNDLE_BASE_NAME, "LogInButton", jButtonLog);
manager.localizeButton(Main.DEFAULT_BUNDLE_BASE_NAME, "CancelButton", jButtonClose);
actualTF = jTextFieldUsername;
jButtonLog.requestFocus();
keyboard = new Keyboard(this, actualTF);
jPanel4.add(keyboard);
keyboard.setLocation(new Point(20, 40));
viewController = ViewController.getInstance();
}
/**
* Metoda prenastavuje statusBar.
*
*/
@Override
protected void refresh() {
statusBar.setMessage("Přihlášení uživatele.");
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
jPanel4 = new javax.swing.JPanel();
jPanel1 = new javax.swing.JPanel();
jLabelInfo = new javax.swing.JLabel();
jPasswordField = new javax.swing.JPasswordField();
jTextFieldUsername = new javax.swing.JTextField();
jLabelPassword = new javax.swing.JLabel();
jButtonClose = new javax.swing.JButton();
jButtonLog = new javax.swing.JButton();
jLabelUsername = new javax.swing.JLabel();
setBackground(javax.swing.UIManager.getDefaults().getColor("CheckBox.light"));
setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
jPanel4.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
jLabelInfo.setFont(new java.awt.Font("Tahoma", 1, 12));
jLabelInfo.setText("Přihlášení do systému RestauraceFEL");
jPasswordField.setText("1234");
jPasswordField.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
jPasswordFieldFocusGained(evt);
}
});
jTextFieldUsername.setText("MACH");
jTextFieldUsername.addFocusListener(new java.awt.event.FocusAdapter() {
public void focusGained(java.awt.event.FocusEvent evt) {
jTextFieldUsernameFocusGained(evt);
}
});
jLabelPassword.setText("Heslo");
jButtonClose.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/ko.png"))); // NOI18N
jButtonClose.setText("Konec");
jButtonClose.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonCloseActionPerformed(evt);
}
});
jButtonLog.setIcon(new javax.swing.ImageIcon(getClass().getResource("/cz/cvut/fel/restauracefel/buttons/ok.png"))); // NOI18N
jButtonLog.setText("Přihlásit se");
jButtonLog.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonLogActionPerformed(evt);
}
});
jLabelUsername.setText("Uživatelské jméno");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(20, 20, 20)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jButtonClose, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButtonLog, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabelPassword)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPasswordField, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabelUsername)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jTextFieldUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 163, javax.swing.GroupLayout.PREFERRED_SIZE)))))
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabelInfo, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(jLabelInfo)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelUsername)
.addComponent(jTextFieldUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(21, 21, 21)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabelPassword)
.addComponent(jPasswordField, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(48, 48, 48)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonClose, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButtonLog, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
jPanel4.setLayout(jPanel4Layout);
jPanel4Layout.setHorizontalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup()
.addContainerGap(375, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(238, 238, 238))
);
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(214, Short.MAX_VALUE))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
}// </editor-fold>//GEN-END:initComponents
private void jButtonCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCloseActionPerformed
System.exit(0);
}//GEN-LAST:event_jButtonCloseActionPerformed
private void jButtonLogActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonLogActionPerformed
String username = jTextFieldUsername.getText();
String password = String.copyValueOf(jPasswordField.getPassword());
EnumLoginResult result = viewController.login(username, password, null);
switch (result) {
case LoginSuccesful:
keyboard.setVisible(false);
setVisible(false);
break;
case WrongLoginData:
jTextFieldUsername.setText("");
jPasswordField.setText("");
jLabelInfo.setText("Nesprávné uživatelské jméno nebo heslo");
break;
}
}//GEN-LAST:event_jButtonLogActionPerformed
private void jPasswordFieldFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jPasswordFieldFocusGained
keyboard.setActualTF(jPasswordField);
actualTF = jPasswordField;
}//GEN-LAST:event_jPasswordFieldFocusGained
private void jTextFieldUsernameFocusGained(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_jTextFieldUsernameFocusGained
keyboard.setActualTF(jTextFieldUsername);
actualTF = jTextFieldUsername;
}//GEN-LAST:event_jTextFieldUsernameFocusGained
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButtonClose;
private javax.swing.JButton jButtonLog;
private javax.swing.JLabel jLabelInfo;
private javax.swing.JLabel jLabelPassword;
private javax.swing.JLabel jLabelUsername;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel4;
private javax.swing.JPasswordField jPasswordField;
private javax.swing.JTextField jTextFieldUsername;
// End of variables declaration//GEN-END:variables
}