package com.floreantpos.ui.ticket; import java.util.List; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; import com.floreantpos.model.Ticket; import com.floreantpos.model.TicketItem; public class TicketTreeNode extends DefaultMutableTreeNode { public TicketTreeNode() { } public TicketTreeNode(Ticket ticket) { super(ticket); } @Override public int getChildCount() { Ticket ticket = (Ticket) getUserObject(); if(ticket == null) { return 0; } List<TicketItem> ticketItems = ticket.getTicketItems(); if(ticketItems == null) { return 0; } int size = ticketItems.size(); //if size is less than 30, then return 30. this is required to show grid. if(size < 30) { return 30; } return size; } @Override public TreeNode getChildAt(int index) { Ticket ticket = (Ticket) getUserObject(); if(ticket == null) { return null; } List<TicketItem> ticketItems = ticket.getTicketItems(); if(ticketItems == null) { return null; } return new DefaultMutableTreeNode(ticketItems.get(index)); } public Ticket getTicket() { return (Ticket) getUserObject(); } public void setTicket(Ticket ticket) { setUserObject(ticket); } }