View Javadoc
1   package com.starphoenixmedia.candle_pos.modeforms;
2   
3   import com.starphoenixmedia.candle_pos.CandleStart;
4   import com.starphoenixmedia.candle_pos.scale.ScaleAction;
5   import com.starphoenixmedia.candle_pos.scale.ScaleReader;
6   import com.starphoenixmedia.candle_pos.util.IconTreeNode;
7   import java.awt.BorderLayout;
8   import java.awt.Component;
9   import javax.swing.Icon;
10  import javax.swing.JScrollPane;
11  import javax.swing.JTable;
12  import javax.swing.JTree;
13  import javax.swing.ScrollPaneConstants;
14  import javax.swing.event.TreeSelectionEvent;
15  import javax.swing.event.TreeSelectionListener;
16  import javax.swing.table.DefaultTableModel;
17  import javax.swing.tree.DefaultMutableTreeNode;
18  import javax.swing.tree.DefaultTreeCellRenderer;
19  import javax.swing.tree.DefaultTreeModel;
20  import javax.swing.tree.DefaultTreeSelectionModel;
21  
22  /**
23   *
24   * @author jlhawkwell
25   */
26  public class MConfigure extends BGeneric implements IModeWindow, TreeSelectionListener
27  {
28  	private JTree tree;
29  	private JTable table;
30  	private DefaultTreeModel treeModel;
31  	private DefaultTableModel tableModel;
32  
33  	@Override public void setup(ScaleReader scale)
34  	{
35  		super.setup(scale);
36  		//org.apache.derby.jdbc.EmbeddedDriver
37  	}
38  
39  	@Override public void run()
40  	{
41  		super.run();
42  
43  		menus.put("table", addMenuBar("Tables"));
44  		menu.addTab("Tables", createIcon("categories/applications-office"), menus.get("table"));
45  
46  		JScrollPane jspa = new JScrollPane();
47  		window.add(jspa, BorderLayout.WEST);
48  
49  		DefaultMutableTreeNode rootnode =
50  				new IconTreeNode(createIcon("mimetypes/package-x-generic"), null, "Database", true);
51  		rootnode.add(new IconTreeNode(createIcon("mimetypes/x-office-address-book"), "cat_catalogs", "Catalog"));
52  
53  		IconTreeNode icn = (IconTreeNode)rootnode.getChildAt(0);
54  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-calendar"), "cat_scents", "Scents"));
55  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-calendar"), "cat_dyes", "Dyes"));
56  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-calendar"), "cat_wax", "Wax"));
57  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-calendar"), null, "Wicks"));
58  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-calendar"), null, "Containers"));
59  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-calendar"), null, "Additives"));
60  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-calendar"), null, "Acc/Misc"));
61  		//icn.add(new IconTreeNode(createIcon("mimetypes/x-office-calendar"), null, "Lookup Table"));
62  
63  		rootnode.add(new IconTreeNode(createIcon("mimetypes/x-office-drawing-template"), null, "Batch"));
64  		rootnode.add(new IconTreeNode(createIcon("mimetypes/x-office-document-template"), null, "Inventory"));
65  
66  		rootnode.add(new IconTreeNode(createIcon("mimetypes/x-office-spreadsheet-template"), null, "Sales"));
67  		icn = (IconTreeNode)rootnode.getChildAt(3);
68  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-spreadsheet"), null, "Receipts"));
69  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-spreadsheet"), null, "Expenses"));
70  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-spreadsheet"), null, "Tax"));
71  		icn.add(new IconTreeNode(createIcon("mimetypes/x-office-spreadsheet"), null, "Earnings"));
72  
73  		treeModel = new DefaultTreeModel(rootnode);
74  		tree = new JTree(treeModel);
75  		tree.setSelectionModel(new DefaultTreeSelectionModel());
76  		tree.getSelectionModel().setSelectionMode(DefaultTreeSelectionModel.SINGLE_TREE_SELECTION);
77  
78  		tree.setExpandsSelectedPaths(true);
79  		tree.expandRow(1);
80  		tree.expandRow(12);
81  
82  		tree.setCellRenderer(new DefaultTreeCellRenderer()
83  		{
84  			private static final long serialVersionUID = 1L;
85  			@Override public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected,
86  					boolean expanded, boolean isLeaf, int row, boolean focused)
87  			{
88  				Component c = super.getTreeCellRendererComponent(tree, value, selected, expanded, isLeaf, row, focused);
89  				if ( value instanceof IconTreeNode )
90  				{
91  					Icon i = ((IconTreeNode)value).getIcon();
92  					if ( i != null ) { setIcon(((IconTreeNode)value).getIcon()); }
93  				}
94  				return c;
95  			}
96  		});
97  		tree.addTreeSelectionListener(this);
98  		jspa.setViewportView(tree);
99  
100 		JScrollPane jspb = new JScrollPane();
101 		window.add(jspb, BorderLayout.CENTER);
102 
103 		table = new JTable();
104 		jspb.setViewportView(table);
105 		jspb.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
106 		jspb.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
107 
108 		CandleStart.es.submit(sr);
109 		window.pack();
110 		window.setVisible(true);
111 	}
112 
113 	@Override public void actionPerformed(ScaleAction action) { super.actionPerformed(action); }
114 
115 	@Override public void valueChanged(TreeSelectionEvent e)
116 	{
117 		if ( tree.getLastSelectedPathComponent() instanceof IconTreeNode )
118 		{
119 			IconTreeNode itn = (IconTreeNode)tree.getLastSelectedPathComponent();
120 			String pt = itn.getTableName();
121 		}
122 	}
123 }