summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/gui/lecture/CreateLectureLink_GUI.java
blob: 13360e3ab16c43748dabd9c7f15f1a0c800a80ea (plain) (tree)
1
2
3
4
5
6
7
8
9

                    
                           
                               
 
                      
                           

                            







                                     

                                   
                            
                                
                                  

                          
                     
 
                           
                             
                          
                          
                         
                            
                             
                               
                          
                                

                               
                               
                          
                             

                              
                             



                                                   
                                           

                                        
 
                      
                    
                     
 
                                    
 
                                      
                               
                         
                      



                                               

                           
                                                   




                                                         
                                   













                                           


                                              
                                                  
                                   
                                         
                                                                                   
                                                                                           
                                                      
                                                            





















                                                                                                  
        


                             
                                        


                                                                     
                                                            

                                               


                                                                    
































































                                                                                                 

                                                                     

                                    
 






                                                                                               

                                                                      
                                             
 
                

                                                                                 



                                                              
                                                         


                                                    
                                                                                   



                                                                                       
 


                                                                           
                                          
                                                                                                                          







                                                                      
 

                                                        

                                                                                     
                                                   

                                          
 
                                                                  
                                                        
                                           
 
                                                                               
                                                                  
                                                     
 



                                                               
                                                                       




















                                                                                                   
 
                         
 

                   
                                                         

                                             
 
 
                                                   
                     
                                                              
                                             

                                                               
                         
                                        
                                                          

                                                           
                                                                            
                                                                                    


                                                                       

















                                                                                                   
                                 

                         
                                                    
                                      








                                                             
 
                                                              


                                                                   
 
                                                                             
                                                                         





                                                      
 


                                                  
 
                                                                
                                                     
                                                     
                                             
 
                                                 
                                                   
                                          
 
                                                                  
                                                         
                                                
 













                                                                                                               
 




                                                        
                                             
 
                                                                  





























                                                                                                                      




                                                                             
                                                              


                                                                                 
 
                                                                     
 






                                                                               







































































                                                                                                                                                           
 













                                                                                              
 


                                                                           

                                                  

                                                         
                                                              



                                                                               
                                                                              
                                                                                     
                                                                                    
                                                
                                                                                                                     
                                                                      


                                                          


                                                                             

                         
                                                                   
                                                                                           
                                                                                     
                                                                                    

                                                                                                         
                                                                             































                                                                                                                                                                                                                                                                                                                                                     
                                                                                                                                                                                        




















































                                                                                                                                                                                                                                                                                                                                                     
                                                                                                                                                                                        





















                                                                                                                                                                                             







                                                                                                            











                                                                                                                               
                                                                                                                      




                                                                                                                        
                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                     


                                                                                                     
                                                                                                                                                                                        

                                                                                                                                 
                                                                                    










                                                                                                                                                               
                                                                                                   
                                                                                                                      
                                                                                                                            
                                                         
                                                        

                                                                  

                                                      

                                                                                           
                                                                                                           

                                                                                                         
                                                 
 

                                         

                                                                    

                         
 
                                                        
                                                   
                                                
 
                                                          
                                                      
                                                  
 

























































































































                                                                                                     

                                                  
 
 

                                                       
 
                                                         

                                                             
                                                                   
                                
                                                                 
                                









                                                                          

                         
                                         
                
 
                                                           

                                                              
                                                                   

                                                                 
                                









                                                                           
                                

                         
                                          








                                                                    
 
         
 

                                                                                                            
                                                    

                                                     
                                                       
 
                                                                               

                                                                                         


                                             
                                                                   



                                                                                      
                                                                            





                                                                                                                 
                                    
                                         
 
                         
 
                                     

                
         

































                                                                                                
 
         
 
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.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
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.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import javax.swing.JButton;
import javax.swing.JComboBox;
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.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.RowFilter;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

import models.Lecture;
import models.Links;
import models.person;

import org.apache.thrift.TException;

import server.generated.Server.Client;
import thrift.ThriftConnection;
import util.GuiOrganizer;
import util.OpenLinks;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

@SuppressWarnings("serial")
public class CreateLectureLink_GUI extends JFrame {

