summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java
diff options
context:
space:
mode:
authorMichael Wilson2014-10-27 18:13:20 +0100
committerMichael Wilson2014-10-27 18:13:20 +0100
commit0ed4549c028e2523534a09fd6e41c49c9d178ec1 (patch)
treeb7a829b485b644eadb4801faad15be8a81c723b1 /dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java
parentMerge branch 'master' of ssh://git.openslx.org/openslx-ng/tutor-module (diff)
downloadtutor-module-0ed4549c028e2523534a09fd6e41c49c9d178ec1.tar.gz
tutor-module-0ed4549c028e2523534a09fd6e41c49c9d178ec1.tar.xz
tutor-module-0ed4549c028e2523534a09fd6e41c49c9d178ec1.zip
Sämtliche Logik und Grafiken zur Vergabe und Verwaltung von Berechtigungen eingeführt. Kleinere Bugs sind bekannt, werden aktuell behoben
Diffstat (limited to 'dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java')
-rw-r--r--dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java693
1 files changed, 442 insertions, 251 deletions
diff --git a/dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java b/dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java
index f2e29690..cb01d824 100644
--- a/dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java
+++ b/dozentenmodul/src/main/java/gui/lecture/PermissionEditLecture_GUI.java
@@ -1,7 +1,8 @@
package gui.lecture;
-
+import gui.image.PermissionCreateImage_GUI;
import gui.intro.About_GUI;
+import gui.intro.ListAllOtherUsers_GUI;
import gui.intro.MainMenue_GUI;
import java.awt.Color;
@@ -19,6 +20,9 @@ import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.URI;
import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
import javax.swing.AbstractButton;
import javax.swing.DefaultComboBoxModel;
@@ -46,45 +50,56 @@ import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
+import models.Image;
+import models.Lecture;
import models.Links;
+import models.RightsManagement;
+import models.person;
+import server.generated.Person;
+import server.generated.Server.Client;
+import util.CheckIntegrity;
import util.OpenLinks;
import javax.swing.JCheckBox;
+import org.apache.log4j.Logger;
+import org.apache.thrift.TException;
+
@SuppressWarnings("serial")
public class PermissionEditLecture_GUI extends JFrame {
+ private final static Logger LOGGER = Logger
+ .getLogger(PermissionCreateImage_GUI.class);
+ Client client = models.Client.clientcon.getClient();
private final JPanel contentPanel = new JPanel();
String[] result;
private JTable table;
private Class[] classes;
- Object[] titles = { "Name","Read", "Write","Admin"};
+ Object[] titles = { "Name", "Read", "Write", "Admin", "userID" };
+ private List<Person> map = null; // List of people who have rights
Component c = null;
- private static final String HELP_MESSAGE = "<html><div align=\"center\">" +
- "Hier können Sie die Berechtigungen für Ihre Veranstaltung festlegen.<br />" +
- "Es wird unterschieden, ob innerhalb der Suite (dieses Programm) Änderungen vorgenommen werden dürfen, <br />" +
- "und/oder ob die Veranstaltung auch im VMChooser angezeigt wird." +
- "</div></html>";
-
- 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 static final String HELP_MESSAGE = "<html><div align=\"center\">"
+ + "Hier können Sie die Berechtigungen für Ihre Veranstaltung festlegen.<br />"
+ + "Es wird unterschieden, ob innerhalb der Suite (dieses Programm) Änderungen vorgenommen werden dürfen, <br />"
+ + "und/oder ob die Veranstaltung auch im VMChooser angezeigt wird."
+ + "</div></html>";
+
+ 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;
+ }
+ }
};
@@ -96,7 +111,7 @@ public class PermissionEditLecture_GUI extends JFrame {
}
});
setResizable(false);
-
+
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException
@@ -117,16 +132,18 @@ public class PermissionEditLecture_GUI extends JFrame {
getContentPane().add(panel);
panel.setLayout(null);
{
- JLabel lblNewLabel = new JLabel("Veranstaltung - Berechtigungen (Nur zur Veranschaulichung)");
+ JLabel lblNewLabel = new JLabel(
+ "Veranstaltung - Berechtigungen");
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 Ihre Veranstaltung");
+ txtpnBitteWhlenSie
+ .setText("Definieren Sie hier bitte die gewünschten Berechtigungen für Ihre Veranstaltung");
txtpnBitteWhlenSie.setBounds(10, 36, 509, 32);
panel.add(txtpnBitteWhlenSie);
}
@@ -135,159 +152,261 @@ public class PermissionEditLecture_GUI extends JFrame {
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel);
contentPanel.setLayout(null);
-
+
JPanel panel = new JPanel();
panel.setLayout(null);
- panel.setBorder(new TitledBorder(null, "Beschreibung", TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel.setBorder(new TitledBorder(null, "Beschreibung",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel.setBackground(SystemColor.menu);
- panel.setBounds(10, 35, 557, 148);
+ panel.setBounds(10, 35, 557, 130);
contentPanel.add(panel);
-
+
JLabel label = new JLabel("Read");
label.setBounds(28, 18, 90, 20);
panel.add(label);
-
- JLabel label_3 = new JLabel("Image darf gelesen und gestartet werden und ist in Suchfenster sichtbar.");
+
+ JLabel label_3 = new JLabel(
+ "Image darf gelesen und gestartet werden und ist in Suchfenster sichtbar.");
label_3.setBounds(128, 18, 380, 20);
panel.add(label_3);
-
+
JLabel label_4 = new JLabel("Write");
label_4.setBounds(28, 38, 90, 20);
panel.add(label_4);
-
- JLabel label_5 = new JLabel("<HTML>Image darf angepasst und überschrieben, jedoch nicht gelöscht werden. Berechtigungen für andere Benutzer festlegen</HTML>");
+
+ JLabel label_5 = new JLabel(
+ "<HTML>Image darf angepasst und überschrieben, jedoch nicht gelöscht werden. Berechtigungen für andere Benutzer festlegen</HTML>");
label_5.setBounds(128, 38, 380, 45);
panel.add(label_5);
-
+
JLabel label_6 = new JLabel("Admin");
label_6.setBounds(28, 78, 90, 20);
panel.add(label_6);
-
- JLabel label_7 = new JLabel("<HTML>Volle Rechte: read, write, löschen und Berechtigungen für andere Benutzer festlegen.</HTML>");
+
+ JLabel label_7 = new JLabel(
+ "<HTML>Volle Rechte: read, write, löschen und Berechtigungen für andere Benutzer festlegen.</HTML>");
label_7.setBounds(128, 78, 380, 40);
panel.add(label_7);
-
- JLabel label_8 = new JLabel("Für alle sichtbar");
- label_8.setBounds(28, 119, 90, 20);
- panel.add(label_8);
-
- JCheckBox checkBox = new JCheckBox("");
- checkBox.setBounds(123, 118, 21, 23);
- panel.add(checkBox);
-
+
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.setBorder(new TitledBorder(null, "Suite-Berechtigungen",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel_1.setBounds(10, 194, 311, 326);
contentPanel.add(panel_1);
panel_1.setLayout(null);
-
+
JScrollPane scrollPane = new JScrollPane();
- scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane
+ .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setBounds(10, 28, 291, 251);
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]));
- */
+
+ // invisible attribute userID for identifying selected user
+ table.getColumnModel().getColumn(4).setWidth(0);
+ table.getColumnModel().getColumn(4).setMinWidth(0);
+ table.getColumnModel().getColumn(4).setMaxWidth(0);
+
+ // if new session, get values for table from database
+ if (RightsManagement.rightsManagement.getPermittedUserList().size() <= 0) {
+ System.out.println("Loading data from db");
+ try {
+
+ map = client.getPermissionForUserAndLecture(
+ person.verantwortlicher.getUserID(),
+ Lecture.lecture.getid());
+ Iterator<server.generated.Person> i = map.iterator();
+
+ int x = 0;
+
+ while (i.hasNext()) {
+ // erzeuge Objekte fuer die Tabelle
+ Object[] obj = {
+ map.get(x).getNachname() + ", "
+ + map.get(x).getVorname(), // Name
+ (boolean) map.get(x).isLecture_read(), // Read
+ (boolean) map.get(x).isLecture_write(), // Write
+ (boolean) map.get(x).isLecture_admin(), // Admin
+ map.get(x).getUserID() // userID
+ };
+ // System.out.println(map.get(x).isImage_read() + "");
+ // Fuege diese Objekte der Tabelle hinzu
+ model.addRow(obj);
+
+ i.next();
+ x++;
+
+ }
+
+ } catch (TException e1) {
+ // TODO Auto-generated catch block
+ e1.printStackTrace();
+ }
+ } else // read from model
+ {
+ System.out.println("reading from model");
+ System.out
+ .println("RightsManagement.rightsManagement.getPermittedUserList().size() = "
+ + RightsManagement.rightsManagement
+ .getPermittedUserList().size());
+
+ List<person> listt = RightsManagement.rightsManagement
+ .getPermittedUserList();
+ Iterator<person> i = listt.iterator();
+
+ int x = 0;
+ while (i.hasNext()) {
+ // System.out.println("current pos=" + x);
+ // erzeuge Objekte fuer die Tabelle
+ person temp = i.next();
+
+ Object[] obj = { temp.getName() + ", " + temp.getVorname(), // Name
+ temp.isLecture_read(), // Read
+ temp.isLecture_write(), // Write
+ temp.isLecture_admin(), // Admin
+ temp.getUserID() // userID
+ };
+ System.out.println("Processing: " + temp.getName() + ", "
+ + temp.getVorname() + ", " + temp.isLecture_read()
+ + ", " + temp.isLecture_write() + ", "
+ + temp.isLecture_admin() + ", " + temp.getUserID());
+ // Fuege diese Objekte der Tabelle hinzu
+ model.addRow(obj);
+ x++;
+ }
+ }// end set list of permitted users
+
+ // 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]));
+
scrollPane.setViewportView(table);
-
- JButton button = new JButton("Hinzufügen");
- button.setEnabled(false);
- button.setBounds(10, 290, 89, 23);
- panel_1.add(button);
-
- JButton button_1 = new JButton("Löschen");
- button_1.setEnabled(false);
- button_1.setBounds(109, 290, 89, 23);
- panel_1.add(button_1);
-
+
+ JButton btnAddUser = new JButton("Hinzufügen");
+ btnAddUser.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ // show list of all other relevant users
+ ListAllOtherUsers_GUI lu = new ListAllOtherUsers_GUI(c, table,
+ 4); // give access to the table model and inform that
+ // the userID is position 5 in the model
+ lu.setVisible(true);
+ }
+ });
+ btnAddUser.setBounds(10, 290, 113, 23);
+ panel_1.add(btnAddUser);
+
+ JButton btnDeleteUser = new JButton("Löschen");
+ btnDeleteUser.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+
+ // delete selected users from table
+ int[] deletableRows = table.getSelectedRows();
+ int pointerCorrection = 0; // after deleting a row, the length
+ // of selected rows is reduced by 1.
+ // This pointer counts the already
+ // deleted rows and correct the
+ // offset of i
+ LOGGER.info("deletabelRows.length=" + deletableRows.length);
+
+ for (int i = 0; i < deletableRows.length; i++) {
+
+ LOGGER.info("Deleting rowCount[" + i
+ + "], tableRow number "
+ + deletableRows[i - pointerCorrection]);
+ model.removeRow(deletableRows[i - pointerCorrection]);
+ pointerCorrection++;
+ }
+ }
+ });
+ btnDeleteUser.setBounds(133, 290, 113, 23);
+ panel_1.add(btnDeleteUser);
+
JLabel lblHauptmen = new JLabel("Hauptmenü");
lblHauptmen.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
-
+
PermissionEditLecture_GUI.this.setVisible(false);
- MainMenue_GUI main=new MainMenue_GUI(c);
+ MainMenue_GUI main = new MainMenue_GUI(c);
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("Bearbeiten");
lblNewLabel_1.setBounds(194, 11, 155, 14);
contentPanel.add(lblNewLabel_1);
-
+
JPanel panel_2 = new JPanel();
panel_2.setLayout(null);
- panel_2.setBorder(new TitledBorder(null, "Sichtbarkeit im VMChooser", TitledBorder.LEADING, TitledBorder.TOP, null, null));
+ panel_2.setBorder(new TitledBorder(null, "Sichtbarkeit im VMChooser",
+ TitledBorder.LEADING, TitledBorder.TOP, null, null));
panel_2.setBackground(SystemColor.menu);
panel_2.setBounds(331, 194, 236, 326);
contentPanel.add(panel_2);
-
+
final JScrollPane scrollPane_1 = new JScrollPane();
- scrollPane_1.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
+ scrollPane_1
+ .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane_1.setEnabled(false);
scrollPane_1.setBounds(16, 88, 210, 191);
panel_2.add(scrollPane_1);
-
+
JRadioButton rdbtnAlle = new JRadioButton("Sichtbar für alle");
rdbtnAlle.setSelected(true);
rdbtnAlle.setEnabled(false);
rdbtnAlle.setBounds(6, 32, 109, 23);
panel_2.add(rdbtnAlle);
-
+
JRadioButton rdbtnIndividuell = new JRadioButton("Individuell");
rdbtnIndividuell.setEnabled(false);
rdbtnIndividuell.setBounds(6, 58, 109, 23);
panel_2.add(rdbtnIndividuell);
-
+
final JButton btnAddVmUser = new JButton("Hinzufügen");
btnAddVmUser.setEnabled(false);
btnAddVmUser.setBounds(23, 290, 89, 23);
panel_2.add(btnAddVmUser);
-
+
final JButton btnDelVmUser = new JButton("Löschen");
btnDelVmUser.setEnabled(false);
btnDelVmUser.setBounds(122, 290, 89, 23);
@@ -302,26 +421,36 @@ public class PermissionEditLecture_GUI extends JFrame {
JButton cancelButton = new JButton("Zurück");
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
-
-
- EditLectureAllgemein_GUI sr=new EditLectureAllgemein_GUI(c);
+
+ EditLectureAllgemein_GUI sr = new EditLectureAllgemein_GUI(
+ c);
sr.setVisible(true);
dispose();
}
});
cancelButton.setActionCommand("OK");
buttonPane.add(cancelButton);
- //getRootPane().setDefaultButton(cancelButton);
+ // getRootPane().setDefaultButton(cancelButton);
}
{
JButton continueButton = new JButton("Weiter");
continueButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
-
- EditLectureLink_GUI ea=new EditLectureLink_GUI(c);
+
+ // before save, check integrity to avoid dblClick errors
+ // of rights
+ for (int i = 0; i < table.getRowCount(); i++) {
+ checkIntegrity(i); // check integrity of each line
+ // again
+ System.out.println("in auto-correct");
+ }
+
+ saveTableToList();
+
+ EditLectureLink_GUI ea = new EditLectureLink_GUI(c);
ea.setVisible(true);
dispose();
-
+
}
});
continueButton.setActionCommand("Cancel");
@@ -329,8 +458,7 @@ public class PermissionEditLecture_GUI extends JFrame {
getRootPane().setDefaultButton(continueButton);
}
}
-
-
+
rdbtnAlle.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
scrollPane_1.setEnabled(false);
@@ -338,42 +466,42 @@ public class PermissionEditLecture_GUI extends JFrame {
btnDelVmUser.setEnabled(false);
}
});
-
+
rdbtnIndividuell.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
scrollPane_1.setEnabled(true);
btnAddVmUser.setEnabled(true);
- btnDelVmUser.setEnabled(true);
+ btnDelVmUser.setEnabled(true);
}
});
-
+
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();
@@ -381,7 +509,6 @@ public class PermissionEditLecture_GUI extends JFrame {
}
});
mnNewMenu_1.add(mntmFaq);
-
JMenuItem mntmOtrs = new JMenuItem("OTRS");
mntmOtrs.addMouseListener(new MouseAdapter() {
@@ -389,22 +516,22 @@ public class PermissionEditLecture_GUI extends JFrame {
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) {
@@ -413,130 +540,194 @@ public class PermissionEditLecture_GUI extends JFrame {
}
});
mnNewMenu_1.add(mntmAbout);
-
+
JMenu mnNewMenu_Info = new JMenu("Info");
mnNewMenu_Info.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
- JOptionPane.showMessageDialog(c, HELP_MESSAGE, "Hilfe zu dieser Oberfläche", JOptionPane.INFORMATION_MESSAGE);
+ JOptionPane.showMessageDialog(c, HELP_MESSAGE,
+ "Hilfe zu dieser Oberfläche",
+ JOptionPane.INFORMATION_MESSAGE);
}
});
menuBar.add(mnNewMenu_Info);
-
+
c = this;
-
+
+ }// end constructor
+
+ private void checkIntegrity(int row) {
+
+ int selectedRow;
+
+ if (row == -1) {
+ selectedRow = table.getSelectedRow();
+ } else {
+ selectedRow = row;
+ }
+
+ boolean isRead, isWrite, isAdmin;
+
+ // collect all row data
+ isRead = (boolean) table.getValueAt(selectedRow, 1);
+ isWrite = (boolean) table.getValueAt(selectedRow, 2);
+ isAdmin = (boolean) table.getValueAt(selectedRow, 3);
+
+ boolean[] checkedVals = CheckIntegrity.isIntegre(isRead, isWrite,isAdmin, false);
+
+ table.setValueAt(checkedVals[0], selectedRow, 1);
+ table.setValueAt(checkedVals[1], selectedRow, 2);
+ table.setValueAt(checkedVals[3], selectedRow, 3);
+ }// end checkIntegrity()
+
+ // save the entered rights into the model and prepare them to be written to
+ // the database
+ private void saveTableToList() {
+ System.out.println("Saving Table to List");
+
+ List<person> list = new ArrayList<person>();
+
+ int seperatorIndex = 0;
+
+ // get values from table and save the checkbox values
+
+ // for (int i = 0; i < map.size(); i++) {
+ for (int i = 0; i < table.getRowCount(); i++) {
+ // System.out.println("in for, rowcount="+table.getRowCount());
+ person temp = new person();
+
+ seperatorIndex = table.getModel().getValueAt(i, 0).toString()
+ .indexOf(",");
+ LOGGER.info(table.getModel().getValueAt(i, 4).toString()
+ + " (userID)\t"
+ + Boolean.parseBoolean(table.getModel().getValueAt(i, 3)
+ .toString())
+ + "(admin)\t"
+ + Boolean.parseBoolean(table.getModel().getValueAt(i, 2)
+ .toString())
+ + "(write)\t"
+ + Boolean.parseBoolean(table.getModel().getValueAt(i, 1)
+ .toString())
+ + "(read)\t"
+ + table.getModel().getValueAt(i, 0).toString()
+ .substring(0, seperatorIndex)
+ + "(Nachname)\t"
+ + table.getModel().getValueAt(i, 0).toString()
+ .substring(seperatorIndex + 2) + "(Vorname)");
+
+ temp.setUserID(table.getModel().getValueAt(i, 4).toString()); // get
+ // userID
+ temp.setLecture_admin(Boolean.parseBoolean(table.getModel()
+ .getValueAt(i, 3).toString())); // get Admin
+ temp.setLecture_write(Boolean.parseBoolean(table.getModel()
+ .getValueAt(i, 2).toString()));// get Write
+ temp.setLecture_read(Boolean.parseBoolean(table.getModel()
+ .getValueAt(i, 1).toString()));// get Read
+ seperatorIndex = table.getModel().getValueAt(i, 0).toString()
+ .indexOf(",");
+ temp.setName(table.getModel().getValueAt(i, 0).toString()
+ .substring(0, seperatorIndex));
+ temp.setVorname(table.getModel().getValueAt(i, 0).toString()
+ .substring(seperatorIndex + 2));
+
+ // check if at least one checkbox is checked. If yes, save this
+ // entry into list, if not ignore this entry
+ if (temp.isLecture_admin() || temp.isLecture_write()
+ || temp.isLecture_read()) {
+ // save entry
+ list.add(temp);
+ } else {
+ // do nothing
+ }
+ }
+
+ for (int y = 0; y < list.size(); y++) {
+ System.out.println("" + list.get(y).getName());
+ }
+
+ RightsManagement.rightsManagement.setPermittedUserList(list);
+ }// end saveTableToList()
+
+ 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 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) {
-}
-} */
+/*
+ * 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) { } }
+ */