1 package org.wcb.gui.table;
2
3 import org.wcb.gui.table.model.PrintableLogbookModel;
4 import org.wcb.gui.renderer.jtable.GroupableTableColumnModel;
5 import org.wcb.gui.renderer.jtable.GroupableTableHeader;
6 import org.wcb.gui.renderer.jtable.ColumnGroup;
7 import org.wcb.gui.util.TableUtils;
8 import org.wcb.gui.renderer.ColorRowsTableCellRender;
9
10 import javax.swing.*;
11 import java.awt.*;
12 import java.util.Date;
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public class LogbookPrintableTable extends JTable {
40 private JDialog frame;
41
42 public LogbookPrintableTable(PrintableLogbookModel tableEditModel) {
43 setColumnModel(new GroupableTableColumnModel());
44 setTableHeader(new GroupableTableHeader((GroupableTableColumnModel) getColumnModel()));
45 setModel(tableEditModel);
46
47 GroupableTableColumnModel cm = (GroupableTableColumnModel)getColumnModel();
48 ColumnGroup routeofFlightGroup = new ColumnGroup("Route of Flight");
49 routeofFlightGroup.add(cm.getColumn(2));
50 routeofFlightGroup.add(cm.getColumn(3));
51 routeofFlightGroup.add(cm.getColumn(4));
52 ColumnGroup typesOfFlightGroup = new ColumnGroup("Type of Piloting Time");
53 typesOfFlightGroup.add(cm.getColumn(6));
54 typesOfFlightGroup.add(cm.getColumn(7));
55 typesOfFlightGroup.add(cm.getColumn(8));
56 typesOfFlightGroup.add(cm.getColumn(9));
57 typesOfFlightGroup.add(cm.getColumn(10));
58 typesOfFlightGroup.add(cm.getColumn(11));
59 typesOfFlightGroup.add(cm.getColumn(12));
60 ColumnGroup dayGroup = new ColumnGroup("Day");
61 dayGroup.add(cm.getColumn(13));
62 ColumnGroup nightGroup = new ColumnGroup("Night");
63 nightGroup.add(cm.getColumn(14));
64 ColumnGroup conditionsOfFlightGroup = new ColumnGroup("Conditions of Flight");
65 conditionsOfFlightGroup.add(cm.getColumn(16));
66 conditionsOfFlightGroup.add(cm.getColumn(17));
67 conditionsOfFlightGroup.add(cm.getColumn(18));
68 getTableHeader();
69 cm.addColumnGroup(routeofFlightGroup);
70 cm.addColumnGroup(typesOfFlightGroup);
71 cm.addColumnGroup(dayGroup);
72 cm.addColumnGroup(nightGroup);
73 cm.addColumnGroup(conditionsOfFlightGroup);
74
75 setShowGrid(false);
76 setDefaultRenderer(String.class, new ColorRowsTableCellRender());
77 setDefaultRenderer(Double.class, new ColorRowsTableCellRender());
78 setDefaultRenderer(Integer.class, new ColorRowsTableCellRender());
79 setDefaultRenderer(Date.class, new ColorRowsTableCellRender());
80 TableUtils.setColumnWidths(this, this.getInsets(), true, false);
81 setUpJFrame();
82 }
83
84
85
86
87 private void setUpJFrame() {
88 frame = new JDialog();
89 frame.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
90 frame.add( getTablePanel());
91 frame.pack();
92 frame.setVisible(true);
93 }
94
95
96
97
98 public void closeFrame() {
99 if (frame != null) {
100 frame.dispose();
101 }
102 }
103
104 private JPanel getTablePanel(){
105 JPanel jPanel = new JPanel(new GridLayout(1,0));
106 jPanel.setOpaque(true);
107
108 setPreferredScrollableViewportSize(new Dimension(1000, 400));
109 jPanel.add(new JScrollPane(this));
110 return jPanel;
111 }
112 }