summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java
diff options
context:
space:
mode:
authorNino Breuer2014-10-15 18:36:16 +0200
committerNino Breuer2014-10-15 18:36:16 +0200
commit3cab2605886b4fe28adc89c4624983ed0b412ed6 (patch)
treea3b3548318ab5f26d9467d482341df7e0e30456c /dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java
parentuser angepasst (diff)
downloadtutor-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.java148
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
}
}
}