|
1 |
| -package app.views; |
2 |
| - |
3 |
| -import app.Main; |
4 |
| -import app.helpers.*; |
5 |
| -import app.model.*; |
6 |
| -import app.uitoolkit.*; |
7 |
| - |
8 |
| -import java.util.List; |
9 |
| -import java.awt.*; |
10 |
| -import java.awt.event.*; |
11 |
| - |
12 |
| -import javax.swing.*; |
13 |
| -import javax.swing.border.*; |
14 |
| -import javax.swing.event.*; |
15 |
| - |
16 |
| -public class HistoryPage extends AbstractView { |
17 |
| - |
18 |
| - private final JList<Permit> PERMITS; |
19 |
| - private final JLabel RECEIPT = new JLabel(); |
20 |
| - |
21 |
| - public HistoryPage() { |
22 |
| - super("HISTORY", "History"); |
23 |
| - JPanel main = new JPanel(new BorderLayout()); |
24 |
| - JPanel inner = new JPanel(new FlowLayout(FlowLayout.LEFT, 20, 0)); |
25 |
| - PERMITS = new JList<Permit>(); |
26 |
| - PERMITS.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); |
27 |
| - PERMITS.setLayoutOrientation(JList.VERTICAL); |
28 |
| - PERMITS.setVisibleRowCount(-1); |
29 |
| - PERMITS.setBorder(new LineBorder(Color.LIGHT_GRAY)); |
30 |
| - PERMITS.setOpaque(false); |
31 |
| - PERMITS.setCellRenderer(new ListRenderer<Permit>(400, 125) { |
32 |
| - @Override |
33 |
| - public String getHTML(Permit permit) { |
34 |
| - return UIToolbox.getHTML("/assets/htdocs/permit.html") |
35 |
| - .replace("{PLATE}", permit.getVehicle().getPlate()) |
36 |
| - .replace("{ISSUED_DATE}", permit.getIssueDate().toString()) |
37 |
| - .replace("{EXPIRY_DATE}", permit.getEndDate().toString()); |
38 |
| - } |
39 |
| - }); |
40 |
| - PERMITS.addListSelectionListener(new ListSelectionListener() { |
41 |
| - @Override |
42 |
| - public void valueChanged(ListSelectionEvent e) { |
43 |
| - if (PERMITS.isSelectionEmpty()) {return;} |
44 |
| - Permit permit = PERMITS.getSelectedValue(); |
45 |
| - RECEIPT.setText(UIToolbox.getHTML("/assets/htdocs/permit.receipt.html") |
46 |
| - .replace("{USER_ID}", "" + Main.USER.getID()) |
47 |
| - .replace("{FIRST_NAME}", Main.USER.getFirstName()) |
48 |
| - .replace("{SURNAME}", Main.USER.getSurName()) |
49 |
| - .replace("{LICENSE}", permit.getVehicle().getPlate()) |
50 |
| - .replace("{MAKE}", permit.getVehicle().getMake()) |
51 |
| - .replace("{MODEL}", permit.getVehicle().getModel()) |
52 |
| - .replace("{YEAR}", "" + permit.getVehicle().getModelYear()) |
53 |
| - .replace("{ISSUED_DATE}", permit.getIssueDate().toString()) |
54 |
| - .replace("{EXPIRY}", permit.getEndDate().toString()) |
55 |
| - ); |
56 |
| - } |
57 |
| - }); |
58 |
| - JScrollPane permitScroller = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); |
59 |
| - permitScroller.setViewportView(PERMITS); |
60 |
| - UIToolbox.setSize(permitScroller, new Dimension(400, 535)); |
61 |
| - inner.add(permitScroller); |
62 |
| - JPanel detailsPane = new JPanel(new BorderLayout()); |
63 |
| - detailsPane.setBorder(new LineBorder(Color.LIGHT_GRAY)); |
64 |
| - JPanel details = new JPanel(new GridBagLayout()); |
65 |
| - details.setBorder(new LineBorder(Color.LIGHT_GRAY)); |
66 |
| - details.setBackground(Color.WHITE); |
67 |
| - UIToolbox.setSize(RECEIPT, new Dimension(500, 535)); |
68 |
| - details.add(RECEIPT); |
69 |
| - detailsPane.add(details, BorderLayout.CENTER); |
70 |
| - inner.add(detailsPane); |
71 |
| - main.add(UIToolbox.box(new JPanel(new GridBagLayout()), inner), BorderLayout.CENTER); |
72 |
| - add(main, BorderLayout.CENTER); |
73 |
| - JPanel nav = new JPanel(new BorderLayout()); |
74 |
| - JPanel navLeft = new JPanel(); |
75 |
| - navLeft.add(new HorizontalButton("HOME", "HOME", "Home", this)); |
76 |
| - nav.add(navLeft, BorderLayout.WEST); |
77 |
| - JPanel navCenter = new JPanel(new GridLayout(1, 1)); |
78 |
| - navCenter.add(new HorizontalButton("OK", null, "OK", this)); |
79 |
| - navCenter.setBorder(new EmptyBorder(5,5,5,5)); |
80 |
| - nav.add(navCenter, BorderLayout.CENTER); |
81 |
| - JPanel navRight = new JPanel(); |
82 |
| - navRight.add(new HorizontalButton("EXIT", "EXIT", "Logout", this, true)); |
83 |
| - nav.add(navRight, BorderLayout.EAST); |
84 |
| - add(nav, BorderLayout.SOUTH); |
85 |
| - } |
86 |
| - |
87 |
| - @Override |
88 |
| - public boolean prepareView(Object... args) { |
89 |
| - if (!super.prepareView(args)) {return false;} |
90 |
| - RECEIPT.setText(null); |
91 |
| - List<Permit> permits = DBManager.SELF.getPermitsByUser(Main.USER); |
92 |
| - PERMITS.clearSelection(); |
93 |
| - PERMITS.setListData(permits.toArray(new Permit[permits.size()])); |
94 |
| - PERMITS.requestFocusInWindow(); |
95 |
| - PERMITS.setSelectedIndex(0); |
96 |
| - return true; |
97 |
| - } |
98 |
| - |
99 |
| - @Override |
100 |
| - public void actionPerformed(ActionEvent e) { |
101 |
| - JButton button = (JButton)e.getSource(); |
102 |
| - String name = button.getName(); |
103 |
| - if (name == "OK") {MultiPanel.SELF.show("HOME");} |
104 |
| - else {super.actionPerformed(e);} |
105 |
| - } |
106 |
| -} |
| 1 | +package app.views; |
| 2 | + |
| 3 | +import app.Main; |
| 4 | +import app.helpers.*; |
| 5 | +import app.model.*; |
| 6 | +import app.uitoolkit.*; |
| 7 | + |
| 8 | +import java.awt.*; |
| 9 | +import java.awt.event.*; |
| 10 | +import java.util.List; |
| 11 | + |
| 12 | +import javax.swing.*; |
| 13 | +import javax.swing.border.*; |
| 14 | +import javax.swing.event.*; |
| 15 | + |
| 16 | +public class HistoryPage extends AbstractView { |
| 17 | + |
| 18 | + private final JList<Permit> PERMITS; |
| 19 | + private final JLabel RECEIPT = new JLabel(); |
| 20 | + |
| 21 | + public HistoryPage() { |
| 22 | + super("HISTORY", "History"); |
| 23 | + JPanel main = new JPanel(new BorderLayout()); |
| 24 | + JPanel inner = new JPanel(new FlowLayout(FlowLayout.LEFT, 20, 0)); |
| 25 | + PERMITS = new JList<Permit>(); |
| 26 | + PERMITS.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); |
| 27 | + PERMITS.setLayoutOrientation(JList.VERTICAL); |
| 28 | + PERMITS.setVisibleRowCount(-1); |
| 29 | + PERMITS.setBorder(new LineBorder(Color.LIGHT_GRAY)); |
| 30 | + PERMITS.setOpaque(false); |
| 31 | + PERMITS.setCellRenderer(new ListRenderer<Permit>(400, 125) { |
| 32 | + @Override |
| 33 | + public String getHTML(Permit permit) { |
| 34 | + return UIToolbox.getHTML("/assets/htdocs/permit.html") |
| 35 | + .replace("{PLATE}", permit.getVehicle().getPlate()) |
| 36 | + .replace("{ISSUED_DATE}", permit.getIssueDate().toString()) |
| 37 | + .replace("{EXPIRY_DATE}", permit.getEndDate().toString()); |
| 38 | + } |
| 39 | + }); |
| 40 | + PERMITS.addListSelectionListener(new ListSelectionListener() { |
| 41 | + @Override |
| 42 | + public void valueChanged(ListSelectionEvent e) { |
| 43 | + if (PERMITS.isSelectionEmpty()) {return;} |
| 44 | + Permit permit = PERMITS.getSelectedValue(); |
| 45 | + RECEIPT.setText(UIToolbox.getHTML("/assets/htdocs/permit.receipt.html") |
| 46 | + .replace("{USER_ID}", "" + Main.USER.getID()) |
| 47 | + .replace("{FIRST_NAME}", Main.USER.getFirstName()) |
| 48 | + .replace("{SURNAME}", Main.USER.getSurName()) |
| 49 | + .replace("{LICENSE}", permit.getVehicle().getPlate()) |
| 50 | + .replace("{MAKE}", permit.getVehicle().getMake()) |
| 51 | + .replace("{MODEL}", permit.getVehicle().getModel()) |
| 52 | + .replace("{YEAR}", "" + permit.getVehicle().getModelYear()) |
| 53 | + .replace("{ISSUED_DATE}", permit.getIssueDate().toString()) |
| 54 | + .replace("{EXPIRY}", permit.getEndDate().toString()) |
| 55 | + ); |
| 56 | + } |
| 57 | + }); |
| 58 | + JScrollPane permitScroller = new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); |
| 59 | + permitScroller.setViewportView(PERMITS); |
| 60 | + UIToolbox.setSize(permitScroller, new Dimension(400, 535)); |
| 61 | + inner.add(permitScroller); |
| 62 | + JPanel detailsPane = new JPanel(new BorderLayout()); |
| 63 | + detailsPane.setBorder(new LineBorder(Color.LIGHT_GRAY)); |
| 64 | + JPanel details = new JPanel(new GridBagLayout()); |
| 65 | + details.setBorder(new LineBorder(Color.LIGHT_GRAY)); |
| 66 | + details.setBackground(Color.WHITE); |
| 67 | + UIToolbox.setSize(RECEIPT, new Dimension(500, 535)); |
| 68 | + details.add(RECEIPT); |
| 69 | + detailsPane.add(details, BorderLayout.CENTER); |
| 70 | + inner.add(detailsPane); |
| 71 | + main.add(UIToolbox.box(new JPanel(new GridBagLayout()), inner), BorderLayout.CENTER); |
| 72 | + add(main, BorderLayout.CENTER); |
| 73 | + JPanel nav = new JPanel(new BorderLayout()); |
| 74 | + JPanel navLeft = new JPanel(); |
| 75 | + navLeft.add(new HorizontalButton("HOME", "HOME", "Home", this)); |
| 76 | + nav.add(navLeft, BorderLayout.WEST); |
| 77 | + JPanel navCenter = new JPanel(new GridLayout(1, 1)); |
| 78 | + navCenter.add(new HorizontalButton("OK", null, "OK", this)); |
| 79 | + navCenter.setBorder(new EmptyBorder(5,5,5,5)); |
| 80 | + nav.add(navCenter, BorderLayout.CENTER); |
| 81 | + JPanel navRight = new JPanel(); |
| 82 | + navRight.add(new HorizontalButton("EXIT", "EXIT", "Logout", this, true)); |
| 83 | + nav.add(navRight, BorderLayout.EAST); |
| 84 | + add(nav, BorderLayout.SOUTH); |
| 85 | + } |
| 86 | + |
| 87 | + @Override |
| 88 | + public boolean prepareView(Object... args) { |
| 89 | + if (!super.prepareView(args)) {return false;} |
| 90 | + RECEIPT.setText(null); |
| 91 | + List<Permit> permits = DBManager.SELF.getPermitsByUser(Main.USER); |
| 92 | + PERMITS.clearSelection(); |
| 93 | + PERMITS.setListData(permits.toArray(new Permit[permits.size()])); |
| 94 | + PERMITS.requestFocusInWindow(); |
| 95 | + PERMITS.setSelectedIndex(0); |
| 96 | + return true; |
| 97 | + } |
| 98 | + |
| 99 | + @Override |
| 100 | + public void actionPerformed(ActionEvent e) { |
| 101 | + JButton button = (JButton)e.getSource(); |
| 102 | + String name = button.getName(); |
| 103 | + if (name == "OK") {MultiPanel.SELF.show("HOME");} |
| 104 | + else {super.actionPerformed(e);} |
| 105 | + } |
| 106 | +} |
0 commit comments