summaryrefslogblamecommitdiffstats
path: root/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java
blob: d6ddc911805319ea3309a7d3ca051c2ed08f4915 (plain) (tree)






































































                                                         
                                                                     







































































                                                                                                    
                                                                                                                             



















                                                                                                              
                                                       












































                                                                                           











                                                                                                     



                                                                           



                                                       
                                                              










































                                                                                 
                                                           

                                                                                
                                                            






















                                                                                     
                                                    








                                                                                                   
                                                                                             



                                                         
                                                                                                                                                





















                                                                                            
                                                                              


                                                                                     


                                                                                                             











                                                                                       
                                                                                                        





















































































































































































































                                                                                                       
package gui.image;

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;

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

	private final JPanel contentPanel = new JPanel();
	String[] result;
	private JTable table;
	private Class[] classes;
	Object[] titles = { "Name", "Read", "Write", "Link","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 JLabel lblRead;
	private JLabel lblWrite;
	private JLabel lblAdmin;
	private JLabel lblLinkallowed;
	private JLabel lblReadDesc;
	private JLabel lblWriteDesc;
	private JLabel lblAdminDesc;
	private JLabel lblLinkallowedDesc;
	private JCheckBox chckbxFrAlleSichtbar;
	private JLabel lblFuerAlleSichtbar;

	public PermissionCreateImage_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 - Image erzeugen");

		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(
						"Image 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ünschten Berechtigungen für ihr Image");
			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, "Berechtigungen",
				TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_1.setBounds(10, 228, 557, 292);
		contentPanel.add(panel_1);
		panel_1.setLayout(null);

		JScrollPane scrollPane = new JScrollPane();
		scrollPane
				.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		scrollPane.setBounds(10, 21, 537, 170);
		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),
				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]));

		/*
		TableColumn tc5 = table.getColumnModel().getColumn(5);
		tc5.setCellEditor(table.getDefaultEditor(Boolean.class));
		tc5.setCellRenderer(table.getDefaultRenderer(Boolean.class));
		tc5.setHeaderRenderer(new CheckBoxHeader(new MyItemListener5(),
				(String) titles[5]));
		*/
		scrollPane.setViewportView(table);
		
		JPanel panel = new JPanel();
		panel.setLayout(null);
		panel.setBorder(new TitledBorder(null, "Freigabe",
						TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel.setBackground(SystemColor.menu);
		panel.setBounds(10, 201, 537, 80);
		panel_1.add(panel);
		
		JLabel label = new JLabel("Freigabemodus:");
		label.setBounds(10, 30, 250, 20);
		panel.add(label);
		
		final JComboBox comboBox_1 = new JComboBox();
		comboBox_1.setModel(new DefaultComboBoxModel(new String[] {
				"Lokal (Eigene Hochschule)",
				"Öffentlich (Alle Hochschulen)" }));
		comboBox_1.setSelectedIndex(0);
		comboBox_1.setBounds(270, 30, 250, 20);
		panel.add(comboBox_1);
		
		JLabel lblHauptmen = new JLabel("Hauptmenü");
		lblHauptmen.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {

				PermissionCreateImage_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("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("Berechtigung");
		lblNewLabel_1.setBounds(146, 11, 80, 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);

		final JComboBox comboBox = new JComboBox();
		comboBox.setModel(new DefaultComboBoxModel(new String[] {
				"Hochschule Offenburg", "Hochschule Reutlingen",
				"Universität Freiburg" }));
		comboBox.setBounds(365, 36, 202, 20);
		contentPanel.add(comboBox);

		JPanel panel_2 = new JPanel();
		panel_2.setBackground(SystemColor.menu);
		panel_2.setBorder(new TitledBorder(null, "Beschreibung",
				TitledBorder.LEADING, TitledBorder.TOP, null, null));
		panel_2.setBounds(10, 67, 557, 150);
		contentPanel.add(panel_2);
		panel_2.setLayout(null);

		lblRead = new JLabel("Read");
		lblRead.setBounds(20, 18, 90, 20);
		panel_2.add(lblRead);

		lblWrite = new JLabel("Write");
		lblWrite.setBounds(20, 38, 90, 20);
		panel_2.add(lblWrite);

		lblAdmin = new JLabel("Admin");
		lblAdmin.setBounds(20, 78, 90, 20);
		panel_2.add(lblAdmin);

		lblLinkallowed = new JLabel("Link");
		lblLinkallowed.setBounds(20, 58, 90, 20);
		panel_2.add(lblLinkallowed);

		lblReadDesc = new JLabel(
				"Image lesen und starten, in Suchfenster und VMchooser sichtbar.");
		lblReadDesc.setBounds(120, 18, 427, 20);
		panel_2.add(lblReadDesc);

		lblWriteDesc = new JLabel(
				"Image anpassen und überschreiben, jedoch nicht löschen.");
		lblWriteDesc.setBounds(120, 38, 380, 20);
		panel_2.add(lblWriteDesc);

		lblAdminDesc = new JLabel(
				"<HTML>Volle Rechte: read, write, löschen, Link und<br>Berechtigungen für andere Benutzer festlegen.</HTML>");
		lblAdminDesc.setBounds(120, 78, 380, 40);
		panel_2.add(lblAdminDesc);

		lblLinkallowedDesc = new JLabel(
				"Erzeugung einer Veranstaltung auf ein Image ist erlaubt.");
		lblLinkallowedDesc.setBounds(120, 58, 380, 20);
		panel_2.add(lblLinkallowedDesc);
		
		chckbxFrAlleSichtbar = new JCheckBox("");
		chckbxFrAlleSichtbar.setBounds(115, 119, 21, 23);
		panel_2.add(chckbxFrAlleSichtbar);
		
		lblFuerAlleSichtbar = new JLabel("Für alle sichtbar");
		lblFuerAlleSichtbar.setBounds(20, 120, 90, 20);
		panel_2.add(lblFuerAlleSichtbar);
		{
			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ück");
				cancelButton.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {

						//CreateImageFreigabe_GUI sr = new CreateImageFreigabe_GUI();
						CreateImageTechnisch_GUI ci = new CreateImageTechnisch_GUI();
						ci.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) {

						Image.image.setShareMode(comboBox_1.getSelectedIndex());
						FTPCreateUploader_GUI ea = new FTPCreateUploader_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_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 MyItemListener5 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, 5);
			}
		}
	}
}

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) {
	}
}