diff options
Diffstat (limited to 'dozentenmodul/src/main/java')
| -rw-r--r-- | dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java | 65 | ||||
| -rw-r--r-- | dozentenmodul/src/main/java/util/CheckIntegrity.java | 79 |
2 files changed, 106 insertions, 38 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java b/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java index a877cc59..cbbcbdd9 100644 --- a/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java @@ -3,6 +3,7 @@ package gui.image; import gui.intro.About_GUI; import gui.intro.Login_GUI; import gui.intro.MainMenue_GUI; + import java.awt.Color; import java.awt.Component; import java.awt.FlowLayout; @@ -22,6 +23,7 @@ import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; + import javax.swing.AbstractButton; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; @@ -49,21 +51,19 @@ import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; + import models.Image; import models.Links; import models.RightsManagement; import models.person; + import org.apache.log4j.Logger; import org.apache.thrift.TException; -import server.generated.Person; - +import server.generated.Person; import server.generated.Server.Client; -import util.GuiOrganizer; - +import util.CheckIntegrity; import util.OpenLinks; -import java.beans.PropertyChangeListener; -import java.beans.PropertyChangeEvent; @SuppressWarnings("serial") public class PermissionCreateImage_GUI extends JFrame { @@ -144,10 +144,10 @@ public class PermissionCreateImage_GUI extends JFrame { //System.out.println("formergui X oben:"+formerGUI.getLocation().getX()); //System.out.println("formergui Y oben:"+formerGUI.getLocation().getY()); - System.out.println("this oben: "+this.getLocation().getX()); - System.out.println("this oben: "+this.getLocation().getY()); + //System.out.println("this oben: "+this.getLocation().getX()); + //System.out.println("this oben: "+this.getLocation().getY()); - System.out.println("------------------------------------------"); + //System.out.println("------------------------------------------"); getContentPane().setLayout(null); { @@ -193,16 +193,20 @@ public class PermissionCreateImage_GUI extends JFrame { panel_1.add(scrollPane); table = new JTable(); - table.addMouseListener(new MouseAdapter() { + table.addMouseListener(new MouseAdapter() + { @Override - public void mouseClicked(MouseEvent e) { - System.out.println("Mouse clicked"); + public void mouseClicked(MouseEvent e) + { + checkIntegrity(-1); } + }); table.setModel(model); table.setSelectionForeground(Color.WHITE); + // invisible attribute userID for identifying selected user table.getColumnModel().getColumn(5).setWidth(0); table.getColumnModel().getColumn(5).setMinWidth(0); @@ -458,6 +462,13 @@ public class PermissionCreateImage_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(); @@ -565,6 +576,36 @@ public class PermissionCreateImage_GUI extends JFrame { //System.out.println("this on screen unten X: "+this.getLocationOnScreen().getX()); //System.out.println("this on screen unten Y: "+this.getLocationOnScreen().getY()); } + + 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); + } // Read column class MyItemListener1 implements ItemListener { diff --git a/dozentenmodul/src/main/java/util/CheckIntegrity.java b/dozentenmodul/src/main/java/util/CheckIntegrity.java index d87a8579..bb5becbd 100644 --- a/dozentenmodul/src/main/java/util/CheckIntegrity.java +++ b/dozentenmodul/src/main/java/util/CheckIntegrity.java @@ -2,46 +2,73 @@ package util; public class CheckIntegrity { - private static boolean isFine = false; + //private static boolean isFine = false; - // integrety check on permissions put by user - public static boolean[] isIntegre(boolean isRead, boolean isWrite, - boolean isLink, boolean isAdmin) { + // integrity check on permissions put by user + public static boolean[] isIntegre(boolean isRead, boolean isWrite,boolean isLink, boolean isAdmin) + { + // boolean array for the correct result values boolean[] rights = new boolean[4]; rights[0] = isRead; rights[1] = isWrite; rights[2] = isLink; rights[3] = isAdmin; + + System.out.println("*****************************"); + System.out.println(isRead+" "+isWrite+" "+isLink+" "+isAdmin); + - // do all checks and only change wrong settings - if (isAdmin == true) { - // set true for everything + if(isRead) //if read is allowed, only read is allowed + { + rights[0] = true; //read allowed + } + else //if read is not allowed, nothing is allowed + { + rights[0] = false; + rights[1] = false; + rights[2] = false; + rights[3] = false; + } + + if(isWrite) //if write was selected + { + rights[0] = true; + rights[1] = true; + } + else //if write was unselected + { + //rights[0] = false; + rights[1] = false; + } + + if(isLink) //if link was selected, read and link are allowed + { + rights[0] = true; + rights[2] = true; + } + else //if link is unselected, link is not allowed + { + rights[2] = false; + } + + if(isAdmin) //if admin is selected, anything is allowed + { rights[0] = true; rights[1] = true; rights[2] = true; rights[3] = true; - return rights; - } else { - if(isRead == false){ - //if user may not read, then he may not do anything - rights[0] = false; - rights[1] = false; - rights[2] = false; - rights[3] = false; - } - if (isWrite == true) { - // if user can write, then he must also be allowed to read - rights[0] = true; - } - - if (isLink == true) { - // if user may link, then he may also read - - } } - + else //if admin is unselected, admin is not allowed + { + rights[3] = false; + } + + System.out.println(">-------------<"); + System.out.println(rights[0]+" "+rights[1]+" "+rights[2]+" "+rights[3]); + return rights; + } } |
