/*
* CookingInstructionView.java
*
* Created on April 19, 2007, 12:52 AM
*/
package com.floreantpos.ui.views;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Set;
import javax.swing.DefaultListModel;
import com.floreantpos.model.CookingInstruction;
import com.floreantpos.model.Ticket;
import com.floreantpos.model.TicketCookingInstruction;
import com.floreantpos.ui.dialog.POSDialog;
import com.floreantpos.ui.dialog.SelectCookongInstructionDialog;
/**
*
* @author bipu
*/
public class CookingInstructionView extends POSDialog implements ActionListener {
Ticket ticket;
DefaultListModel model;
/** Creates new form CookingInstructionView */
public CookingInstructionView(java.awt.Frame parent, boolean modal) {
super(parent, modal);
initComponents();
model = new DefaultListModel();
listCookingInstructions.setModel(model);
btnAdd.addActionListener(this);
btnClose.addActionListener(this);
btnRemove.addActionListener(this);
}
/** 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() {
jPanel1 = new javax.swing.JPanel();
btnAdd = new com.floreantpos.swing.PosButton();
btnRemove = new com.floreantpos.swing.PosButton();
btnClose = new com.floreantpos.swing.PosButton();
jPanel2 = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
listCookingInstructions = new javax.swing.JList();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jPanel1.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
jPanel1.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.RIGHT));
btnAdd.setText("ADD");
btnAdd.setPreferredSize(new java.awt.Dimension(120, 50));
jPanel1.add(btnAdd);
btnRemove.setText("REMOVE");
btnRemove.setPreferredSize(new java.awt.Dimension(120, 50));
jPanel1.add(btnRemove);
btnClose.setText("CLOSE");
btnClose.setPreferredSize(new java.awt.Dimension(120, 50));
jPanel1.add(btnClose);
getContentPane().add(jPanel1, java.awt.BorderLayout.PAGE_END);
jPanel2.setBorder(javax.swing.BorderFactory.createEmptyBorder(5, 5, 5, 5));
jPanel2.setLayout(new java.awt.BorderLayout());
listCookingInstructions.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
jScrollPane1.setViewportView(listCookingInstructions);
jPanel2.add(jScrollPane1, java.awt.BorderLayout.CENTER);
getContentPane().add(jPanel2, java.awt.BorderLayout.CENTER);
pack();
}// </editor-fold>//GEN-END:initComponents
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
CookingInstructionView dialog = new CookingInstructionView(new javax.swing.JFrame(), true);
dialog.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
System.exit(0);
}
});
dialog.setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private com.floreantpos.swing.PosButton btnAdd;
private com.floreantpos.swing.PosButton btnClose;
private com.floreantpos.swing.PosButton btnRemove;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JList listCookingInstructions;
// End of variables declaration//GEN-END:variables
public void setTicket(Ticket ticket) {
this.ticket = ticket;
if(ticket == null) {
return;
}
Set<TicketCookingInstruction> cookingInstructions = ticket.getCookingInstructions();
if(cookingInstructions == null) {
return;
}
for (TicketCookingInstruction instruction : cookingInstructions) {
model.addElement(instruction);
}
}
public void actionPerformed(ActionEvent e) {
String actionCommand = e.getActionCommand();
if("ADD".equals(actionCommand)) {
SelectCookongInstructionDialog dialog = new SelectCookongInstructionDialog(this, "Select cooking instruction", true);
dialog.pack();
dialog.open();
if(dialog.isCanceled()) {
return;
}
CookingInstruction cookingInstruction = (CookingInstruction) dialog.getCookingInstruction();
TicketCookingInstruction ticketCookingInstruction = new TicketCookingInstruction();
ticketCookingInstruction.setDescription(cookingInstruction.getDescription());
ticket.addCookingInstruction(ticketCookingInstruction);
model.addElement(ticketCookingInstruction);
}
if("REMOVE".equals(actionCommand)) {
int selectedIndex = listCookingInstructions.getSelectedIndex();
if(selectedIndex < 0) {
return;
}
TicketCookingInstruction ticketCookingInstruction = (TicketCookingInstruction) model.get(selectedIndex);
ticket.removeCookingInstruction(ticketCookingInstruction);
model.remove(selectedIndex);
}
if("CLOSE".equals(actionCommand)) {
setCanceled(false);
dispose();
}
}
}