TavernerPOS - Source Code
Clone:
git clone http://www.librarysmith.co.uk/tavernerPOS
/*
* PasswordScreen.java
*
* Created on August 14, 2006, 11:01 PM
*/
package com.floreantpos.ui.views;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.ComponentOrientation;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Locale;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
import javax.swing.SwingConstants;
import net.miginfocom.swing.MigLayout;
import org.apache.commons.logging.LogFactory;
import com.floreantpos.Messages;
import com.floreantpos.actions.ClockInOutAction;
import com.floreantpos.config.TerminalConfig;
import com.floreantpos.config.ui.DatabaseConfigurationDialog;
import com.floreantpos.main.Application;
import com.floreantpos.model.User;
import com.floreantpos.swing.MessageDialog;
import com.floreantpos.swing.PosButton;
import com.floreantpos.ui.dialog.POSMessageDialog;
import com.floreantpos.ui.dialog.PasswordEntryDialog;
import com.floreantpos.util.ShiftException;
import com.floreantpos.util.UserNotFoundException;
/**
*
* @author MShahriar
*/
class LoginPasswordEntryView extends JPanel {
/** Creates new form PasswordScreen */
LoginPasswordEntryView() {
//setMinimumSize(new Dimension(320, 10));
initComponents();
applyComponentOrientation(ComponentOrientation.getOrientation(Locale.getDefault()));
}
/**
* 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.
*/
// <editor-fold defaultstate="collapsed"
// desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
buttonPanel = new javax.swing.JPanel();
bottomPanel = new javax.swing.JPanel();
btnShutdown = new com.floreantpos.swing.PosButton();
setPreferredSize(new Dimension(320, 593));
setLayout(new BorderLayout());
buttonPanel.setOpaque(false);
buttonPanel.setPreferredSize(new java.awt.Dimension(200, 180));
buttonPanel.setLayout(new MigLayout("", "[111px][111px][111px,grow]", "[60px][60px][60px][60px]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
lblTerminalId = new JLabel("TERMINAL ID:"); //$NON-NLS-1$
lblTerminalId.setForeground(Color.BLACK);
lblTerminalId.setFont(new Font("Dialog", Font.BOLD, 18)); //$NON-NLS-1$
lblTerminalId.setHorizontalAlignment(SwingConstants.CENTER);
add(lblTerminalId, BorderLayout.NORTH);
bottomPanel.setLayout(new MigLayout("hidemode 3, fill")); //$NON-NLS-1$
bottomPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 10));
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(btnRegularMode);
//buttonGroup.add(btnCashierMode);
buttonGroup.add(btnKitchenMode);
btnRegularMode.setFocusable(false);
// btnCashierMode.setFocusable(false);
btnKitchenMode.setFocusable(false);
ModeSelectionListener l = new ModeSelectionListener();
btnRegularMode.addActionListener(l);
// btnCashierMode.addActionListener(l);
btnKitchenMode.addActionListener(l);
btnRegularMode.setSelected(TerminalConfig.isRegularMode());
// btnCashierMode.setSelected(TerminalConfig.isCashierMode());
btnKitchenMode.setSelected(TerminalConfig.isKitchenMode());
if(!btnRegularMode.isSelected() && !btnKitchenMode.isSelected()) {
btnRegularMode.setSelected(true);
}
JPanel modePanel = new JPanel(new GridLayout(1, 0, 2, 2));
modePanel.add(btnRegularMode);
// modePanel.add(btnCashierMode);
modePanel.add(btnKitchenMode);
bottomPanel.add(modePanel, "h 60!, grow, wrap"); //$NON-NLS-1$
psbtnLogin = new PosButton();
psbtnLogin.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
doLogin();
}
});
psbtnLogin.setText("LOGIN"); //$NON-NLS-1$
bottomPanel.add(psbtnLogin, "grow, wrap, gapbottom 20px"); //$NON-NLS-1$
PosButton btnClockOUt = new PosButton(new ClockInOutAction(false, true));
bottomPanel.add(btnClockOUt, "grow, wrap, h 60!"); //$NON-NLS-1$
if (TerminalConfig.isShowDbConfigureButton()) {
btnConfigureDatabase = new com.floreantpos.swing.PosButton();
btnConfigureDatabase.setAction(goAction);
btnConfigureDatabase.setText(com.floreantpos.POSConstants.CONFIGURE_DATABASE);
btnConfigureDatabase.setFocusable(false);
btnConfigureDatabase.setActionCommand("DBCONFIG"); //$NON-NLS-1$
bottomPanel.add(btnConfigureDatabase, "grow, wrap, h 60!"); //$NON-NLS-1$
}
btnShutdown.setAction(goAction);
btnShutdown.setText(com.floreantpos.POSConstants.SHUTDOWN);
btnShutdown.setFocusable(false);
if (TerminalConfig.isFullscreenMode()) {
if(btnConfigureDatabase != null) {
btnConfigureDatabase.setVisible(false);
}
if(btnShutdown != null) {
btnShutdown.setVisible(false);
}
}
bottomPanel.add(btnShutdown, "grow, wrap, h 60!"); //$NON-NLS-1$
add(bottomPanel, BorderLayout.SOUTH);
lblTerminalId.setText(""); //$NON-NLS-1$
}// </editor-fold>//GEN-END:initComponents
public synchronized void doLogin() {
try {
final User user = PasswordEntryDialog.getUser(Application.getPosWindow(), Messages.getString("LoginPasswordEntryView.13"), Messages.getString("LoginPasswordEntryView.14")); //$NON-NLS-1$ //$NON-NLS-2$
if (user == null) {
return;
}
Application application = Application.getInstance();
application.doLogin(user);
} catch (UserNotFoundException e) {
LogFactory.getLog(Application.class).error(e);
POSMessageDialog.showError(Application.getPosWindow(), Messages.getString("LoginPasswordEntryView.15")); //$NON-NLS-1$
} catch (ShiftException e) {
LogFactory.getLog(Application.class).error(e);
MessageDialog.showError(e.getMessage());
} catch (Exception e1) {
LogFactory.getLog(Application.class).error(e1);
String message = e1.getMessage();
if (message != null && message.contains(Messages.getString("LoginPasswordEntryView.16"))) { //$NON-NLS-1$
MessageDialog.showError(Messages.getString("LoginPasswordEntryView.17")); //$NON-NLS-1$
DatabaseConfigurationDialog.show(Application.getPosWindow());
}
else {
MessageDialog.showError(Messages.getString("LoginPasswordEntryView.18")); //$NON-NLS-1$
}
} finally {
}
}
public void setTerminalId(int terminalId) {
lblTerminalId.setText(Messages.getString("LoginPasswordEntryView.19") + terminalId); //$NON-NLS-1$
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private com.floreantpos.swing.PosButton btnConfigureDatabase;
private com.floreantpos.swing.PosButton btnShutdown;
private javax.swing.JPanel buttonPanel;
private javax.swing.JPanel bottomPanel;
// End of variables declaration//GEN-END:variables
Action goAction = new AbstractAction() {
public void actionPerformed(ActionEvent e) {
String command = e.getActionCommand();
if (com.floreantpos.POSConstants.LOGIN.equals(command)) {
doLogin();
}
else if (com.floreantpos.POSConstants.SHUTDOWN.equals(command)) {
Application.getInstance().shutdownPOS();
}
else if ("DBCONFIG".equalsIgnoreCase(command)) { //$NON-NLS-1$
DatabaseConfigurationDialog.show(Application.getPosWindow());
}
}
};
private PosButton psbtnLogin;
private JLabel lblTerminalId;
private JToggleButton btnRegularMode = new JToggleButton("<html><center>REGULAR<br/>MODE</center></html>"); //$NON-NLS-1$
//private JToggleButton btnCashierMode = new JToggleButton("<html><center>CASHIER<br/>MODE</center></html>");
private JToggleButton btnKitchenMode = new JToggleButton("<html><center>KITCHEN<br/>MODE</center></html>"); //$NON-NLS-1$
class ModeSelectionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
TerminalConfig.setRegularMode(btnRegularMode.isSelected());
// TerminalConfig.setCashierMode(btnCashierMode.isSelected());
TerminalConfig.setKitchenMode(btnKitchenMode.isSelected());
}
}
}
- Details
- Last Updated: Monday, 04 April 2016 02:04
- Hits: 35817785