package com.floreantpos.ui.views;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.util.ArrayList;
import java.util.List;
import javax.swing.border.EmptyBorder;
import com.floreantpos.model.Ticket;
public class SettleTicketView extends com.floreantpos.swing.TransparentPanel {
public final static String VIEW_NAME = "PAYMENT_VIEW";
private String previousViewName = SwitchboardView.VIEW_NAME;
private static SettleTicketView instance;
private CardLayout leftPanelLayout = new CardLayout();
private com.floreantpos.swing.TransparentPanel leftPanel = new com.floreantpos.swing.TransparentPanel(leftPanelLayout);
private com.floreantpos.swing.TransparentPanel rightPanel = new com.floreantpos.swing.TransparentPanel(new BorderLayout());
private TicketDetailView ticketDetailView;
private PaymentView paymentView;
protected List<Ticket> ticketsToSettle;
private SettleTicketView() {
super(new BorderLayout(5,5));
setBorder(new EmptyBorder(5,5,5,5));
ticketDetailView = new TicketDetailView();
ticketDetailView.setSettleTicketView(this);
leftPanel.add(ticketDetailView, TicketDetailView.VIEW_NAME);
add(leftPanel, BorderLayout.CENTER);
add(rightPanel, BorderLayout.EAST);
}
public synchronized static SettleTicketView getInstance() {
if (instance == null) {
instance = new SettleTicketView();
}
return instance;
}
public void setCurrentTicket(Ticket currentTicket) {
ticketsToSettle = new ArrayList<Ticket>();
ticketsToSettle.add(currentTicket);
ticketDetailView.setTickets(getTicketsToSettle());
paymentView.updateView();
}
public void updatePaymentView() {
paymentView.updateView();
}
public void setPaymentView(PaymentView paymentView) {
rightPanel.removeAll();
if(paymentView != null) {
rightPanel.add(paymentView);
rightPanel.setPreferredSize(paymentView.getPreferredSize());
paymentView.setSettleTicketView(this);
}
this.paymentView = paymentView;
revalidate();
}
public String getPreviousViewName() {
return previousViewName;
}
public void setPreviousViewName(String previousViewName) {
this.previousViewName = previousViewName;
}
public List<Ticket> getTicketsToSettle() {
return ticketsToSettle;
}
public void setTicketsToSettle(List<Ticket> ticketsToSettle) {
this.ticketsToSettle = ticketsToSettle;
ticketDetailView.setTickets(getTicketsToSettle());
paymentView.updateView();
}
}