	private final JPanel contentPanel = new JPanel();
	String[] result;
	JRadioButton rdbtnInternetJa;
	JRadioButton rdbtnInternetNein;
	JComboBox<String> comboBox;
	JTabbedPane tabbedPane;
	JLabel labelName;
	JLabel labelUpdate;
	JLabel labelVerantwortlicher;
	JLabel labelWeitereVerantwortliche;
	JLabel labelVorlage;
	JLabel labelLizenzSoftware;
	JLabel labelInternet;
	JLabel labelRam;
	JLabel labelCPU;
	JLabel labelID;
	JLabel labelVersion;
	JTextArea textAreadesc;
	private JLabel labelOS;
	JTable tableAllImages = new JTable();
	JTable tablemyImages = new JTable();
	JTable tableCoopImages = new JTable();
	JTable tablePublicVorlagen = new JTable();
	boolean activeSearch=false;
	private JTextField textFieldName;
	String[] titles = { "Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung",
			"Verantwortlicher", "Letztes Update", "ID", "Version","Template" };
	ThriftConnection con = new ThriftConnection();
	Client client = models.Client.clientcon.getClient();
	final DefaultTableModel modelAll = new DefaultTableModel(titles, 0){
		 public boolean isCellEditable(int rowIndex, int mColIndex) {
		        return false;
		      }
	};
	final DefaultTableModel modelMyImages = new DefaultTableModel(titles, 0){
		 public boolean isCellEditable(int rowIndex, int mColIndex) {
		        return false;
		      }
	};
	final DefaultTableModel modelPublicVorlagen = new DefaultTableModel(titles, 0){
		 public boolean isCellEditable(int rowIndex, int mColIndex) {
		        return false;
		      }
	};
	final TableRowSorter<TableModel> rowSorterAll = new TableRowSorter<TableModel>(
			modelAll);
	final TableRowSorter<TableModel> rowSorterMyImages = new TableRowSorter<TableModel>(
			modelMyImages);
	final TableRowSorter<TableModel> rowSorterPublicVorlagen = new TableRowSorter<TableModel>(
			modelPublicVorlagen);
	private JTextField textField;
	
	/**
	 * Create the dialog.
	 */
	public CreateLectureLink_GUI() {
		addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent arg0) {
				con.closeThriftConnection();
				System.exit(0);
			}

			@Override
			public void windowOpened(WindowEvent arg0) {
				try {
					initTableModel(modelMyImages);
					initTableModel(modelAll);
					initTableModel(modelPublicVorlagen);
				} catch (TException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (ParseException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

				// auszublendende Angaben
				// 1=Lizenzpflichtig
				// 3=Veranstaltung
				// 6=ID
				// 7=Version
				// 8=Template
				tablemyImages.getColumnModel().getColumn(1).setWidth(0);
				tablemyImages.getColumnModel().getColumn(1).setMinWidth(0);
				tablemyImages.getColumnModel().getColumn(1).setMaxWidth(0);
				tablemyImages.getColumnModel().getColumn(3).setWidth(0);
				tablemyImages.getColumnModel().getColumn(3).setMinWidth(0);
				tablemyImages.getColumnModel().getColumn(3).setMaxWidth(0);
				tablemyImages.getColumnModel().getColumn(8).setWidth(0);
				tablemyImages.getColumnModel().getColumn(8).setMinWidth(0);
				tablemyImages.getColumnModel().getColumn(8).setMaxWidth(0);
				tablemyImages.getColumnModel().getColumn(6).setWidth(0);
				tablemyImages.getColumnModel().getColumn(6).setMinWidth(0);
				tablemyImages.getColumnModel().getColumn(6).setMaxWidth(0);
				tablemyImages.getColumnModel().getColumn(7).setWidth(0);
				tablemyImages.getColumnModel().getColumn(7).setMinWidth(0);
				tablemyImages.getColumnModel().getColumn(7).setMaxWidth(0);
				
				tablePublicVorlagen.getColumnModel().getColumn(1).setWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(1).setMinWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(1).setMaxWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(3).setWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(3).setMinWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(3).setMaxWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(8).setWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(8).setMinWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(8).setMaxWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(6).setWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(6).setMinWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(6).setMaxWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(7).setWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(7).setMinWidth(0);
				tablePublicVorlagen.getColumnModel().getColumn(7).setMaxWidth(0);
				
				tableAllImages.getColumnModel().getColumn(1).setWidth(0);
				tableAllImages.getColumnModel().getColumn(1).setMinWidth(0);
				tableAllImages.getColumnModel().getColumn(1).setMaxWidth(0);
				tableAllImages.getColumnModel().getColumn(3).setWidth(0);
				tableAllImages.getColumnModel().getColumn(3).setMinWidth(0);
				tableAllImages.getColumnModel().getColumn(3).setMaxWidth(0);
				tableAllImages.getColumnModel().getColumn(8).setWidth(0);
				tableAllImages.getColumnModel().getColumn(8).setMinWidth(0);
				tableAllImages.getColumnModel().getColumn(8).setMaxWidth(0);
				tableAllImages.getColumnModel().getColumn(6).setWidth(0);
				tableAllImages.getColumnModel().getColumn(6).setMinWidth(0);
				tableAllImages.getColumnModel().getColumn(6).setMaxWidth(0);
				tableAllImages.getColumnModel().getColumn(7).setWidth(0);
				tableAllImages.getColumnModel().getColumn(7).setMinWidth(0);
				tableAllImages.getColumnModel().getColumn(7).setMaxWidth(0);
				textFieldName.requestFocusInWindow();
			}
		});
		setResizable(false);

		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException | InstantiationException
				| IllegalAccessException | UnsupportedLookAndFeelException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		setTitle("bwLehrpool Suite - Veranstaltung erzeugen");
		setBounds(0, 0, 918, 722);
		GuiOrganizer.centerGUI(this);

		
		final DefaultTableModel model = new DefaultTableModel(titles, 0);

