summaryrefslogblamecommitdiffstats
path: root/Dozentenmodul/src/main/java/gui/lecture/PermissionCreateLecture_GUI.java
blob: cfd2337c6c65918be28e5945af69665a7d4542a4 (plain) (tree)
1
                    






























































                                                    
                                

                           
                                                         




                                                         
                                                            























                                                                             



                                                                  














                                                                                               
                                                              











                                                              
                                                                                                                                







                                                                                       
                                                                                                                                         










                                                                      

                                                                                                                                      




                                                                                                        
                                                       




                                                          
                                                                                                                                 


















                                                                                                
              



                                                                                                
              

                                                  









                                                                        




                                                                   
                                                                                   











                                                                       
                                                                
                                                     
                                                     


                                                 
                                                   

                                          

                                                                    















                                                                 
                                                                                                                                                         

                                                     





































































                                                                                                                                                                                                            











                                                                                     
                                                                                                               












                                                                                       
                                                                                                     






































































































































































































                                                                               
package gui.lecture;


import gui.intro.About_GUI;
import gui.intro.MainMenue_GUI;

import java.awt.Checkbox;
import java.awt.Color;
import java.awt.Component;
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.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import javax.swing.AbstractButton;
import javax.swing.ButtonGroup;
import javax.swing.DefaultComboBoxModel;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
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.JPanel;
import javax.swing.JSeparator;
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.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellEditor;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

import models.Image;
import models.Links;
import util.GuiOrganizer;
import util.OpenLinks;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;
import javax.swing.JTextField;

import org.eclipse.jface.viewers.CheckboxCellEditor;

