Skip to content

Commit 8835725

Browse files
committed
Termine
1 parent 39d3afd commit 8835725

8 files changed

Lines changed: 509 additions & 56 deletions

File tree

src/gui/Auftraege.java

Lines changed: 44 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
import java.awt.EventQueue;
44
import java.awt.Toolkit;
5+
import java.awt.event.MouseAdapter;
6+
import java.awt.event.MouseEvent;
7+
import java.awt.event.MouseListener;
58
import java.sql.ResultSet;
69
import java.sql.SQLException;
710

@@ -13,13 +16,16 @@
1316

1417
import extern.ButtonColumn;
1518
import fachklasse.DBManager;
19+
import java.awt.event.WindowFocusListener;
20+
import java.awt.event.WindowEvent;
1621

1722
public class Auftraege extends JDialog {
1823
private JTable table;
1924

2025
public Auftraege(DBManager dbm) {
26+
2127
setTitle("Aufträge");
22-
setBounds(100, 100, 699, 320);
28+
setBounds(100, 100, 753, 320);
2329
setModal(true);
2430
setIconImage(Toolkit.getDefaultToolkit().getImage(AnmeldungGui.class.getResource("/img/icon.png")));
2531

@@ -31,38 +37,59 @@ public Auftraege(DBManager dbm) {
3137
new Object[][] {
3238
},
3339
new String[] {
34-
"Auftragsname", "Kunde", "Start", "ende", "Status", "Notizen"
40+
"Auftragsnummer", "Auftragsname", "Kunde", "Start", "ende", "Status", "Notizen"
3541
}
3642
) {
3743
Class[] columnTypes = new Class[] {
38-
String.class, String.class, String.class, String.class, String.class, String.class
44+
String.class, String.class, String.class, String.class, String.class, String.class, String.class
3945
};
4046
public Class getColumnClass(int columnIndex) {
4147
return columnTypes[columnIndex];
4248
}
4349
boolean[] columnEditables = new boolean[] {
44-
false, false, false, false, false, false
50+
false, false, false, false, false, false, false
4551
};
4652
public boolean isCellEditable(int row, int column) {
4753
return columnEditables[column];
4854
}
4955
});
5056
scrollPane.setViewportView(table);
57+
58+
table.addMouseListener((MouseListener) new MouseAdapter() {
59+
public void mouseClicked(MouseEvent me) {
60+
if (me.getClickCount() == 2) { // to detect doble click events
61+
JTable target = (JTable)me.getSource();
62+
int row = target.getSelectedRow(); // select a row
63+
String tableRow = (String) table.getValueAt(row, 0); // get the value of a row and column.
64+
System.out.println(tableRow);
65+
new AuftraegeBearbeiten(dbm, tableRow).setVisible(true);
66+
67+
}
68+
}
69+
});
5170

52-
dbm.startConnect("crm");
53-
try {
54-
ResultSet rs = dbm.getStatement().executeQuery("SELECT auftraege.*, kunden.name, vorname FROM crm.auftraege, crm.kunden where auftraege.kundenNr = kunden.kundenNr;");
55-
while(rs.next()){
56-
String kunde = rs.getString(8)+ "; " +rs.getString(9);
57-
String data[] = {rs.getString(2),kunde, rs.getString(3),rs.getString(4),rs.getString(6),rs.getString(5)};
58-
DefaultTableModel tbm = (DefaultTableModel) table.getModel();
59-
tbm.addRow(data);
60-
}
71+
addWindowFocusListener(new WindowFocusListener() {
72+
public void windowGainedFocus(WindowEvent e) {
73+
DefaultTableModel tbm = (DefaultTableModel) table.getModel();
74+
tbm.setRowCount(0);
75+
dbm.startConnect("crm");
76+
try {
77+
ResultSet rs = dbm.getStatement().executeQuery("SELECT auftraege.*, kunden.name, vorname FROM crm.auftraege, crm.kunden where auftraege.kundenNr = kunden.kundenNr;");
78+
while(rs.next()){
79+
String kunde = rs.getString(9)+ ", " +rs.getString(8);
80+
String data[] = {rs.getString(1),rs.getString(2),kunde, rs.getString(3),rs.getString(4),rs.getString(6),rs.getString(5)};
81+
tbm.addRow(data);
82+
}
6183

62-
} catch (SQLException e) {
63-
e.printStackTrace();
64-
}
65-
dbm.closeConnection();
84+
} catch (SQLException e1) {
85+
e1.printStackTrace();
86+
}
87+
dbm.closeConnection();
88+
}
89+
public void windowLostFocus(WindowEvent e) {
90+
}
91+
});
6692
}
6793

