1 /* ******************************************************************** **
2 ** Copyright notice **
3 ** **
4 ** (c) 2003 WiSim Development Team **
5 ** http://wisim.sourceforge.net/ **
6 ** **
7 ** All rights reserved **
8 ** **
9 ** This script is part of the WiSim Business Game project. The WiSim **
10 ** project is free software; you can redistribute it and/or modify **
11 ** it under the terms of the GNU General Public License as published by **
12 ** the Free Software Foundation; either version 2 of the License, or **
13 ** (at your option) any later version. **
14 ** **
15 ** The GNU General Public License can be found at **
16 ** http://www.gnu.org/copyleft/gpl.html. **
17 ** A copy is found in the textfile GPL.txt and important notices to the **
18 ** license from the team is found in the textfile LICENSE.txt distributed **
19 ** in these package. **
20 ** **
21 ** This copyright notice MUST APPEAR in all copies of the file! **
22 ** ******************************************************************** */
23
24 /*
25 * JPanelEtatEinsehen.java
26 *
27 * Created on 10. M?rz 2003, 21:33
28 */
29
30 package net.sourceforge.wisim.controller;
31 import java.util;
32 import net.sourceforge.wisim.model;
33 import net.sourceforge.wisim.dao;
34 import javax.swing;
35 import javax.swing.table.DefaultTableModel;
36 import java.awt;
37 import java.awt.image;
38 import java.text.DecimalFormat;
39
40 /** Gibt eine ?bersicht aller Einzelteilauftr?ge aus.
41 * @author benjamin.pasero
42 */
43 public class JPanelEtatEinsehen extends javax.swing.JPanel {
44
45 private WiSimDAO dao;
46 private Vector etatListe;
47 private Collection etatPos;
48 private int etatAnzahl;
49 private int etatPosAnzahl;
50 private double summe;
51 private double skontoToCalc;
52 private double lieferrabattToCalc;
53 private double calcedLieferrabatt;
54 private double calcedSkonto;
55 private double calcedGesamt;
56 private static Color darkgreen = new Color(51, 153, 51);
57 private static Color red = new Color(255, 0, 0);
58 private static Color orange = new Color(255, 153, 0);
59 private boolean isBuilt;
60 private boolean isActive;
61 private WiSimMainController wiSimMainController;
62 private DecimalFormat form;
63
64 //Logger
65 private WiSimLogger wiSimLogger;
66
67 /** Creates new form JPanelEtatEinsehen
68 * @param wiSimMainController Der WiSimMainController
69 */
70 public JPanelEtatEinsehen(WiSimMainController wiSimMainController) {
71 this.wiSimMainController = wiSimMainController;
72 wiSimLogger = wiSimMainController.getWiSimLogger();
73 initDAO(wiSimMainController);
74 etatListe = new Vector();
75 etatPos = new Vector();
76 etatAnzahl = 0;
77 etatPosAnzahl = 0;
78 summe = 0;
79 skontoToCalc = 0;
80 lieferrabattToCalc = 0;
81 calcedLieferrabatt = 0;
82 calcedSkonto = 0;
83 calcedGesamt = 0;
84 isBuilt = false;
85 isActive = false;
86 initComponents();
87 initializeEtatListe();
88 setEtatTable();
89 form = new DecimalFormat("###,##0.00");
90 }
91
92 private void initDAO(WiSimMainController wiSimMainController) {
93 dao = wiSimMainController.getDAO();
94 }
95
96 /** This method is called from within the constructor to
97 * initialize the form.
98 * WARNING: Do NOT modify this code. The content of this method is
99 * always regenerated by the Form Editor.
100 */
101 private void initComponents() {//GEN-BEGIN:initComponents
102 jLabelEtatEinsehen = new javax.swing.JLabel();
103 jScrollPaneEtatListe = new javax.swing.JScrollPane();
104 jTableEtatListe = new javax.swing.JTable();
105 jTableEtatListe.setSelectionMode(0);
106 jTableEtatListe.getTableHeader().setReorderingAllowed(false);
107
108 jLabelAuftraege = new javax.swing.JLabel();
109 jPanelDetailansicht = new javax.swing.JPanel();
110 jLabelPositionen = new javax.swing.JLabel();
111 jScrollPaneEtatPos = new javax.swing.JScrollPane();
112 jTableEtatPos = new javax.swing.JTable();
113 jTableEtatPos.getTableHeader().setReorderingAllowed(false);
114 jLabelLieferant = new javax.swing.JLabel();
115 jTextLTFirma = new javax.swing.JTextField();
116 jTextLTSumme = new javax.swing.JTextField();
117 jLabelZwischensumme = new javax.swing.JLabel();
118 jTextFieldLieferrabatt = new javax.swing.JTextField();
119 jTextFieldSkonto = new javax.swing.JTextField();
120 jLabelNettozahldatum = new javax.swing.JLabel();
121 jTextFieldNettozahldatum = new javax.swing.JTextField();
122 jLabelProzent2 = new javax.swing.JLabel();
123 jLabelProzent = new javax.swing.JLabel();
124 jTextFieldAnsprechperson = new javax.swing.JTextField();
125 jLabelEuro = new javax.swing.JLabel();
126 jLabelAbzLieferrabatt = new javax.swing.JLabel();
127 jTextFieldCalcLieferrabatt = new javax.swing.JTextField();
128 jLabelEuro3 = new javax.swing.JLabel();
129 jLabelAbzSkonto = new javax.swing.JLabel();
130 jTextFieldCalcSkonto = new javax.swing.JTextField();
131 jLabelEuro4 = new javax.swing.JLabel();
132 jLabelGesamt = new javax.swing.JLabel();
133 jTextFieldCalcGesamt = new javax.swing.JTextField();
134 jLabelEuro5 = new javax.swing.JLabel();
135 jSeparator = new javax.swing.JSeparator();
136 jLabelAbz2 = new javax.swing.JLabel();
137 jLabelAbz = new javax.swing.JLabel();
138 jLabelFirma = new javax.swing.JLabel();
139 jLabelName = new javax.swing.JLabel();
140 jLabelQualitaet = new javax.swing.JLabel();
141 jLabelZUverlaessigkeit = new javax.swing.JLabel();
142 jTextQualitaet = new javax.swing.JTextField();
143 jTextZuverlaessigkeit = new javax.swing.JTextField();
144 jPanelLegende = new javax.swing.JPanel();
145 jLabelGruen = new javax.swing.JLabel();
146 jLabelRot = new javax.swing.JLabel();
147
148 setLayout(null);
149
150 addAncestorListener(new javax.swing.event.AncestorListener() {
151 public void ancestorMoved(javax.swing.event.AncestorEvent evt) {
152 }
153 public void ancestorAdded(javax.swing.event.AncestorEvent evt) {
154 formAncestorAdded(evt);
155 }
156 public void ancestorRemoved(javax.swing.event.AncestorEvent evt) {
157 formAncestorRemoved(evt);
158 }
159 });
160
161 jLabelEtatEinsehen.setFont(new java.awt.Font("Dialog", 1, 24));
162 jLabelEtatEinsehen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
163 jLabelEtatEinsehen.setText("Einzelteilauftr\u00e4ge einsehen");
164 add(jLabelEtatEinsehen);
165 jLabelEtatEinsehen.setBounds(150, 10, 550, 32);
166
167 jTableEtatListe.setModel(new javax.swing.table.DefaultTableModel(
168 new Object [][] {
169
170 },
171 new String [] {
172 "Lieferdatum", "Auftragsdatum", "Nr", "Status"
173 }
174 ) {
175 boolean[] canEdit = new boolean [] {
176 false, false, false, false
177 };
178
179 public boolean isCellEditable(int rowIndex, int columnIndex) {
180 return canEdit [columnIndex];
181 }
182 });
183 jTableEtatListe.addAncestorListener(new javax.swing.event.AncestorListener() {
184 public void ancestorMoved(javax.swing.event.AncestorEvent evt) {
185 }
186 public void ancestorAdded(javax.swing.event.AncestorEvent evt) {
187 jTableEtatListeAncestorAdded(evt);
188 }
189 public void ancestorRemoved(javax.swing.event.AncestorEvent evt) {
190 }
191 });
192 jTableEtatListe.addMouseListener(new java.awt.event.MouseAdapter() {
193 public void mouseClicked(java.awt.event.MouseEvent evt) {
194 jTableEtatListeMouseClicked(evt);
195 }
196 });
197
198 jScrollPaneEtatListe.setViewportView(jTableEtatListe);
199
200 add(jScrollPaneEtatListe);
201 jScrollPaneEtatListe.setBounds(10, 70, 270, 380);
202
203 jLabelAuftraege.setFont(new java.awt.Font("Dialog", 1, 14));
204 jLabelAuftraege.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
205 jLabelAuftraege.setText("Auftr\u00e4ge");
206 add(jLabelAuftraege);
207 jLabelAuftraege.setBounds(10, 50, 270, 16);
208
209 jPanelDetailansicht.setLayout(null);
210
211 jPanelDetailansicht.setBorder(new javax.swing.border.TitledBorder("Detailansicht"));
212 jLabelPositionen.setFont(new java.awt.Font("Dialog", 1, 14));
213 jLabelPositionen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
214 jLabelPositionen.setText("Positionen");
215 jPanelDetailansicht.add(jLabelPositionen);
216 jLabelPositionen.setBounds(100, 20, 270, 16);
217
218 jTableEtatPos.setModel(new javax.swing.table.DefaultTableModel(
219 new Object [][] {
220
221 },
222 new String [] {
223 "Artikel", "Menge", "Preis"
224 }
225 ));
226 jScrollPaneEtatPos.setViewportView(jTableEtatPos);
227
228 jPanelDetailansicht.add(jScrollPaneEtatPos);
229 jScrollPaneEtatPos.setBounds(20, 40, 440, 130);
230
231 jLabelLieferant.setFont(new java.awt.Font("Dialog", 1, 14));
232 jLabelLieferant.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
233 jLabelLieferant.setText("Lieferant");
234 jPanelDetailansicht.add(jLabelLieferant);
235 jLabelLieferant.setBounds(190, 330, 80, 20);
236
237 jTextLTFirma.setEditable(false);
238 jPanelDetailansicht.add(jTextLTFirma);
239 jTextLTFirma.setBounds(70, 360, 160, 20);
240
241 jTextLTSumme.setEditable(false);
242 jTextLTSumme.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
243 jPanelDetailansicht.add(jTextLTSumme);
244 jTextLTSumme.setBounds(320, 180, 120, 20);
245
246 jLabelZwischensumme.setFont(new java.awt.Font("Dialog", 1, 14));
247 jLabelZwischensumme.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
248 jLabelZwischensumme.setText("Zwischensumme");
249 jPanelDetailansicht.add(jLabelZwischensumme);
250 jLabelZwischensumme.setBounds(180, 180, 130, 20);
251
252 jTextFieldLieferrabatt.setEditable(false);
253 jTextFieldLieferrabatt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
254 jPanelDetailansicht.add(jTextFieldLieferrabatt);
255 jTextFieldLieferrabatt.setBounds(160, 220, 40, 20);
256
257 jTextFieldSkonto.setEditable(false);
258 jTextFieldSkonto.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
259 jPanelDetailansicht.add(jTextFieldSkonto);
260 jTextFieldSkonto.setBounds(160, 250, 40, 20);
261
262 jLabelNettozahldatum.setFont(new java.awt.Font("Dialog", 1, 14));
263 jLabelNettozahldatum.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
264 jLabelNettozahldatum.setText("Nettozahldatum");
265 jPanelDetailansicht.add(jLabelNettozahldatum);
266 jLabelNettozahldatum.setBounds(30, 280, 120, 19);
267
268 jTextFieldNettozahldatum.setEditable(false);
269 jTextFieldNettozahldatum.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
270 jPanelDetailansicht.add(jTextFieldNettozahldatum);
271 jTextFieldNettozahldatum.setBounds(160, 280, 80, 20);
272
273 jLabelProzent2.setFont(new java.awt.Font("Dialog", 1, 14));
274 jLabelProzent2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
275 jLabelProzent2.setText("%");
276 jPanelDetailansicht.add(jLabelProzent2);
277 jLabelProzent2.setBounds(200, 250, 30, 20);
278
279 jLabelProzent.setFont(new java.awt.Font("Dialog", 1, 14));
280 jLabelProzent.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
281 jLabelProzent.setText("%");
282 jPanelDetailansicht.add(jLabelProzent);
283 jLabelProzent.setBounds(200, 220, 30, 20);
284
285 jTextFieldAnsprechperson.setEditable(false);
286 jPanelDetailansicht.add(jTextFieldAnsprechperson);
287 jTextFieldAnsprechperson.setBounds(300, 360, 160, 20);
288
289 jLabelEuro.setFont(new java.awt.Font("Dialog", 1, 14));
290 jLabelEuro.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
291 jLabelEuro.setText("\u20ac");
292 jPanelDetailansicht.add(jLabelEuro);
293 jLabelEuro.setBounds(440, 180, 20, 20);
294
295 jLabelAbzLieferrabatt.setFont(new java.awt.Font("Dialog", 1, 14));
296 jLabelAbzLieferrabatt.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
297 jLabelAbzLieferrabatt.setText("Lieferrabatt");
298 jPanelDetailansicht.add(jLabelAbzLieferrabatt);
299 jLabelAbzLieferrabatt.setBounds(220, 220, 90, 19);
300
301 jTextFieldCalcLieferrabatt.setEditable(false);
302 jTextFieldCalcLieferrabatt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
303 jPanelDetailansicht.add(jTextFieldCalcLieferrabatt);
304 jTextFieldCalcLieferrabatt.setBounds(320, 220, 120, 20);
305
306 jLabelEuro3.setFont(new java.awt.Font("Dialog", 1, 14));
307 jLabelEuro3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
308 jLabelEuro3.setText("\u20ac");
309 jPanelDetailansicht.add(jLabelEuro3);
310 jLabelEuro3.setBounds(440, 220, 20, 20);
311
312 jLabelAbzSkonto.setFont(new java.awt.Font("Dialog", 1, 14));
313 jLabelAbzSkonto.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
314 jLabelAbzSkonto.setText("Skonto");
315 jPanelDetailansicht.add(jLabelAbzSkonto);
316 jLabelAbzSkonto.setBounds(220, 250, 90, 19);
317
318 jTextFieldCalcSkonto.setEditable(false);
319 jTextFieldCalcSkonto.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
320 jPanelDetailansicht.add(jTextFieldCalcSkonto);
321 jTextFieldCalcSkonto.setBounds(320, 250, 120, 20);
322
323 jLabelEuro4.setFont(new java.awt.Font("Dialog", 1, 14));
324 jLabelEuro4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
325 jLabelEuro4.setText("\u20ac");
326 jPanelDetailansicht.add(jLabelEuro4);
327 jLabelEuro4.setBounds(440, 250, 20, 20);
328
329 jLabelGesamt.setFont(new java.awt.Font("Dialog", 1, 14));
330 jLabelGesamt.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
331 jLabelGesamt.setText("Gesamt");
332 jPanelDetailansicht.add(jLabelGesamt);
333 jLabelGesamt.setBounds(240, 280, 70, 19);
334
335 jTextFieldCalcGesamt.setEditable(false);
336 jTextFieldCalcGesamt.setFont(new java.awt.Font("Dialog", 1, 12));
337 jTextFieldCalcGesamt.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
338 jPanelDetailansicht.add(jTextFieldCalcGesamt);
339 jTextFieldCalcGesamt.setBounds(320, 280, 120, 20);
340
341 jLabelEuro5.setFont(new java.awt.Font("Dialog", 1, 14));
342 jLabelEuro5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
343 jLabelEuro5.setText("\u20ac");
344 jPanelDetailansicht.add(jLabelEuro5);
345 jLabelEuro5.setBounds(440, 280, 20, 20);
346
347 jPanelDetailansicht.add(jSeparator);
348 jSeparator.setBounds(10, 320, 460, 10);
349
350 jLabelAbz2.setFont(new java.awt.Font("Dialog", 1, 14));
351 jLabelAbz2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
352 jLabelAbz2.setText("abz.");
353 jPanelDetailansicht.add(jLabelAbz2);
354 jLabelAbz2.setBounds(120, 220, 30, 19);
355
356 jLabelAbz.setFont(new java.awt.Font("Dialog", 1, 14));
357 jLabelAbz.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
358 jLabelAbz.setText("abz.");
359 jPanelDetailansicht.add(jLabelAbz);
360 jLabelAbz.setBounds(120, 250, 30, 19);
361
362 jLabelFirma.setFont(new java.awt.Font("Dialog", 1, 14));
363 jLabelFirma.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
364 jLabelFirma.setText("Firma");
365 jPanelDetailansicht.add(jLabelFirma);
366 jLabelFirma.setBounds(10, 360, 50, 19);
367
368 jLabelName.setFont(new java.awt.Font("Dialog", 1, 14));
369 jLabelName.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
370 jLabelName.setText("Name");
371 jPanelDetailansicht.add(jLabelName);
372 jLabelName.setBounds(240, 360, 50, 19);
373
374 jLabelQualitaet.setFont(new java.awt.Font("Dialog", 1, 14));
375 jLabelQualitaet.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
376 jLabelQualitaet.setText("Lieferqualit\u00e4t");
377 jPanelDetailansicht.add(jLabelQualitaet);
378 jLabelQualitaet.setBounds(50, 400, 110, 19);
379
380 jLabelZUverlaessigkeit.setFont(new java.awt.Font("Dialog", 1, 14));
381 jLabelZUverlaessigkeit.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
382 jLabelZUverlaessigkeit.setText("Zuverl\u00e4ssigkeit");
383 jPanelDetailansicht.add(jLabelZUverlaessigkeit);
384 jLabelZUverlaessigkeit.setBounds(230, 400, 130, 19);
385
386 jTextQualitaet.setEditable(false);
387 jPanelDetailansicht.add(jTextQualitaet);
388 jTextQualitaet.setBounds(170, 400, 30, 20);
389
390 jTextZuverlaessigkeit.setEditable(false);
391 jPanelDetailansicht.add(jTextZuverlaessigkeit);
392 jTextZuverlaessigkeit.setBounds(370, 400, 30, 20);
393
394 add(jPanelDetailansicht);
395 jPanelDetailansicht.setBounds(290, 70, 480, 460);
396
397 jPanelLegende.setLayout(null);
398
399 jPanelLegende.setBorder(new javax.swing.border.TitledBorder("Legende"));
400 jLabelGruen.setText("Lieferung eingegangen");
401 jPanelLegende.add(jLabelGruen);
402 jLabelGruen.setBounds(10, 20, 180, 16);
403
404 jLabelRot.setText("Lieferung noch nicht eingegangen");
405 jPanelLegende.add(jLabelRot);
406 jLabelRot.setBounds(10, 50, 290, 16);
407
408 add(jPanelLegende);
409 jPanelLegende.setBounds(10, 450, 270, 80);
410
411 }//GEN-END:initComponents
412
413 private void formAncestorRemoved(javax.swing.event.AncestorEvent evt) {//GEN-FIRST:event_formAncestorRemoved
414 setIsActive(false);
415 } //GEN-LAST:event_formAncestorRemoved
416
417 private void formAncestorAdded(javax.swing.event.AncestorEvent evt) {//GEN-FIRST:event_formAncestorAdded
418 setIsActive(true);
419 } //GEN-LAST:event_formAncestorAdded
420
421 private void jTableEtatListeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableEtatListeMouseClicked
422 getEtatInfo();
423 } //GEN-LAST:event_jTableEtatListeMouseClicked
424
425 private void jTableEtatListeAncestorAdded(javax.swing.event.AncestorEvent evt) {//GEN-FIRST:event_jTableEtatListeAncestorAdded
426 getEtatListe();
427 showLegende();
428 } //GEN-LAST:event_jTableEtatListeAncestorAdded
429
430 // Variables declaration - do not modify//GEN-BEGIN:variables
431 private javax.swing.JLabel jLabelAbz;
432 private javax.swing.JLabel jLabelAbz2;
433 private javax.swing.JLabel jLabelAbzLieferrabatt;
434 private javax.swing.JLabel jLabelAbzSkonto;
435 private javax.swing.JLabel jLabelAuftraege;
436 private javax.swing.JLabel jLabelEtatEinsehen;
437 private javax.swing.JLabel jLabelEuro;
438 private javax.swing.JLabel jLabelEuro3;
439 private javax.swing.JLabel jLabelEuro4;
440 private javax.swing.JLabel jLabelEuro5;
441 private javax.swing.JLabel jLabelFirma;
442 private javax.swing.JLabel jLabelGesamt;
443 private javax.swing.JLabel jLabelGruen;
444 private javax.swing.JLabel jLabelLieferant;
445 private javax.swing.JLabel jLabelName;
446 private javax.swing.JLabel jLabelNettozahldatum;
447 private javax.swing.JLabel jLabelPositionen;
448 private javax.swing.JLabel jLabelProzent;
449 private javax.swing.JLabel jLabelProzent2;
450 private javax.swing.JLabel jLabelQualitaet;
451 private javax.swing.JLabel jLabelRot;
452 private javax.swing.JLabel jLabelZUverlaessigkeit;
453 private javax.swing.JLabel jLabelZwischensumme;
454 private javax.swing.JPanel jPanelDetailansicht;
455 private javax.swing.JPanel jPanelLegende;
456 private javax.swing.JScrollPane jScrollPaneEtatListe;
457 private javax.swing.JScrollPane jScrollPaneEtatPos;
458 private javax.swing.JSeparator jSeparator;
459 private javax.swing.JTable jTableEtatListe;
460 private javax.swing.JTable jTableEtatPos;
461 private javax.swing.JTextField jTextFieldAnsprechperson;
462 private javax.swing.JTextField jTextFieldCalcGesamt;
463 private javax.swing.JTextField jTextFieldCalcLieferrabatt;
464 private javax.swing.JTextField jTextFieldCalcSkonto;
465 private javax.swing.JTextField jTextFieldLieferrabatt;
466 private javax.swing.JTextField jTextFieldNettozahldatum;
467 private javax.swing.JTextField jTextFieldSkonto;
468 private javax.swing.JTextField jTextLTFirma;
469 private javax.swing.JTextField jTextLTSumme;
470 private javax.swing.JTextField jTextQualitaet;
471 private javax.swing.JTextField jTextZuverlaessigkeit;
472 // End of variables declaration//GEN-END:variables
473
474 /** Erstellt die Einzelteilauftr?ge-Tabelle. */
475 public void setEtatTable() {
476 try {
477 etatListe = dao.getEinzelteilauftraege();
478 } catch (WiSimDAOException e) {
479 wiSimLogger.log("setEtatTable()", e);
480 }
481
482 etatAnzahl = etatListe.size();
483
484 //DefaultTableModel mit Variablen Zeilen, 3 TableHeads und nicht editierbaren Zellen
485 Object[][] tableInit = new Object[etatAnzahl][4];
486 DefaultTableModel defTable =
487 new DefaultTableModel(
488 tableInit,
489 new String[] {
490 "Auftragsdatum",
491 "Lieferdatum",
492 "Nr",
493 "Status" }) {
494 boolean[] canEdit = new boolean[] { false, false, false, false };
495 public boolean isCellEditable(int rowIndex, int columnIndex) {
496 return canEdit[columnIndex];
497 }
498 public Class getColumnClass(int c) {
499 return getValueAt(0, c).getClass();
500 }
501 };
502
503 jTableEtatListe.setModel(defTable);
504 jTableEtatListe.setFocusable(false);
505
506 //Spaltenbreite
507 javax.swing.table.TableColumn column = null;
508 for (int i = 0; i < 4; i++) {
509 column = jTableEtatListe.getColumnModel().getColumn(i);
510 if (i == 2) {
511 column.setPreferredWidth(30);
512 } else if (i == 3) {
513 column.setPreferredWidth(50);
514 } else {
515 column.setPreferredWidth(100);
516 }
517 }
518
519 jTableEtatListe.getTableHeader().setReorderingAllowed(false);
520 jTableEtatListe.setDragEnabled(false);
521 }
522
523 /** Erstellt die Einzelteilauftrags-Positionen Tabelle. */
524 public void setEtatPosTable() {
525 //DefaultTableModel mit Variablen Zeilen, 3 TableHeads und nicht editierbaren Zellen
526 Object[][] tableInit = new Object[etatPosAnzahl][3];
527 DefaultTableModel defTable =
528 new DefaultTableModel(
529 tableInit,
530 new String[] { "Artikel", "Menge", "Preis" }) {
531 boolean[] canEdit = new boolean[] { false, false, false };
532 public boolean isCellEditable(int rowIndex, int columnIndex) {
533 return canEdit[columnIndex];
534 }
535 };
536 jTableEtatPos.setModel(defTable);
537 jTableEtatPos.setEnabled(false);
538 jTableEtatPos.getTableHeader().setReorderingAllowed(false);
539 }
540
541 /** Formatiert ein Date Objekt zu einem String TT.MM.JJJJ.
542 * @param dateToFormat Das zu formatierende Datum.
543 * @return Das formatierte Datum.
544 */
545 public String formatDate(java.sql.Date dateToFormat) {
546 String date = String.valueOf(dateToFormat);
547 String year = date.substring(0, 4);
548 String month = date.substring(5, 7);
549 String day = date.substring(8, 10);
550 String formattedDate = day + "." + month + "." + year;
551 return formattedDate;
552 }
553
554 /** Berechnet den Gesamtpreis des Einzelteilauftrages, zusammen mit dem Skonto und
555 * Lieferrabatt.
556 */
557 public void calculateSum() {
558 calcedLieferrabatt = 0;
559 calcedSkonto = 0;
560 calcedGesamt = 0;
561
562 calcedLieferrabatt = summe / 100 * lieferrabattToCalc;
563 calcedSkonto = (summe - calcedLieferrabatt) / 100 * skontoToCalc;
564 calcedGesamt = summe - calcedSkonto - calcedLieferrabatt;
565
566 jTextFieldCalcLieferrabatt.setText(
567 form.format(Math.rint(calcedLieferrabatt * 100) / 100.));
568 jTextFieldCalcSkonto.setText(
569 form.format(Math.rint(calcedSkonto * 100) / 100.));
570 jTextFieldCalcGesamt.setText(
571 form.format(Math.rint(calcedGesamt * 100) / 100.));
572 }
573
574 /** Zeigt die Positionen des selektierten Einzelteilauftrages */
575 public void getEtatInfo() {
576 Einzelteilauftrag etat =
577 (Einzelteilauftrag) etatListe.get(jTableEtatListe.getSelectedRow());
578
579 jTextFieldLieferrabatt.setText(String.valueOf(etat.getLieferrabatt()));
580 jTextFieldSkonto.setText(String.valueOf(etat.getSkonto()));
581
582 long nettozahlDatumMili = etat.getAuftragsdatum().getTime() + etat.getSkontofrist()*1000*60*60*24;
583
584 GregorianCalendar nettoDatum = new GregorianCalendar();
585 nettoDatum.setTimeInMillis(nettozahlDatumMili);
586
587 String Tag = String.valueOf(nettoDatum.get(Calendar.DATE));
588 String Monat = String.valueOf(nettoDatum.get(Calendar.MONTH)+1);
589 String Jahr = String.valueOf(nettoDatum.get(Calendar.YEAR));
590 jTextFieldNettozahldatum.setText(Tag + "." + Monat + "." + Jahr);
591
592 try {
593 etatPos = dao.getEinzelteilAuftragsPositionen(etat.getNr());
594 Einzelteilauftragsrechnung etatr =
595 dao.getEinzelteilauftragsrechnung(etat.getNr());
596 jTextLTSumme.setText(form.format(etatr.getBetrag()));
597 summe = etatr.getBetrag();
598 } catch (WiSimDAOException e) {
599 wiSimLogger.log("getEtatInfo()", e);
600 }
601
602 etatPosAnzahl = etatPos.size();
603 setEtatPosTable();
604 int i = 0;
605
606 Iterator etatPos_it = etatPos.iterator();
607 while (etatPos_it.hasNext()) {
608 EinzelteilauftragPosition etatPosItem =
609 (EinzelteilauftragPosition) etatPos_it.next();
610
611 try {
612 Einzelteil et = dao.getEinzelteil(etatPosItem.getEtNr());
613 jTableEtatPos.setValueAt(et.getName(), i, 0);
614 jTableEtatPos.setValueAt(
615 String.valueOf(etatPosItem.getBestellmenge()),
616 i,
617 1);
618 Lieferliste lieferliste =
619 dao.getLieferliste(
620 etat.getLieferantNr(),
621 etatPosItem.getEtNr());
622 double preis =
623 lieferliste.getPreis() * etatPosItem.getBestellmenge();
624 jTableEtatPos.setValueAt(
625 form.format(preis),
626 i,
627 2);
628
629 } catch (WiSimDAOException e) {
630 wiSimLogger.log("getEtatInfo()", e);
631 }
632 i++;
633 }
634
635 try {
636 Lieferant lt = dao.getLieferant(etat.getLieferantNr());
637 jTextLTFirma.setText(lt.getFirma());
638 jTextFieldAnsprechperson.setText(
639 lt.getVorname() + " " + lt.getNachname());
640 jTextQualitaet.setText(lt.getLieferqualitaet());
641 jTextZuverlaessigkeit.setText(lt.getZuverlaessigkeit());
642
643 } catch (WiSimDAOException e) {
644 wiSimLogger.log("getEtatInfo()", e);
645 }
646
647 skontoToCalc = etat.getSkonto();
648 lieferrabattToCalc = etat.getLieferrabatt();
649 calculateSum();
650 }
651
652 /** Holt alle Einzelteilauftr?ge aus der Datenbank */
653 public void getEtatListe() {
654 try {
655 etatListe = dao.getEinzelteilauftraege();
656 } catch (WiSimDAOException e) {
657 wiSimLogger.log("getEtatListe()", e);
658 }
659
660 etatAnzahl = etatListe.size();
661 setEtatTable();
662 int i = 0;
663
664 Iterator etatListe_it = etatListe.iterator();
665
666 while (etatListe_it.hasNext()) {
667 Einzelteilauftrag etat = (Einzelteilauftrag) etatListe_it.next();
668
669 jTableEtatListe.setValueAt(
670 formatDate(etat.getAuftragsdatum()),
671 i,
672 0);
673 jTableEtatListe.setValueAt(formatDate(etat.getLieferdatum()), i, 1);
674 jTableEtatListe.setValueAt(String.valueOf(etat.getNr()), i, 2);
675
676 //Status Icon
677 Image image = new BufferedImage(28, 30, 2);
678 Graphics g = image.getGraphics();
679
680 if (etat.getLieferdatum().before(wiSimMainController.getActDate())) {
681 g.setColor(darkgreen);
682 } else {
683 g.setColor(red);
684 }
685 g.fillRoundRect(10, 11, 10, 10, 3, 3);
686
687 ImageIcon ic = new ImageIcon(image);
688
689 jTableEtatListe.setValueAt(ic, i, 3);
690 i++;
691 }
692 }
693
694 /** Zeigt die Legende an */
695 public void showLegende() {
696 //Legende
697 Image imageIconGreen = new BufferedImage(28, 30, 2);
698 Graphics g = imageIconGreen.getGraphics();
699 g.setColor(darkgreen);
700 g.fillRoundRect(10, 11, 10, 10, 3, 3);
701 ImageIcon ic = new ImageIcon(imageIconGreen);
702 jLabelGruen.setIcon(ic);
703
704 Image imageIconRed = new BufferedImage(28, 30, 2);
705 g = imageIconRed.getGraphics();
706 g.setColor(red);
707 g.fillRoundRect(10, 11, 10, 10, 3, 3);
708 ic = new ImageIcon(imageIconRed);
709 jLabelRot.setIcon(ic);
710 }
711
712 /** Erneuert die Einzelteile-Auftrags-Tabelle */
713 public void refreshEtatListe() {
714 try {
715 etatListe = dao.getEinzelteilauftraege();
716 } catch (WiSimDAOException e) {
717 wiSimLogger.log("refreshEtatListe()", e);
718 }
719
720 int i = 0;
721
722 Iterator etatListe_it = etatListe.iterator();
723
724 while (etatListe_it.hasNext()) {
725 Einzelteilauftrag etat = (Einzelteilauftrag) etatListe_it.next();
726
727 //Status Icon
728 Image image = new BufferedImage(28, 30, 2);
729 Graphics g = image.getGraphics();
730
731 if (etat
732 .getLieferdatum()
733 .before(new java.sql.Date(wiSimMainController.getActDate().getTime()))) {
734 g.setColor(darkgreen);
735 } else {
736 g.setColor(red);
737 }
738 g.fillRoundRect(10, 11, 10, 10, 3, 3);
739
740 ImageIcon ic = new ImageIcon(image);
741
742 jTableEtatListe.setValueAt(ic, i, 3);
743 i++;
744 }
745 }
746
747 /** Setzt die Variable isBuilt
748 * @param isBuilt
749 */
750 public void setIsBuilt(boolean isBuilt) {
751 this.isBuilt = isBuilt;
752 }
753
754 /** Wurde das Pane schon einmal aufgebaut, so ist "isBuilt" = TRUE.
755 * Wichtig ist diese Variable f?r die Simulation: Wurde das Pane
756 * schon einmal aufgebaut, so m?ssen die Simulationsthread das Pane
757 * nicht noch einmal initialisieren!
758 * @return boolean isBuilt
759 */
760 public boolean getIsBuilt() {
761 return isBuilt;
762 }
763
764 /** Setzt die Variable isActive auf TRUE oder FALSE
765 * @param isActive
766 */
767 public void setIsActive(boolean isActive) {
768 this.isActive = isActive;
769 }
770
771 /** Befindet sich der Benutzer auf diesem Pane, so ist "isActive" = TRUE.
772 * Verl?sst der Benutzer das Pane, so ist "isActive" = FALSE.
773 * Wichtig ist diese Variable f?r die Simulation: Es wird nur das Pane
774 * aktualisiert, auf dem sich der Benutzer gerade befindet!
775 * @return boolean isActive
776 */
777 public boolean getIsActive() {
778 return isActive;
779 }
780
781 /**
782 * Initialisiert die Einzelteilauftrags Liste
783 */
784 public void initializeEtatListe() {
785 try {
786 etatListe = dao.getEinzelteilauftraege();
787 } catch (WiSimDAOException e) {
788 wiSimLogger.log("JPanelEtatEinsehen()", e);
789 }
790
791 etatAnzahl = etatListe.size();
792 }
793 }