/* * OthersView.java * * Created on August 23, 2006, 12:40 AM */ package com.floreantpos.ui.views.order; import com.floreantpos.main.Application; import com.floreantpos.model.Ticket; import com.floreantpos.model.TicketItem; import com.floreantpos.model.dao.TicketDAO; import com.floreantpos.print.PosPrintService; import com.floreantpos.swing.TransparentPanel; import com.floreantpos.ui.dialog.MiscTicketItemDialog; import com.floreantpos.ui.dialog.NumberSelectionDialog2; import com.floreantpos.ui.dialog.POSMessageDialog; import com.floreantpos.ui.dialog.TicketDetailDialog; import com.floreantpos.ui.views.CookingInstructionView; /** * * @author MShahriar */ public class OthersView extends TransparentPanel { private Ticket currentTicket; /** Creates new form OthersView */ public OthersView() { 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() { transparentPanel2 = new com.floreantpos.swing.TransparentPanel(); btnOrderInfo = new com.floreantpos.swing.PosButton(); btnMisc = new com.floreantpos.swing.PosButton(); btnPrintReceipt = new com.floreantpos.swing.PosButton(); transparentPanel1 = new com.floreantpos.swing.TransparentPanel(); btnCustomerNumber = new com.floreantpos.swing.PosButton(); btnTableNumber = new com.floreantpos.swing.PosButton(); btnCookingInstruction = new com.floreantpos.swing.PosButton(); setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Others", javax.swing.border.TitledBorder.CENTER, javax.swing.border.TitledBorder.DEFAULT_POSITION)); setPreferredSize(new java.awt.Dimension(120, 140)); setLayout(new java.awt.GridLayout(0, 1, 5, 5)); transparentPanel2.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); transparentPanel2.setPreferredSize(new java.awt.Dimension(140, 50)); transparentPanel2.setLayout(new java.awt.GridLayout(1, 0, 5, 5)); btnOrderInfo.setText("ORDER INFO"); btnOrderInfo.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnOrderInfoActionPerformed(evt); } }); transparentPanel2.add(btnOrderInfo); btnMisc.setText("MISC"); btnMisc.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { doInsertMisc(evt); } }); transparentPanel2.add(btnMisc); btnPrintReceipt.setText("PRINT RECEIPT"); btnPrintReceipt.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnPrintReceiptActionPerformed(evt); } }); transparentPanel2.add(btnPrintReceipt); add(transparentPanel2); transparentPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0)); transparentPanel1.setLayout(new java.awt.GridLayout(1, 0, 5, 5)); btnCustomerNumber.setText("CUSTOMER"); btnCustomerNumber.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnCustomerNumberActionPerformed(evt); } }); transparentPanel1.add(btnCustomerNumber); btnTableNumber.setText("TABLE"); btnTableNumber.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnTableNumberActionPerformed(evt); } }); transparentPanel1.add(btnTableNumber); btnCookingInstruction.setText("<html><body><center>COOKING INSTRUCTIONS</center></body></html>"); btnCookingInstruction.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnCookingInstructionActionPerformed(evt); } }); transparentPanel1.add(btnCookingInstruction); add(transparentPanel1); }// </editor-fold>//GEN-END:initComponents private void btnCookingInstructionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCookingInstructionActionPerformed CookingInstructionView cookingInstructionView = new CookingInstructionView(Application.getPosWindow(), true); cookingInstructionView.setTitle("Cooking Instructions"); cookingInstructionView.pack(); cookingInstructionView.setTicket(getCurrentTicket()); cookingInstructionView.open(); }//GEN-LAST:event_btnCookingInstructionActionPerformed private void doInsertMisc(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_doInsertMisc MiscTicketItemDialog dialog = new MiscTicketItemDialog(Application.getPosWindow(), true); dialog.open(); if(!dialog.isCanceled()) { TicketItem ticketItem = dialog.getTicketItem(); RootView.getInstance().getOrderView().getTicketView().addTicketItem(ticketItem); } }//GEN-LAST:event_doInsertMisc private void btnPrintReceiptActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnPrintReceiptActionPerformed try { PosPrintService.printTicket(getCurrentTicket()); } catch (Exception e) { POSMessageDialog.showError(Application.getPosWindow(), e.getMessage(), e); } }//GEN-LAST:event_btnPrintReceiptActionPerformed private void btnOrderInfoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOrderInfoActionPerformed // for (OtherViewListener listener : listeners) { // listener.showOrderInfo(); // } TicketDetailDialog dialog = new TicketDetailDialog(Application.getPosWindow(), true); dialog.setTicket(getCurrentTicket()); dialog.open(); if(!dialog.isCanceled()) { OrderView.getInstance().getTicketView().updateView(); } }//GEN-LAST:event_btnOrderInfoActionPerformed private void btnCustomerNumberActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCustomerNumberActionPerformed updateGuestNumber(); }//GEN-LAST:event_btnCustomerNumberActionPerformed private void updateGuestNumber() { Ticket thisTicket = getCurrentTicket(); int guestNumber = thisTicket.getNumberOfGuests(); NumberSelectionDialog2 dialog = new NumberSelectionDialog2(); dialog.setTitle("Number of guests"); dialog.setValue(guestNumber); dialog.pack(); dialog.open(); if(dialog.isCanceled()) { return; } guestNumber = (int) dialog.getValue(); if(guestNumber == 0) { POSMessageDialog.showError(Application.getPosWindow(), "Guest number cannot be 0"); return; } thisTicket.setNumberOfGuests(guestNumber); updateView(); } private void btnTableNumberActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnTableNumberActionPerformed updateTableNumber(); }//GEN-LAST:event_btnTableNumberActionPerformed private void updateTableNumber() { Ticket thisTicket = getCurrentTicket(); int tableNumber = thisTicket.getTableNumber(); NumberSelectionDialog2 dialog = new NumberSelectionDialog2(); dialog.setTitle("Table number"); dialog.setValue(tableNumber); dialog.pack(); dialog.open(); if(dialog.isCanceled()) { return; } tableNumber = (int) dialog.getValue(); if(tableNumber == 0) { POSMessageDialog.showError(Application.getPosWindow(), "Table number cannot be 0"); return; } TicketDAO dao = TicketDAO.getInstance(); Ticket otherTicket = dao.findTicketByTableNumber(tableNumber); if(otherTicket != null && !otherTicket.equals(thisTicket)) { POSMessageDialog.showError("The table is already occupied"); return; } thisTicket.setTableNumber(tableNumber); updateView(); } // Variables declaration - do not modify//GEN-BEGIN:variables private com.floreantpos.swing.PosButton btnCookingInstruction; private com.floreantpos.swing.PosButton btnCustomerNumber; private com.floreantpos.swing.PosButton btnMisc; private com.floreantpos.swing.PosButton btnOrderInfo; private com.floreantpos.swing.PosButton btnPrintReceipt; private com.floreantpos.swing.PosButton btnTableNumber; private com.floreantpos.swing.TransparentPanel transparentPanel1; private com.floreantpos.swing.TransparentPanel transparentPanel2; // End of variables declaration//GEN-END:variables public void updateView() { if(currentTicket != null) { if(currentTicket.getTableNumber() == Ticket.TAKE_OUT) { btnCustomerNumber.setText(""); btnTableNumber.setText(""); btnCustomerNumber.setEnabled(false); btnTableNumber.setEnabled(false); } else { btnCustomerNumber.setEnabled(true); btnTableNumber.setEnabled(true); btnCustomerNumber.setText(currentTicket.getNumberOfGuests() + " Guests"); btnTableNumber.setText("Table #: " + currentTicket.getTableNumber()); } } } public Ticket getCurrentTicket() { return currentTicket; } public void setCurrentTicket(Ticket currentTicket) { this.currentTicket = currentTicket; updateView(); } }