summaryrefslogblamecommitdiffstats
path: root/Dozentenmodul/src/gui/lecture/EingabeLectureAllgemein_GUI.java
blob: ed915892727936518992543b31a5283b686317d7 (plain) (tree)
1
2
3
4
5
6
7
8
9


                               
 
                      

                           

                            
                        





                                     

                           




                             

                               
                              

                              


                                                   
                                       

                      
                     

                             


                          

                                         
 
                           
                                                         






                                                         
                                                    

                                    
                                   

                                      





                                                                                    
 




                                                
                                                                                               









                                                                                  
                                              




                                                                     




                                                                                

                                    
 








                                                                                               

                                                        
                                               
                                                 












                                                                                       
 


                                                                           

                                                                                                                                
                                                                      






                                                                    
 

                                                        

                                                                                      
                                                     

                                          
 

                                                        
                                                 
                                   
 
                                           

                                           
                                                                      
                                                   
                                       
                                                    
                                     
 

                                                           
                                                   
                                     
 
                                            

                                            
                                                                    
                                                    
                                        
                                                     
                                      
 

                                                             
                                                   
                                     
 
                                              

                                              
                                                                            
                                                      
                                          
                                                       
                                        
 

                                                         
                                                    
                                     
 
                                         

                                         
                                                                  
                                                 
                                     
                                                   
                                   
 





                                                             
 



                                                                   
 
                                                                                   
                                                                         





                                                      
 


                                                  
 



                                                           
 


                                                   
 


                                                         
 

                                              

                                                                                     


                                                        
 


                                                                          



                                                                     
                                                                            

                                                      
                                                     
                                            






                                                                                                                                                                                                                 




                                                               



                                                         
                                                                        
                                              
                                                               


                                                   
 
                                                    



                                                                                                                                






                                                                             

                                                                          
                                            




                                                   
                                                      






                                                                                 
                                                                            
                                                              
                                              
 


                                                    
 
                                                                         
                                                     
                                      
 
                                                       
                                                     
                                      
 

                                                        
                                                           
                                            














                                                                       
                                           
 






                                                                                      






                                                                               

                                                                                   
                                                                                    
                                                                                          
                                                                                        
                                                        

                                                                                         


                                                                                                


                                                                                                         



                                                                                                 



                                                                    


                                                                           

                         

                                                                                       
                                                                                    













                                                                                                                                                 
                                                 

















                                                                                                                                            





                                                                                                                                                               




                                                                                     
                                                                                    


                                                                                          
                                                                                         
                                                 

                                                                                                  












                                                                                                             
                                                                                                   



                                                                            

                                         

                                                                      

                         
 


                                                        
 


                                                          
 


                                                                        
 

                                                  
 

                                                      
 

                                                                  
 

                                                       
 

                                                         
 

                                                           







                                                                                      

         
package gui.lecture;

import gui.intro.MainMenue_GUI;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.SystemColor;
import java.awt.Toolkit;
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 javax.swing.JButton;
import javax.swing.JDialog;
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.JSeparator;
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.person;
import javax.swing.JTextArea;
import java.awt.ScrollPane;
import java.util.Calendar;
import java.util.Date;

import com.toedter.calendar.JDateChooser;
import javax.swing.JRadioButton;

