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
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
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
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 }