3 import java.awt.BorderLayout;
4 import java.awt.Container;
5 import java.awt.FlowLayout;
6 import java.awt.HeadlessException;
7 import java.awt.event.ActionEvent;
8 import java.awt.event.ActionListener;
9 import java.awt.event.ItemEvent;
10 import java.awt.event.ItemListener;
11 import java.rmi.RemoteException;
12 import java.util.List;
13 import java.util.Observable;
14 import javax.swing.BoxLayout;
15 import javax.swing.JButton;
16 import javax.swing.JComboBox;
17 import javax.swing.JFrame;
18 import javax.swing.JLabel;
19 import javax.swing.JOptionPane;
20 import javax.swing.JPanel;
21 import javax.swing.JTextArea;
22 import javax.swing.JTextField;
23 import javax.swing.SwingUtilities;
25 import main.CustomItemListener;
26 import main.ResultContent;
27 import main.TextLengthDocument;
29 import main.ProjektStatus;
30 import controller.Controller;
31 import databaseModel.Ansprechpartner;
32 import databaseModel.Projekt;
33 import databaseModel.Student;
42 private static final long serialVersionUID = 1L;
47 private Projekt changeingObject = null;
53 private Container contentPane = null;
58 private JLabel titleLabel = null;
59 private JTextField titleInputField = null;
60 private JLabel beschreibungLabel = null;
61 private JTextField beschreibungInputField = null;
63 private JLabel ansprechpartnerLabel = null;
64 private JComboBox ansprechpartnerComboBox = null;
65 private Object activeSelectedAnsprechpartner = null;
67 private JLabel student1Label = null;
68 private JComboBox student1ComboBox = null;
69 private Object activeSelectedStudent1 = null;
71 private JLabel student2Label = null;
72 private JComboBox student2ComboBox = null;
73 private Object activeSelectedStudent2 = null;
75 private JLabel student3Label = null;
76 private JComboBox student3ComboBox = null;
77 private Object activeSelectedStudent3 = null;
79 private JLabel statusLabel = null;
80 private JComboBox statusComboBox = null;
81 private JLabel kommentarLabel = null;
82 private JTextArea kommentarTextArea = null;
87 private int defaultInputFieldLength = 30;
103 super(owner, controller, label, roleType);
104 this.projektDialog =
this;
107 JPanel projektPanel =
new JPanel();
108 projektPanel.setLayout(
new BoxLayout(projektPanel, BoxLayout.Y_AXIS));
113 titleLabel =
new JLabel(
"Titel:");
122 beschreibungLabel =
new JLabel(
"Beschreibung:");
131 ansprechpartnerLabel =
new JLabel(
"Ansprechpartner:");
132 ansprechpartnerComboBox =
new JComboBox();
136 public void doItemChanged(ItemEvent arg0) {
137 if (arg0.getStateChange() == ItemEvent.SELECTED) {
138 setActiveAnsprechpartner();
146 student1Label =
new JLabel(
"Student1:");
147 student1ComboBox =
new JComboBox();
151 public void doItemChanged(ItemEvent arg0) {
152 if (arg0.getStateChange() == ItemEvent.SELECTED) {
158 student2Label =
new JLabel(
"Student2:");
159 student2ComboBox =
new JComboBox();
163 public void doItemChanged(ItemEvent arg0) {
164 if (arg0.getStateChange() == ItemEvent.SELECTED) {
170 student3Label =
new JLabel(
"Student3:");
171 student3ComboBox =
new JComboBox();
175 public void doItemChanged(ItemEvent arg0) {
176 if (arg0.getStateChange() == ItemEvent.SELECTED) {
185 statusLabel =
new JLabel(
"Status:");
186 statusComboBox =
new JComboBox();
189 statusComboBox.addItem(sta.toString());
195 kommentarLabel =
new JLabel(
"Kommentar:");
216 projektPanel.add(titleLabel);
217 projektPanel.add(titleInputField);
218 projektPanel.add(beschreibungLabel);
219 projektPanel.add(beschreibungInputField);
220 projektPanel.add(ansprechpartnerLabel);
221 projektPanel.add(ansprechpartnerComboBox);
222 projektPanel.add(student1Label);
223 projektPanel.add(student1ComboBox);
224 projektPanel.add(student2Label);
225 projektPanel.add(student2ComboBox);
226 projektPanel.add(student3Label);
227 projektPanel.add(student3ComboBox);
228 projektPanel.add(statusLabel);
229 projektPanel.add(statusComboBox);
230 projektPanel.add(kommentarLabel);
231 projektPanel.add(kommentarTextArea);
243 setLayout(
new BorderLayout());
244 contentPane = getContentPane();
245 contentPane.add(projektPanel, BorderLayout.CENTER);
256 private void setActiveAnsprechpartner() {
257 activeSelectedAnsprechpartner = null;
259 if (ansprechpartnerComboBox.getItemCount() > 0) {
260 if (ansprechpartnerComboBox.getSelectedIndex() >= 0) {
262 .get(ansprechpartnerComboBox.getSelectedIndex());
271 private void setActiveStudent1() {
272 activeSelectedStudent1 = null;
274 if (student1ComboBox.getItemCount() > 0) {
275 if (student1ComboBox.getSelectedIndex() >= 0) {
277 .get(student1ComboBox.getSelectedIndex());
286 private void setActiveStudent2() {
287 activeSelectedStudent2 = null;
289 if (student2ComboBox.getItemCount() > 0) {
290 if (student2ComboBox.getSelectedIndex() > 0) {
292 .get(student2ComboBox.getSelectedIndex() - 1);
301 private void setActiveStudent3() {
302 activeSelectedStudent3 = null;
304 if (student3ComboBox.getItemCount() > 0) {
305 if (student3ComboBox.getSelectedIndex() > 0) {
307 .get(student3ComboBox.getSelectedIndex() - 1);
322 public void initialize(
final String label,
final Object projekt) {
323 SwingUtilities.invokeLater(
new Runnable() {
325 projektDialog.setTitle(label);
327 projektDialog.changeingObject = (
Projekt) projekt;
328 projektDialog.
newMode = (projekt == null);
336 titleInputField.setText(
"");
337 beschreibungInputField.setText(
"");
338 ansprechpartnerComboBox.setSelectedIndex(-1);
339 if (ansprechpartnerComboBox.getItemCount() > 0) {
340 ansprechpartnerComboBox.setSelectedIndex(0);
342 student1ComboBox.setSelectedIndex(-1);
343 if (student1ComboBox.getItemCount() > 0) {
344 student1ComboBox.setSelectedIndex(0);
346 student2ComboBox.setSelectedIndex(-1);
347 student3ComboBox.setSelectedIndex(-1);
350 kommentarTextArea.setText(
"");
355 titleInputField.setText(projektDialog.changeingObject
357 beschreibungInputField
358 .setText(projektDialog.changeingObject
361 ansprechpartnerComboBox
362 .setSelectedItem(projektDialog.changeingObject
364 setActiveAnsprechpartner();
366 .setSelectedItem(projektDialog.changeingObject
375 Student studentB = projektDialog.changeingObject
377 student2ComboBox.setSelectedIndex(-1);
378 if (studentB != null) {
379 student2ComboBox.setSelectedItem(studentB.
getName());
383 Student studentC = projektDialog.changeingObject
385 student3ComboBox.setSelectedIndex(-1);
386 if (studentC != null) {
387 student3ComboBox.setSelectedItem(studentC.
getName());
391 String status = projektDialog.changeingObject.
getStatus();
392 statusComboBox.setSelectedIndex(-1);
393 if (!status.equals(
"")) {
394 statusComboBox.setSelectedItem(status);
407 && projektDialog.changeingObject.
getStatus()
410 kommentarTextArea.setText(projektDialog.changeingObject
421 public void update(Observable arg0,
final Object arg1) {
422 SwingUtilities.invokeLater(
new Runnable() {
434 ansprechpartnerComboBox,
435 activeSelectedAnsprechpartner,
false);
436 }
else if (listType ==
Student.class) {
438 student1ComboBox, activeSelectedStudent1,
false);
441 student2ComboBox, activeSelectedStudent2,
true);
444 student3ComboBox, activeSelectedStudent3,
true);
458 projektDialog.validate();
459 projektDialog.repaint();
478 if (titleInputField.getText().trim().equals(
"")) {
479 errorList.add(
"Das Titel-Feld wurde nicht ausgefüllt!");
482 if (beschreibungInputField.getText().trim().equals(
"")) {
483 errorList.add(
"Das Beschreibungs-Feld wurde nicht ausgefüllt!");
484 beschreibungInputField
487 if (ansprechpartnerComboBox.getSelectedIndex() < 0) {
488 errorList.add(
"Es wurde kein Ansprechpartner ausgewählt!");
489 ansprechpartnerComboBox
492 if (student1ComboBox.getSelectedIndex() < 0) {
493 errorList.add(
"Bitte wählen Sie den ersten Studenten aus!");
496 if (statusComboBox.getSelectedIndex() < 0) {
497 errorList.add(
"Bitte geben Sie den Status an!");
504 String student1 = student1ComboBox.getSelectedItem().toString();
505 String student2 =
"";
506 if (student2ComboBox.getSelectedItem() != null) {
507 student2 = student2ComboBox.getSelectedItem().toString();
509 String student3 =
"";
510 if (student3ComboBox.getSelectedItem() != null) {
511 student3 = student3ComboBox.getSelectedItem().toString();
514 if (student2.equals(student1) || student3.equals(student1)
515 || (student3.equals(student2) && !student3.equals(
""))) {
517 .add(
"Es dürfen keine Studenten mehrmals ausgewählt werden!");
532 if (changeingObject == null) {
533 changeingObject =
new Projekt();
539 changeingObject.
setTitel(titleInputField.getText().trim());
551 boolean saveError =
false;
552 String errorString =
"";
568 JOptionPane.showMessageDialog(null,
569 "Es wurde ein neues Projekt angelegt!",
570 "Information", JOptionPane.INFORMATION_MESSAGE);
587 if (statusComboBox.getSelectedItem() != null) {
589 .getSelectedItem().toString());
594 changeingObject.
setKommentar(kommentarTextArea.getText());
600 JOptionPane.showMessageDialog(null,
601 "Das Projekt wurde geändert!",
"Information",
602 JOptionPane.INFORMATION_MESSAGE);
612 }
catch (HeadlessException e) {
614 errorString = e.getMessage();
615 }
catch (RemoteException e) {
617 errorString = e.getMessage();
624 errorList.add(
"Beim Speichern ist ein Fehler aufgetreten!");
625 if (!errorString.equals(
"")) {