import java.awt.Choice;
import javax.swing.JRadioButton;

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

	private final JPanel contentPanel = new JPanel();
	String[] result;
	private JTable table;
	private Class[] classes;
	Object[] titles = { "Name","Read", "Write","Admin"};
	
	final DefaultTableModel model = new DefaultTableModel(titles, 0){
		
		
		
		 public boolean isCellEditable(int rowIndex, int mColIndex) {
			 	if(mColIndex>=1){
			 		return true;
			 	}
		        return false;
		      }
		    public Class getColumnClass(int c) {
		    	switch(c){
		    	case 0:
		        return String.class;
		        default:
		        	return Boolean.class;
		    	}
		      }
		    
		    

	};
	private JTextField textField;
	private JTable table_1;
	private final ButtonGroup buttonGroup = new ButtonGroup();

	public PermissionCreateLecture_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 - Berechtigungen");

		setBounds(0, 0, 603, 722);
		GuiOrganizer.centerGUI(this);

		getContentPane().setLayout(null);
		{
			JPanel panel = new JPanel();
			panel.setBackground(SystemColor.menu);
			panel.setBounds(10, 11, 577, 57);
			getContentPane().add(panel);
			panel.setLayout(null);
			{
				JLabel lblNewLabel = new JLabel("Veranstaltungen - Berechtigungen (Nur zur Veranschaulichung)");
				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("Definieren Sie hier bitte die gew\u00FCnschten Berechtigungen f\u00FCr ihr Lecture");
			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, "Suite-Berechtigungen", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_1.setBounds(10, 207, 311, 313);
		contentPanel.add(panel_1);
		panel_1.setLayout(null);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPane.setBounds(10, 21, 291, 249);
		panel_1.add(scrollPane);
		
		table = new JTable();
		table.setModel(model);
		table.setSelectionForeground(Color.WHITE);
		Object[] rowdata={"Max Mustermann", new Boolean(false),new Boolean(false),new Boolean(false),new Boolean(false)};
		model.addRow(rowdata);

		TableCellRenderer rend=table.getTableHeader().getDefaultRenderer();
		
		
	    TableColumn tc1 = table.getColumnModel().getColumn(1);  
	    tc1.setCellEditor(table.getDefaultEditor(Boolean.class));  
	    tc1.setCellRenderer(table.getDefaultRenderer(Boolean.class));  
	    tc1.setHeaderRenderer(new CheckBoxHeader(new MyItemListener1(),(String) titles[1]));
	    
	    TableColumn tc2 = table.getColumnModel().getColumn(2);  
	    tc2.setCellEditor(table.getDefaultEditor(Boolean.class));  
	    tc2.setCellRenderer(table.getDefaultRenderer(Boolean.class));  
	    tc2.setHeaderRenderer(new CheckBoxHeader(new MyItemListener2(),(String) titles[2]));
	    
	    TableColumn tc3 = table.getColumnModel().getColumn(3);  
	    tc3.setCellEditor(table.getDefaultEditor(Boolean.class));  
	    tc3.setCellRenderer(table.getDefaultRenderer(Boolean.class));  
	    tc3.setHeaderRenderer(new CheckBoxHeader(new MyItemListener3(),(String) titles[3]));
	    /*
	    TableColumn tc4 = table.getColumnModel().getColumn(4);  
	    tc4.setCellEditor(table.getDefaultEditor(Boolean.class));  
	    tc4.setCellRenderer(table.getDefaultRenderer(Boolean.class));  
	    tc4.setHeaderRenderer(new CheckBoxHeader(new MyItemListener4(),(String) titles[4]));
	    */
		scrollPane.setViewportView(table);
		
		JButton btnHinzufgen_1 = new JButton("Hinzuf\u00FCgen");
		btnHinzufgen_1.setEnabled(false);
		btnHinzufgen_1.setBounds(10, 279, 89, 23);
		panel_1.add(btnHinzufgen_1);
		
		JButton btnLschen_1 = new JButton("L\u00F6schen");
		btnLschen_1.setEnabled(false);
		btnLschen_1.setBounds(109, 279, 89, 23);
		panel_1.add(btnLschen_1);
		
		JLabel lblHauptmen = new JLabel("Hauptmen\u00FC");
		lblHauptmen.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				
				PermissionCreateLecture_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, 90, 14);
		contentPanel.add(lblVlimage);
		
		JLabel label_2 = new JLabel(">");
		label_2.setBounds(181, 11, 13, 14);
		contentPanel.add(label_2);
		
		JLabel lblNewLabel_1 = new JLabel("Berechtigungen");
		lblNewLabel_1.setBounds(194, 11, 95, 14);
		contentPanel.add(lblNewLabel_1);
		
		JLabel lblName = new JLabel("Name:");
		lblName.setBounds(10, 36, 46, 20);
		contentPanel.add(lblName);
		
		textField = new JTextField();
		textField.setBounds(69, 36, 171, 20);
		contentPanel.add(textField);
		textField.setColumns(10);
		
		JLabel lblHochschule = new JLabel("Hochschule:");
		lblHochschule.setBounds(275, 36, 80, 20);
		contentPanel.add(lblHochschule);
		
		JComboBox comboBox = new JComboBox();
		comboBox.setModel(new DefaultComboBoxModel(new String[] {"Hochschule Offenburg", "Hochschule Reutlingen", "Universit\u00E4t Freiburg"}));
		comboBox.setBounds(365, 36, 202, 20);
		contentPanel.add(comboBox);
		
		JPanel panel = new JPanel();
		panel.setBounds(10, 67, 557, 129);
		contentPanel.add(panel);
		panel.setLayout(null);
		panel.setBorder(new TitledBorder(null, "Beschreibung", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setBackground(SystemColor.menu);
		
		JLabel label = new JLabel("Read");
		label.setBounds(20, 18, 90, 20);
		panel.add(label);
		
		JLabel label_3 = new JLabel("Write");
		label_3.setBounds(20, 38, 90, 20);
		panel.add(label_3);
		
		JLabel label_5 = new JLabel("Admin");
		label_5.setBounds(20, 78, 90, 20);
		panel.add(label_5);
		
		JLabel label_7 = new JLabel("Image darf gelesen und gestartet werden und ist in Suchfenster sichtbar.");
		label_7.setBounds(120, 18, 380, 20);
		panel.add(label_7);
		
		JLabel lblimageDarfAngepasst = new JLabel("<HTML>Image darf angepasst und &uuml;berschrieben, jedoch nicht gel&ouml;scht werden. Berechtigungen f&uuml;r andere Benutzer festlegen</HTML>");
		lblimageDarfAngepasst.setBounds(120, 38, 380, 45);
		panel.add(lblimageDarfAngepasst);
		
		JLabel lblvolleRechteRead = new JLabel("<HTML>Volle Rechte: read, write, l&ouml;schen und Berechtigungen f&uuml;r andere Benutzer festlegen.</HTML>");
		lblvolleRechteRead.setBounds(120, 78, 380, 40);
		panel.add(lblvolleRechteRead);
		
		JPanel panel_2 = new JPanel();
		panel_2.setBounds(331, 207, 236, 313);
		contentPanel.add(panel_2);
		panel_2.setLayout(null);
		panel_2.setBorder(new TitledBorder(null, "Sichtbarkeit im VMChooser", TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_2.setBackground(SystemColor.menu);
		
		JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setEnabled(false);
		scrollPane_1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPane_1.setBounds(23, 83, 203, 185);
		panel_2.add(scrollPane_1);
		
		table_1 = new JTable();
		scrollPane_1.setViewportView(table_1);
		
		JRadioButton rdbtnAlle = new JRadioButton("Sichtbar f\u00FCr alle");
		rdbtnAlle.setEnabled(false);
		rdbtnAlle.setSelected(true);
		buttonGroup.add(rdbtnAlle);
		rdbtnAlle.setBounds(6, 27, 109, 23);
		panel_2.add(rdbtnAlle);
		
		JRadioButton rdbtnIndividuell = new JRadioButton("Individuell");
		rdbtnIndividuell.setEnabled(false);
		buttonGroup.add(rdbtnIndividuell);
		rdbtnIndividuell.setBounds(6, 53, 109, 23);
		panel_2.add(rdbtnIndividuell);
		
		JButton btnHinzufgen = new JButton("Hinzuf\u00FCgen");
		btnHinzufgen.setEnabled(false);
		btnHinzufgen.setBounds(23, 279, 89, 23);
		panel_2.add(btnHinzufgen);
		
		JButton btnLschen = new JButton("L\u00F6schen");
		btnLschen.setEnabled(false);
		btnLschen.setBounds(122, 279, 89, 23);
		panel_2.add(btnLschen);
		{
			JPanel buttonPane = new JPanel();
			buttonPane.setBounds(0, 640, 597, 33);
			buttonPane.setBackground(SystemColor.menu);
			buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
			getContentPane().add(buttonPane);
			{
				JButton cancelButton = new JButton("Zur\u00FCck");
				cancelButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
						
						CreateLectureAllgemein_GUI sr=new CreateLectureAllgemein_GUI();
						sr.setVisible(true);
						dispose();
					}
				});
				cancelButton.setActionCommand("OK");
				buttonPane.add(cancelButton);
				//getRootPane().setDefaultButton(cancelButton);
			}
			{
				JButton continueButton = new JButton("Weiter");
				continueButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						
						CreateLectureLink_GUI ea=new CreateLectureLink_GUI();
						ea.setVisible(true);
						dispose();
						
					}
				});
				continueButton.setActionCommand("Cancel");
				buttonPane.add(continueButton);
				getRootPane().setDefaultButton(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);
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu mnNewMenu = new JMenu("Suchen");
		menuBar.add(mnNewMenu);
		
		JMenuItem mntmVlSuche = new JMenuItem("VL Suche");
		mnNewMenu.add(mntmVlSuche);
		
		JMenu mnNewMenu_1 = new JMenu("Hilfe");
		menuBar.add(mnNewMenu_1);
		
		JMenuItem mntmFaq = new JMenuItem("FAQ");
		mntmFaq.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent arg0) {
				
				OpenLinks open = new OpenLinks();
				
				URI windows;
				try {
					windows = new URI(Links.getFAQ());
					
					open.openWebpage(windows);
					
				} catch (URISyntaxException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		mnNewMenu_1.add(mntmFaq);
		

		JMenuItem mntmOtrs = new JMenuItem("OTRS");
		mntmOtrs.addMouseListener(new MouseAdapter() {
			@Override
			public void mousePressed(MouseEvent arg0) {

				OpenLinks open = new OpenLinks();
				
				URI windows;
				try {
					windows = new URI(Links.getOTRS());
					
					open.openWebpage(windows);
					
				} catch (URISyntaxException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
		});
		mnNewMenu_1.add(mntmOtrs);
		
		JMenuItem mntmAbout = new JMenuItem("About");
		mntmAbout.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				About_GUI ab = new About_GUI();
				ab.setVisible(true);
			}
		});
		mnNewMenu_1.add(mntmAbout);
		
	}
	  class MyItemListener1 implements ItemListener  
	  {  
	    public void itemStateChanged(ItemEvent e) {  
	      Object source = e.getSource();  
	      if (source instanceof AbstractButton == false) return;  
	      boolean checked = e.getStateChange() == ItemEvent.SELECTED;  
	      for(int x = 0, y = table.getRowCount(); x < y; x++)  
	      {  
	        table.setValueAt(new Boolean(checked),x,1);  
	      }  
	    }
	   }
	  class MyItemListener2 implements ItemListener  
	  {  
	    public void itemStateChanged(ItemEvent e) {  
	      Object source = e.getSource();  
	      if (source instanceof AbstractButton == false) return;  
	      boolean checked = e.getStateChange() == ItemEvent.SELECTED;  
	      for(int x = 0, y = table.getRowCount(); x < y; x++)  
	      {  
	        table.setValueAt(new Boolean(checked),x,2);  
	      }  
	    }
	   }
	  class MyItemListener3 implements ItemListener  
	  {  
	    public void itemStateChanged(ItemEvent e) {  
	      Object source = e.getSource();  
	      if (source instanceof AbstractButton == false) return;  
	      boolean checked = e.getStateChange() == ItemEvent.SELECTED;  
	      for(int x = 0, y = table.getRowCount(); x < y; x++)  
	      {  
	        table.setValueAt(new Boolean(checked),x,3);  
	      }  
	    }
	   }
	  class MyItemListener4 implements ItemListener  
	  {  
	    public void itemStateChanged(ItemEvent e) {  
	      Object source = e.getSource();  
	      if (source instanceof AbstractButton == false) return;  
	      boolean checked = e.getStateChange() == ItemEvent.SELECTED;  
	      for(int x = 0, y = table.getRowCount(); x < y; x++)  
	      {  
	        table.setValueAt(new Boolean(checked),x,4);  
	      }  
	    }
	   }
}
class CheckBoxHeader extends JCheckBox
implements TableCellRenderer, MouseListener {  
protected CheckBoxHeader rendererComponent;  
protected int column;  
protected boolean mousePressed = false;  

public CheckBoxHeader(ItemListener itemListener ,String text) {  
rendererComponent = this;  
rendererComponent.addItemListener(itemListener);  
rendererComponent.setText(text);
}  

public Component getTableCellRendererComponent(  
  JTable table, Object value,  
  boolean isSelected, boolean hasFocus, int row, int column) {  
if (table != null) {  
  JTableHeader header = table.getTableHeader();  
  if (header != null) {  
   rendererComponent.setForeground(header.getForeground());  
   rendererComponent.setBackground(header.getBackground());  
   rendererComponent.setFont(header.getFont());
   rendererComponent.setBorder(header.getBorder());
   header.addMouseListener(rendererComponent);  
  }  
}  
setColumn(column);  
//rendererComponent.setText("Check All");  
//setBorder(UIManager.getBorder("TableHeader.cellBorder"));  

return rendererComponent;  
}  
protected void setColumn(int column) {  
this.column = column;  
}  
public int getColumn() {  
return column;  
}  
protected void handleClickEvent(MouseEvent e) {  
if (mousePressed) {  
  mousePressed=false;  
  JTableHeader header = (JTableHeader)(e.getSource());  
  JTable tableView = header.getTable();  
  TableColumnModel columnModel = tableView.getColumnModel();  
  int viewColumn = columnModel.getColumnIndexAtX(e.getX());  
  int column = tableView.convertColumnIndexToModel(viewColumn);  

  if (viewColumn == this.column && e.getClickCount() == 1 && column != -1) {  
    doClick();  
  }  
}  
}  
public void mouseClicked(MouseEvent e) {  
handleClickEvent(e);  
((JTableHeader)e.getSource()).repaint();  
}  
public void mousePressed(MouseEvent e) {  
mousePressed = true;  
}  
public void mouseReleased(MouseEvent e) {  
}  
public void mouseEntered(MouseEvent e) {  
}  
public void mouseExited(MouseEvent e) {  
}  
}