diff options
| author | Nino Breuer | 2014-10-15 18:36:16 +0200 |
|---|---|---|
| committer | Nino Breuer | 2014-10-15 18:36:16 +0200 |
| commit | 3cab2605886b4fe28adc89c4624983ed0b412ed6 (patch) | |
| tree | a3b3548318ab5f26d9467d482341df7e0e30456c /dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java | |
| parent | user angepasst (diff) | |
| download | tutor-module-3cab2605886b4fe28adc89c4624983ed0b412ed6.tar.gz tutor-module-3cab2605886b4fe28adc89c4624983ed0b412ed6.tar.xz tutor-module-3cab2605886b4fe28adc89c4624983ed0b412ed6.zip | |
• added model for local holding of permissions
• added integrity check as used in createImage
• fixed bug in sql syntax which caused whitespace to be shown as #011 in statement
Diffstat (limited to 'dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java | 148 |
1 files changed, 121 insertions, 27 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java b/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java index 40b065a3..ffe0819a 100644 --- a/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java @@ -18,6 +18,7 @@ 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; @@ -55,6 +56,7 @@ import models.RightsManagement; import models.person; import server.generated.Person; import server.generated.Server.Client; +import util.CheckIntegrity; import util.GuiOrganizer; import util.OpenLinks; @@ -70,6 +72,7 @@ public class PermissionEditImage_GUI extends JFrame { private List<Person> map = null; // List of people who have rights Component c = null; + final DefaultTableModel model = new DefaultTableModel(titles, 0) { public boolean isCellEditable(int rowIndex, int mColIndex) { @@ -167,6 +170,13 @@ public class PermissionEditImage_GUI extends JFrame { panel_1.add(scrollPane); table = new JTable(); + table.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + checkIntegrity(-1); + } + + }); table.setModel(model); table.setSelectionForeground(Color.WHITE); @@ -179,26 +189,7 @@ public class PermissionEditImage_GUI extends JFrame { if (RightsManagement.rightsManagement.getPermittedUserList().size() <= 0) { System.out.println("Loading data from db"); try { - //map = client.getAllOtherSatelliteUsers(person.verantwortlicher.getUserID()); - - - /* - * - * - * - * - * Hier gehts weiter. Problem: wie greifen wir auf die Rechte zu???? - * - * - * - * - * - * */ - - - - - + map = client.getPermissionForUserAndImage(person.verantwortlicher.getUserID(), Image.image.getImageId()); Iterator<server.generated.Person> i = map.iterator(); @@ -208,18 +199,20 @@ public class PermissionEditImage_GUI extends JFrame { Object[] obj = { map.get(x).getNachname() + ", " + map.get(x).getVorname(), // Name - false, // Read - false, // Write - false, // Link - false, // Admin + (boolean)map.get(x).isImage_read(), // Read + (boolean)map.get(x).isImage_write(), // Write + (boolean)map.get(x).isImage_link(), // Link + (boolean)map.get(x).isImage_admin(), // Admin map.get(x).getUserID() // userID }; + System.out.println(map.get(x).isImage_read()+"gfhfxg"); // Fuege diese Objekte der Tabelle hinzu model.addRow(obj); i.next(); x++; } + //RightsManagement.rightsManagement.setPermittedUserList(obj); } catch (TException e1) { // TODO Auto-generated catch block @@ -442,6 +435,16 @@ public class PermissionEditImage_GUI extends JFrame { JButton continueButton = new JButton("Weiter"); continueButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { + + // 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(); Image.image.setShareMode(comboBox_1.getSelectedIndex()); FTPEditUploader_GUI ea = new FTPEditUploader_GUI(c); @@ -534,7 +537,93 @@ public class PermissionEditImage_GUI extends JFrame { menuBar.add(mnNewMenu_Info); c = this; } + + // 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 + if (map == null) + System.out.println("Error: map is null"); + + // 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(); + + // table.getModel().setValueAt(map.get, i, 5); + + temp.setUserID(table.getModel().getValueAt(i, 5).toString()); // get + // userID + temp.setImageAdmin(Boolean.parseBoolean(table.getModel() + .getValueAt(i, 4).toString())); // get Admin + temp.setImageLinkAllowed(Boolean.parseBoolean(table.getModel() + .getValueAt(i, 3).toString()));// get Link + temp.setImageWrite(Boolean.parseBoolean(table.getModel() + .getValueAt(i, 2).toString()));// get Write + temp.setImageRead(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.isImageAdmin() || temp.isImageLinkAllowed() || temp.isImageWrite() + || temp.isImageRead()) { + // save entry + list.add(temp); + } else { + // do nothing + } + } + + + System.out.println("Setting list information.\tTable size: " + + table.getRowCount() + "\t List length (=selected users): " + + list.size()); + for (int y = 0; y < list.size(); y++) { + System.out.println("" + list.get(y).getName()); + } + + RightsManagement.rightsManagement.setPermittedUserList(list); + }// end saveTableToList() + + private void checkIntegrity(int row) { + + int selectedRow; + + if (row == -1) { + selectedRow = table.getSelectedRow(); + } else { + selectedRow = row; + } + + boolean isRead, isWrite, isLink, isAdmin; + + // collect all row data + isRead = (boolean) table.getValueAt(selectedRow, 1); + isWrite = (boolean) table.getValueAt(selectedRow, 2); + isLink = (boolean) table.getValueAt(selectedRow, 3); + isAdmin = (boolean) table.getValueAt(selectedRow, 4); + + boolean[] checkedVals = CheckIntegrity.isIntegre(isRead, isWrite, + isLink, isAdmin); + table.setValueAt(checkedVals[0], selectedRow, 1); + table.setValueAt(checkedVals[1], selectedRow, 2); + table.setValueAt(checkedVals[2], selectedRow, 3); + table.setValueAt(checkedVals[3], selectedRow, 4); + }// end checkIntegrity() + class MyItemListener1 implements ItemListener { public void itemStateChanged(ItemEvent e) { Object source = e.getSource(); @@ -554,7 +643,8 @@ public class PermissionEditImage_GUI extends JFrame { return; boolean checked = e.getStateChange() == ItemEvent.SELECTED; for (int x = 0, y = table.getRowCount(); x < y; x++) { - table.setValueAt(new Boolean(checked), x, 2); + table.setValueAt(new Boolean(checked), x, 1); //set read + table.setValueAt(new Boolean(checked), x, 2); // set write } } } @@ -566,7 +656,8 @@ public class PermissionEditImage_GUI extends JFrame { return; boolean checked = e.getStateChange() == ItemEvent.SELECTED; for (int x = 0, y = table.getRowCount(); x < y; x++) { - table.setValueAt(new Boolean(checked), x, 3); + table.setValueAt(new Boolean(checked), x, 1); //set read + table.setValueAt(new Boolean(checked), x, 3); //set link } } } @@ -578,7 +669,10 @@ public class PermissionEditImage_GUI extends JFrame { return; boolean checked = e.getStateChange() == ItemEvent.SELECTED; for (int x = 0, y = table.getRowCount(); x < y; x++) { - table.setValueAt(new Boolean(checked), x, 4); + table.setValueAt(new Boolean(checked), x, 1); //set read + table.setValueAt(new Boolean(checked), x, 2); //set write + table.setValueAt(new Boolean(checked), x, 3); //set link + table.setValueAt(new Boolean(checked), x, 4); //set admin } } } |
