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 überschrieben, jedoch nicht gelöscht werden. Berechtigungen für andere Benutzer festlegen</HTML>");
lblimageDarfAngepasst.setBounds(120, 38, 380, 45);
panel.add(lblimageDarfAngepasst);
JLabel lblvolleRechteRead = new JLabel("<HTML>Volle Rechte: read, write, löschen und Berechtigungen fü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) {
}
}