public class OOReportTreeTableModel implements TreeTableModel { // Column Names private String[] Columns = {"Order", "Status", "Invoice#", "Type", "Machine Description", "Customer"}; // RootNode OrderTreeTableNode RootNode; Settings Settings; ArrayList Orders; String RootFilter; public OOReportTreeTableModel( Settings NewSettings ) { Settings = NewSettings; } /** * * @param Alignment Must Equal a string containing "Tech" or "Corp" * @param Root Must Equal a string containing the RootNode * @param RootFilter */ public void buildTree(String Alignment, String Root, String RootFilter) { if ( Alignment.equals("Tech") ) { /* * Tech alignment is * Store * Technician * Supervisor * Company */ if ( Root.equals("Store") ) { RootNode = new OrderTreeTableNode(null, "Store "+RootFilter); Orders = Settings.RDB.FetchOrders("Store", RootFilter); // TODO Handle Tickets Under Here } else if ( Root.equals("Tech") ) { RootNode = new OrderTreeTableNode(null, RootFilter); // TODO Handle Tickets Under Here } else if ( Root.equals("Supervisor") ) { RootNode = new OrderTreeTableNode(null, RootFilter); // TODO Handle Tickets Under Here } else if ( Root.equals("Company") ) { RootNode = new OrderTreeTableNode(null, "Staples"); // TODO Handle Tickets Under Here } // End Root Block } else if ( Alignment.equals("Corp") ) { /* Corp alignment is * Store * District * Reigon * Division * Company */ if ( Root.equals("Store") ) { RootNode = new OrderTreeTableNode(null, "Store "+RootFilter); // TODO Handle Tickets Under Here } else if ( Root.equals("District") ) { RootNode = new OrderTreeTableNode(null, "District "+RootFilter); // TODO Handle Tickets Under Here } else if ( Root.equals("Region") ) { RootNode = new OrderTreeTableNode(null, "Region "+RootFilter); // TODO Handle Tickets Under Here } else if ( Root.equals("Division") ) { RootNode = new OrderTreeTableNode(null, "Division "+RootFilter); // TODO Handle Tickets Under Here } else if ( Root.equals("Company") ) { Orders = Settings.RDB.FetchOrders(Root, RootFilter); RootNode = new OrderTreeTableNode(null, "Staples"); // TODO Handle Tickets Under Here Iterator i = Orders.iterator(); while (i.hasNext()) { // TODO Fix this OrderTreeTableNode TicketNode,DivisionNode,RegionNode,DistrictNode,StoreNode; TicketNode = (OrderTreeTableNode) i.next(); int Division = ((Integer) TicketNode.Ticket.getField("Division")).intValue(); int Region = ((Integer) TicketNode.Ticket.getField("Region")).intValue(); int District = ((Integer) TicketNode.Ticket.getField("District")).intValue(); int Store = ((Integer) TicketNode.Ticket.getField("Store")).intValue(); if((DivisionNode = (OrderTreeTableNode) RootNode.getChildByName("Division "+Division))!=null){ if((RegionNode = (OrderTreeTableNode) DivisionNode.getChildByName("Region "+Region))!=null){ if((DistrictNode = (OrderTreeTableNode) RegionNode.getChildByName("District "+Region))!=null){ if((StoreNode = (OrderTreeTableNode) DistrictNode.getChildByName("Store "+Store))!=null){ // Do nothing Here. It happens After we build this Tree } else { StoreNode = new OrderTreeTableNode(DistrictNode,"Store "+Store); DistrictNode.addChild(StoreNode); } } else { DistrictNode = new OrderTreeTableNode(RegionNode,"District "+District); RegionNode.addChild(DistrictNode); StoreNode = new OrderTreeTableNode(DistrictNode,"Store "+Store); DistrictNode.addChild(StoreNode); } } else { RegionNode = new OrderTreeTableNode(DivisionNode,"Region "+Region); DivisionNode.addChild(RegionNode); DistrictNode = new OrderTreeTableNode(RegionNode,"District "+District); RegionNode.addChild(DistrictNode); StoreNode = new OrderTreeTableNode(DistrictNode,"Store "+Store); DistrictNode.addChild(StoreNode); } } else { DivisionNode = new OrderTreeTableNode(RootNode,"Division "+Division); RootNode.addChild(DivisionNode); RegionNode = new OrderTreeTableNode(DivisionNode,"Region "+Region); DivisionNode.addChild(RegionNode); DistrictNode = new OrderTreeTableNode(RegionNode,"District "+District); RegionNode.addChild(DistrictNode); StoreNode = new OrderTreeTableNode(DistrictNode,"Store "+Store); DistrictNode.addChild(StoreNode); } StoreNode.addChild(TicketNode); } } // End RootNode IfBlock }// End Alignment IfBlock } public Class getColumnClass(int arg0) { // TODO Auto-generated method stub return null; } /** * Returns the Number of Columns in the Model * * @return Returns number of Columns Defined in an int. * @author Hans Uhlig */ public int getColumnCount() { return Columns.length; } /** * Returns Column Name * * @param Column Number * @return Returns Column Name String Object * @author Hans Uhlig */ public String getColumnName(int index) { // TODO Auto-generated method stub return Columns[index]; } /** * Returns Value In Column for Object * * @param Node on Tree * @param Column Number * @return Returns Column Name String Object * @author Hans Uhlig */ public Object getValueAt(Object node, int index) { OrderTreeTableNode treeNode = (OrderTreeTableNode) node; if(treeNode.isLeaf()) { return treeNode.getValueAt(index); } else { // TODO Fix handling data aggregation return null; } } public boolean isCellEditable(Object arg0, int arg1) { // TODO Auto-generated method stub return false; } public void setValueAt(Object arg0, Object arg1, int arg2) { // TODO Auto-generated method stub } public void addTreeModelListener(TreeModelListener arg0) { // TODO Auto-generated method stub } public Object getChild(Object arg0, int arg1) { // TODO Auto-generated method stub return null; } public int getChildCount(Object arg0) { // TODO Auto-generated method stub return 0; } public int getIndexOfChild(Object arg0, Object arg1) { // TODO Auto-generated method stub return 0; } public Object getRoot() { // TODO Auto-generated method stub return null; } public boolean isLeaf(Object arg0) { // TODO Auto-generated method stub return false; } public void removeTreeModelListener(TreeModelListener arg0) { // TODO Auto-generated method stub } public void valueForPathChanged(TreePath arg0, Object arg1) { // TODO Auto-generated method stub } }