94+
6895
}

src/gui/AuftraegeBearbeiten.java

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
package gui;
2+
3+
import java.awt.EventQueue;
4+
import java.awt.Toolkit;
5+
import java.sql.ResultSet;
6+
import java.sql.SQLException;
7+
import java.util.ArrayList;
8+
9+
import javax.swing.JDialog;
10+
import javax.swing.GroupLayout;
11+
import javax.swing.GroupLayout.Alignment;
12+
import javax.swing.JLabel;
13+
import javax.swing.JOptionPane;
14+
import javax.swing.JTextField;
15+
import javax.swing.LayoutStyle.ComponentPlacement;
16+
17+
import fachklasse.DBManager;
18+
19+
import javax.swing.JTextArea;
20+
import javax.swing.JScrollPane;
21+
import javax.swing.JComboBox;
22+
import javax.swing.DefaultComboBoxModel;
23+
import javax.swing.JButton;
24+
import java.awt.event.ActionListener;
25+
import java.awt.event.ActionEvent;
26+
import java.awt.Color;
27+
28+
public class AuftraegeBearbeiten extends JDialog {
29+
private JTextField textFieldStartDatum;
30+
private JTextField textFieldEndDatum;
31+
private JTextField textFieldAuftragsname;
32+
private JScrollPane scrollPane;
33+
private JLabel lblNotiz;
34+
private JTextArea textAreaNotiz;
35+
private JTextField textFieldAuftragsnummer;
36+
37+
public AuftraegeBearbeiten(DBManager dbm, String auftragsNr) {
38+
setTitle("Auftrag bearbeiten");
39+
setBounds(100, 100, 317, 423);
40+
setModal(true);
41+
setIconImage(Toolkit.getDefaultToolkit().getImage(AnmeldungGui.class.getResource("/img/icon.png")));
42+
43+
JLabel lblStartDatum = new JLabel("Start Datum (jjjj-mm-tt)");
44+
45+
textFieldStartDatum = new JTextField();
46+
textFieldStartDatum.setColumns(10);
47+
48+
JLabel lblUhrzeit = new JLabel("End Datum (jjjj-mm-tt)");
49+
50+
textFieldEndDatum = new JTextField();
51+
textFieldEndDatum.setColumns(10);
52+
53+
JLabel lblAuftragsname = new JLabel("Auftragsname");
54+
55+
textFieldAuftragsname = new JTextField();
56+
textFieldAuftragsname.setColumns(10);
57+
58+
scrollPane = new JScrollPane();
59+
60+
lblNotiz = new JLabel("Notiz");
61+
62+
JLabel lblStatus = new JLabel("Status");
63+
64+
JComboBox comboBox = new JComboBox();
65+
comboBox.setModel(new DefaultComboBoxModel(new String[] {"In Bearbeitung", "Fertig", "Sonstiges"}));
66+
67+
JLabel lblKunde = new JLabel("Kunde");
68+
69+
JComboBox comboBox_1 = new JComboBox();
70+
ArrayList<String> kundenNr = new ArrayList<>();
71+
dbm.startConnect("crm");
72+
try {
73+
ResultSet rs = dbm.getStatement().executeQuery("SELECT kundenNr, vorname, name FROM crm.kunden;");
74+
while (rs.next()) {
75+
String val = rs.getString(2)+ " " +rs.getString(3);
76+
kundenNr.add(rs.getString(1));
77+
comboBox_1.addItem(val);
78+
}
79+
80+
81+
} catch (SQLException e) {
82+
e.printStackTrace();
83+
}
84+
dbm.closeConnection();
85+
86+
JButton btnErstellen = new JButton("Auftrag aktualisieren");
87+
btnErstellen.addActionListener(new ActionListener() {
88+
public void actionPerformed(ActionEvent e) {
89+
dbm.startConnect("crm");
90+
try {
91+
String kundenNrIndex = kundenNr.get(comboBox_1.getSelectedIndex()).toString();
92+
String startDatum = textFieldStartDatum.getText().isEmpty()? "0000-00-00":textFieldStartDatum.getText();
93+
String endDatum = textFieldEndDatum.getText().isEmpty()? "0000-00-00":textFieldEndDatum.getText();
94+
dbm.getStatement().executeUpdate("UPDATE crm.auftraege SET name = '"+
95+
textFieldAuftragsname.getText()+"', start = '"+startDatum+"', ende = '"+endDatum+"', notiz = '"+textAreaNotiz.getText()+"', status = '"+
96+
comboBox.getSelectedItem().toString()+"', kundenNr = "+kundenNrIndex+" where auftraegeNr = '"+auftragsNr+"';");
97+
JOptionPane.showMessageDialog(null, "Termin erfolgreich erstellt!");
98+
} catch (SQLException e1) {
99+
JOptionPane.showMessageDialog(null, e1, "Fehler", JOptionPane.ERROR_MESSAGE);
100+
e1.printStackTrace();
101+
}
102+
}
103+
});
104+
105+
JLabel lblAuftragsnummer = new JLabel("Auftragsnummer");
106+
107+
textFieldAuftragsnummer = new JTextField();
108+
textFieldAuftragsnummer.setEditable(false);
109+
textFieldAuftragsnummer.setColumns(10);
110+
111+
JButton btnLoeschen = new JButton("Termin Löschen");
112+
btnLoeschen.addActionListener(new ActionListener() {
113+
public void actionPerformed(ActionEvent e) {
114+
int dialogButton = JOptionPane.YES_NO_OPTION;
115+
int dialogResult = JOptionPane.showConfirmDialog (null, "Sind Sie sicher, dass Sie diesen Auftrag Löschen möchten?", "Warnung" , dialogButton, JOptionPane.WARNING_MESSAGE);
116+
if(dialogResult == JOptionPane.YES_OPTION){
117+
dbm.startConnect("crm");
118+
try {
119+
dbm.getStatement().executeUpdate("delete FROM crm.auftraege where auftraegeNr = "+auftragsNr+";" );
120+
121+
JOptionPane.showMessageDialog(null, "Löschung war erfolgreich", "Info", JOptionPane.INFORMATION_MESSAGE);
122+
dispose();
123+
} catch (SQLException e1) {
124+
JOptionPane.showMessageDialog(null, e1, "Fehler", JOptionPane.ERROR_MESSAGE);
125+
e1.printStackTrace();
126+
}
127+
128+
}
129+
dbm.closeConnection();
130+
}
131+
});
132+
btnLoeschen.setForeground(new Color(255, 51, 51));
133+
btnLoeschen.setBackground(Color.RED);
134+
GroupLayout groupLayout = new GroupLayout(getContentPane());
135+
groupLayout.setHorizontalGroup(
136+
groupLayout.createParallelGroup(Alignment.TRAILING)
137+
.addGroup(groupLayout.createSequentialGroup()
138+
.addContainerGap()
139+
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
140+
.addComponent(lblAuftragsname)
141+
.addComponent(textFieldAuftragsname, GroupLayout.DEFAULT_SIZE, 281, Short.MAX_VALUE)
142+
.addComponent(lblUhrzeit, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 281, Short.MAX_VALUE)
143+
.addComponent(textFieldEndDatum, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 281, Short.MAX_VALUE)
144+
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 281, Short.MAX_VALUE)
145+
.addComponent(lblNotiz)
146+
.addComponent(lblStatus)
147+
.addComponent(comboBox, 0, 281, Short.MAX_VALUE)
148+
.addComponent(lblKunde)
149+
.addComponent(comboBox_1, 0, 281, Short.MAX_VALUE)
150+
.addGroup(groupLayout.createSequentialGroup()
151+
.addGroup(groupLayout.createParallelGroup(Alignment.TRAILING)
152+
.addComponent(lblStartDatum, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
153+
.addComponent(textFieldStartDatum, Alignment.LEADING, GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE))
154+
.addPreferredGap(ComponentPlacement.RELATED)
155+
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
156+
.addGroup(groupLayout.createSequentialGroup()
157+
.addComponent(lblAuftragsnummer)
158+
.addGap(6))
159+
.addComponent(textFieldAuftragsnummer, GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE)))
160+
.addGroup(groupLayout.createSequentialGroup()
161+
.addComponent(btnErstellen, GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE)
162+
.addPreferredGap(ComponentPlacement.RELATED)
163+
.addComponent(btnLoeschen, GroupLayout.DEFAULT_SIZE, 134, Short.MAX_VALUE)))
164+
.addContainerGap())
165+
);
166+
groupLayout.setVerticalGroup(
167+
groupLayout.createParallelGroup(Alignment.LEADING)
168+
.addGroup(groupLayout.createSequentialGroup()
169+
.addContainerGap()
170+
.addComponent(lblAuftragsname)
171+
.addGap(3)
172+
.addComponent(textFieldAuftragsname, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
173+
.addPreferredGap(ComponentPlacement.RELATED)
174+
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
175+
.addComponent(lblStartDatum)
176+
.addComponent(lblAuftragsnummer))
177+
.addGap(4)
178+
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
179+
.addComponent(textFieldStartDatum, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
180+
.addComponent(textFieldAuftragsnummer, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
181+
.addPreferredGap(ComponentPlacement.RELATED)
182+
.addComponent(lblUhrzeit)
183+
.addPreferredGap(ComponentPlacement.RELATED)
184+
.addComponent(textFieldEndDatum, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
185+
.addPreferredGap(ComponentPlacement.RELATED)
186+
.addComponent(lblNotiz)
187+
.addGap(7)
188+
.addComponent(scrollPane, GroupLayout.PREFERRED_SIZE, 63, GroupLayout.PREFERRED_SIZE)
189+
.addPreferredGap(ComponentPlacement.UNRELATED)
190+
.addComponent(lblStatus)
191+
.addPreferredGap(ComponentPlacement.RELATED)
192+
.addComponent(comboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
193+
.addPreferredGap(ComponentPlacement.RELATED)
194+
.addComponent(lblKunde)
195+
.addPreferredGap(ComponentPlacement.RELATED)
196+
.addComponent(comboBox_1, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
197+
.addGap(18)
198+
.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
199+
.addComponent(btnErstellen)
200+
.addComponent(btnLoeschen))
201+
.addContainerGap(16, Short.MAX_VALUE))
202+
);
203+
204+
textAreaNotiz = new JTextArea();
205+
scrollPane.setViewportView(textAreaNotiz);
206+
getContentPane().setLayout(groupLayout);
207+
208+
dbm.startConnect("crm");
209+
try {
210+
ResultSet rs = dbm.getStatement().executeQuery("SELECT auftraege.*, kunden.vorname, kunden.name FROM crm.auftraege, crm.kunden where auftraege.kundenNr = kunden.kundenNr and auftraegeNr = '"+auftragsNr+"';");
211+
while(rs.next()){
212+
textFieldAuftragsname.setText(rs.getString(2));
213+
textFieldStartDatum.setText(rs.getString(3));
214+
textFieldEndDatum.setText(rs.getString(4));
215+
textAreaNotiz.setText(rs.getString(5));
216+
comboBox.setSelectedItem(rs.getString(6));
217+
comboBox_1.setSelectedItem(rs.getString(8)+ " "+ rs.getString(9));
218+
textFieldAuftragsnummer.setText(auftragsNr);
219+
}
220+
} catch (SQLException e1) {
221+
e1.printStackTrace();
222+
}
223+
dbm.closeConnection();
224+
}
225+
}

0 commit comments

Comments
 (0)