		getContentPane().setLayout(null);
		{
			JPanel panel = new JPanel();
			panel.setBackground(SystemColor.menu);
			panel.setBounds(10, 11, 892, 57);
			getContentPane().add(panel);
			panel.setLayout(null);
			{
				JLabel lblNewLabel = new JLabel("Image verlinken");
				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("Wählen Sie bitte ein Image aus, auf dem Ihre Versanstaltung basiert.");
			txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
			panel.add(txtpnBitteWhlenSie);
		}
		contentPanel.setBounds(10, 85, 577, 531);
		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, "Filterfunktionen",
				TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_1.setBounds(10, 49, 557, 92);
		contentPanel.add(panel_1);
		panel_1.setLayout(null);

		JLabel lblNewLabel_2 = new JLabel("Anzeigename:");
		lblNewLabel_2.setBounds(10, 30, 80, 20);
		panel_1.add(lblNewLabel_2);

		JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:");
		lblInternetIstInnerhalb.setBounds(10, 58, 80, 20);
		panel_1.add(lblInternetIstInnerhalb);

		textFieldName = new JTextField();
		textFieldName.addKeyListener(new KeyAdapter() {
			@Override
			public void keyReleased(KeyEvent e) {
				String stext = textFieldName.getText();
				// Wenn Textfield nicht leer
				if (stext != "") {
					activeSearch=true;
					// Filtere nach der Eingabe
					rowSorterAll.setRowFilter(RowFilter.regexFilter(
							textFieldName.getText(), 0));
					rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
							textFieldName.getText(), 0));
					rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
							textFieldName.getText(), 0));

				}else{
					activeSearch=false;
					String username = person.verantwortlicher.getName() + " "
							+ person.verantwortlicher.getVorname();
					rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
							username, 4));
					rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
							"true", 8));
					rowSorterAll.setRowFilter(null);
				}

			}

		});

		textFieldName.setBounds(96, 30, 166, 20);
		panel_1.add(textFieldName);
		textFieldName.setColumns(10);


		comboBox = new JComboBox<String>();
		try {
			List<String> list = client.getAllOS();
			comboBox.addItem("");
			for (int i = 0; i < list.size(); i++) {
				comboBox.addItem(list.get(i));
			}
		} catch (TException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			JOptionPane.showMessageDialog(null,
					e.getCause()+"\n"+e.getStackTrace(),
					"Debug-Message", JOptionPane.ERROR_MESSAGE);
		}
		comboBox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				// Prueft das die Auswahl nicht leer ist
				if (comboBox.getSelectedItem().toString() != "") {
					activeSearch=true;
					rowSorterAll.setRowFilter(RowFilter.regexFilter(comboBox
							.getSelectedItem().toString(), 2));
					rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
							comboBox.getSelectedItem().toString(), 2));
					rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
							comboBox.getSelectedItem().toString(), 2));
				}else{
					activeSearch=false;
					String username = person.verantwortlicher.getName() + " "
							+ person.verantwortlicher.getVorname();
					rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
							username, 4));
					rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter(
							"true", 8));
					rowSorterAll.setRowFilter(null);
				}
			}
		});
		comboBox.setBounds(96, 58, 166, 20);
		panel_1.add(comboBox);
		
		JLabel label_3 = new JLabel("Beschreibung:");
		label_3.setBounds(291, 30, 80, 20);
		panel_1.add(label_3);
		
		textField = new JTextField();
		textField.setColumns(10);
		textField.setBounds(381, 30, 166, 20);
		panel_1.add(textField);

		JLabel lblHauptmen = new JLabel("Hauptmenü");
		lblHauptmen.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {

				CreateLectureLink_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, 76, 14);
		contentPanel.add(lblVlimage);

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

		JLabel lblNewLabel_1 = new JLabel("Imageauswahl");
		lblNewLabel_1.setBounds(164, 11, 85, 14);
		contentPanel.add(lblNewLabel_1);

		tabbedPane = new JTabbedPane(JTabbedPane.TOP);
		tabbedPane.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent arg0) {
				if (tabbedPane.getSelectedIndex() == 0 && activeSearch==false) {

					String username = person.verantwortlicher.getName() + " "
							+ person.verantwortlicher.getVorname();
					rowSorterMyImages.setRowFilter(RowFilter.regexFilter(
							username, 4));
				}else if(tabbedPane.getSelectedIndex()==1 && activeSearch==false){
					rowSorterPublicVorlagen.setRowFilter(RowFilter.regexFilter("true", 8));
				} else if(tabbedPane.getSelectedIndex()==2 && activeSearch==false){
					rowSorterAll.setRowFilter(null);
				} 

			}
			
		});
		
		tabbedPane.setBounds(10, 152, 557, 345);
		contentPanel.add(tabbedPane);

		JScrollPane scrollPaneMyImage = new JScrollPane();
	    tablemyImages.getSelectionModel().addListSelectionListener( new ListSelectionListener()
	    {
	        public void valueChanged(ListSelectionEvent e)
	        {
	        	String imageid = modelMyImages
						.getValueAt(
								tablemyImages
										.convertRowIndexToModel(tablemyImages
												.getSelectedRow()), 6)
						.toString();
	        	//System.out.println(imageid);
	        	String version = modelMyImages
						.getValueAt(
								tablemyImages
										.convertRowIndexToModel(tablemyImages
												.getSelectedRow()), 7)
						.toString();
	        	//System.out.println(version);
	        	try {
					writeImageData(imageid, version);
				} catch (TException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} catch (ParseException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				}
	        }
	    });
		tablemyImages.setModel(modelMyImages);
		tablemyImages.getColumnModel().getColumn(1).sizeWidthToFit();
		tablemyImages.getColumnModel().getColumn(2).sizeWidthToFit();
		tablemyImages.getColumnModel().getColumn(3).sizeWidthToFit();
		tablemyImages.getColumnModel().getColumn(4).sizeWidthToFit();
		tablemyImages.getColumnModel().getColumn(5).sizeWidthToFit();
		tablemyImages.setRowSorter(rowSorterMyImages);

		scrollPaneMyImage.setViewportView(tablemyImages);
		tabbedPane.addTab("Meine Images", null, scrollPaneMyImage, null);

		JScrollPane scrollPaneCoopImages = new JScrollPane();

		tableCoopImages.setModel(model);
		tableCoopImages.getColumnModel().getColumn(1).sizeWidthToFit();
		tableCoopImages.getColumnModel().getColumn(2).sizeWidthToFit();
		tableCoopImages.getColumnModel().getColumn(3).sizeWidthToFit();
		tableCoopImages.getColumnModel().getColumn(4).sizeWidthToFit();
		tableCoopImages.getColumnModel().getColumn(5).sizeWidthToFit();

				
						JScrollPane scrollPanePublicVorlagen = new JScrollPane();
					    tablePublicVorlagen.getSelectionModel().addListSelectionListener( new ListSelectionListener()
					    {
					        public void valueChanged(ListSelectionEvent e)
					        {
					        	String imageid = modelPublicVorlagen
										.getValueAt(
												tablePublicVorlagen
														.convertRowIndexToModel(tablePublicVorlagen
																.getSelectedRow()), 6)
										.toString();
					        	//System.out.println(imageid);
					        	String version = modelPublicVorlagen
										.getValueAt(
												tablePublicVorlagen
														.convertRowIndexToModel(tablePublicVorlagen
																.getSelectedRow()), 7)
										.toString();
					        	//System.out.println(version);
					        	try {
									writeImageData(imageid, version);
								} catch (TException e1) {
									// TODO Auto-generated catch block
									e1.printStackTrace();
								} catch (ParseException e1) {
									// TODO Auto-generated catch block
									e1.printStackTrace();
								}
					        }
					    });
								tablePublicVorlagen.setModel(modelPublicVorlagen);
								tablePublicVorlagen.getColumnModel().getColumn(1).sizeWidthToFit();
								tablePublicVorlagen.getColumnModel().getColumn(2).sizeWidthToFit();
								tablePublicVorlagen.getColumnModel().getColumn(3).sizeWidthToFit();
								tablePublicVorlagen.getColumnModel().getColumn(4).sizeWidthToFit();
								tablePublicVorlagen.getColumnModel().getColumn(5).sizeWidthToFit();
								tablePublicVorlagen.setRowSorter(rowSorterPublicVorlagen);
								scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen);
								tabbedPane.addTab("Vorlagen", null,
										scrollPanePublicVorlagen, null);
		
				JScrollPane scrollPaneAllImages = new JScrollPane();
				tableAllImages = new JTable();
			    tableAllImages.getSelectionModel().addListSelectionListener( new ListSelectionListener()
			    {
			        public void valueChanged(ListSelectionEvent e)
			        {

			        	String imageid = modelAll
								.getValueAt(
										tableAllImages
												.convertRowIndexToModel(tableAllImages
														.getSelectedRow()), 6)
								.toString();
			        	//System.out.println(imageid);
			        	String version = modelAll
								.getValueAt(
										tableAllImages
												.convertRowIndexToModel(tableAllImages
														.getSelectedRow()), 7)
								.toString();
			        	//System.out.println(version);
			        	try {
							writeImageData(imageid, version);
						} catch (TException e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						} catch (ParseException e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						}

			        }
			    });
				tableAllImages.setModel(modelAll);
				tableAllImages.getColumnModel().getColumn(1).sizeWidthToFit();
				tableAllImages.getColumnModel().getColumn(2).sizeWidthToFit();
				tableAllImages.getColumnModel().getColumn(3).sizeWidthToFit();
				tableAllImages.getColumnModel().getColumn(4).sizeWidthToFit();
				tableAllImages.getColumnModel().getColumn(5).sizeWidthToFit();
				tableAllImages.setRowSorter(rowSorterAll);
				
				scrollPaneAllImages.setViewportView(tableAllImages);
				tabbedPane.addTab("Alle", null, scrollPaneAllImages, null);
								
			

		scrollPaneCoopImages.setViewportView(tableCoopImages);
		tabbedPane.addTab("bwLehrpool", null, scrollPaneCoopImages,
				null);
		tabbedPane.setEnabledAt(3, false);

		{
			JPanel buttonPane = new JPanel();
			buttonPane.setBounds(0, 640, 902, 33);
			buttonPane.setBackground(SystemColor.menu);
			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
			getContentPane().add(buttonPane);
			{
				JButton cancelButton = new JButton("Zurück");
				cancelButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
						PermissionCreateLecture_GUI eVAG = new PermissionCreateLecture_GUI();
						eVAG.setVisible(true);
						dispose();
					}
				});
				cancelButton.setActionCommand("CANCEL");
				buttonPane.add(cancelButton);
				getRootPane().setDefaultButton(cancelButton);
			}
			{
				JButton doLinkButton = new JButton(
						"Veranstaltung erzeugen und abschließen");
				doLinkButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						String username = person.verantwortlicher.getName() + " "
								+ person.verantwortlicher.getVorname();
						// check if a row is selected
						if (tablemyImages.getSelectedRow() != -1){

							// a row is selected, do operations
							String imagename = tablemyImages.getValueAt(
									tablemyImages.getSelectedRow(), 0)
									.toString();
							try {
								DateFormat formatter = new SimpleDateFormat(
										"yyyy-MM-dd HH:mm:ss");
								client.writeLecturedata(
										Lecture.lecture.getName(),
										Lecture.lecture.getShortDesc(),
										Lecture.lecture.getDesc(),
										formatter.format(
												Lecture.lecture.getStartdate())
												.toString(),
										formatter.format(
												Lecture.lecture.getEnddate())
												.toString(),
										Lecture.lecture.isActive(),
										imagename,
										person.verantwortlicher.getUsername(),
										person.verantwortlicher.getVorname(),
										person.verantwortlicher.getName(),
										person.verantwortlicher.getHochschule(),
										person.verantwortlicher.getEMail(),
										person.verantwortlicher.getTel(),
										person.verantwortlicher.getFakultaet());
								client.writeLectureRights(Lecture.lecture.getName(), person.verantwortlicher.getUsername(), person.verantwortlicher.getName(), person.verantwortlicher.getVorname(), person.verantwortlicher.getEMail(), person.verantwortlicher.getHochschule(), person.verantwortlicher.getRole());
								JOptionPane
										.showMessageDialog(
												null,
												"Ihre Veranstaltung wurde erfolgreich angelegt. Sie kehren nun zum Hauptmenü zurück.",
												"Veranstaltung angelegt",
												JOptionPane.INFORMATION_MESSAGE);
								// zurueck zum Menue
								MainMenue_GUI m = new MainMenue_GUI();
								m.setVisible(true);
							} catch (TException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
								JOptionPane
										.showMessageDialog(
												null,
												"Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.",
												"Error",
												JOptionPane.ERROR_MESSAGE);
								JOptionPane.showMessageDialog(null,
										e1.getCause()+"\n"+e1.getStackTrace(),
										"Debug-Message", JOptionPane.ERROR_MESSAGE);
							}
							
							dispose();

						}else if (tablePublicVorlagen.getSelectedRow() != -1){

							// a row is selected, do operations
							String imagename = tablePublicVorlagen.getValueAt(
									tablePublicVorlagen.getSelectedRow(), 0)
									.toString();
							try {
								DateFormat formatter = new SimpleDateFormat(
										"yyyy-MM-dd hh:mm:ss");
								client.writeLecturedata(
										Lecture.lecture.getName(),
										Lecture.lecture.getShortDesc(),
										Lecture.lecture.getDesc(),
										formatter.format(
												Lecture.lecture.getStartdate())
												.toString(),
										formatter.format(
												Lecture.lecture.getEnddate())
												.toString(),
										Lecture.lecture.isActive(),
										imagename,
										person.verantwortlicher.getUsername(),
										person.verantwortlicher.getVorname(),
										person.verantwortlicher.getName(),
										person.verantwortlicher.getHochschule(),
										person.verantwortlicher.getEMail(),
										person.verantwortlicher.getTel(),
										person.verantwortlicher.getFakultaet());
								client.writeLectureRights(Lecture.lecture.getName(), person.verantwortlicher.getUsername(), person.verantwortlicher.getName(), person.verantwortlicher.getVorname(), person.verantwortlicher.getEMail(), person.verantwortlicher.getHochschule(), person.verantwortlicher.getRole());
								JOptionPane
										.showMessageDialog(
												null,
												"Ihre Veranstaltung wurde erfolgreich angelegt. Sie kehren nun zum Hauptmenü zurück.",
												"Veranstaltung angelegt",
												JOptionPane.INFORMATION_MESSAGE);
								// zurueck zum Menue
								MainMenue_GUI m = new MainMenue_GUI();
								m.setVisible(true);
							} catch (TException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
								JOptionPane
										.showMessageDialog(
												null,
												"Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.",
												"Error",
												JOptionPane.ERROR_MESSAGE);
								JOptionPane.showMessageDialog(null,
										e1.getCause()+"\n"+e1.getStackTrace(),
										"Debug-Message", JOptionPane.ERROR_MESSAGE);
							}
							
							dispose();

						}else if (tableAllImages.getSelectedRow() != -1 &&tableAllImages.getValueAt(tableAllImages.getSelectedRow(), 4).toString().equals(username)){

							// a row is selected, do operations
							String imagename = tableAllImages.getValueAt(
									tableAllImages.getSelectedRow(), 0)
									.toString();
							try {
								DateFormat formatter = new SimpleDateFormat(
										"yyyy-MM-dd hh:mm:ss");
								client.writeLecturedata(
										Lecture.lecture.getName(),
										Lecture.lecture.getShortDesc(),
										Lecture.lecture.getDesc(),
										formatter.format(
												Lecture.lecture.getStartdate())
												.toString(),
										formatter.format(
												Lecture.lecture.getEnddate())
												.toString(),
										Lecture.lecture.isActive(),
										imagename,
										person.verantwortlicher.getUsername(),
										person.verantwortlicher.getVorname(),
										person.verantwortlicher.getName(),
										person.verantwortlicher.getHochschule(),
										person.verantwortlicher.getEMail(),
										person.verantwortlicher.getTel(),
										person.verantwortlicher.getFakultaet());
								client.writeLectureRights(Lecture.lecture.getName(), person.verantwortlicher.getUsername(), person.verantwortlicher.getName(), person.verantwortlicher.getVorname(), person.verantwortlicher.getEMail(), person.verantwortlicher.getHochschule(), person.verantwortlicher.getRole());
								JOptionPane
										.showMessageDialog(
												null,
												"Ihre Veranstaltung wurde erfolgreich angelegt. Sie kehren nun zum Hauptmenü zurück.",
												"Veranstaltung angelegt",
												JOptionPane.INFORMATION_MESSAGE);
								// zurueck zum Menue
								MainMenue_GUI m = new MainMenue_GUI();
								m.setVisible(true);
							} catch (TException e1) {
								// TODO Auto-generated catch block
								e1.printStackTrace();
								JOptionPane
										.showMessageDialog(
												null,
												"Beim Anlegen Ihrer Veranstaltung ist ein Fehler aufgetreten.",
												"Error",
												JOptionPane.ERROR_MESSAGE);
								JOptionPane.showMessageDialog(null,
										e1.getCause()+"\n"+e1.getStackTrace(),
										"Debug-Message", JOptionPane.ERROR_MESSAGE);
							}
							
							dispose();

						}   
						else {
							// nothing selected
							JOptionPane.showMessageDialog(null,
									"Bitte wählen Sie ein Image aus.",
									"Image Auswahl",
									JOptionPane.INFORMATION_MESSAGE);
						}

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

		JSeparator separator = new JSeparator();
		separator.setBounds(0, 79, 912, 1);
		getContentPane().add(separator);

		JSeparator separator_1 = new JSeparator();
		separator_1.setBounds(0, 627, 912, 2);
		getContentPane().add(separator_1);

		JPanel panel = new JPanel();
		panel.setLayout(null);
		panel.setBorder(new TitledBorder(null, "Detailinformationen",

						TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setBackground(SystemColor.menu);
		panel.setBounds(586, 85, 316, 531);
		getContentPane().add(panel);
		
		JLabel lblName = new JLabel("Name:");
		lblName.setBounds(10, 87, 130, 14);
		panel.add(lblName);
		
		labelName = new JLabel("");
		labelName.setBounds(10, 102, 296, 14);
		panel.add(labelName);
		
		JLabel lblVerantwortlicher = new JLabel("Verantwortlicher:");
		lblVerantwortlicher.setBounds(10, 259, 130, 14);
		panel.add(lblVerantwortlicher);
		
		labelOS = new JLabel("");
		labelOS.setBounds(10, 216, 296, 14);
		panel.add(labelOS);
		
		JLabel lblWeitereVerantwortliche = new JLabel("Betriebssystem:");
		lblWeitereVerantwortliche.setBounds(10, 202, 130, 14);
		panel.add(lblWeitereVerantwortliche);
		
		labelVerantwortlicher = new JLabel("");
		labelVerantwortlicher.setBounds(10, 272, 296, 14);
		panel.add(labelVerantwortlicher);
		
		JLabel label = new JLabel("Weitere Verantwortliche:");
		label.setBounds(10, 284, 130, 14);
		panel.add(label);
		
		labelWeitereVerantwortliche = new JLabel("");
		labelWeitereVerantwortliche.setBounds(10, 297, 296, 14);
		panel.add(labelWeitereVerantwortliche);
		
		labelUpdate = new JLabel("");
		labelUpdate.setBounds(10, 245, 296, 14);
		panel.add(labelUpdate);
		
		JLabel lblLetztesUpdate = new JLabel("Letztes Update:");
		lblLetztesUpdate.setBounds(10, 231, 130, 14);
		panel.add(lblLetztesUpdate);
		
		JLabel lblImageIstVorlage = new JLabel("Image ist Vorlage:");
		lblImageIstVorlage.setBounds(10, 336, 130, 14);
		panel.add(lblImageIstVorlage);
		
		labelVorlage = new JLabel("");
		labelVorlage.setBounds(10, 350, 296, 14);
		panel.add(labelVorlage);
		
		labelLizenzSoftware = new JLabel("");
		labelLizenzSoftware.setBounds(10, 383, 296, 14);
		panel.add(labelLizenzSoftware);
		
		JLabel lblLizenzpflichtigeSoftware = new JLabel("Lizenzpflichtige Software:");
		lblLizenzpflichtigeSoftware.setBounds(10, 367, 130, 14);
		panel.add(lblLizenzpflichtigeSoftware);
		
		JLabel lblInternet = new JLabel("Internetsperre vorhanden:");
		lblInternet.setBounds(10, 400, 130, 14);
		panel.add(lblInternet);
		
		labelInternet = new JLabel("");
		labelInternet.setBounds(10, 417, 296, 14);
		panel.add(labelInternet);
		
		JLabel lblEmpfehlungRam = new JLabel("Empfehlung RAM:");
		lblEmpfehlungRam.setBounds(10, 432, 130, 14);
		panel.add(lblEmpfehlungRam);
		
		labelRam = new JLabel("");
		labelRam.setBounds(10, 455, 296, 14);
		panel.add(labelRam);
		
		JLabel lblEmpfehlungCpu = new JLabel("Empfehlung CPU:");
		lblEmpfehlungCpu.setBounds(10, 469, 130, 14);
		panel.add(lblEmpfehlungCpu);
		
		labelCPU = new JLabel("");
		labelCPU.setBounds(10, 487, 296, 14);
		panel.add(labelCPU);
		
		JLabel lblTechnischeDaten = new JLabel("Technische Daten:");
		lblTechnischeDaten.setBounds(10, 322, 296, 14);
		panel.add(lblTechnischeDaten);
		
		JLabel lblId = new JLabel("ID:");
		lblId.setBounds(10, 23, 296, 14);
		panel.add(lblId);
		
		labelID = new JLabel("");
		labelID.setBounds(10, 37, 296, 14);
		panel.add(labelID);
		
		labelVersion = new JLabel("");
		labelVersion.setBounds(10, 73, 296, 14);
		panel.add(labelVersion);
		
		JLabel lblVersion = new JLabel("Version:");
		lblVersion.setBounds(10, 57, 296, 14);
		panel.add(lblVersion);
		
		JLabel lblBeschreibung = new JLabel("Beschreibung:");
		lblBeschreibung.setBounds(10, 119, 130, 14);
		panel.add(lblBeschreibung);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(10, 135, 296, 65);
		panel.add(scrollPane);
		
		textAreadesc = new JTextArea();
		textAreadesc.setLineWrap(true);
		textAreadesc.setBackground(SystemColor.menu);
		scrollPane.setViewportView(textAreadesc);
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);


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

	}

	// Initiale Beffuelung eines Table models
	public DefaultTableModel initTableModel(DefaultTableModel model) throws TException, ParseException {
		List<server.generated.Image> images;
		
			// Hole eine Liste der Images
			images = client.getImageList();

			Iterator<server.generated.Image> i = images.iterator();
			SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
			SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
			int x = 0;

			while (i.hasNext()) {
				// erzeuge Objekte fuer die Tabelle
				Object[] obj = { images.get(x).getImageName(),
						images.get(x).getLicenseRestriction(),
						images.get(x).getOsName(),
						images.get(x).getLectureName(),
						images.get(x).getUserData(),
						out.format(in.parse(images.get(x).updateTime)), images.get(x).id,
						images.get(x).getVersion(),
						images.get(x).getIsTemplate()};
				// Fuege diese Objekte der Tabelle hinzu
				
				model.addRow(obj);
				x++;
				i.next();

			}

			return model;

		
	}
	public void writeImageData(String id, String version) throws TException, ParseException{
    	
			SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
			SimpleDateFormat out=new SimpleDateFormat("dd.MM.yyyy hh:mm:ss");
			Map<String,String> res=client.getImageData(id,version);
			labelName.setText(res.get("name"));
			labelOS.setText(res.get("os"));
			labelUpdate.setText(out.format(in.parse(res.get("lastupdate"))));
			labelVerantwortlicher.setText(res.get("owner"));
			labelWeitereVerantwortliche.setText("Noch nicht Verf�gbar");
			if(res.get("template").equals("true")){
				labelVorlage.setText("Ja");
			}else{
				labelVorlage.setText("Nein");
			}
			if(res.get("license").equals("1")){
				labelLizenzSoftware.setText("Ja");
			}
			else
			{
				labelLizenzSoftware.setText("Nein");
			}
			if(res.get("internet").equals("1")){
				labelInternet.setText("Ja");
			}
			else
			{
				labelInternet.setText("Nein");
			}
			labelRam.setText(res.get("ram"));
			labelCPU.setText(res.get("cpu"));
			labelID.setText(res.get("id"));
			labelVersion.setText(res.get("version"));
			textAreadesc.setText(res.get("desc"));

	}
}