RmiClient  1.0
 Alle Klassen Namensbereiche Dateien Funktionen Variablen
StudentDialog.java
gehe zur Dokumentation dieser Datei
1 package view;
2 
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.rmi.RemoteException;
10 import java.util.List;
11 import java.util.Observable;
12 
13 import javax.swing.BoxLayout;
14 import javax.swing.JButton;
15 import javax.swing.JFrame;
16 import javax.swing.JLabel;
17 import javax.swing.JOptionPane;
18 import javax.swing.JPanel;
19 import javax.swing.JTextField;
20 import javax.swing.SwingUtilities;
21 
22 import main.ResultContent;
23 import main.TextLengthDocument;
24 import main.UserRole;
25 import controller.Controller;
26 import databaseModel.Ansprechpartner;
27 import databaseModel.Student;
28 import databaseModel.Unternehmen;
29 
36 public class StudentDialog extends AbstractDialog {
40  private Student changeingObject = null;
41 
45  private StudentDialog studentDialog = null;
46  private Container contentPane = null;
47 
51  private JLabel nameLabel = null;
52  private JTextField nameInputField = null;
53  private JLabel matLabel = null;
54  private JTextField matInputField = null;
55  private JLabel emailLabel = null;
56  private JTextField emailInputField = null;
57 
70  public StudentDialog(JFrame owner, Controller controller, String label,
72  super(owner, controller, label, roleType);
73  this.studentDialog = this;
74  this.activeDialog = this;
75 
76  JPanel studentPanel = new JPanel();
77  studentPanel.setLayout(new BoxLayout(studentPanel, BoxLayout.Y_AXIS));
78 
82  nameLabel = new JLabel("Name:");
83  nameInputField = new JTextField(defaultVisibleFieldLength);
84  mandatoryComponentList.add(nameInputField);
85  nameInputField.setDocument(new TextLengthDocument(getColumnLength(
86  Student.class, "name")));
87 
91  matLabel = new JLabel("Matrikelnummer:");
92  matInputField = new JTextField(defaultVisibleFieldLength);
93  mandatoryComponentList.add(matInputField);
94  matInputField.setDocument(new TextLengthDocument(getColumnLength(
95  Student.class, "mat")));
96 
100  emailLabel = new JLabel("EMail:");
101  emailInputField = new JTextField(defaultVisibleFieldLength);
102  mandatoryComponentList.add(emailInputField);
103  emailInputField.setDocument(new TextLengthDocument(getColumnLength(
104  Student.class, "email")));
105 
109  studentPanel.add(nameLabel);
110  studentPanel.add(nameInputField);
111  studentPanel.add(matLabel);
112  studentPanel.add(matInputField);
113  studentPanel.add(emailLabel);
114  studentPanel.add(emailInputField);
115 
119  setLayout(new BorderLayout());
120  contentPane = getContentPane();
121  contentPane.add(studentPanel, BorderLayout.CENTER);
122 
126  contentPane.add(buttonPanel, BorderLayout.SOUTH);
127  }
128 
137  @Override
138  public void initialize(final String label, final Object student) {
139  SwingUtilities.invokeLater(new Runnable() {
140  public void run() {
141  studentDialog.setTitle(label);
142  studentDialog.changeObject = student;
143  studentDialog.changeingObject = (Student) student;
144  studentDialog.newMode = (student == null);
145 
147 
151  if (newMode) {
152  nameInputField.setText("");
153  matInputField.setText("");
154  emailInputField.setText("");
155  } else {
159  nameInputField.setText(studentDialog.changeingObject
160  .getName());
161  matInputField.setText(Integer
162  .toString(studentDialog.changeingObject.getMat()));
163  emailInputField.setText(studentDialog.changeingObject
164  .getEmail());
165  }
166  }
167  });
168  };
169 
173  @Override
174  protected void saveData() {
178  if (nameInputField.getText().trim().equals("")) {
179  errorList.add("Der Name wurde nicht eingegeben!");
180  nameInputField.setBackground(defaultColorMissingMandatoryField);
181  }
182  if (matInputField.getText().trim().equals("")) {
183  errorList.add("Es wurde keine Matrikelnummer eingegeben!");
184  matInputField.setBackground(defaultColorMissingMandatoryField);
185  }
186  checkValidOnlyNumbers(matInputField);
187  if (emailInputField.getText().trim().equals("")) {
188  errorList.add("Es wurde keine E-Mail-Adresse eingegeben!");
189  emailInputField.setBackground(defaultColorMissingMandatoryField);
190  }
191  checkValidEmail(emailInputField);
192 
196  if (errorList.size() > 0) {
197  showErrors();
198  } else {
202  if (changeingObject == null) {
203  changeingObject = new Student();
204  }
205 
209  changeingObject.setName(nameInputField.getText().trim());
210  changeingObject.setMat(Integer.parseInt(matInputField.getText()
211  .trim()));
212  changeingObject.setEmail(emailInputField.getText().trim());
213 
217  boolean saveError = false;
218  String errorString = "";
219  try {
223  if (newMode) {
227  if (Controller.rmiServer.insertData(changeingObject)) {
228  JOptionPane.showMessageDialog(null,
229  "Es wurde ein neuer Student angelegt!",
230  "Information", JOptionPane.INFORMATION_MESSAGE);
231 
232  } else {
237  saveError = true;
238  }
239  } else {
247  if (Controller.rmiServer.changeData(changeingObject)) {
248  JOptionPane.showMessageDialog(null,
249  "Der Student wurde geändert!", "Information",
250  JOptionPane.INFORMATION_MESSAGE);
251 
252  } else {
257  saveError = true;
258  }
259  }
260  } catch (HeadlessException e) {
261  saveError = true;
262  errorString = e.getMessage();
263  } catch (RemoteException e) {
264  saveError = true;
265  errorString = e.getMessage();
266  }
267 
271  if (saveError) {
272  errorList.add("Beim Speichern ist ein Fehler aufgetreten!");
273  if (!errorString.equals("")) {
274  errorList.add(errorString);
275  }
276 
277  showErrors();
278  } else {
279  closeForm();
280  }
281  }
282  }
283 }