/Users/johnr/Desktop/IA_14_-_Stage_P_Upload_all_2021-04-08/IBCompSciInternalAssessment Lara April 6th/src/ibcompsciinternalassessment/TableOfRequests.java |
1
2
3
4
5
6 package ibcompsciinternalassessment;
7
8 import java.io.IOException;
9 import java.util.ArrayList;
10 import java.util.logging.Level;
11 import java.util.logging.Logger;
12
13
14
15 @author
16
17 public class TableOfRequests extends javax.swing.JFrame {
18
19
20
21
22 private ArrayList <Contribution> contributions;
23 private Contribution[] recommendationList = new Contribution[3];
24 private final ExportData exporter = new ExportData();
25 private final SortingSearchingComplex s = new SortingSearchingComplex();
26
27 public TableOfRequests() {
28 initComponents();
29 sortErrorMsg.setVisible(false);
30 searchErrorMsg.setVisible(false);
31 sortingButtonGroup.add(sortNameButton);
32 sortingButtonGroup.add(sortGeoButton);
33 sortingButtonGroup.add(sortAmountButton);
34 searchNotFound.setVisible(false);
35 }
36
37
38 This method is called from within the constructor to initialize the form.
39
40
41
42 @SuppressWarnings("unchecked")
43 // <editor-fold defaultstate="collapsed" desc="Generated Code">
44 private void initComponents() {
45
46 sortingButtonGroup = new javax.swing.ButtonGroup();
47 jScrollPane1 = new javax.swing.JScrollPane();
48 contributionTable = new javax.swing.JTable();
49 refreshButton = new javax.swing.JButton();
50 sortButton = new javax.swing.JButton();
51 jScrollPane2 = new javax.swing.JScrollPane();
52 recommendedTable = new javax.swing.JTable();
53 jLabel1 = new javax.swing.JLabel();
54 jLabel2 = new javax.swing.JLabel();
55 ExportButton = new javax.swing.JButton();
56 sortNameButton = new javax.swing.JRadioButton();
57 sortAmountButton = new javax.swing.JRadioButton();
58 sortGeoButton = new javax.swing.JRadioButton();
59 CloseTableButton = new javax.swing.JButton();
60 sortErrorMsg = new javax.swing.JLabel();
61 searchKeyTF = new javax.swing.JTextField();
62 nameSearchButton = new javax.swing.JButton();
63 countrySearchButton = new javax.swing.JButton();
64 jSeparator1 = new javax.swing.JSeparator();
65 jSeparator2 = new javax.swing.JSeparator();
66 searchErrorMsg = new javax.swing.JLabel();
67 searchNotFound = new javax.swing.JLabel();
68 saveChangeButton = new javax.swing.JButton();
69
70 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
71
72 contributionTable.setModel(new javax.swing.table.DefaultTableModel(
73 new Object [][] {
74 {null, null, null, null, null, null, new Boolean(false), null, null, null, null, null, null, null},
75 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
76 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
77 {null, null, null, null, null, null, new Boolean(false), null, null, null, null, null, null, null},
78 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
79 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
80 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
81 {null, null, null, null, null, null, new Boolean(false), null, null, null, null, null, null, null},
82 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
83 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
84 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
85 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
86 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
87 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
88 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
89 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
90 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
91 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
92 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
93 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
94 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
95 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
96 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
97 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
98 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
99 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
100 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
101 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
102 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
103 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
104 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
105 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
106 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
107 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
108 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
109 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
110 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
111 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
112 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
113 {null, null, null, null, null, null, null, null, null, null, null, null, null, null}
114 },
115 new String [] {
116 "Name", "Amount", "Due Diligence", "DD Comments", "Budget year", "Budget Comments", "Retroactivity", "Retro. Comments", "Geo Interest", "Geo comments", "Thematic Interest", "Reporting", "Visibility", "Other"
117 }
118 ) {
119 Class[] types = new Class [] {
120 java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
121 };
122
123 public Class getColumnClass(int columnIndex) {
124 return types [columnIndex];
125 }
126 });
127 contributionTable.setGridColor(new java.awt.Color(0, 0, 0));
128 contributionTable.setShowGrid(true);
129 jScrollPane1.setViewportView(contributionTable);
130
131 refreshButton.setFont(new java.awt.Font("Malayalam MN", 0, 18)); // NOI18N
132 refreshButton.setText("Refresh");
133 refreshButton.addMouseListener(new java.awt.event.MouseAdapter() {
134 public void mouseReleased(java.awt.event.MouseEvent evt) {
135 refreshButtonMouseReleased(evt);
136 }
137 });
138
139 sortButton.setText("Sort");
140 sortButton.addMouseListener(new java.awt.event.MouseAdapter() {
141 public void mouseReleased(java.awt.event.MouseEvent evt) {
142 sortButtonMouseReleased(evt);
143 }
144 });
145
146 recommendedTable.setBorder(javax.swing.BorderFactory.createEtchedBorder());
147 recommendedTable.setModel(new javax.swing.table.DefaultTableModel(
148 new Object [][] {
149 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
150 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
151 {null, null, null, null, null, null, null, null, null, null, null, null, null, null},
152 {null, null, null, null, null, null, null, null, null, null, null, null, null, null}
153 },
154 new String [] {
155 "Name", "Amount", "Due Diligence", "DD Comments", "Budget", "Budget Comments", "Retroactivity", "Retro. Comments", "Geo Interest", "Geo Comments", "Thematic Interest", "Reporting", "Visibilty", "Other"
156 }
157 ) {
158 Class[] types = new Class [] {
159 java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
160 };
161
162 public Class getColumnClass(int columnIndex) {
163 return types [columnIndex];
164 }
165 });
166 recommendedTable.setGridColor(new java.awt.Color(51, 51, 51));
167 recommendedTable.setShowGrid(true);
168 jScrollPane2.setViewportView(recommendedTable);
169
170 jLabel1.setFont(new java.awt.Font("Malayalam MN", 1, 18)); // NOI18N
171 jLabel1.setText("Recommended Contributions");
172
173 jLabel2.setFont(new java.awt.Font("Malayalam MN", 1, 36)); // NOI18N
174 jLabel2.setText("All Contributions");
175
176 ExportButton.setFont(new java.awt.Font("Lao MN", 0, 24)); // NOI18N
177 ExportButton.setText("Export to Excel");
178 ExportButton.addMouseListener(new java.awt.event.MouseAdapter() {
179 public void mouseReleased(java.awt.event.MouseEvent evt) {
180 ExportButtonMouseReleased(evt);
181 }
182 });
183
184 sortNameButton.setText("by name of donor");
185
186 sortAmountButton.setText("by amount estimated");
187
188 sortGeoButton.setText("by geographical interest");
189
190 CloseTableButton.setText("X close");
191 CloseTableButton.addMouseListener(new java.awt.event.MouseAdapter() {
192 public void mouseReleased(java.awt.event.MouseEvent evt) {
193 CloseTableButtonMouseReleased(evt);
194 }
195 });
196
197 sortErrorMsg.setForeground(new java.awt.Color(255, 0, 0));
198 sortErrorMsg.setText("*please select a sort method");
199
200 nameSearchButton.setText("Search for name");
201 nameSearchButton.addMouseListener(new java.awt.event.MouseAdapter() {
202 public void mouseReleased(java.awt.event.MouseEvent evt) {
203 nameSearchButtonMouseReleased(evt);
204 }
205 });
206
207 countrySearchButton.setText("Search for country");
208 countrySearchButton.addMouseListener(new java.awt.event.MouseAdapter() {
209 public void mouseReleased(java.awt.event.MouseEvent evt) {
210 countrySearchButtonMouseReleased(evt);
211 }
212 });
213
214 jSeparator1.setOrientation(javax.swing.SwingConstants.VERTICAL);
215
216 jSeparator2.setOrientation(javax.swing.SwingConstants.VERTICAL);
217
218 searchErrorMsg.setForeground(new java.awt.Color(255, 0, 0));
219 searchErrorMsg.setText("*please enter the key term you are searching for");
220
221 searchNotFound.setFont(new java.awt.Font("Lucida Grande", 0, 14)); // NOI18N
222 searchNotFound.setForeground(new java.awt.Color(255, 0, 0));
223 searchNotFound.setText("CONTRIBUTION NOT FOUND");
224
225 saveChangeButton.setBackground(new java.awt.Color(204, 255, 255));
226 saveChangeButton.setFont(new java.awt.Font("Malayalam MN", 0, 18)); // NOI18N
227 saveChangeButton.setText("Save Changes");
228 saveChangeButton.addMouseListener(new java.awt.event.MouseAdapter() {
229 public void mouseReleased(java.awt.event.MouseEvent evt) {
230 saveChangeButtonMouseReleased(evt);
231 }
232 });
233
234 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
235 getContentPane().setLayout(layout);
236 layout.setHorizontalGroup(
237 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
238 .addGroup(layout.createSequentialGroup()
239 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
240 .addGroup(layout.createSequentialGroup()
241 .addGap(16, 16, 16)
242 .addComponent(saveChangeButton, javax.swing.GroupLayout.PREFERRED_SIZE, 146, javax.swing.GroupLayout.PREFERRED_SIZE))
243 .addGroup(layout.createSequentialGroup()
244 .addGap(30, 30, 30)
245 .addComponent(refreshButton)))
246 .addGap(18, 18, 18)
247 .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
248 .addGap(44, 44, 44)
249 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
250 .addComponent(countrySearchButton)
251 .addComponent(nameSearchButton, javax.swing.GroupLayout.PREFERRED_SIZE, 136, javax.swing.GroupLayout.PREFERRED_SIZE))
252 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
253 .addGroup(layout.createSequentialGroup()
254 .addGap(3, 3, 3)
255 .addComponent(searchErrorMsg))
256 .addGroup(layout.createSequentialGroup()
257 .addGap(33, 33, 33)
258 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
259 .addComponent(searchNotFound, javax.swing.GroupLayout.PREFERRED_SIZE, 217, javax.swing.GroupLayout.PREFERRED_SIZE)
260 .addComponent(searchKeyTF, javax.swing.GroupLayout.PREFERRED_SIZE, 181, javax.swing.GroupLayout.PREFERRED_SIZE))))
261 .addGap(40, 40, 40)
262 .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
263 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
264 .addGroup(layout.createSequentialGroup()
265 .addGap(34, 34, 34)
266 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
267 .addGroup(layout.createSequentialGroup()
268 .addGap(138, 138, 138)
269 .addComponent(sortGeoButton)
270 .addGap(405, 405, 405))
271 .addGroup(layout.createSequentialGroup()
272 .addComponent(sortButton)
273 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
274 .addComponent(sortNameButton)
275 .addGap(18, 18, 18)
276 .addComponent(sortAmountButton)
277 .addGap(295, 295, 295))))
278 .addGroup(layout.createSequentialGroup()
279 .addGap(156, 156, 156)
280 .addComponent(sortErrorMsg)
281 .addGap(0, 0, Short.MAX_VALUE))))
282 .addGroup(layout.createSequentialGroup()
283 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
284 .addGroup(layout.createSequentialGroup()
285 .addGap(18, 18, 18)
286 .addComponent(jLabel1))
287 .addGroup(layout.createSequentialGroup()
288 .addContainerGap()
289 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
290 .addGroup(layout.createSequentialGroup()
291 .addComponent(CloseTableButton)
292 .addGap(348, 348, 348)
293 .addComponent(jLabel2)
294 .addGap(77, 77, 77)
295 .addComponent(ExportButton, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE))
296 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
297 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 1431, Short.MAX_VALUE)
298 .addComponent(jScrollPane2)))))
299 .addGap(0, 0, Short.MAX_VALUE))
300 );
301 layout.setVerticalGroup(
302 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
303 .addGroup(layout.createSequentialGroup()
304 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
305 .addGroup(layout.createSequentialGroup()
306 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
307 .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
308 .addContainerGap()
309 .addComponent(CloseTableButton)
310 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
311 .addGroup(layout.createSequentialGroup()
312 .addGap(16, 16, 16)
313 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
314 .addComponent(ExportButton)
315 .addComponent(jLabel2))
316 .addGap(28, 28, 28)))
317 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 404, javax.swing.GroupLayout.PREFERRED_SIZE)
318 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
319 .addGroup(layout.createSequentialGroup()
320 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
321 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
322 .addGroup(layout.createSequentialGroup()
323 .addComponent(jSeparator2)
324 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
325 .addGroup(layout.createSequentialGroup()
326 .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
327 .addGap(0, 0, Short.MAX_VALUE))
328 .addGroup(layout.createSequentialGroup()
329 .addGap(14, 14, 14)
330 .addComponent(refreshButton, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE)
331 .addGap(18, 18, 18)
332 .addComponent(saveChangeButton, javax.swing.GroupLayout.PREFERRED_SIZE, 44, javax.swing.GroupLayout.PREFERRED_SIZE)
333 .addGap(38, 38, 38))))
334 .addGroup(layout.createSequentialGroup()
335 .addGap(23, 23, 23)
336 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
337 .addGroup(layout.createSequentialGroup()
338 .addGap(12, 12, 12)
339 .addComponent(searchKeyTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
340 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
341 .addComponent(searchNotFound, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
342 .addGap(19, 19, 19)
343 .addComponent(searchErrorMsg))
344 .addGroup(layout.createSequentialGroup()
345 .addComponent(countrySearchButton)
346 .addGap(18, 18, 18)
347 .addComponent(nameSearchButton)))
348 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
349 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
350 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
351 .addComponent(sortErrorMsg)
352 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
353 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
354 .addComponent(sortButton)
355 .addComponent(sortNameButton)
356 .addComponent(sortAmountButton))
357 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
358 .addComponent(sortGeoButton)
359 .addGap(43, 43, 43)))
360 .addComponent(jLabel1)
361 .addGap(8, 8, 8)
362 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
363 .addGap(14, 14, 14))
364 );
365
366 pack();
367 }// </editor-fold>
368
369 private void refreshButtonMouseReleased(java.awt.event.MouseEvent evt) {
370
371 refreshTime();
372
373
374 System.out.println("starting complex sort");
375 recommendationList = s.ComplexSortRecs(contributions);
376
377 System.out.println("ending complex sort" + recommendationList[0].getDonorName());
378 for (int i = 0; i<recommendationList.length;i++) {
379 if(!recommendationList[i].isEmpty())
380 System.out.println(recommendationList[i].getDonorName() + "");
381 else
382 System.out.println("the array was empty");
383 }
384 refreshSmallList();
385 sortErrorMsg.setVisible(false);
386 searchNotFound.setVisible(false);
387 searchErrorMsg.setVisible(false);
388
389 }
390
391 private void sortButtonMouseReleased(java.awt.event.MouseEvent evt) {
392
393 sortErrorMsg.setVisible(false);
394 if(sortNameButton.isSelected()){
395 s.sortByName(contributions);
396 }
397 else if(sortAmountButton.isSelected()){
398 s.sortByAmount(contributions);
399 }
400 else if(sortGeoButton.isSelected()){
401 s.sortByCountry(contributions, Contribution.getNumberOfNonEarmarkedForms());
402 }
403 else
404 sortErrorMsg.setVisible(true);
405
406 refreshTime();
407 sortNameButton.setSelected(false);
408 sortGeoButton.setSelected(false);
409 sortAmountButton.setSelected(false);
410
411
412 }
413
414 private void CloseTableButtonMouseReleased(java.awt.event.MouseEvent evt) {
415 setVisible(false);
416 }
417
418 private void countrySearchButtonMouseReleased(java.awt.event.MouseEvent evt) {
419 int index = -9;
420 if(searchKeyTF.getText().equals(""))
421 searchErrorMsg.setVisible(true);
422 else{
423 searchErrorMsg.setVisible(false);
424 s.sortByCountry(contributions, Contribution.getNumberOfNonEarmarkedForms());
425 index = s.searchByCountry(contributions, Contribution.getNumberOfNonEarmarkedForms(), searchKeyTF.getText());
426 afterSearchShowingAndHidingList(index);
427 searchKeyTF.setText("");
428
429 }
430
431 }
432
433 private void nameSearchButtonMouseReleased(java.awt.event.MouseEvent evt) {
434 int index = -9;
435 if(searchKeyTF.getText().equals(""))
436 searchErrorMsg.setVisible(true);
437 else{
438 searchErrorMsg.setVisible(false);
439 s.sortByName(contributions);
440 index = s.searchByName(contributions, searchKeyTF.getText());
441 afterSearchShowingAndHidingList(index);
442 searchKeyTF.setText("");
443 }
444 System.out.println("index is"+index);
445
446
447 }
448
449 private void saveChangeButtonMouseReleased(java.awt.event.MouseEvent evt) {
450 Contribution newCont;
451 int count = 0;
452 for(int row = 0; row < contributions.size(); row++){
453
454 if(contributionTable.getValueAt(row, 8).equals("non-earmarked contribution")){
455 newCont = new NonEarmarkedContribution();
456 System.out.println("non-earmarked contrib save");
457 }
458 else{
459 newCont = new EarmarkedContribution();
460 System.out.println("earmarked contrib save");
461 }
462
463
464 newCont.setDonorName(contributionTable.getModel().getValueAt(row, 0)+"");
465 newCont.setAmountEstimated(contributionTable.getModel().getValueAt(row, 1)+"");
466
467 DateSelfMade datePlaceholder = new DateSelfMade(contributionTable.getModel().getValueAt(row, 2)+"");
468 newCont.setDueDiligence(datePlaceholder);
469
470 newCont.setdDComments(contributionTable.getModel().getValueAt(row, 3)+"");
471
472 datePlaceholder.setYearRange(contributionTable.getModel().getValueAt(row, 4)+"");
473 newCont.setBudgetYear(datePlaceholder);
474
475 newCont.setbYComments(contributionTable.getModel().getValueAt(row, 5)+"");
476
477 boolean retroActive = (Boolean)contributionTable.getValueAt(row, 6);
478 newCont.setIsRetroactivityAccepted(retroActive);
479
480 newCont.setRetroComments(contributionTable.getModel().getValueAt(row, 7)+"");
481
482 newCont.setGeoInterestName(contributionTable.getModel().getValueAt(row, 8)+"");
483
484 newCont.setGeoComments(contributionTable.getModel().getValueAt(row, 9)+"");
485
486 newCont.setThematicInterest(contributionTable.getModel().getValueAt(row, 10)+"");
487
488 newCont.setReportingRequirements(contributionTable.getModel().getValueAt(row, 11)+"");
489
490 newCont.setVisibilityRequirements(contributionTable.getModel().getValueAt(row, 11)+"");
491
492 newCont.setOtherComments(contributionTable.getModel().getValueAt(row, 13)+"");
493
494 contributions.set(count, newCont);
495 count++;
496 }
497 refreshTime();
498
499 }
500
501 private void ExportButtonMouseReleased(java.awt.event.MouseEvent evt) {
502 try {
503 exporter.exportToExcel(contributions);
504 } catch (IOException ex) {
505 Logger.getLogger(TableOfRequests.class.getName()).log(Level.SEVERE, null, ex);
506 System.out.println("fatal error with the exporter");
507 }
508 }
509
510 public void receiveContributions(ArrayList <Contribution> contributions){
511 this.contributions = contributions;
512 }
513
514
515 private void refreshSmallList(){
516 for(int i = 0; i<3;i++){
517 if(!recommendationList[i].getDonorName().equals("N/A")){
518 recommendedTable.setValueAt(recommendationList[i].getDonorName(), i, 0);
519 recommendedTable.setValueAt(recommendationList[i].getAmountEstimated(), i, 1);
520 recommendedTable.setValueAt(recommendationList[i].getDueDiligence(),i , 2);
521 recommendedTable.setValueAt(recommendationList[i].getdDComments(), i, 3);
522 recommendedTable.setValueAt(recommendationList[i].getBudgetYear(), i, 4);
523 recommendedTable.setValueAt(recommendationList[i].getbYComments(), i, 5);
524 recommendedTable.setValueAt(recommendationList[i].isIsRetroactivityAccepted(), i, 6);
525 recommendedTable.setValueAt(recommendationList[i].getRetroComments(), i, 7);
526 recommendedTable.setValueAt(recommendationList[i].getGeoInterestName(), i, 8);
527 recommendedTable.setValueAt(recommendationList[i].getGeoComments(), i, 9);
528 recommendedTable.setValueAt(recommendationList[i].getThematicInterest(), i, 10);
529 recommendedTable.setValueAt(recommendationList[i].getReportingRequirements(), i, 11);
530 recommendedTable.setValueAt(recommendationList[i].getVisibilityRequirements(), i, 12);
531 recommendedTable.setValueAt(recommendationList[i].getOtherComments(), i, 13);
532 }
533 }
534 }
535
536 private void afterSearchShowingAndHidingList(int index){
537 if(index>-1){
538 searchNotFound.setVisible(false);
539 contributionTable.setValueAt(contributions.get(index).getDonorName(), 0, 0);
540 contributionTable.setValueAt(contributions.get(index).getAmountEstimated(), 0, 1);
541 contributionTable.setValueAt(contributions.get(index).getDueDiligence(), 0, 2);
542 contributionTable.setValueAt(contributions.get(index).getdDComments(), 0, 3);
543 contributionTable.setValueAt(contributions.get(index).getBudgetYear(), 0, 4);
544 contributionTable.setValueAt(contributions.get(index).getbYComments(), 0, 5);
545 contributionTable.setValueAt(contributions.get(index).isIsRetroactivityAccepted(), 0, 6);
546 contributionTable.setValueAt(contributions.get(index).getRetroComments(), 0, 7);
547 contributionTable.setValueAt(contributions.get(index).getGeoInterestName(), 0, 8);
548 contributionTable.setValueAt(contributions.get(index).getGeoComments(), 0, 9);
549 contributionTable.setValueAt(contributions.get(index).getThematicInterest(), 0, 10);
550 contributionTable.setValueAt(contributions.get(index).getReportingRequirements(), 0, 11);
551 contributionTable.setValueAt(contributions.get(index).getVisibilityRequirements(), 0, 12);
552 contributionTable.setValueAt(contributions.get(index).getOtherComments(), 0, 13);
553
554 for(int row = 1; row < contributions.size(); row++){
555 contributionTable.setValueAt("", row, 0);
556 contributionTable.setValueAt("", row, 1);
557 contributionTable.setValueAt("", row, 2);
558 contributionTable.setValueAt("", row, 3);
559 contributionTable.setValueAt("", row, 4);
560 contributionTable.setValueAt("", row, 5);
561 contributionTable.setValueAt(false, row, 6);
562 contributionTable.setValueAt("", row, 7);
563 contributionTable.setValueAt("", row, 8);
564 contributionTable.setValueAt("", row, 9);
565 contributionTable.setValueAt("", row, 10);
566 contributionTable.setValueAt("", row, 11);
567 contributionTable.setValueAt("", row, 12);
568 contributionTable.setValueAt("", row, 13);
569
570 }
571 }
572 else
573 searchNotFound.setVisible(true);
574
575 }
576
577 private void refreshTime(){
578 for(int row = 0; row < contributions.size(); row++){
579 contributionTable.setValueAt(contributions.get(row).getDonorName(), row, 0);
580 contributionTable.setValueAt(contributions.get(row).getAmountEstimated(), row, 1);
581 contributionTable.setValueAt(contributions.get(row).getDueDiligence(), row, 2);
582 contributionTable.setValueAt(contributions.get(row).getdDComments(), row, 3);
583 contributionTable.setValueAt(contributions.get(row).getBudgetYear(), row, 4);
584 contributionTable.setValueAt(contributions.get(row).getbYComments(), row, 5);
585 contributionTable.setValueAt(contributions.get(row).isIsRetroactivityAccepted(), row, 6);
586 contributionTable.setValueAt(contributions.get(row).getRetroComments(), row, 7);
587 contributionTable.setValueAt(contributions.get(row).getGeoInterestName(), row, 8);
588 contributionTable.setValueAt(contributions.get(row).getGeoComments(), row, 9);
589 contributionTable.setValueAt(contributions.get(row).getThematicInterest(), row, 10);
590 contributionTable.setValueAt(contributions.get(row).getReportingRequirements(), row, 11);
591 contributionTable.setValueAt(contributions.get(row).getVisibilityRequirements(), row, 12);
592 contributionTable.setValueAt(contributions.get(row).getOtherComments(), row, 13);
593
594 }
595 }
596
597
598 @param args
599
600 public static void main(String args[]) {
601
602
603
604
605
606 try {
607 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
608 if ("Nimbus".equals(info.getName())) {
609 javax.swing.UIManager.setLookAndFeel(info.getClassName());
610 break;
611 }
612 }
613 } catch (ClassNotFoundException ex) {
614 java.util.logging.Logger.getLogger(TableOfRequests.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
615 } catch (InstantiationException ex) {
616 java.util.logging.Logger.getLogger(TableOfRequests.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
617 } catch (IllegalAccessException ex) {
618 java.util.logging.Logger.getLogger(TableOfRequests.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
619 } catch (javax.swing.UnsupportedLookAndFeelException ex) {
620 java.util.logging.Logger.getLogger(TableOfRequests.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
621 }
622
623
624
625 java.awt.EventQueue.invokeLater(new Runnable() {
626 public void run() {
627 new TableOfRequests().setVisible(true);
628 }
629 });
630 }
631
632 // Variables declaration - do not modify
633 private javax.swing.JButton CloseTableButton;
634 private javax.swing.JButton ExportButton;
635 private javax.swing.JTable contributionTable;
636 private javax.swing.JButton countrySearchButton;
637 private javax.swing.JLabel jLabel1;
638 private javax.swing.JLabel jLabel2;
639 private javax.swing.JScrollPane jScrollPane1;
640 private javax.swing.JScrollPane jScrollPane2;
641 private javax.swing.JSeparator jSeparator1;
642 private javax.swing.JSeparator jSeparator2;
643 private javax.swing.JButton nameSearchButton;
644 private javax.swing.JTable recommendedTable;
645 private javax.swing.JButton refreshButton;
646 private javax.swing.JButton saveChangeButton;
647 private javax.swing.JLabel searchErrorMsg;
648 private javax.swing.JTextField searchKeyTF;
649 private javax.swing.JLabel searchNotFound;
650 private javax.swing.JRadioButton sortAmountButton;
651 private javax.swing.JButton sortButton;
652 private javax.swing.JLabel sortErrorMsg;
653 private javax.swing.JRadioButton sortGeoButton;
654 private javax.swing.JRadioButton sortNameButton;
655 private javax.swing.ButtonGroup sortingButtonGroup;
656 // End of variables declaration
657 }
658