/Users/johnr/Desktop/IA pdf Downloads/Criteria__P__-_Coding_Project_Upload_all_2022-05-03/Official_IA_Ish_04_21/src/main/java/com/mycompany/official_ia_ish/MainGUI_ClientDB.java |
1
2
3
4
5
6 package com.mycompany.official_ia_ish;
7
8 import java.io.BufferedWriter;
9 import java.io.FileReader;
10 import java.io.FileWriter;
11 import java.io.IOException;
12 import java.util.ArrayList;
13 import java.util.LinkedList;
14 import javax.swing.JFileChooser;
15 import javax.swing.JOptionPane;
16 import javax.swing.table.DefaultTableModel;
17
18
19
20 @author
21
22 public class MainGUI_ClientDB extends javax.swing.JFrame {
23
24
25
26
27
28 public MainGUI_ClientDB() {
29 initComponents();
30 }
31
32 private LinkedList<Task> tasksList = new LinkedList<Task>();
33
34 This method is called from within the constructor to initialize the form.
35
36
37
38 @SuppressWarnings("unchecked")
39 // <editor-fold defaultstate="collapsed" desc="Generated Code">
40 private void initComponents() {
41
42 jLabel6 = new javax.swing.JLabel();
43 jRadioButton3 = new javax.swing.JRadioButton();
44 jTabbedPane1 = new javax.swing.JTabbedPane();
45 jPanel1 = new javax.swing.JPanel();
46 jLabel1 = new javax.swing.JLabel();
47 jLabel2 = new javax.swing.JLabel();
48 jLabel3 = new javax.swing.JLabel();
49 jLabel4 = new javax.swing.JLabel();
50 TaskNameTF = new javax.swing.JTextField();
51 TaskLocationTF = new javax.swing.JTextField();
52 UrgencyTF = new javax.swing.JTextField();
53 ContactGroupTF = new javax.swing.JTextField();
54 DaysRemainingTF = new javax.swing.JTextField();
55 jLabel5 = new javax.swing.JLabel();
56 EnterDataButton = new javax.swing.JButton();
57 jLabel7 = new javax.swing.JLabel();
58 jLabel8 = new javax.swing.JLabel();
59 TimeToWorkTF = new javax.swing.JTextField();
60 jPanel2 = new javax.swing.JPanel();
61 jScrollPane1 = new javax.swing.JScrollPane();
62 DataTableTF = new javax.swing.JTable();
63 RefreshButtonTF = new javax.swing.JButton();
64 ClearTableButton = new javax.swing.JButton();
65 RemoveTaskButton = new javax.swing.JButton();
66 jLabel15 = new javax.swing.JLabel();
67 DataTableSelection = new javax.swing.JComboBox<>();
68 jPanel3 = new javax.swing.JPanel();
69 jLabel9 = new javax.swing.JLabel();
70 jLabel10 = new javax.swing.JLabel();
71 jLabel11 = new javax.swing.JLabel();
72 jLabel12 = new javax.swing.JLabel();
73 jLabel13 = new javax.swing.JLabel();
74 jLabel16 = new javax.swing.JLabel();
75 NameForSearchTF = new javax.swing.JTextField();
76 ContactForSearchTF = new javax.swing.JTextField();
77 PrepTimeForSearchTF = new javax.swing.JTextField();
78 DaysRemainingForSearchTF = new javax.swing.JTextField();
79 LocationForSearchTF = new javax.swing.JTextField();
80 jLabel17 = new javax.swing.JLabel();
81 EnterButtonSortTF = new javax.swing.JButton();
82 UrgencyForSearchTF = new javax.swing.JTextField();
83 RefreshForSearchButton = new javax.swing.JButton();
84 menuBar = new javax.swing.JMenuBar();
85 fileMenu = new javax.swing.JMenu();
86 openMenuItem = new javax.swing.JMenuItem();
87 saveMenuItem = new javax.swing.JMenuItem();
88 saveAsMenuItem = new javax.swing.JMenuItem();
89 exitMenuItem = new javax.swing.JMenuItem();
90 editMenu = new javax.swing.JMenu();
91 cutMenuItem = new javax.swing.JMenuItem();
92 copyMenuItem = new javax.swing.JMenuItem();
93 pasteMenuItem = new javax.swing.JMenuItem();
94 deleteMenuItem = new javax.swing.JMenuItem();
95 helpMenu = new javax.swing.JMenu();
96 contentsMenuItem = new javax.swing.JMenuItem();
97 aboutMenuItem = new javax.swing.JMenuItem();
98
99 jLabel6.setText("jLabel6");
100
101 jRadioButton3.setText("jRadioButton3");
102
103 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
104
105 jLabel1.setText("Task Name: ");
106
107 jLabel2.setText("Task Location:");
108
109 jLabel3.setText("Is It Urgent? (Yes/No) ");
110
111 jLabel4.setText("Contacted Person/Group: ");
112
113 TaskNameTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
114 TaskNameTF.addActionListener(new java.awt.event.ActionListener() {
115 public void actionPerformed(java.awt.event.ActionEvent evt) {
116 TaskNameTFActionPerformed(evt);
117 }
118 });
119
120 TaskLocationTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
121
122 UrgencyTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
123
124 ContactGroupTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
125
126 DaysRemainingTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
127
128 jLabel5.setText("Days Remaining:");
129
130 EnterDataButton.setText("OK");
131 EnterDataButton.addMouseListener(new java.awt.event.MouseAdapter() {
132 public void mouseReleased(java.awt.event.MouseEvent evt) {
133 EnterDataButtonMouseReleased(evt);
134 }
135 });
136 EnterDataButton.addActionListener(new java.awt.event.ActionListener() {
137 public void actionPerformed(java.awt.event.ActionEvent evt) {
138 EnterDataButtonActionPerformed(evt);
139 }
140 });
141
142 jLabel7.setFont(new java.awt.Font("Lucida Grande", 0, 18)); // NOI18N
143 jLabel7.setText("Add New Task Details");
144
145 jLabel8.setText("Preparation Time (Hours):");
146
147 TimeToWorkTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
148
149 javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
150 jPanel1.setLayout(jPanel1Layout);
151 jPanel1Layout.setHorizontalGroup(
152 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
153 .addGroup(jPanel1Layout.createSequentialGroup()
154 .addGap(139, 139, 139)
155 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
156 .addComponent(jLabel1)
157 .addComponent(jLabel5)
158 .addComponent(jLabel3)
159 .addComponent(jLabel4)
160 .addComponent(jLabel2)
161 .addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 178, javax.swing.GroupLayout.PREFERRED_SIZE))
162 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 369, Short.MAX_VALUE)
163 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
164 .addComponent(TaskNameTF, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)
165 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
166 .addComponent(TaskLocationTF)
167 .addComponent(TimeToWorkTF, javax.swing.GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE))
168 .addComponent(UrgencyTF, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)
169 .addComponent(DaysRemainingTF, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE)
170 .addComponent(ContactGroupTF, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 158, javax.swing.GroupLayout.PREFERRED_SIZE))
171 .addGap(49, 49, 49))
172 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
173 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
174 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
175 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
176 .addComponent(EnterDataButton)
177 .addGap(240, 240, 240))
178 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
179 .addComponent(jLabel7)
180 .addGap(325, 325, 325))))
181 );
182 jPanel1Layout.setVerticalGroup(
183 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
184 .addGroup(jPanel1Layout.createSequentialGroup()
185 .addContainerGap()
186 .addComponent(jLabel7)
187 .addGap(28, 28, 28)
188 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
189 .addComponent(jLabel1)
190 .addComponent(TaskNameTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
191 .addGap(18, 18, 18)
192 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
193 .addComponent(jLabel2)
194 .addComponent(TaskLocationTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
195 .addGap(18, 18, 18)
196 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
197 .addComponent(jLabel4)
198 .addComponent(ContactGroupTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
199 .addGap(18, 18, 18)
200 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
201 .addComponent(jLabel3)
202 .addComponent(UrgencyTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
203 .addGap(18, 18, 18)
204 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
205 .addComponent(jLabel5)
206 .addComponent(DaysRemainingTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
207 .addGap(18, 18, 18)
208 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
209 .addComponent(jLabel8)
210 .addComponent(TimeToWorkTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
211 .addGap(32, 32, 32)
212 .addComponent(EnterDataButton)
213 .addContainerGap(233, Short.MAX_VALUE))
214 );
215
216 jTabbedPane1.addTab("Enter Tasks", jPanel1);
217
218 DataTableTF.setModel(new javax.swing.table.DefaultTableModel(
219 new Object [][] {
220 {null, null, null, null, null, null},
221 {null, null, null, null, null, null},
222 {null, null, null, null, null, null},
223 {null, null, null, null, null, null},
224 {null, null, null, null, null, null},
225 {null, null, null, null, null, null},
226 {null, null, null, null, null, null},
227 {null, null, null, null, null, null},
228 {null, null, null, null, null, null},
229 {null, null, null, null, null, null},
230 {null, null, null, null, null, null},
231 {null, null, null, null, null, null},
232 {null, null, null, null, null, null},
233 {null, null, null, null, null, null},
234 {null, null, null, null, null, null},
235 {null, null, null, null, null, null},
236 {null, null, null, null, null, null},
237 {null, null, null, null, null, null},
238 {null, null, null, null, null, null},
239 {null, null, null, null, null, null},
240 {null, null, null, null, null, null},
241 {null, null, null, null, null, null},
242 {null, null, null, null, null, null},
243 {null, null, null, null, null, null},
244 {null, null, null, null, null, null},
245 {null, null, null, null, null, null},
246 {null, null, null, null, null, null},
247 {null, null, null, null, null, null},
248 {null, null, null, null, null, null},
249 {null, null, null, null, null, null},
250 {null, null, null, null, null, null},
251 {null, null, null, null, null, null},
252 {null, null, null, null, null, null},
253 {null, null, null, null, null, null},
254 {null, null, null, null, null, null},
255 {null, null, null, null, null, null},
256 {null, null, null, null, null, null},
257 {null, null, null, null, null, null},
258 {null, null, null, null, null, null},
259 {null, null, null, null, null, null},
260 {null, null, null, null, null, null},
261 {null, null, null, null, null, null},
262 {null, null, null, null, null, null},
263 {null, null, null, null, null, null},
264 {null, null, null, null, null, null},
265 {null, null, null, null, null, null},
266 {null, null, null, null, null, null},
267 {null, null, null, null, null, null},
268 {null, null, null, null, null, null},
269 {null, null, null, null, null, null}
270 },
271 new String [] {
272 "Task Name", "Task Location", "Contacted Group", "Urgency", "Days Remaining", "Preparation Time"
273 }
274 ));
275 DataTableTF.setGridColor(new java.awt.Color(0, 0, 0));
276 jScrollPane1.setViewportView(DataTableTF);
277
278 RefreshButtonTF.setText("Refresh Table");
279 RefreshButtonTF.addMouseListener(new java.awt.event.MouseAdapter() {
280 public void mouseReleased(java.awt.event.MouseEvent evt) {
281 RefreshButtonTFMouseReleased(evt);
282 }
283 });
284 RefreshButtonTF.addActionListener(new java.awt.event.ActionListener() {
285 public void actionPerformed(java.awt.event.ActionEvent evt) {
286 RefreshButtonTFActionPerformed(evt);
287 }
288 });
289
290 ClearTableButton.setText("Clear Table");
291 ClearTableButton.addMouseListener(new java.awt.event.MouseAdapter() {
292 public void mouseClicked(java.awt.event.MouseEvent evt) {
293 ClearTableButtonMouseClicked(evt);
294 }
295 });
296 ClearTableButton.addActionListener(new java.awt.event.ActionListener() {
297 public void actionPerformed(java.awt.event.ActionEvent evt) {
298 ClearTableButtonActionPerformed(evt);
299 }
300 });
301
302 RemoveTaskButton.setText("Remove Task Selected");
303 RemoveTaskButton.addActionListener(new java.awt.event.ActionListener() {
304 public void actionPerformed(java.awt.event.ActionEvent evt) {
305 RemoveTaskButtonActionPerformed(evt);
306 }
307 });
308
309 jLabel15.setText("Sort By:");
310
311 DataTableSelection.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Select...", "Urgency", "Days Remaining", "Preparation Time", "All" }));
312 DataTableSelection.addItemListener(new java.awt.event.ItemListener() {
313 public void itemStateChanged(java.awt.event.ItemEvent evt) {
314 DataTableSelectionItemStateChanged(evt);
315 }
316 });
317 DataTableSelection.addActionListener(new java.awt.event.ActionListener() {
318 public void actionPerformed(java.awt.event.ActionEvent evt) {
319 DataTableSelectionActionPerformed(evt);
320 }
321 });
322
323 javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
324 jPanel2.setLayout(jPanel2Layout);
325 jPanel2Layout.setHorizontalGroup(
326 jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
327 .addGroup(jPanel2Layout.createSequentialGroup()
328 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 538, javax.swing.GroupLayout.PREFERRED_SIZE)
329 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
330 .addGroup(jPanel2Layout.createSequentialGroup()
331 .addGap(27, 27, 27)
332 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
333 .addComponent(RemoveTaskButton)
334 .addComponent(RefreshButtonTF)
335 .addComponent(ClearTableButton))
336 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
337 .addGroup(jPanel2Layout.createSequentialGroup()
338 .addGap(36, 36, 36)
339 .addComponent(jLabel15)
340 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
341 .addComponent(DataTableSelection, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
342 .addGap(0, 104, Short.MAX_VALUE))))
343 );
344 jPanel2Layout.setVerticalGroup(
345 jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
346 .addGroup(jPanel2Layout.createSequentialGroup()
347 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
348 .addGroup(jPanel2Layout.createSequentialGroup()
349 .addGap(31, 31, 31)
350 .addComponent(RefreshButtonTF)
351 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
352 .addComponent(RemoveTaskButton)
353 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
354 .addComponent(ClearTableButton)
355 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
356 .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
357 .addComponent(jLabel15)
358 .addComponent(DataTableSelection, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
359 .addGroup(jPanel2Layout.createSequentialGroup()
360 .addGap(17, 17, 17)
361 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 353, javax.swing.GroupLayout.PREFERRED_SIZE)))
362 .addContainerGap(178, Short.MAX_VALUE))
363 );
364
365 jTabbedPane1.addTab("Full Tasks Table", jPanel2);
366
367 jLabel9.setText("Task Name: ");
368
369 jLabel10.setText("Task Location: ");
370
371 jLabel11.setText("Is It Urgent? (Yes/No) ");
372
373 jLabel12.setText("Contacted Person/Group: ");
374
375 jLabel13.setText("Days Remaining:");
376
377 jLabel16.setText("Preparation Time:");
378
379 NameForSearchTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
380
381 ContactForSearchTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
382
383 PrepTimeForSearchTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
384
385 DaysRemainingForSearchTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
386
387 LocationForSearchTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
388
389 jLabel17.setFont(new java.awt.Font("Lucida Grande", 0, 18)); // NOI18N
390 jLabel17.setText("Search For A Task's Details");
391
392 EnterButtonSortTF.setText("OK");
393 EnterButtonSortTF.addMouseListener(new java.awt.event.MouseAdapter() {
394 public void mouseReleased(java.awt.event.MouseEvent evt) {
395 EnterButtonSortTFMouseReleased(evt);
396 }
397 });
398 EnterButtonSortTF.addActionListener(new java.awt.event.ActionListener() {
399 public void actionPerformed(java.awt.event.ActionEvent evt) {
400 EnterButtonSortTFActionPerformed(evt);
401 }
402 });
403
404 UrgencyForSearchTF.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
405
406 RefreshForSearchButton.setText("Refresh");
407 RefreshForSearchButton.addActionListener(new java.awt.event.ActionListener() {
408 public void actionPerformed(java.awt.event.ActionEvent evt) {
409 RefreshForSearchButtonActionPerformed(evt);
410 }
411 });
412
413 javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
414 jPanel3.setLayout(jPanel3Layout);
415 jPanel3Layout.setHorizontalGroup(
416 jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
417 .addGroup(jPanel3Layout.createSequentialGroup()
418 .addGap(112, 112, 112)
419 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
420 .addComponent(jLabel16)
421 .addComponent(jLabel13)
422 .addComponent(jLabel12)
423 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
424 .addGroup(jPanel3Layout.createSequentialGroup()
425 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
426 .addComponent(jLabel9)
427 .addComponent(jLabel10))
428 .addGap(104, 104, 104)
429 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
430 .addComponent(LocationForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
431 .addComponent(NameForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
432 .addComponent(ContactForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)
433 .addComponent(UrgencyForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE)
434 .addComponent(DaysRemainingForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 142, javax.swing.GroupLayout.PREFERRED_SIZE)))
435 .addGroup(jPanel3Layout.createSequentialGroup()
436 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
437 .addComponent(EnterButtonSortTF)
438 .addComponent(jLabel11))
439 .addGap(60, 60, 60)
440 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
441 .addComponent(RefreshForSearchButton)
442 .addComponent(PrepTimeForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE))
443 .addGap(2, 2, 2))))
444 .addContainerGap(437, Short.MAX_VALUE))
445 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
446 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
447 .addComponent(jLabel17)
448 .addGap(290, 290, 290))
449 );
450 jPanel3Layout.setVerticalGroup(
451 jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
452 .addGroup(jPanel3Layout.createSequentialGroup()
453 .addContainerGap()
454 .addComponent(jLabel17)
455 .addGap(36, 36, 36)
456 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
457 .addComponent(jLabel9)
458 .addComponent(NameForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
459 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
460 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
461 .addComponent(jLabel10)
462 .addComponent(LocationForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
463 .addGap(18, 18, 18)
464 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
465 .addComponent(jLabel12)
466 .addComponent(ContactForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
467 .addGap(18, 18, 18)
468 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
469 .addComponent(jLabel11)
470 .addComponent(UrgencyForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
471 .addGap(18, 18, 18)
472 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
473 .addComponent(jLabel13)
474 .addComponent(DaysRemainingForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
475 .addGap(18, 18, 18)
476 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
477 .addComponent(jLabel16)
478 .addComponent(PrepTimeForSearchTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
479 .addGap(39, 39, 39)
480 .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
481 .addComponent(EnterButtonSortTF)
482 .addComponent(RefreshForSearchButton))
483 .addContainerGap(224, Short.MAX_VALUE))
484 );
485
486 jTabbedPane1.addTab("Search Tasks", jPanel3);
487
488 fileMenu.setMnemonic('f');
489 fileMenu.setText("File");
490
491 openMenuItem.setMnemonic('o');
492 openMenuItem.setText("Open");
493 fileMenu.add(openMenuItem);
494
495 saveMenuItem.setMnemonic('s');
496 saveMenuItem.setText("Save");
497 fileMenu.add(saveMenuItem);
498
499 saveAsMenuItem.setMnemonic('a');
500 saveAsMenuItem.setText("Save As ...");
501 saveAsMenuItem.setDisplayedMnemonicIndex(5);
502 fileMenu.add(saveAsMenuItem);
503
504 exitMenuItem.setMnemonic('x');
505 exitMenuItem.setText("Exit");
506 exitMenuItem.addActionListener(new java.awt.event.ActionListener() {
507 public void actionPerformed(java.awt.event.ActionEvent evt) {
508 exitMenuItemActionPerformed(evt);
509 }
510 });
511 fileMenu.add(exitMenuItem);
512
513 menuBar.add(fileMenu);
514
515 editMenu.setMnemonic('e');
516 editMenu.setText("Edit");
517
518 cutMenuItem.setMnemonic('t');
519 cutMenuItem.setText("Cut");
520 editMenu.add(cutMenuItem);
521
522 copyMenuItem.setMnemonic('y');
523 copyMenuItem.setText("Copy");
524 editMenu.add(copyMenuItem);
525
526 pasteMenuItem.setMnemonic('p');
527 pasteMenuItem.setText("Paste");
528 editMenu.add(pasteMenuItem);
529
530 deleteMenuItem.setMnemonic('d');
531 deleteMenuItem.setText("Delete");
532 editMenu.add(deleteMenuItem);
533
534 menuBar.add(editMenu);
535
536 helpMenu.setMnemonic('h');
537 helpMenu.setText("Help");
538
539 contentsMenuItem.setMnemonic('c');
540 contentsMenuItem.setText("Contents");
541 helpMenu.add(contentsMenuItem);
542
543 aboutMenuItem.setMnemonic('a');
544 aboutMenuItem.setText("About");
545 helpMenu.add(aboutMenuItem);
546
547 menuBar.add(helpMenu);
548
549 setJMenuBar(menuBar);
550
551 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
552 getContentPane().setLayout(layout);
553 layout.setHorizontalGroup(
554 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
555 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
556 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
557 .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 914, javax.swing.GroupLayout.PREFERRED_SIZE)
558 .addContainerGap())
559 );
560 layout.setVerticalGroup(
561 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
562 .addGroup(layout.createSequentialGroup()
563 .addGap(14, 14, 14)
564 .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 594, javax.swing.GroupLayout.PREFERRED_SIZE)
565 .addContainerGap(80, Short.MAX_VALUE))
566 );
567
568 pack();
569 }// </editor-fold>
570
571 private void exitMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
572 System.exit(0);
573 }
574
575 private void RefreshForSearchButtonActionPerformed(java.awt.event.ActionEvent evt) {
576
577
578 NameForSearchTF.setText("");
579 LocationForSearchTF.setText("");
580 UrgencyForSearchTF.setText("");
581 ContactForSearchTF.setText("");
582 DaysRemainingForSearchTF.setText("");
583 PrepTimeForSearchTF.setText("");
584 }
585
586 private void EnterButtonSortTFActionPerformed(java.awt.event.ActionEvent evt) {
587
588 for(int i = 0; i < tasksList.size(); i++){
589
590
591 if(tasksList.get(i).getTaskName().equals(NameForSearchTF.getText())){
592
593 LocationForSearchTF.setText(tasksList.get(i).getTaskLocation());
594 ContactForSearchTF.setText(tasksList.get(i).getContactName());
595 UrgencyForSearchTF.setText(tasksList.get(i).getTaskUrgency());
596 DaysRemainingForSearchTF.setText(tasksList.get(i).getDaysRemaining() + "");
597 PrepTimeForSearchTF.setText(tasksList.get(i).getPrepTime() + "");
598
599
600 }
601 }
602 JOptionPane.showMessageDialog(this,"Task Successfully Identified");
603 }
604
605 private void EnterButtonSortTFMouseReleased(java.awt.event.MouseEvent evt) {
606
607 }
608
609 private void DataTableSelectionActionPerformed(java.awt.event.ActionEvent evt) {
610
611 int selectedIndex = DataTableSelection.getSelectedIndex();
612
613 if(selectedIndex == 1){
614
615 SortAndSearch urgencySort = new SortAndSearch();
616 urgencySort.sortByUrgency(tasksList);
617 for(int row = 0; row < tasksList.size(); row++){
618 DataTableTF.setValueAt(tasksList.get(row).getTaskName(), row, 0);
619 DataTableTF.setValueAt(tasksList.get(row).getTaskLocation(), row, 1);
620 DataTableTF.setValueAt(tasksList.get(row).getContactName(), row, 2);
621 DataTableTF.setValueAt(tasksList.get(row).getTaskUrgency(), row, 3);
622 DataTableTF.setValueAt(tasksList.get(row).getDaysRemaining(), row, 4);
623 DataTableTF.setValueAt(tasksList.get(row).getPrepTime(), row, 5);
624 }
625 JOptionPane.showMessageDialog(this,"Tasks Organized By Urgency");
626 }else if(selectedIndex == 2){
627 SortAndSearch daysRemainingSort = new SortAndSearch();
628 daysRemainingSort.sortByDaysRemaining(tasksList);
629 for(int row = 0; row < tasksList.size(); row++){
630 DataTableTF.setValueAt(tasksList.get(row).getTaskName(), row, 0);
631 DataTableTF.setValueAt(tasksList.get(row).getTaskLocation(), row, 1);
632 DataTableTF.setValueAt(tasksList.get(row).getContactName(), row, 2);
633 DataTableTF.setValueAt(tasksList.get(row).getTaskUrgency(), row, 3);
634 DataTableTF.setValueAt(tasksList.get(row).getDaysRemaining(), row, 4);
635 DataTableTF.setValueAt(tasksList.get(row).getPrepTime(), row, 5);
636 }
637 JOptionPane.showMessageDialog(this,"Tasks Organized By Days Remaining");
638 }else if(selectedIndex == 3){
639 SortAndSearch prepTimeSort = new SortAndSearch();
640 prepTimeSort.sortByPrepTime(tasksList);
641 for(int row = 0; row < tasksList.size(); row++){
642 DataTableTF.setValueAt(tasksList.get(row).getTaskName(), row, 0);
643 DataTableTF.setValueAt(tasksList.get(row).getTaskLocation(), row, 1);
644 DataTableTF.setValueAt(tasksList.get(row).getContactName(), row, 2);
645 DataTableTF.setValueAt(tasksList.get(row).getTaskUrgency(), row, 3);
646 DataTableTF.setValueAt(tasksList.get(row).getDaysRemaining(), row, 4);
647 DataTableTF.setValueAt(tasksList.get(row).getPrepTime(), row, 5);
648 }
649 JOptionPane.showMessageDialog(this,"Tasks Organized By Urgency");
650 }else if(selectedIndex == 0){
651 for(int i = 0; i < DataTableTF.getRowCount(); i++){
652 DataTableTF.getModel().setValueAt(false, i, 0);
653
654 }
655
656 }
657 }
658
659 private void DataTableSelectionItemStateChanged(java.awt.event.ItemEvent evt) {
660
661 int selectedIndex = DataTableSelection.getSelectedIndex();
662 if(selectedIndex == 1){
663 SortAndSearch urgencySort = new SortAndSearch();
664 urgencySort.sortByUrgency(tasksList);
665 for(int row = 0; row < tasksList.size(); row++){
666 DataTableTF.setValueAt(tasksList.get(row).getTaskName(), row, 0);
667 DataTableTF.setValueAt(tasksList.get(row).getTaskLocation(), row, 1);
668 DataTableTF.setValueAt(tasksList.get(row).getContactName(), row, 2);
669 DataTableTF.setValueAt(tasksList.get(row).getTaskUrgency(), row, 3);
670 DataTableTF.setValueAt(tasksList.get(row).getDaysRemaining(), row, 4);
671 DataTableTF.setValueAt(tasksList.get(row).getPrepTime(), row, 5);
672
673 }
674 }else if(selectedIndex == 2){
675 SortAndSearch daysRemainingSort = new SortAndSearch();
676 daysRemainingSort.sortByDaysRemaining(tasksList);
677 for(int row = 0; row < tasksList.size(); row++){
678 DataTableTF.setValueAt(tasksList.get(row).getTaskName(), row, 0);
679 DataTableTF.setValueAt(tasksList.get(row).getTaskLocation(), row, 1);
680 DataTableTF.setValueAt(tasksList.get(row).getContactName(), row, 2);
681 DataTableTF.setValueAt(tasksList.get(row).getTaskUrgency(), row, 3);
682 DataTableTF.setValueAt(tasksList.get(row).getDaysRemaining(), row, 4);
683 DataTableTF.setValueAt(tasksList.get(row).getPrepTime(), row, 5);
684 }
685 }else if(selectedIndex == 3){
686 SortAndSearch prepTimeSort = new SortAndSearch();
687 prepTimeSort.sortByPrepTime(tasksList);
688 for(int row = 0; row < tasksList.size(); row++){
689 DataTableTF.setValueAt(tasksList.get(row).getTaskName(), row, 0);
690 DataTableTF.setValueAt(tasksList.get(row).getTaskLocation(), row, 1);
691 DataTableTF.setValueAt(tasksList.get(row).getContactName(), row, 2);
692 DataTableTF.setValueAt(tasksList.get(row).getTaskUrgency(), row, 3);
693 DataTableTF.setValueAt(tasksList.get(row).getDaysRemaining(), row, 4);
694 DataTableTF.setValueAt(tasksList.get(row).getPrepTime(), row, 5);
695 }
696 }else if(selectedIndex == 0){
697 for(int i = 0; i < DataTableTF.getRowCount(); i++){
698 DataTableTF.getModel().setValueAt(false, i, 0);
699
700 }
701
702 }else if(selectedIndex == 4){
703 for (int i = 0; i < DataTableTF.getRowCount(); i++) {
704 DataTableTF.getModel().setValueAt("", i, 0);
705 }
706 }
707 }
708
709 private void RemoveTaskButtonActionPerformed(java.awt.event.ActionEvent evt) {
710
711 https://stackoverflow.com/questions/655325/how-do-you-remove-selected-rows-from-a-jtable
712
713 DefaultTableModel model = (DefaultTableModel) this.DataTableTF.getModel();
714 int[] rows = DataTableTF.getSelectedRows();
715 for(int i=0;i<rows.length;i++){
716 model.removeRow(rows[i]-i);
717 }
718
719 tasksList = new LinkedList<Task>();
720 JOptionPane.showMessageDialog(this,"Removed Task Successfully");
721 }
722
723 private void ClearTableButtonActionPerformed(java.awt.event.ActionEvent evt) {
724
725 https://stackoverflow.com/questions/3879610/how-to-clear-contents-of-a-jtable
726
727 for (int i = 0; i < DataTableTF.getRowCount(); i++) {
728 for(int j = 0; j < DataTableTF.getColumnCount(); j++) {
729 DataTableTF.setValueAt("", i, j);
730 }
731 }
732
733 tasksList = new LinkedList<Task>();
734 JOptionPane.showMessageDialog(this,"Table Cleared Successfully");
735 }
736
737 private void ClearTableButtonMouseClicked(java.awt.event.MouseEvent evt) {
738
739 }
740
741 private void RefreshButtonTFActionPerformed(java.awt.event.ActionEvent evt) {
742
743 for(int row = 0; row < tasksList.size(); row++){
744 DataTableTF.setValueAt(tasksList.get(row).getTaskName(), row, 0);
745 DataTableTF.setValueAt(tasksList.get(row).getTaskLocation(), row, 1);
746 DataTableTF.setValueAt(tasksList.get(row).getContactName(), row, 2);
747 DataTableTF.setValueAt(tasksList.get(row).getTaskUrgency(), row, 3);
748 DataTableTF.setValueAt(tasksList.get(row).getDaysRemaining(), row, 4);
749 DataTableTF.setValueAt(tasksList.get(row).getPrepTime(), row, 5);
750 }
751 }
752
753 private void RefreshButtonTFMouseReleased(java.awt.event.MouseEvent evt) {
754
755 }
756
757 private void EnterDataButtonActionPerformed(java.awt.event.ActionEvent evt) {
758
759
760 Task task = new Task(TaskNameTF.getText(), TaskLocationTF.getText(), UrgencyTF.getText(),
761 ContactGroupTF.getText(), DaysRemainingTF.getText(), TimeToWorkTF.getText());
762
763
764 tasksList.add(task);
765 TaskNameTF.setText("");
766 TaskLocationTF.setText("");
767 UrgencyTF.setText("");
768 ContactGroupTF.setText("");
769 DaysRemainingTF.setText("");
770 TimeToWorkTF.setText("");
771
772 JOptionPane.showMessageDialog(this,"Added Task Successfully");
773 }
774
775 private void EnterDataButtonMouseReleased(java.awt.event.MouseEvent evt) {
776
777 }
778
779 private void TaskNameTFActionPerformed(java.awt.event.ActionEvent evt) {
780
781 }
782
783 private void DataTableSelectionMouseClicked(java.awt.event.MouseEvent evt) {
784
785 for (int i = 0; i < DataTableTF.getRowCount(); i++) {
786 DataTableTF.getModel().setValueAt(false, i, 0);
787 }
788 }
789
790
791 @param args
792
793 public static void main(String args[]) {
794
795
796
797 http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
798
799 try {
800 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
801 if ("Nimbus".equals(info.getName())) {
802 javax.swing.UIManager.setLookAndFeel(info.getClassName());
803 break;
804 }
805 }
806 } catch (ClassNotFoundException ex) {
807 java.util.logging.Logger.getLogger(MainGUI_ClientDB.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
808 } catch (InstantiationException ex) {
809 java.util.logging.Logger.getLogger(MainGUI_ClientDB.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
810 } catch (IllegalAccessException ex) {
811 java.util.logging.Logger.getLogger(MainGUI_ClientDB.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
812 } catch (javax.swing.UnsupportedLookAndFeelException ex) {
813 java.util.logging.Logger.getLogger(MainGUI_ClientDB.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
814 }
815
816
817
818 java.awt.EventQueue.invokeLater(new Runnable() {
819 public void run() {
820 new MainGUI_ClientDB().setVisible(true);
821 }
822 });
823 }
824
825 // Variables declaration - do not modify
826 private javax.swing.JButton ClearTableButton;
827 private javax.swing.JTextField ContactForSearchTF;
828 private javax.swing.JTextField ContactGroupTF;
829 private javax.swing.JComboBox<String> DataTableSelection;
830 private javax.swing.JTable DataTableTF;
831 private javax.swing.JTextField DaysRemainingForSearchTF;
832 private javax.swing.JTextField DaysRemainingTF;
833 private javax.swing.JButton EnterButtonSortTF;
834 private javax.swing.JButton EnterDataButton;
835 private javax.swing.JTextField LocationForSearchTF;
836 private javax.swing.JTextField NameForSearchTF;
837 private javax.swing.JTextField PrepTimeForSearchTF;
838 private javax.swing.JButton RefreshButtonTF;
839 private javax.swing.JButton RefreshForSearchButton;
840 private javax.swing.JButton RemoveTaskButton;
841 private javax.swing.JTextField TaskLocationTF;
842 private javax.swing.JTextField TaskNameTF;
843 private javax.swing.JTextField TimeToWorkTF;
844 private javax.swing.JTextField UrgencyForSearchTF;
845 private javax.swing.JTextField UrgencyTF;
846 private javax.swing.JMenuItem aboutMenuItem;
847 private javax.swing.JMenuItem contentsMenuItem;
848 private javax.swing.JMenuItem copyMenuItem;
849 private javax.swing.JMenuItem cutMenuItem;
850 private javax.swing.JMenuItem deleteMenuItem;
851 private javax.swing.JMenu editMenu;
852 private javax.swing.JMenuItem exitMenuItem;
853 private javax.swing.JMenu fileMenu;
854 private javax.swing.JMenu helpMenu;
855 private javax.swing.JLabel jLabel1;
856 private javax.swing.JLabel jLabel10;
857 private javax.swing.JLabel jLabel11;
858 private javax.swing.JLabel jLabel12;
859 private javax.swing.JLabel jLabel13;
860 private javax.swing.JLabel jLabel15;
861 private javax.swing.JLabel jLabel16;
862 private javax.swing.JLabel jLabel17;
863 private javax.swing.JLabel jLabel2;
864 private javax.swing.JLabel jLabel3;
865 private javax.swing.JLabel jLabel4;
866 private javax.swing.JLabel jLabel5;
867 private javax.swing.JLabel jLabel6;
868 private javax.swing.JLabel jLabel7;
869 private javax.swing.JLabel jLabel8;
870 private javax.swing.JLabel jLabel9;
871 private javax.swing.JPanel jPanel1;
872 private javax.swing.JPanel jPanel2;
873 private javax.swing.JPanel jPanel3;
874 private javax.swing.JRadioButton jRadioButton3;
875 private javax.swing.JScrollPane jScrollPane1;
876 private javax.swing.JTabbedPane jTabbedPane1;
877 private javax.swing.JMenuBar menuBar;
878 private javax.swing.JMenuItem openMenuItem;
879 private javax.swing.JMenuItem pasteMenuItem;
880 private javax.swing.JMenuItem saveAsMenuItem;
881 private javax.swing.JMenuItem saveMenuItem;
882 // End of variables declaration
883
884 }
885