summaryrefslogblamecommitdiffstats
path: root/Dozentenmodul/src/GUI/LinkImage_GUI.java
blob: b8b1920e0f2d70e9c9f57a6c761761e593219797 (plain) (tree)
1
2
3
4
5
6
7
8
9
            

 
                      

                           

                            
                        













                                     
                           
                             
                           
                          
                          
                         
                            
                             
                          
                                

                               
                               
                          





                                                   
                                           
 

                      
 
                                    
 

                               







                                                         
                                   
                              

                                                                                                                                      


                                                       





































                                                                                               


























































































                                                                                                                                                                           
                                                   
                     
                                                            




                                                      
                                         





























































































































                                                                                                     
                                                        









                                                                                    
                














                                                                                                                                          
                                                     

                                                                                                                                        
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                         








































                                                                                          
                                          
                     


                                                                           



                                          
                                



                                                                                                                                                                                                                                      
                                    
                                


                                     
                                         








                                                          
package 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.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.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JComboBox;
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.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JSeparator;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
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 javax.swing.table.DefaultTableModel;

import models.Lecture;
import models.person;

import org.apache.thrift.TException;

import server.Server.Client;
import thrift.ThriftConnection;

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

	private final JPanel contentPanel = new JPanel();
	String[] result;
	JRadioButton rdbtnInternetJa;
	JRadioButton rdbtnInternetNein;
	JComboBox<String> comboBox;
	JTable tableAllImages;
	private JTextField textFieldName;
	String[] titles= {"Image-Name", "Lizenzpflichtig", "OS", "Veranstaltung", "Verantwortlicher", "Letztes Update", "Schlagwort"};
	ThriftConnection thrift=new ThriftConnection();
	Client client=thrift.getThriftConnection();

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

	/**
	 * Create the dialog.
	 */
	public LinkImage_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 *Prototyp*");
		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		int top=(screenSize.height - 603) / 2;
		int left=(screenSize.width - 722) / 2;
		setBounds(left, top, 603, 722);
		

		final DefaultTableModel modelAll = new DefaultTableModel( titles, 0 );
		final DefaultTableModel model = new DefaultTableModel( titles, 0 );
		
		
		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("Suche nach VL-Image");
				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("Hier k\u00F6nnen Sie nach Ihrem gew\u00FCnschten VL-Image suchen und dieses f\u00FCr weitere Schritte ausw\u00E4hlen");
			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, 131);
		contentPanel.add(panel_1);
		panel_1.setLayout(null);
		
		JLabel lblNewLabel_2 = new JLabel("Anzeigename:");
		lblNewLabel_2.setBounds(10, 30, 250, 20);
		panel_1.add(lblNewLabel_2);
		
		JLabel lblInternetIstInnerhalb = new JLabel("Betriebssystem:");
		lblInternetIstInnerhalb.setBounds(10, 58, 250, 20);
		panel_1.add(lblInternetIstInnerhalb);
		
		textFieldName = new JTextField();
		textFieldName.addKeyListener(new KeyAdapter() {
			@Override
			public void keyReleased(KeyEvent e) {
				String stext=textFieldName.getText();
				modelAll.setRowCount(0);
				initTableModel(modelAll);
				
				if(stext!="")
				for(int i=0;i<modelAll.getRowCount();i++){
					
					if(modelAll.getValueAt(i, 0).toString().startsWith(stext)){
						
					}
					else
					{
						modelAll.removeRow(i);
					}
				}
				
				
			}
			
			
		});

		textFieldName.setBounds(270, 30, 250, 20);
		panel_1.add(textFieldName);
		textFieldName.setColumns(10);
		
		JLabel lblErweiterteSuche = new JLabel("<html><u>Erweiterte Suche</u></html>");
		lblErweiterteSuche.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				ExtendedSearch_GUI es=new ExtendedSearch_GUI();
				es.setVisible(true);
			}
		});
		lblErweiterteSuche.setForeground(Color.BLUE);
		
		lblErweiterteSuche.setBounds(431, 106, 89, 14);
		panel_1.add(lblErweiterteSuche);
		
		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 e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}
		comboBox.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				modelAll.setRowCount(0);
				initTableModel(modelAll);
				String selItem=comboBox.getSelectedItem().toString();
				if(selItem!="")
				{
				for(int i=0;i<modelAll.getRowCount();i++){
					
					if(modelAll.getValueAt(i, 2).equals(selItem)){
						
					}
					else
					{
						modelAll.removeRow(i);
					}
				}
				
				
			}
			}
		});
		comboBox.setBounds(270, 58, 250, 20);
		panel_1.add(comboBox);
		
		JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
		lblHauptmen.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				
				LinkImage_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("Imageauswahl");
		lblNewLabel_1.setBounds(146, 11, 85, 14);
		contentPanel.add(lblNewLabel_1);
		
		JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);

		tabbedPane.setBounds(10, 197, 557, 300);
		contentPanel.add(tabbedPane);
		
		JScrollPane scrollPaneMyImage = new JScrollPane();
		JTable tablemyImages=new JTable();
		tablemyImages.setModel(model);
		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();
		
		JScrollPane scrollPaneAllImages = new JScrollPane();
		tableAllImages=new JTable();
		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();
		
				
		
				scrollPaneAllImages.setViewportView(tableAllImages);
				tabbedPane.addTab("Alle", null, scrollPaneAllImages, null);

		scrollPaneMyImage.setViewportView(tablemyImages);
		tabbedPane.addTab("Meine Images", null, scrollPaneMyImage, null);
		
		JScrollPane scrollPaneCoopImages = new JScrollPane();
		JTable tableCoopImages=new JTable();
		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();

		scrollPaneCoopImages.setViewportView(tableCoopImages);
		tabbedPane.addTab("Kooperative Images", null, scrollPaneCoopImages, null);
		
		JScrollPane scrollPanePublicImages = new JScrollPane();
		JTable tablePublicImages=new JTable();
		tablePublicImages.setModel(model);
		tablePublicImages.getColumnModel().getColumn(1).sizeWidthToFit();
		tablePublicImages.getColumnModel().getColumn(2).sizeWidthToFit();
		tablePublicImages.getColumnModel().getColumn(3).sizeWidthToFit();
		tablePublicImages.getColumnModel().getColumn(4).sizeWidthToFit();
		tablePublicImages.getColumnModel().getColumn(5).sizeWidthToFit();

		scrollPanePublicImages.setViewportView(tablePublicImages);
		tabbedPane.addTab("\u00D6ffentliche Images", null, scrollPanePublicImages, null);
		
		JScrollPane scrollPanePublicVorlagen = new JScrollPane();
		JTable tablePublicVorlagen=new JTable();
		tablePublicVorlagen.setModel(model);
		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();

		scrollPanePublicVorlagen.setViewportView(tablePublicVorlagen);
		tabbedPane.addTab("\u00D6ffentliche Vorlagen", null, scrollPanePublicVorlagen, null);
		
		initTableModel(modelAll);		
		{
			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) {
		
						MainMenue_GUI main=new MainMenue_GUI();
						main.setVisible(true);
						dispose();
					}
				});
				okButton.setActionCommand("OK");
				buttonPane.add(okButton);
				getRootPane().setDefaultButton(okButton);
			}
			{
				JButton cancelButton = new JButton("Veranstaltung erzeugen und abschlie\u00DFen");
				cancelButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
						String imagename=tableAllImages.getValueAt(tableAllImages.getSelectedRow(), 0).toString();
						try {
							DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
							System.out.println(formatter.format(Lecture.lecture.getStartdate()).toString());
							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.getVorname(), person.verantwortlicher.getName(), person.verantwortlicher.getHochschule(), person.verantwortlicher.getEMail(), person.verantwortlicher.getTel(), person.verantwortlicher.getFakultät());
						} catch (TException e1) {
							// TODO Auto-generated catch block
							e1.printStackTrace();
						}
						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);
		
		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 DefaultTableModel initTableModel(DefaultTableModel model){
		List<server.Image> images;
		try {
			images = client.getImageList();
			Iterator<server.Image> i=images.iterator();
			List<Object[]> ListObj = new ArrayList<Object[]>();
			int x=0;
			
			while(i.hasNext())
			{
				
				i.next();
				Object [] obj={images.get(x).getImageName(),images.get(x).getLicenseRestriction(),images.get(x).getOsName(),images.get(x).getLectureName(),images.get(x).getUpdateTime(),images.get(x).getUserData()};
				ListObj.add(obj);
				model.addRow(ListObj.get(x));
				x++;
				
			}
			
			return model;
		} catch (TException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		return model;
	}
	
	}