package gui.lecture; import gui.intro.About_GUI; import gui.intro.MainMenue_GUI; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Font; import java.awt.ScrollPane; import java.awt.SystemColor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.net.URI; import java.net.URISyntaxException; import java.util.Calendar; import java.util.Date; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JSeparator; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.JTextPane; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import models.Image; import models.Lecture; import models.Links; import models.person; import util.GuiOrganizer; import util.OpenLinks; import com.toedter.calendar.JDateChooser; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; @SuppressWarnings("serial") public class EditLectureAllgemein_GUI extends JFrame { private final JPanel contentPanel = new JPanel(); String[] result; private JTextField Vorname; private JTextField Nachname; private JTextField Hochschule; private JTextField EMail; private JTextField textFieldLaborname; JTextArea description; JRadioButton radioButtonyes; JDateChooser dateChooserend; JDateChooser dateChooserstart; JRadioButton radioButtonno; Date startDate = new Date(); Date endDate; private final ButtonGroup buttonGroup = new ButtonGroup(); private boolean descriptionLengthOK = false; // description may not be // longer than // MAX_DESCRIPTION_LENGTH private final int MAX_DESCRIPTION_LENGTH = 254; int maxLifeTime = 180; // Anzahl Tage, die eine Veranstaltung in der Zukunft // aktiv sein darf boolean isDateOrderCorrect, isDateMaxLifeTimeCorrect, isAllInformationReady = false; /** * Create the dialog. */ public EditLectureAllgemein_GUI() { addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent arg0) { System.exit(0); } }); setResizable(false); try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) { // TODO Auto-generated catch block e.printStackTrace(); } setTitle("bwLehrpool Suite - Veranstaltung bearbeiten"); ; setBounds(0, 0, 603, 722); GuiOrganizer.centerGUI(this); getContentPane().setLayout(null); { JPanel panel = new JPanel(); panel.setBackground(SystemColor.menu); panel.setBounds(10, 11, 577, 57); getContentPane().add(panel); panel.setLayout(null); { JLabel lblNewLabel = new JLabel("Eingabe Ihrer Daten"); lblNewLabel.setBounds(10, 11, 509, 22); panel.add(lblNewLabel); lblNewLabel.setFont(new Font("Tahoma", Font.BOLD, 18)); } JTextPane txtpnBitteWhlenSie = new JTextPane(); txtpnBitteWhlenSie.setEditable(false); txtpnBitteWhlenSie.setBackground(SystemColor.menu); txtpnBitteWhlenSie .setText("Geben Sie hier bitte einen sprechenden Imagename sowie Ihre Kontaktdaten an"); txtpnBitteWhlenSie.setBounds(10, 36, 509, 21); panel.add(txtpnBitteWhlenSie); } contentPanel.setBounds(10, 85, 577, 493); contentPanel.setBackground(SystemColor.menu); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel); contentPanel.setLayout(null); JPanel panel_1 = new JPanel(); panel_1.setBackground(SystemColor.menu); panel_1.setBorder(new TitledBorder(null, "Informationen zum Besitzer", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_1.setBounds(10, 331, 557, 162); contentPanel.add(panel_1); panel_1.setLayout(null); JLabel label = new JLabel("Vorname: *"); label.setBackground(SystemColor.menu); label.setBounds(10, 33, 125, 20); panel_1.add(label); Vorname = new JTextField(); Vorname.setEditable(false); Vorname.setEnabled(false); Vorname.setText(person.verantwortlicher.getVorname()); Vorname.setBackground(Color.WHITE); Vorname.setColumns(10); Vorname.setBounds(145, 33, 350, 20); panel_1.add(Vorname); JLabel label_7 = new JLabel("Nachname: *"); label_7.setBackground(SystemColor.menu); label_7.setBounds(10, 64, 125, 20); panel_1.add(label_7); Nachname = new JTextField(); Nachname.setEnabled(false); Nachname.setEditable(false); Nachname.setText(person.verantwortlicher.getName()); Nachname.setBackground(Color.WHITE); Nachname.setColumns(10); Nachname.setBounds(145, 64, 350, 20); panel_1.add(Nachname); JLabel label_8 = new JLabel("Hochschule: *"); label_8.setBackground(SystemColor.menu); label_8.setBounds(10, 95, 125, 20); panel_1.add(label_8); Hochschule = new JTextField(); Hochschule.setEnabled(false); Hochschule.setEditable(false); Hochschule.setText(person.verantwortlicher.getHochschule()); Hochschule.setBackground(Color.WHITE); Hochschule.setColumns(10); Hochschule.setBounds(145, 95, 350, 20); panel_1.add(Hochschule); JLabel label_9 = new JLabel("E-Mail: *"); label_9.setBackground(SystemColor.menu); label_9.setBounds(10, 126, 125, 20); panel_1.add(label_9); EMail = new JTextField(); EMail.setEnabled(false); EMail.setEditable(false); EMail.setText(person.verantwortlicher.getEMail()); EMail.setBackground(Color.WHITE); EMail.setColumns(10); EMail.setBounds(145, 126, 350, 20); panel_1.add(EMail); JPanel panel = new JPanel(); panel.setBounds(10, 402, 577, 33); contentPanel.add(panel); panel.setLayout(null); panel.setBorder(new EmptyBorder(5, 5, 5, 5)); panel.setBackground(SystemColor.menu); JLabel lblHauptmen = new JLabel("Hauptmen\u00FC"); lblHauptmen.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { EditLectureAllgemein_GUI.this.setVisible(false); MainMenue_GUI main = new MainMenue_GUI(); main.setVisible(true); } }); lblHauptmen.setForeground(Color.BLUE); lblHauptmen.setBounds(10, 11, 61, 14); contentPanel.add(lblHauptmen); JLabel label_1 = new JLabel(">"); label_1.setBounds(69, 11, 13, 14); contentPanel.add(label_1); JLabel lblVlimage = new JLabel("Veranstaltung"); lblVlimage.setForeground(Color.BLUE); lblVlimage.setBounds(81, 11, 84, 14); contentPanel.add(lblVlimage); JLabel label_2 = new JLabel(">"); label_2.setBounds(175, 11, 13, 14); contentPanel.add(label_2); JLabel lblNewLabel_1 = new JLabel("Bearbeiten"); lblNewLabel_1.setBounds(188, 11, 72, 14); contentPanel.add(lblNewLabel_1); JPanel panel_2 = new JPanel(); panel_2.setLayout(null); panel_2.setBorder(new TitledBorder(null, "Veranstaltungsdaten", TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_2.setBackground(SystemColor.menu); panel_2.setBounds(10, 36, 557, 284); contentPanel.add(panel_2); JLabel label_3 = new JLabel("Laborname (Anzeigename): *"); label_3.setBounds(10, 25, 180, 14); panel_2.add(label_3); textFieldLaborname = new JTextField(); textFieldLaborname.setText(Lecture.lecture.getName()); textFieldLaborname.setColumns(10); textFieldLaborname.setBounds(200, 22, 347, 20); panel_2.add(textFieldLaborname); JTextArea textArea = new JTextArea(); textArea.setEditable(false); textArea.setWrapStyleWord(true); textArea.setText("Geben Sie bitte einen sprechenden Namen f\u00FCr das Image an. Dieser soll jedoch recht allgemein gehalten werden.\r\nBeispiel: \"Programmieren\", nicht \"Programmieren 1\""); textArea.setLineWrap(true); textArea.setFont(new Font("Tahoma", Font.PLAIN, 12)); textArea.setBackground(SystemColor.menu); textArea.setBounds(10, 49, 537, 49); panel_2.add(textArea); JLabel label_4 = new JLabel("Beschreibung: *"); label_4.setBounds(10, 111, 180, 14); panel_2.add(label_4); ScrollPane scrollPane = new ScrollPane(); scrollPane.setBounds(200, 104, 347, 78); panel_2.add(scrollPane); description = new JTextArea(); description.setFont(new Font("Tahoma", Font.PLAIN, 11)); description.setText(Lecture.lecture.getDesc()); description.setLineWrap(true); scrollPane.add(description); description.setBounds(0, 0, 4, 22); scrollPane.add(description); dateChooserend = new JDateChooser(); dateChooserend.setDateFormatString("dd-MM-yyyy HH:mm:ss"); dateChooserend.setDate(Lecture.lecture.getEnddate()); dateChooserend.setBounds(404, 188, 143, 20); panel_2.add(dateChooserend); JLabel label_5 = new JLabel("bis"); label_5.setBounds(378, 188, 21, 20); panel_2.add(label_5); dateChooserstart = new JDateChooser(); dateChooserstart .addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent arg0) { endDate = addDays(dateChooserstart.getDate(), maxLifeTime); // Datum darf weiter als 6 // Monate in der Zukunft // liegen } }); // initialize if (Lecture.lecture.getStartdate() == null) { // is not defined yet dateChooserstart.setDate(startDate); } else { // already defined from last visit on this page dateChooserstart.setDate(Lecture.lecture.getStartdate()); } if (Lecture.lecture.getEnddate() == null) { // is not defined yet dateChooserend.setDate(endDate); } else { // already defined from last visit on this page dateChooserend.setDate(Lecture.lecture.getEnddate()); } dateChooserstart.setDateFormatString("yyyy-MM-dd HH:mm:ss"); dateChooserstart.setDate(Lecture.lecture.getStartdate()); dateChooserstart.setBounds(226, 188, 143, 20); panel_2.add(dateChooserstart); JLabel label_6 = new JLabel("von:"); label_6.setBounds(200, 188, 30, 20); panel_2.add(label_6); JLabel label_10 = new JLabel("G\u00FCltigkeitsdatum: *"); label_10.setBounds(10, 188, 250, 14); panel_2.add(label_10); JLabel label_11 = new JLabel("Aktiv:"); label_11.setBounds(10, 229, 250, 14); panel_2.add(label_11); radioButtonyes = new JRadioButton("Ja"); buttonGroup.add(radioButtonyes); radioButtonyes.setBounds(240, 225, 109, 23); panel_2.add(radioButtonyes); radioButtonno = new JRadioButton("Nein"); buttonGroup.add(radioButtonno); radioButtonno.setBounds(385, 225, 109, 23); panel_2.add(radioButtonno); radioButtonyes.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { radioButtonyes.setSelected(true); radioButtonno.setSelected(false); } }); radioButtonno.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { radioButtonno.setSelected(true); radioButtonyes.setSelected(false); } }); JLabel label_12 = new JLabel("(Im VMChooser sichtbar)"); label_12.setBounds(10, 254, 250, 14); panel_2.add(label_12); JLabel lblmaxMonate = new JLabel("(max. 6 Monate)"); lblmaxMonate.setBounds(10, 208, 127, 14); panel_2.add(lblmaxMonate); { JPanel buttonPane = new JPanel(); buttonPane.setBounds(0, 640, 597, 33); buttonPane.setBackground(SystemColor.menu); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane); { JButton okButton = new JButton("Zur\u00FCck"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (radioButtonyes.isSelected() == true) { Lecture.lecture.setActive(true); } else { Lecture.lecture.setActive(false); } Lecture.lecture.setName(textFieldLaborname.getText()); Lecture.lecture.setDesc(description.getText()); Lecture.lecture.setEnddate(dateChooserend.getDate()); Lecture.lecture.setStartdate(dateChooserstart.getDate()); Image.image.setImagename(textFieldLaborname.getText()); MainMenue_GUI sr = new MainMenue_GUI(); sr.setVisible(true); dispose(); } }); okButton.setActionCommand("OK"); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); } { JButton cancelButton = new JButton("Weiter"); cancelButton.addActionListener(new ActionListener() { /* * public void actionPerformed(ActionEvent e) { * if(radioButtonyes.isSelected()==true) { * Lecture.lecture.setActive(true); } else { * Lecture.lecture.setActive(false); } * * Lecture.lecture.setName(textFieldLaborname.getText()); * Lecture.lecture.setNewName(textFieldLaborname.getText()); * Lecture.lecture.setDesc(description.getText()); * Lecture.lecture.setEnddate(dateChooserend.getDate()); * Lecture.lecture.setStartdate(dateChooserstart.getDate()); * Image.image.setImagename(textFieldLaborname.getText()); * * * PermissionEditLecture_GUI ev=new * PermissionEditLecture_GUI(); ev.setVisible(true); * dispose(); } */ public void actionPerformed(ActionEvent e) { // liegt das End-Datum vor dem Start-Datum? if (dateChooserend.getDate().before( dateChooserstart.getDate())) { // datum ist falsch rum isDateOrderCorrect = false; JOptionPane .showMessageDialog( null, "Das End-Datum liegt vor dem Start-Datum. Bitte \u00e4ndern.", "Datum fehlerhaft", JOptionPane.INFORMATION_MESSAGE); } else { // bereit isDateOrderCorrect = true; } // liegt das eingegebene Datum nach dem erlaubten // End-Datum? if (dateChooserend.getDate().after(endDate)) { // Datum zu weit weg isDateMaxLifeTimeCorrect = false; JOptionPane.showMessageDialog(null, "Das End-Datum liegt zu weit in der Zukunft. Erlaubt ist maximal:\n" + endDate, "Datum fehlerhaft", JOptionPane.INFORMATION_MESSAGE); dateChooserend.setDate(endDate); // setze Datum auf // maximum } else { // bereit isDateMaxLifeTimeCorrect = true; } // Pruefen ob alles eingegeben wurde if (textFieldLaborname.getText().isEmpty() == true || description.getText().isEmpty() == true) { // mind 1 Textfeld ist leer isAllInformationReady = false; JOptionPane .showMessageDialog( null, "Bitte geben Sie einen Veranstaltungsnamen und eine Beschreibung ein.", "Datum fehlerhaft", JOptionPane.INFORMATION_MESSAGE); } else { // Textfelder bereit isAllInformationReady = true; } // welcher Radiobutton ist geklickt? if (radioButtonyes.isSelected() == true) { Lecture.lecture.setActive(true); } else { Lecture.lecture.setActive(false); } // Pruefe ob alle Eingaben korrekt sind, dann mache // weiter if (isAllInformationReady == true && isDateMaxLifeTimeCorrect == true && isDateOrderCorrect == true && descriptionLenghtOK() == true) { // everything is ok, proceed Lecture.lecture.setName(textFieldLaborname .getText()); Lecture.lecture.setDesc(description.getText()); Lecture.lecture.setEnddate(dateChooserend.getDate()); Lecture.lecture.setStartdate(dateChooserstart .getDate()); Image.image.setImagename(textFieldLaborname .getText()); PermissionCreateLecture_GUI ev = new PermissionCreateLecture_GUI(); ev.setVisible(true); dispose(); } } }); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); } } JSeparator separator = new JSeparator(); separator.setBounds(0, 78, 597, 2); getContentPane().add(separator); JSeparator separator_1 = new JSeparator(); separator_1.setBounds(0, 627, 597, 2); getContentPane().add(separator_1); JLabel lblPflichtfelder = new JLabel("* Pflichtfelder"); lblPflichtfelder.setBounds(32, 602, 136, 14); getContentPane().add(lblPflichtfelder); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu mnNewMenu = new JMenu("Suchen"); menuBar.add(mnNewMenu); JMenuItem mntmVlSuche = new JMenuItem("VL Suche"); mnNewMenu.add(mntmVlSuche); JMenu mnNewMenu_1 = new JMenu("Hilfe"); menuBar.add(mnNewMenu_1); JMenuItem mntmFaq = new JMenuItem("FAQ"); mntmFaq.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent arg0) { OpenLinks open = new OpenLinks(); URI windows; try { windows = new URI(Links.getFAQ()); open.openWebpage(windows); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); mnNewMenu_1.add(mntmFaq); JMenuItem mntmOtrs = new JMenuItem("OTRS"); mntmOtrs.addMouseListener(new MouseAdapter() { @Override public void mousePressed(MouseEvent arg0) { OpenLinks open = new OpenLinks(); URI windows; try { windows = new URI(Links.getOTRS()); open.openWebpage(windows); } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); mnNewMenu_1.add(mntmOtrs); JMenuItem mntmAbout = new JMenuItem("About"); mntmAbout.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { About_GUI ab = new About_GUI(); ab.setVisible(true); } }); mnNewMenu_1.add(mntmAbout); } public Date addDays(Date date, int days) { Calendar cal = Calendar.getInstance(); cal.setTime(date); cal.add(Calendar.DATE, days); // minus number would decrement the days return cal.getTime(); }// end addDays() public boolean descriptionLenghtOK() { descriptionLengthOK = false; // max length is 254 chars if (description.getText().length() >= MAX_DESCRIPTION_LENGTH) { descriptionLengthOK = false; JOptionPane.showMessageDialog(null, "Die Beschreibung darf max 254 Zeichen enthalten. Aktuell enthält sie " + description.getText().length() + ".", "Beschreibung zu umfangreich", JOptionPane.INFORMATION_MESSAGE); } else { descriptionLengthOK = true; } return descriptionLengthOK; }// enddescriptionLenghtOK() }// end class