TavernerPOS - Source Code

Clone: 

git clone http://www.librarysmith.co.uk/tavernerPOS

 

/*
 * MiscTicketItemDialog.java
 *
 * Created on September 8, 2006, 10:04 PM
 */

package com.floreantpos.ui.dialog;

import java.awt.FlowLayout;
import java.util.List;

import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;

import net.miginfocom.swing.MigLayout;

import org.apache.commons.lang.StringUtils;

import com.floreantpos.Messages;
import com.floreantpos.config.TerminalConfig;
import com.floreantpos.main.Application;
import com.floreantpos.model.PrinterGroup;
import com.floreantpos.model.Tax;
import com.floreantpos.model.TicketItem;
import com.floreantpos.model.dao.PrinterGroupDAO;
import com.floreantpos.model.dao.TaxDAO;
import com.floreantpos.swing.ComboBoxModel;
import com.floreantpos.swing.DoubleTextField;
import com.floreantpos.swing.FixedLengthTextField;
import com.floreantpos.swing.PosComboRenderer;
import com.floreantpos.swing.QwertyKeyPad;
import com.floreantpos.ui.TitlePanel;

/**
 *
 * @author  MShahriar
 */
public class MiscTicketItemDialog extends POSDialog {
	private TicketItem ticketItem;

	/** Creates new form MiscTicketItemDialog */
	public MiscTicketItemDialog() {
		super(Application.getPosWindow(), true);

		setTitle(Messages.getString("MiscTicketItemDialog.0")); //$NON-NLS-1$

		initComponents();
	}

	/** 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() {
		JPanel contentPane = new JPanel(new MigLayout("fillx", "", "")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

		TitlePanel titlePanel = new TitlePanel();
		titlePanel.setTitle(Messages.getString("MiscTicketItemDialog.4")); //$NON-NLS-1$
		contentPane.add(titlePanel, "grow, span"); //$NON-NLS-1$

		JLabel lblName = new JLabel(Messages.getString("MiscTicketItemDialog.6")); //$NON-NLS-1$
		contentPane.add(lblName, "newline,alignx trailing"); //$NON-NLS-1$

		tfItemName = new FixedLengthTextField(120);
		contentPane.add(tfItemName, "grow, span, h 40"); //$NON-NLS-1$

		JLabel lblPrice = new JLabel(Messages.getString("MiscTicketItemDialog.9")); //$NON-NLS-1$
		contentPane.add(lblPrice, "newline,alignx trailing"); //$NON-NLS-1$

		tfItemPrice = new DoubleTextField();
		contentPane.add(tfItemPrice, "grow, w 120, h 40"); //$NON-NLS-1$

		contentPane.add(new JLabel(Messages.getString("MiscTicketItemDialog.12")), "alignx trailing"); //$NON-NLS-1$ //$NON-NLS-2$

		PosComboRenderer comboRenderer = new PosComboRenderer();
		comboRenderer.setEnableDefaultValueShowing(false);

		cbTax = new JComboBox();
		cbTax.setRenderer(comboRenderer);
		contentPane.add(cbTax, "w 200!, h 40"); //$NON-NLS-1$

		contentPane.add(new JLabel(Messages.getString("MiscTicketItemDialog.15")), "alignx trailing"); //$NON-NLS-1$ //$NON-NLS-2$

		cbPrinterGroup = new JComboBox();
		cbPrinterGroup.setRenderer(comboRenderer);
		contentPane.add(cbPrinterGroup, "w 200!, h 40"); //$NON-NLS-1$

		QwertyKeyPad keyPad = new QwertyKeyPad();
		contentPane.add(keyPad, "newline, grow, span, h 300!, gaptop 10"); //$NON-NLS-1$

		contentPane.add(new JSeparator(JSeparator.HORIZONTAL), "newline, grow, span, gaptop 10px"); //$NON-NLS-1$

		btnOk = new com.floreantpos.swing.PosButton();
        btnOk.setText(com.floreantpos.POSConstants.OK.toUpperCase());
        btnOk.setPreferredSize(new java.awt.Dimension(120, 50));
        btnOk.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                doFinish(evt);
            }
        });

        btnCancel = new com.floreantpos.swing.PosButton();
        btnCancel.setText(com.floreantpos.POSConstants.CANCEL.toUpperCase());
        btnCancel.setPreferredSize(new java.awt.Dimension(120, 50));
        btnCancel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                doCancel(evt);
            }
        });

        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
        buttonPanel.add(btnOk);
        buttonPanel.add(btnCancel);

        contentPane.add(buttonPanel, "newline, grow, span"); //$NON-NLS-1$

		getContentPane().add(contentPane);

		initData();
	}// </editor-fold>//GEN-END:initComponents

	private void initData() {
		List<Tax> taxes = TaxDAO.getInstance().findAll();
		cbTax.setModel(new ComboBoxModel(taxes));

		int defaultTaxId = TerminalConfig.getMiscItemDefaultTaxId();
		if (defaultTaxId != -1) {
			for (int i = 0; i < taxes.size(); i++) {
				Tax tax = taxes.get(i);
				if (tax.getId() == defaultTaxId) {
					cbTax.setSelectedIndex(i);
					break;
				}
			}
		}

		List<PrinterGroup> printerGroups = PrinterGroupDAO.getInstance().findAll();
		cbPrinterGroup.setModel(new ComboBoxModel(printerGroups));
	}

	private void doCancel(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doCancel
		setCanceled(true);
		ticketItem = null;
		dispose();
	}//GEN-LAST:event_doCancel

	private void doFinish(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doFinish
		double amount = tfItemPrice.getDouble();
		String itemName = tfItemName.getText();

		if(StringUtils.isEmpty(itemName)) {
			POSMessageDialog.showError(Application.getPosWindow(), Messages.getString("MiscTicketItemDialog.1")); //$NON-NLS-1$
			return;
		}

		if(amount <= 0 || Double.isNaN(amount)) {
			POSMessageDialog.showError(Application.getPosWindow(), Messages.getString("MiscTicketItemDialog.22")); //$NON-NLS-1$
			return;
		}

		setCanceled(false);

		ticketItem = new TicketItem();
		ticketItem.setItemCount(1);
		ticketItem.setUnitPrice(amount);
		ticketItem.setName(itemName);
		ticketItem.setCategoryName(com.floreantpos.POSConstants.MISC_BUTTON_TEXT);
		ticketItem.setGroupName(com.floreantpos.POSConstants.MISC_BUTTON_TEXT);
		ticketItem.setShouldPrintToKitchen(true);

		Tax tax = (Tax) cbTax.getSelectedItem();
		if (tax != null) {
			ticketItem.setTaxRate(tax.getRate());
			TerminalConfig.setMiscItemDefaultTaxId(tax.getId());
		}

		PrinterGroup printerGroup = (PrinterGroup) cbPrinterGroup.getSelectedItem();
		if(printerGroup != null) {
			ticketItem.setPrinterGroup(printerGroup);
		}

		dispose();
	}//GEN-LAST:event_doFinish

	public TicketItem getTicketItem() {
		return ticketItem;
	}

	// Variables declaration - do not modify//GEN-BEGIN:variables
	private javax.swing.JComboBox cbTax;
	private com.floreantpos.swing.PosButton btnOk;
	private com.floreantpos.swing.PosButton btnCancel;
	// End of variables declaration//GEN-END:variables
	private FixedLengthTextField tfItemName;
	private DoubleTextField tfItemPrice;
	private JComboBox cbPrinterGroup;

}

Add comment
These comments are moderated so so won't be published until reviewed.