@SuppressWarnings("serial")
public class EingabeLectureAllgemein_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 txtFldVeranstaltungsname;
	JTextArea description;
	JRadioButton radioButtonyes;
	JRadioButton radioButtonno;
	JDateChooser dateChooserend;
	JDateChooser dateChooserstart;
	Date startDate = new Date();
	Date endDate;
	int maxLifeTime = 180; // Anzahl Tage, die eine Veranstaltung in der Zukunft
							// aktiv sein darf
	boolean isDateOrderCorrect, isDateMaxLifeTimeCorrect,
			isAllInformationReady = false;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		try {
			EingabeLectureAllgemein_GUI dialog = new EingabeLectureAllgemein_GUI();
			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/**
	 * Create the dialog.
	 */
	public EingabeLectureAllgemein_GUI() {
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent arg0) {
				System.exit(0);
			}

			@Override
			public void windowOpened(WindowEvent arg0) {
				txtFldVeranstaltungsname.requestFocusInWindow();
			}
		});
		setResizable(false);

		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException | InstantiationException
				| IllegalAccessException | UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		setTitle("bwLehrpool Suite *Prototyp*");
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		int top = (screenSize.height - 722) / 2;
		int left = (screenSize.width - 603) / 2;
		setBounds(left, top, 603, 722);
		// setBounds(100, 100, 603, 722);
		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) {

				EingabeLectureAllgemein_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("VL-Image");
		lblVlimage.setForeground(Color.BLUE);
		lblVlimage.setBounds(81, 11, 45, 14);
		contentPanel.add(lblVlimage);

		JLabel label_2 = new JLabel(">");
		label_2.setBounds(133, 11, 13, 14);
		contentPanel.add(label_2);

		JLabel lblNewLabel_1 = new JLabel("Neu");
		lblNewLabel_1.setBounds(146, 11, 46, 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);

		txtFldVeranstaltungsname = new JTextField();
		txtFldVeranstaltungsname.setColumns(10);
		txtFldVeranstaltungsname.setBounds(200, 22, 347, 20);
		txtFldVeranstaltungsname.setText(Lecture.lecture.getName());
		panel_2.add(txtFldVeranstaltungsname);

		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 lblDesc = new JLabel("Beschreibung: *");
		lblDesc.setBounds(10, 111, 180, 14);
		panel_2.add(lblDesc);

		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.setLineWrap(true);
		description.setText(Lecture.lecture.getDesc());
		scrollPane.add(description);
		description.setBounds(0, 0, 4, 22);
		scrollPane.add(description);

		dateChooserend = new JDateChooser();
		endDate = addDays(new Date(), maxLifeTime); // Datum darf weiter als 6
													// Monate in der Zukunft
													// liegen
		dateChooserend.setDate(endDate);
		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());
		}
		dateChooserend.setDateFormatString("yyyy-MM-dd hh:mm:ss");
		dateChooserend.setBounds(404, 188, 143, 20);
		panel_2.add(dateChooserend);

		JLabel lblBis = new JLabel("bis:");
		lblBis.setBounds(378, 188, 21, 20);
		panel_2.add(lblBis);

		dateChooserstart = new JDateChooser();
		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());
		}
		dateChooserstart.setDateFormatString("yyyy-MM-dd hh:mm:ss");
		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, 194, 127, 14);
		panel_2.add(label_10);

		JLabel label_11 = new JLabel("Aktiv:");
		label_11.setBounds(10, 229, 127, 14);
		panel_2.add(label_11);

		radioButtonyes = new JRadioButton("Ja");
		radioButtonyes.setSelected(true);
		radioButtonyes.setBounds(200, 225, 73, 23);
		panel_2.add(radioButtonyes);

		radioButtonno = new JRadioButton("Nein");
		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);
			}
		});
		radioButtonno.setBounds(296, 225, 73, 23);
		panel_2.add(radioButtonno);

		JLabel lblimVmchooserSichtbar = new JLabel("(im VMChooser sichtbar)");
		lblimVmchooserSichtbar.setBounds(10, 245, 127, 14);
		panel_2.add(lblimVmchooserSichtbar);
		
		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 backButton = new JButton("Zur\u00FCck");
				backButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						if (radioButtonyes.isSelected() == true) {
							Lecture.lecture.setActive(true);
						} else {
							Lecture.lecture.setActive(false);
						}

						Lecture.lecture.setName(txtFldVeranstaltungsname
								.getText());
						Lecture.lecture.setDesc(description.getText());
						Lecture.lecture.setEnddate(dateChooserend.getDate());
						Lecture.lecture.setStartdate(dateChooserstart.getDate());
						Image.image.setImagename(txtFldVeranstaltungsname
								.getText());

						MainMenue_GUI sr = new MainMenue_GUI();
						sr.setVisible(true);
						dispose();
					}
				});
				backButton.setActionCommand("Cancel");
				buttonPane.add(backButton);
				getRootPane().setDefaultButton(backButton);
			}
			{
				JButton continueButton = new JButton("Weiter");
				continueButton.addActionListener(new ActionListener() {
					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 ändern.",
											"Datum fehlerhaft",
											JOptionPane.ERROR_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.ERROR_MESSAGE);
						} else {
							// bereit
							isDateMaxLifeTimeCorrect = true;
						}
						// Prüfen ob alles eingegeben wurde
						if (txtFldVeranstaltungsname.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.ERROR_MESSAGE);
						} else {
							// Textfelder bereit
							isAllInformationReady = true;
						}

						// welcher Radiobutton ist geklickt?
						if (radioButtonyes.isSelected() == true) {
							Lecture.lecture.setActive(true);
						} else {
							Lecture.lecture.setActive(false);
						}
						// Prüfe ob alle Eingaben korrekt sind, dann mache
						// weiter
						if (isAllInformationReady == true
								&& isDateMaxLifeTimeCorrect == true
								&& isDateOrderCorrect == true) {
							// everything is ok, proceed
							Lecture.lecture.setName(txtFldVeranstaltungsname
									.getText());
							Lecture.lecture.setDesc(description.getText());
							Lecture.lecture.setEnddate(dateChooserend.getDate());
							Lecture.lecture.setStartdate(dateChooserstart
									.getDate());
							Image.image.setImagename(txtFldVeranstaltungsname
									.getText());

							LinkLecture_GUI ev = new LinkLecture_GUI();
							ev.setVisible(true);
							dispose();
						}

					}
				});
				continueButton.setActionCommand("OK");
				buttonPane.add(continueButton);
			}
		}

		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");
		mnNewMenu_1.add(mntmFaq);

		JMenuItem mntmOtrs = new JMenuItem("OTRS");
		mnNewMenu_1.add(mntmOtrs);

	}

	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();
	}
}