diff options
| author | Nino Breuer | 2014-10-15 14:10:11 +0200 |
|---|---|---|
| committer | Nino Breuer | 2014-10-15 14:10:11 +0200 |
| commit | 788c8fbeac35999a0d7308439a00cbbb97c91ac6 (patch) | |
| tree | 8fe0cd0d938043dec601e13b20303696978c07e1 /dozentenmodul/src/main/java/gui | |
| parent | added functionality: klick on table header also handles all sub-rights (diff) | |
| parent | [client] Login_GUI: oops, reactivate the Login by pressing Enter on either th... (diff) | |
| download | tutor-module-788c8fbeac35999a0d7308439a00cbbb97c91ac6.tar.gz tutor-module-788c8fbeac35999a0d7308439a00cbbb97c91ac6.tar.xz tutor-module-788c8fbeac35999a0d7308439a00cbbb97c91ac6.zip | |
Merge branch 'master' of ssh://git.openslx.org/openslx-ng/tutor-module
Conflicts:
dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java
g
Diffstat (limited to 'dozentenmodul/src/main/java/gui')
11 files changed, 931 insertions, 454 deletions
diff --git a/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java b/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java index 595a97d0..54dda92b 100644 --- a/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/DeleteImage_GUI.java @@ -906,7 +906,7 @@ public class DeleteImage_GUI extends JFrame { List<server.generated.Image> images; try { // Hole eine Liste der Images - images = client.getImageList(); + images = client.getImageListPermissionWrite(person.verantwortlicher.getUserID()); Iterator<server.generated.Image> i = images.iterator(); diff --git a/dozentenmodul/src/main/java/gui/image/FTPCreateUploader_GUI.java b/dozentenmodul/src/main/java/gui/image/FTPCreateUploader_GUI.java index 9d65d42e..4e5ce376 100644 --- a/dozentenmodul/src/main/java/gui/image/FTPCreateUploader_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/FTPCreateUploader_GUI.java @@ -115,7 +115,7 @@ public class FTPCreateUploader_GUI extends JFrame implements /** * Create the frame. */ - public FTPCreateUploader_GUI(final Component formerGUI) { + public FTPCreateUploader_GUI(Component formerGUI) { final Object[] options = { "Beenden", "Abbrechen" }; @@ -466,13 +466,12 @@ public class FTPCreateUploader_GUI extends JFrame implements "Abbrechen und zurück", JOptionPane.YES_NO_OPTION); if (selectedOption == JOptionPane.YES_OPTION) { - System.out.println("CreateUploader X:"+formerGUI.getLocation().getX()); - System.out.println("CreateUploader X:"+formerGUI.getLocation().getY()); - dispose(); - PermissionCreateImage_GUI m = new PermissionCreateImage_GUI(formerGUI); - m.setLocationRelativeTo(formerGUI); - + //System.out.println("CreateUploader X:"+formerGUI.getLocation().getX()); + //System.out.println("CreateUploader X:"+formerGUI.getLocation().getY()); + PermissionCreateImage_GUI m = new PermissionCreateImage_GUI(c); + //m.setLocationRelativeTo(formerGUI); m.setVisible(true); + dispose(); } else { // for actions if "no" is selected. tbd. @@ -685,15 +684,15 @@ public class FTPCreateUploader_GUI extends JFrame implements person.verantwortlicher.getRole() ); - for(int i=0; i< RightsManagement.rightsManagement.getPmImageCreateList().size(); i++){ - System.out.println("Writing additional rights for user "+RightsManagement.rightsManagement.getPmImageCreateList().get(i).getUserID()+", User "+i+"/"+RightsManagement.rightsManagement.getPmImageCreateList().size()); + for(int i=0; i< RightsManagement.rightsManagement.getPermittedUserList().size(); i++){ + System.out.println("Writing additional rights for user "+RightsManagement.rightsManagement.getPermittedUserList().get(i).getUserID()+", User "+i+"/"+RightsManagement.rightsManagement.getPermittedUserList().size()); client.writeAdditionalImageRights( Image.image.getImagename(), - RightsManagement.rightsManagement.getPmImageCreateList().get(i).getUserID(), - RightsManagement.rightsManagement.getPmImageCreateList().get(i).isRead(), - RightsManagement.rightsManagement.getPmImageCreateList().get(i).isWrite(), - RightsManagement.rightsManagement.getPmImageCreateList().get(i).isLinkAllowed(), - RightsManagement.rightsManagement.getPmImageCreateList().get(i).isAdmin() + RightsManagement.rightsManagement.getPermittedUserList().get(i).getUserID(), + RightsManagement.rightsManagement.getPermittedUserList().get(i).isRead(), + RightsManagement.rightsManagement.getPermittedUserList().get(i).isWrite(), + RightsManagement.rightsManagement.getPermittedUserList().get(i).isLinkAllowed(), + RightsManagement.rightsManagement.getPermittedUserList().get(i).isAdmin() ); }//end for diff --git a/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java b/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java index a51912c4..cc96bc5a 100644 --- a/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/PermissionCreateImage_GUI.java @@ -67,14 +67,15 @@ import util.OpenLinks; @SuppressWarnings("serial") public class PermissionCreateImage_GUI extends JFrame { - private final static Logger LOGGER = Logger.getLogger(PermissionCreateImage_GUI.class); + 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 = null; private Class[] classes; Object[] titles = { "Name", "Read", "Write", "Link", "Admin", "userID" }; - private List<Person> map = null; + private List<Person> map = null; // List of people who have rights Component c = null; // Map<String,String> ogUsers = new HashMap(); @@ -107,13 +108,13 @@ public class PermissionCreateImage_GUI extends JFrame { private JLabel lblWriteDesc; private JLabel lblAdminDesc; private JLabel lblLinkallowedDesc; - private static final String HELP_MESSAGE = "<html><div align=\"center\">" + - "Legen Sie fest, welche Personen welche Rechte an Ihrem Image haben.<br />" + - "Sie können die Rechte read, write, link und admin vergeben.<br />" + - "Link bedeutet, dass diese Person Veranstaltungen auf Ihr Image verlinken darf und dieses somit<br />" + - "implizit freigeben darf. Eine Person mit Adminrechten darf zusätzlich das Image löschen und Berechtigungen<br />" + - "für andere Benutzer festlegen und ist somit wie der Besitzer zu betrachten." + - "</div></html>"; + private static final String HELP_MESSAGE = "<html><div align=\"center\">" + + "Legen Sie fest, welche Personen welche Rechte an Ihrem Image haben.<br />" + + "Sie können die Rechte read, write, link und admin vergeben.<br />" + + "Link bedeutet, dass diese Person Veranstaltungen auf Ihr Image verlinken darf und dieses somit<br />" + + "implizit freigeben darf. Eine Person mit Adminrechten darf zusätzlich das Image löschen und Berechtigungen<br />" + + "für andere Benutzer festlegen und ist somit wie der Besitzer zu betrachten." + + "</div></html>"; public PermissionCreateImage_GUI(Component formerGUI) { addWindowListener(new WindowAdapter() { @@ -135,8 +136,6 @@ public class PermissionCreateImage_GUI extends JFrame { setBounds(0, 0, 603, 722); setLocationRelativeTo(formerGUI); - - getContentPane().setLayout(null); { @@ -182,35 +181,28 @@ 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) - { + 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); table.getColumnModel().getColumn(5).setMaxWidth(0); // if new session, get values for table from database - if (RightsManagement.rightsManagement.getPmImageCreateList().size() <= 0) { + if (RightsManagement.rightsManagement.getPermittedUserList().size() <= 0) { System.out.println("Loading data from db"); - //System.out.println(RightsManagement.rightsManagement.getPmImageCreateList().size()); - - person.verantwortlicher.getUserID(); - //System.out.println("Current userID: " +person.verantwortlicher.getUserID()); - try { - map = client.getAllOtherSatelliteUsers(person.verantwortlicher.getUserID()); + map = client.getAllOtherSatelliteUsers(person.verantwortlicher + .getUserID()); Iterator<server.generated.Person> i = map.iterator(); int x = 0; @@ -231,7 +223,6 @@ public class PermissionCreateImage_GUI extends JFrame { x++; } - //System.out.println("Number of returned users in permission list: "+ map.size()); } catch (TException e1) { // TODO Auto-generated catch block @@ -239,18 +230,19 @@ public class PermissionCreateImage_GUI extends JFrame { } } else // read from model { + System.out.println("reading from model"); System.out - .println("RightsManagement.rightsManagement.getPmImageCreateList().size() " + .println("RightsManagement.rightsManagement.getPermittedUserList().size() = " + RightsManagement.rightsManagement - .getPmImageCreateList().size()); - System.out.println("reading from model"); + .getPermittedUserList().size()); + List<person> listt = RightsManagement.rightsManagement - .getPmImageCreateList(); + .getPermittedUserList(); Iterator<person> i = listt.iterator(); int x = 0; while (i.hasNext()) { - //System.out.println("current pos=" + x); + // System.out.println("current pos=" + x); // erzeuge Objekte fuer die Tabelle person temp = i.next(); @@ -268,9 +260,8 @@ public class PermissionCreateImage_GUI extends JFrame { // Fuege diese Objekte der Tabelle hinzu model.addRow(obj); x++; - } - } + }// end set list of permitted users TableCellRenderer rend = table.getTableHeader().getDefaultRenderer(); @@ -279,8 +270,7 @@ public class PermissionCreateImage_GUI extends JFrame { tc1.setCellRenderer(table.getDefaultRenderer(Boolean.class)); tc1.setHeaderRenderer(new CheckBoxHeader(new MyItemListener1(), (String) titles[1])); - //tc1.setCellRenderer(cellRenderer) - + // tc1.setCellRenderer(cellRenderer) TableColumn tc2 = table.getColumnModel().getColumn(2); tc2.setCellEditor(table.getDefaultEditor(Boolean.class)); @@ -300,7 +290,6 @@ public class PermissionCreateImage_GUI extends JFrame { tc4.setHeaderRenderer(new CheckBoxHeader(new MyItemListener4(), (String) titles[4])); - scrollPane.setViewportView(table); JPanel panel = new JPanel(); @@ -429,8 +418,8 @@ public class PermissionCreateImage_GUI extends JFrame { cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - - CreateImageTechnisch_GUI ci = new CreateImageTechnisch_GUI(c); + CreateImageTechnisch_GUI ci = new CreateImageTechnisch_GUI( + c); ci.setVisible(true); dispose(); } @@ -443,11 +432,12 @@ 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 + + // 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"); } @@ -531,62 +521,49 @@ public class PermissionCreateImage_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; - //System.out.println("formergui unten X:"+formerGUI.getLocation().getX()); - //System.out.println("formergui unten Y:"+formerGUI.getLocation().getY()); - - //System.out.println("this unten X: "+this.getLocation().getX()); - //System.out.println("this unten Y: "+this.getLocation().getY()); - - + this.setLocationRelativeTo(formerGUI); - - //this.setLocation(1238, 53); - this.setVisible(true); - - //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) - { - + }// end constructor + + private void checkIntegrity(int row) { + int selectedRow; - - if(row == -1) - { + + if (row == -1) { selectedRow = table.getSelectedRow(); - } - else - { + } else { selectedRow = row; } - + boolean isRead, isWrite, isLink, isAdmin; - - //collect all row data - isRead = (boolean) table.getValueAt(selectedRow, 1); + + // collect all row data + isRead = (boolean) table.getValueAt(selectedRow, 1); isWrite = (boolean) table.getValueAt(selectedRow, 2); - isLink = (boolean) table.getValueAt(selectedRow, 3); + isLink = (boolean) table.getValueAt(selectedRow, 3); isAdmin = (boolean) table.getValueAt(selectedRow, 4); - - boolean[] checkedVals = CheckIntegrity.isIntegre(isRead, isWrite, isLink, isAdmin); - + + 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() // Read column class MyItemListener1 implements ItemListener { @@ -601,7 +578,7 @@ public class PermissionCreateImage_GUI extends JFrame { } } - //Write column + // Write column class MyItemListener2 implements ItemListener { public void itemStateChanged(ItemEvent e) { Object source = e.getSource(); @@ -615,7 +592,7 @@ public class PermissionCreateImage_GUI extends JFrame { } } - //Link column + // Link column class MyItemListener3 implements ItemListener { public void itemStateChanged(ItemEvent e) { Object source = e.getSource(); @@ -629,7 +606,7 @@ public class PermissionCreateImage_GUI extends JFrame { } } - //Admin column + // Admin column class MyItemListener4 implements ItemListener { public void itemStateChanged(ItemEvent e) { Object source = e.getSource(); @@ -644,8 +621,8 @@ public class PermissionCreateImage_GUI extends JFrame { } } } - - //invisible userID column + + // invisible userID column class MyItemListener5 implements ItemListener { public void itemStateChanged(ItemEvent e) { Object source = e.getSource(); @@ -658,10 +635,12 @@ public class PermissionCreateImage_GUI extends JFrame { } } - public void createRightsList() { - // ///// - } + // public void createRightsList() { + // ///// + // } + // 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"); @@ -670,11 +649,12 @@ public class PermissionCreateImage_GUI extends JFrame { int seperatorIndex = 0; // get values from table and save the checkbox values - if(map==null) System.out.println("Fuck: map is null"); - - //for (int i = 0; i < map.size(); i++) { + 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()); + // System.out.println("in for, rowcount="+table.getRowCount()); person temp = new person(); // table.getModel().setValueAt(map.get, i, 5); @@ -696,33 +676,28 @@ public class PermissionCreateImage_GUI extends JFrame { 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.isAdmin() || temp.isLinkAllowed() || temp.isWrite() || temp.isRead() ){ - //save entry + // check if at least one checkbox is checked. If yes, save this + // entry into list, if not ignore this entry + if (temp.isAdmin() || temp.isLinkAllowed() || temp.isWrite() + || temp.isRead()) { + // save entry list.add(temp); } else { - //do nothing + // do nothing } - - - /* - System.out.println(temp.getName() + ", " + temp.getVorname() + ", " - + temp.getUserID() + ", " + temp.isAdmin() + ", " - + temp.isLinkAllowed() + ", " + temp.isWrite() + ", " - + temp.isRead()); - */ } - - System.out.println("Setting list information.\tTable size: "+table.getRowCount()+"\t List length (=selected users): "+ list.size()); + + 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.setPmImageCreateList(list); - } + RightsManagement.rightsManagement.setPermittedUserList(list); + }// end saveTableToList() -} +} // end class class CheckBoxHeader extends JCheckBox implements TableCellRenderer, MouseListener { @@ -735,9 +710,6 @@ class CheckBoxHeader extends JCheckBox implements TableCellRenderer, rendererComponent.addItemListener(itemListener); rendererComponent.setText(text); } - - - public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { @@ -753,7 +725,6 @@ class CheckBoxHeader extends JCheckBox implements TableCellRenderer, } setColumn(column); - return rendererComponent; } diff --git a/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java b/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java index de7e4129..a584c0ff 100644 --- a/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/PermissionEditImage_GUI.java @@ -18,6 +18,8 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.net.URI; import java.net.URISyntaxException; +import java.util.Iterator; +import java.util.List; import javax.swing.AbstractButton; import javax.swing.DefaultComboBoxModel; @@ -45,19 +47,27 @@ import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; +import org.apache.thrift.TException; + import models.Image; import models.Links; +import models.RightsManagement; +import models.person; +import server.generated.Person; +import server.generated.Server.Client; import util.GuiOrganizer; import util.OpenLinks; @SuppressWarnings("serial") public class PermissionEditImage_GUI extends JFrame { + 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", "Link","Admin"}; + Object[] titles = { "Name", "Read", "Write", "Link", "Admin", "userID" }; + private List<Person> map = null; // List of people who have rights Component c = null; final DefaultTableModel model = new DefaultTableModel(titles, 0) { @@ -84,13 +94,13 @@ public class PermissionEditImage_GUI extends JFrame { private JLabel label_5; private JLabel label_6; private JLabel lblvolleRechteRead; - private static final String HELP_MESSAGE = "<html><div align=\"center\">" + - "Verändern Sie die Berechtigungen für Ihr Image.<br />" + - "Sie können die Rechte read, write, link und admin vergeben.<br />" + - "Link bedeutet, dass diese Person Veranstaltungen auf Ihr Image verlinken darf und dieses somit<br />" + - "implizit freigeben darf. Eine Person mit Adminrechten darf zusätzlich das Image löschen und Berechtigungen<br />" + - "für andere Benutzer festlegen und ist somit wie der Besitzer zu betrachten." + - "</div></html>"; + private static final String HELP_MESSAGE = "<html><div align=\"center\">" + + "Verändern Sie die Berechtigungen für Ihr Image.<br />" + + "Sie können die Rechte read, write, link und admin vergeben.<br />" + + "Link bedeutet, dass diese Person Veranstaltungen auf Ihr Image verlinken darf und dieses somit<br />" + + "implizit freigeben darf. Eine Person mit Adminrechten darf zusätzlich das Image löschen und Berechtigungen<br />" + + "für andere Benutzer festlegen und ist somit wie der Besitzer zu betrachten." + + "</div></html>"; public PermissionEditImage_GUI(Component formerGUI) { addWindowListener(new WindowAdapter() { @@ -159,9 +169,102 @@ public class PermissionEditImage_GUI extends JFrame { 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); + + // invisible attribute userID for identifying selected user + table.getColumnModel().getColumn(5).setWidth(0); + table.getColumnModel().getColumn(5).setMinWidth(0); + table.getColumnModel().getColumn(5).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.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(); + + int x = 0; + while (i.hasNext()) { + // erzeuge Objekte fuer die Tabelle + Object[] obj = { + map.get(x).getNachname() + ", " + + map.get(x).getVorname(), // Name + false, // Read + false, // Write + false, // Link + false, // Admin + map.get(x).getUserID() // userID + }; + // 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.isRead(), // Read + temp.isWrite(), // Write + temp.isLinkAllowed(), // Link + temp.isAdmin(), // Admin + temp.getUserID() // userID + }; + System.out.println("Processing: " + temp.getName() + ", " + + temp.getVorname() + ", " + temp.isRead() + ", " + + temp.isWrite() + ", " + temp.isLinkAllowed() + ", " + + temp.isAdmin() + ", " + 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(); @@ -189,27 +292,31 @@ public class PermissionEditImage_GUI extends JFrame { tc4.setHeaderRenderer(new CheckBoxHeader(new MyItemListener4(), (String) titles[4])); /* - TableColumn tc5 = table.getColumnModel().getColumn(5); - tc5.setCellEditor(table.getDefaultEditor(Boolean.class)); - tc5.setCellRenderer(table.getDefaultRenderer(Boolean.class)); - tc5.setHeaderRenderer(new CheckBoxHeader(new MyItemListener5(), - (String) titles[5])); - */ + * TableColumn tc5 = table.getColumnModel().getColumn(5); + * tc5.setCellEditor(table.getDefaultEditor(Boolean.class)); + * tc5.setCellRenderer(table.getDefaultRenderer(Boolean.class)); + * tc5.setHeaderRenderer(new CheckBoxHeader(new MyItemListener5(), + * (String) titles[5])); + */ scrollPane.setViewportView(table); - + JPanel panel_2 = new JPanel(); panel_2.setLayout(null); - panel_2.setBorder(new TitledBorder(null, "Freigabe", TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel_2.setBorder(new TitledBorder(null, "Freigabe", + TitledBorder.LEADING, TitledBorder.TOP, null, null)); panel_2.setBackground(SystemColor.menu); panel_2.setBounds(10, 227, 537, 80); panel_1.add(panel_2); - + JLabel label_7 = new JLabel("Freigabemodus:"); label_7.setBounds(10, 30, 250, 20); panel_2.add(label_7); - + final JComboBox comboBox_1 = new JComboBox(); - comboBox_1.setModel(new DefaultComboBoxModel(new String[] {"Lokal (Eigene Hochschule)", "Öffentlich (Alle Hochschulen)"})); + comboBox_1 + .setModel(new DefaultComboBoxModel(new String[] { + "Lokal (Eigene Hochschule)", + "Öffentlich (Alle Hochschulen)" })); comboBox_1.setSelectedIndex(Image.image.getShareMode()); comboBox_1.setBounds(270, 30, 250, 20); panel_2.add(comboBox_1); @@ -290,20 +397,22 @@ public class PermissionEditImage_GUI extends JFrame { "Image anpassen und überschreiben, jedoch nicht löschen."); lblImageAnpassenUnd.setBounds(120, 38, 380, 20); panel.add(lblImageAnpassenUnd); - + lblLinkAllowed = new JLabel("Link"); lblLinkAllowed.setBounds(20, 58, 90, 20); panel.add(lblLinkAllowed); - + label_5 = new JLabel("Admin"); label_5.setBounds(20, 78, 90, 20); panel.add(label_5); - - label_6 = new JLabel("Erzeugung einer Veranstaltung auf ein Image ist erlaubt."); + + label_6 = new JLabel( + "Erzeugung einer Veranstaltung auf ein Image ist erlaubt."); label_6.setBounds(120, 58, 380, 20); panel.add(label_6); - - lblvolleRechteRead = new JLabel("<HTML>Volle Rechte: read, write, löschen, Link und<br>Berechtigungen für andere Benutzer festlegen.</HTML>"); + + lblvolleRechteRead = new JLabel( + "<HTML>Volle Rechte: read, write, löschen, Link und<br>Berechtigungen für andere Benutzer festlegen.</HTML>"); lblvolleRechteRead.setBounds(120, 78, 380, 40); panel.add(lblvolleRechteRead); { @@ -317,8 +426,10 @@ public class PermissionEditImage_GUI extends JFrame { cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - //EditImageFreigabe_GUI sr = new EditImageFreigabe_GUI(); - EditImageTechnisch_GUI ei = new EditImageTechnisch_GUI(c); + // EditImageFreigabe_GUI sr = new + // EditImageFreigabe_GUI(); + EditImageTechnisch_GUI ei = new EditImageTechnisch_GUI( + c); ei.setVisible(true); dispose(); } @@ -331,7 +442,7 @@ public class PermissionEditImage_GUI extends JFrame { JButton continueButton = new JButton("Weiter"); continueButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - + Image.image.setShareMode(comboBox_1.getSelectedIndex()); FTPEditUploader_GUI ea = new FTPEditUploader_GUI(c); ea.setVisible(true); @@ -410,12 +521,14 @@ public class PermissionEditImage_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); diff --git a/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java index f295a1c4..e92b04b0 100644 --- a/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/SearchEditImage_GUI.java @@ -98,6 +98,7 @@ public class SearchEditImage_GUI extends JFrame { boolean activeSearch = false; private JTextField textFieldName; Component c = null; + int requiredPermission = 1; // 0=Read, 1= Write, 2=LinkAllowed, 3=Admin String[] titles = { "Name", "Lizenzpflichtig", "OS", "Veranstaltung", "Verantwortlicher", "Letztes Update", "ID", "Version", "Template" };// Angezeigt // werden @@ -108,6 +109,7 @@ public class SearchEditImage_GUI extends JFrame { // Verantwortlicher (4), // Letztes // Update (5) + private static final String HELP_MESSAGE = "<html><div align=\"center\">" + "Suchen Sie Images und laden Sie sie direkt herunter.<br />" + "Sie können die Volltextsuche nutzen und nach Betriebssystemen filtern.<br />" + @@ -890,8 +892,10 @@ public class SearchEditImage_GUI extends JFrame { public DefaultTableModel initTableModel(DefaultTableModel model) { List<server.generated.Image> images; try { - // Hole eine Liste der Images - images = client.getImageList(); + // Hole eine Liste der passenden Images + images = client.getImageListPermissionWrite(person.verantwortlicher.getUserID()); + System.out.println("User is: "+person.verantwortlicher.getUserID()); + //images = client.getImageList(person.verantwortlicher.getUserID(), requiredPermission); Iterator<server.generated.Image> i = images.iterator(); SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @@ -937,7 +941,7 @@ public class SearchEditImage_GUI extends JFrame { labelName.setText(res.get("name")); labelOS.setText(res.get("os")); labelUpdate.setText(out.format(in.parse(res.get("lastupdate")))); - labelVerantwortlicher.setText(res.get("owner")); + labelVerantwortlicher.setText(res.get("owner") + " (" + res.get("mail") + ")"); labelWeitereVerantwortliche.setText("Noch nicht Verfügbar"); if (res.get("template").equals("true")) { labelVorlage.setText("Ja"); diff --git a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java index 97128318..3a5e6ccf 100644 --- a/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java +++ b/dozentenmodul/src/main/java/gui/image/SearchImage_GUI.java @@ -894,7 +894,7 @@ public class SearchImage_GUI extends JFrame { List<server.generated.Image> images;
try {
// Hole eine Liste der Images
- images = client.getImageList();
+ images = client.getImageListPermissionRead(person.verantwortlicher.getUserID());
Iterator<server.generated.Image> i = images.iterator();
SimpleDateFormat in = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
diff --git a/dozentenmodul/src/main/java/gui/intro/Login_GUI.java b/dozentenmodul/src/main/java/gui/intro/Login_GUI.java index 3f0b99c5..035710e8 100644 --- a/dozentenmodul/src/main/java/gui/intro/Login_GUI.java +++ b/dozentenmodul/src/main/java/gui/intro/Login_GUI.java @@ -1,5 +1,6 @@ package gui.intro; +import java.awt.CardLayout; import java.awt.Color; import java.awt.Component; import java.awt.Image; @@ -10,6 +11,7 @@ import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Arrays; +import javax.swing.ButtonGroup; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; @@ -38,6 +40,11 @@ import util.GuiOrganizer; import util.ResourceLoader; import config.Config; +import java.awt.Choice; + +import javax.swing.border.TitledBorder; +import javax.swing.JRadioButton; + @SuppressWarnings("serial") public class Login_GUI extends JFrame { @@ -46,6 +53,11 @@ public class Login_GUI extends JFrame { */ private final static Logger LOGGER = Logger.getLogger(Login_GUI.class); + // String constants representing the different login methods + private final static String LOGIN_TYPE_BWIDM = "bwidm"; + private final static String LOGIN_TYPE_BWLEHRPOOL = "bwlp"; + private final static String LOGIN_TYPE_SATLLITE = "sat"; + private JPanel contentPane; private JTextField lblusername; private JPasswordField lblpass; @@ -55,6 +67,27 @@ public class Login_GUI extends JFrame { private static final String HELP_MESSAGE = ""; Component c = null; + private JPanel panel; + private JPanel panel_1; + private JLabel LabelUser; + private JLabel LabelPass; + + // radio button and group for login types. + private ButtonGroup bgLoginType; + private JRadioButton rdbtnBwIDM; + private JRadioButton rdbtnDirekteVerbindung; + private JRadioButton rdbtnMasterserver; + // its action listener + private ActionListener loginTypeActionListener; + + // bwIDM label and dropdown + private Choice choice; + private JLabel lblIdp; + + // Satellite IP label and text field + private JLabel lblSatellitenIp; + private JTextField lblSatIP; + /** * Create the frame. */ @@ -83,7 +116,7 @@ public class Login_GUI extends JFrame { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Größe setzen und mittig ausrichten - setBounds(0, 0, 603, 400); + setBounds(0, 0, 785, 430); GuiOrganizer.centerGUI(this); // Erzeugen eines Panels @@ -98,7 +131,7 @@ public class Login_GUI extends JFrame { // Label fuer das Logo erzeugen JLabel imgLabel = new JLabel(); // Groesse und Position des Logos festelegen - imgLabel.setBounds(150, 11, 350, 142); + imgLabel.setBounds(231, 11, 350, 142); // Pfadangabe des Logos ImageIcon icon = ResourceLoader.getIcon("/img/Logo_bwLehrpool.png", @@ -109,51 +142,8 @@ public class Login_GUI extends JFrame { // Hinzufuegen des Logos in das Fenster contentPane.add(imgLabel); - chckbxBenutzernameSpeichern = new JCheckBox("Benutzername speichern"); - chckbxBenutzernameSpeichern.setBounds(292, 222, 237, 23); - contentPane.add(chckbxBenutzernameSpeichern); - - // Erzeugen und Hinzufuegen des Labels - JLabel LabelUser = new JLabel("bwIDM-Benutzername:"); - LabelUser.setBounds(111, 164, 134, 20); - contentPane.add(LabelUser); - - // Erzeugen und Hinzufuegen des Passwortfeldes - lblpass = new JPasswordField(); - lblpass.setToolTipText("Bitte geben Sie Ihr bwIDM-Passwort ein."); - lblpass.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - performLogin(); - } - }); - lblpass.setBounds(292, 195, 237, 20); - contentPane.add(lblpass); - - // Erzeugen und Hinzufuegen des Textfeldes - lblusername = new JTextField(); - lblusername - .setToolTipText("Bitte geben Sie Ihren bwIDM-Benutzernamen ein."); - - // Lese Information aus der Konfigurationsdatei - lblusername.setText(Config.getUsername()); - chckbxBenutzernameSpeichern.setSelected(Config.getSaveUsername()); - - lblusername.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent arg0) { - performLogin(); - } - }); - lblusername.setBounds(292, 164, 237, 20); - contentPane.add(lblusername); - lblusername.setColumns(10); - - // Erzeugen und Hinzufuegen des Labels - JLabel LabelPass = new JLabel("bwIDM-Passwort:"); - LabelPass.setBounds(111, 195, 134, 20); - contentPane.add(LabelPass); - lblConnectionInfo.setHorizontalAlignment(SwingConstants.LEFT); - lblConnectionInfo.setBounds(111, 290, 418, 20); + lblConnectionInfo.setBounds(10, 359, 449, 20); lblConnectionInfo.setEnabled(true); lblConnectionInfo.setText("Info: Bereit für Login"); @@ -163,30 +153,143 @@ public class Login_GUI extends JFrame { JButton BtnLogin = new JButton("Login"); BtnLogin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { - - performLogin(); + performLogin(bgLoginType.getSelection().getActionCommand()); }// end actionPerformed }); - BtnLogin.setBounds(292, 252, 237, 23); + BtnLogin.setBounds(488, 358, 239, 23); contentPane.add(BtnLogin); + // Start of the actual content of the right panel + panel = new JPanel(); + panel.setLayout(null); + panel.setBorder(new TitledBorder(null, "Zugangsdaten", + TitledBorder.LEADING, TitledBorder.TOP, null, null)); + panel.setBackground(SystemColor.menu); + panel.setBounds(354, 143, 400, 181); + contentPane.add(panel); + + chckbxBenutzernameSpeichern = new JCheckBox("Benutzername speichern"); + chckbxBenutzernameSpeichern.setBounds(135, 137, 237, 23); + chckbxBenutzernameSpeichern.setSelected(Config.getSaveUsername()); + panel.add(chckbxBenutzernameSpeichern); + + // Erzeugen und Hinzufuegen des Labels + LabelUser = new JLabel("Benutzername:"); + LabelUser.setBounds(25, 60, 82, 20); + panel.add(LabelUser); + + // Erzeugen und Hinzufuegen des Textfeldes + lblusername = new JTextField(); + lblusername.setBounds(135, 60, 237, 20); + lblusername.setToolTipText("Bitte geben Sie Ihren bwIDM-Benutzernamen ein."); + lblusername.setColumns(10); + // Lese Benutzername aus der Konfigurationsdatei + lblusername.setText(Config.getUsername()); + lblusername.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent arg0) { + performLogin(bgLoginType.getSelection().getActionCommand()); + } + }); + panel.add(lblusername); + + // Erzeugen und Hinzufuegen des Labels + LabelPass = new JLabel("Passwort:"); + LabelPass.setBounds(25, 85, 82, 20); + panel.add(LabelPass); + + // Erzeugen und Hinzufuegen des Passwortfeldes + lblpass = new JPasswordField(); + lblpass.setBounds(135, 85, 237, 20); + lblpass.setToolTipText("Bitte geben Sie Ihr bwIDM-Passwort ein."); + lblpass.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + performLogin(bgLoginType.getSelection().getActionCommand()); + } + }); + panel.add(lblpass); + + lblSatellitenIp = new JLabel("Satelliten IP:"); + lblSatellitenIp.setBounds(25, 105, 82, 20); + //panel.add(lblSatellitenIp); + + lblSatIP = new JTextField(); + lblSatIP.setBounds(135, 110, 237, 20); + lblSatIP.setToolTipText("Bitte geben Sie die IP-Adresse des Satelliten ein."); + //panel.add(lblSatIP); + + choice = new Choice(); + choice.setBounds(135, 35, 237, 20); + //panel.add(choice); + + lblIdp = new JLabel("IDP:"); + lblIdp.setBounds(25, 35, 82, 20); + //panel.add(lblIdp); + + // action listener for the radio buttons to + // toggle the gui elements depending on the login type + loginTypeActionListener = new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + toggleLoginType(e.getActionCommand()); + } + }; + + panel_1 = new JPanel(); + panel_1.setLayout(null); + panel_1.setBorder(new TitledBorder( + UIManager.getBorder("TitledBorder.border"), "Zugangsart", + TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0))); + panel_1.setBackground(SystemColor.menu); + panel_1.setBounds(10, 143, 334, 181); + contentPane.add(panel_1); + + // group radio button for the login type together + bgLoginType = new ButtonGroup(); + + rdbtnBwIDM = new JRadioButton("bwIDM"); + rdbtnBwIDM.setBounds(32, 35, 244, 23); + rdbtnBwIDM.setActionCommand(LOGIN_TYPE_BWIDM); + rdbtnBwIDM.addActionListener(loginTypeActionListener); + bgLoginType.add(rdbtnBwIDM); + panel_1.add(rdbtnBwIDM); + + rdbtnMasterserver = new JRadioButton("bwLehrpool-Masterserver"); + rdbtnMasterserver.setSelected(true); + rdbtnMasterserver.setActionCommand(LOGIN_TYPE_BWLEHRPOOL); + rdbtnMasterserver.addActionListener(loginTypeActionListener); + rdbtnMasterserver.setBounds(32, 60, 244, 23); + bgLoginType.add(rdbtnMasterserver); + panel_1.add(rdbtnMasterserver); + + rdbtnDirekteVerbindung = new JRadioButton("Lokales Satellit"); + rdbtnDirekteVerbindung.setBounds(32, 85, 244, 23); + rdbtnDirekteVerbindung.setActionCommand(LOGIN_TYPE_SATLLITE); + rdbtnDirekteVerbindung.addActionListener(loginTypeActionListener); + bgLoginType.add(rdbtnDirekteVerbindung); + panel_1.add(rdbtnDirekteVerbindung); + + panel.setVisible(true); + panel_1.setVisible(true); + contentPane.setVisible(true); + GuiOrganizer.centerGUI(this); c = this; }// end LoginGUI() // Versuche den Benutzer einzuloggen - public void performLogin() { + public void performLogin(final String loginType) { + LOGGER.info("Trying login of type: " + loginType); org.openslx.imagemaster.thrift.iface.SessionData result = null; // Connect to Master MasterThriftConnection thrift = new MasterThriftConnection(); Client client = thrift.getMasterThriftConnection(); - if (client == null) { // Thrift connection to master could not be established setStatus(Color.red, "Fehler: Masterserver nicht erreichbar.", null); + LOGGER.info("Thrift client could not be initialized, is the masterserver up and running?"); return; } @@ -244,7 +347,6 @@ public class Login_GUI extends JFrame { String hochschule = user.eMail.substring(user.eMail.indexOf("@") + 1); - //person.verantwortlicher.setUsername(lblusername.getText().substring(0,lblusername.getText().indexOf("@"))); person.verantwortlicher.setUsername(lblusername.getText().trim()); person.verantwortlicher.setUserID(lblusername.getText().trim()); person.verantwortlicher.setName(user.lastName); @@ -254,9 +356,6 @@ public class Login_GUI extends JFrame { // Spaeter ueber result.getRole zum Beispiel die Rolle holen person.verantwortlicher.setRole("Dozent"); - // person.verantwortlicher.setRole("Admin"); - // person.verantwortlicher.setRole("Student"); - // person.verantwortlicher.setRole("GetToTheChopper!"); if (chckbxBenutzernameSpeichern.isSelected()) { Config.setUsername(lblusername.getText()); @@ -313,5 +412,64 @@ public class Login_GUI extends JFrame { JOptionPane.showMessageDialog(c, longMessage, "Anmeldung fehlgeschlagen", JOptionPane.ERROR_MESSAGE); } - + + /** + * Toggle the elements needed for the different login types. + * + * @param type + * Type of the login to toggle. Valid are: + * 'bwidm', 'bwlp', 'sat' + */ + private void toggleLoginType(String type) { + LOGGER.info("Toggling to login method to: " + type); + panel.setVisible(false); + switch(type) { + case LOGIN_TYPE_BWIDM: + panel.remove(lblSatIP); + panel.remove(lblSatellitenIp); + panel.add(lblIdp); + panel.add(choice); + panel.add(LabelPass); + lblpass.setText(""); + lblpass.setToolTipText("Bitte geben Sie Ihr bwIDM-Passwort ein."); + panel.add(lblpass); + lblusername.setToolTipText("Bitte geben Sie Ihr bwIDM-Benutzername ein."); + panel.revalidate(); + panel.repaint(); + panel.setVisible(true); + break; + case LOGIN_TYPE_BWLEHRPOOL: + panel.remove(choice); + panel.remove(lblIdp); + panel.remove(lblSatIP); + panel.remove(lblSatellitenIp); + panel.add(LabelPass); + lblpass.setToolTipText("Bitte geben Sie Ihr bwLehrpool-Passwort ein."); + panel.add(lblpass); + lblusername.setToolTipText("Bitte geben Sie Ihr bwLehrpool-Benutzername ein."); + panel.revalidate(); + panel.repaint(); + panel.setVisible(true); + break; + case LOGIN_TYPE_SATLLITE: + panel.remove(choice); + panel.remove(lblIdp); + panel.remove(LabelPass); + panel.remove(lblpass); + lblSatIP.setBounds(135, 85, 237, 20); + lblSatIP.setText(""); + panel.add(lblSatIP); + lblSatellitenIp.setBounds(25, 85, 82, 20); + panel.add(lblSatellitenIp); + panel.revalidate(); + panel.repaint(); + panel.setVisible(true); + break; + default: + LOGGER.error("Unknown action '" + type + "'. Ignoring."); + panel.setVisible(true); + return; + } + + } }// end class diff --git a/dozentenmodul/src/main/java/gui/intro/MainMenue_GUI.java b/dozentenmodul/src/main/java/gui/intro/MainMenue_GUI.java index fe49ef06..072ef196 100644 --- a/dozentenmodul/src/main/java/gui/intro/MainMenue_GUI.java +++ b/dozentenmodul/src/main/java/gui/intro/MainMenue_GUI.java @@ -47,6 +47,7 @@ import javax.swing.border.TitledBorder; import models.GUIRights; import models.ImageRights; import models.Links; +import models.RightsManagement; import models.SessionData; import models.person; @@ -132,6 +133,10 @@ public class MainMenue_GUI extends JFrame { txtpnBitteWhlenSie.setBounds(10, 36, 509, 22); panel.add(txtpnBitteWhlenSie); } + + //reset the list of permissions every time the user goes back to the main menu + RightsManagement.rightsManagement.getPermittedUserList().clear(); + contentPanel.setBounds(10, 104, 567, 502); contentPanel.setBackground(SystemColor.menu); diff --git a/dozentenmodul/src/main/java/gui/lecture/CreateLectureLink_GUI.java b/dozentenmodul/src/main/java/gui/lecture/CreateLectureLink_GUI.java index 5205c41c..3f1e5dfa 100644 --- a/dozentenmodul/src/main/java/gui/lecture/CreateLectureLink_GUI.java +++ b/dozentenmodul/src/main/java/gui/lecture/CreateLectureLink_GUI.java @@ -949,7 +949,7 @@ public class CreateLectureLink_GUI extends JFrame { List<server.generated.Image> images; // Hole eine Liste der Images - images = client.getImageList(); + images = client.getImageListPermissionLink(person.verantwortlicher.getUserID()); Iterator<server.generated.Image> i = images.iterator(); SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); diff --git a/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java b/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java index dbacf997..ce2130ad 100644 --- a/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java +++ b/dozentenmodul/src/main/java/gui/lecture/EditLectureLink_GUI.java @@ -954,7 +954,7 @@ public class EditLectureLink_GUI extends JFrame { List<server.generated.Image> images; // Hole eine Liste der Images - images = client.getImageList(); + images = client.getImageListPermissionLink(person.verantwortlicher.getUserID()); Iterator<server.generated.Image> i = images.iterator(); SimpleDateFormat in=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); diff --git a/dozentenmodul/src/main/java/gui/lecture/PermissionCreateLecture_GUI.java b/dozentenmodul/src/main/java/gui/lecture/PermissionCreateLecture_GUI.java index 8f51d17a..a37b2e9c 100644 --- a/dozentenmodul/src/main/java/gui/lecture/PermissionCreateLecture_GUI.java +++ b/dozentenmodul/src/main/java/gui/lecture/PermissionCreateLecture_GUI.java @@ -1,6 +1,5 @@ package gui.lecture; - import gui.intro.About_GUI; import gui.intro.MainMenue_GUI; @@ -20,6 +19,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.ButtonGroup; @@ -51,44 +53,56 @@ import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; +import org.apache.log4j.Logger; +import org.apache.thrift.TException; + import models.Links; +import models.RightsManagement; +import models.person; +import server.generated.Person; +import server.generated.Server.Client; +import util.CheckIntegrity; import util.OpenLinks; @SuppressWarnings("serial") public class PermissionCreateLecture_GUI extends JFrame { + // Logger for this class + private final static Logger LOGGER = Logger + .getLogger(PermissionCreateLecture_GUI.class); + private final JPanel contentPanel = new JPanel(); + Client client = models.Client.clientcon.getClient(); String[] result; private Class[] classes; - private JTable table; - Object[] titles = { "Name","Read", "Write","Admin"}; + private JTable table = null; + Object[] titles = { "Name", "Read", "Write", "Admin", "userID" }; + // Object[] titles = { "Name", "Read", "Write", "Link", "Admin", "userID" }; Component c = null; - private static final String HELP_MESSAGE = "<html><div align=\"center\">" + - "Hier können Sie die Berechtigungen für Ihre Veranstaltung ändern.<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 ändern.<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>"; + private List<Person> map = null; // List of people who have rights + + 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; @@ -102,7 +116,7 @@ public class PermissionCreateLecture_GUI extends JFrame { } }); setResizable(false); - + try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException @@ -123,16 +137,18 @@ public class PermissionCreateLecture_GUI extends JFrame { getContentPane().add(panel); panel.setLayout(null); { - JLabel lblNewLabel = new JLabel("Veranstaltung - Berechtigungen (Nur zur Veranschaulichung)"); + JLabel lblNewLabel = new JLabel( + "Veranstaltung - 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ü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); } @@ -141,168 +157,278 @@ public class PermissionCreateLecture_GUI extends JFrame { contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel); contentPanel.setLayout(null); - Object[] rowdata={"Max Mustermann", new Boolean(false),new Boolean(false),new Boolean(false),new Boolean(false)}; + Object[] rowdata = { "Max Mustermann", new Boolean(false), + new Boolean(false), new Boolean(false), new Boolean(false) }; model.addRow(rowdata); - - - 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])); - - tc1.setHeaderRenderer(new CheckBoxHeader(new MyItemListener1(),(String) titles[1])); - tc2.setHeaderRenderer(new CheckBoxHeader(new MyItemListener2(),(String) titles[2])); - tc3.setHeaderRenderer(new CheckBoxHeader(new MyItemListener3(),(String) titles[3])); - + + table = new JTable(); + table.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + checkIntegrity(-1); + } + + }); + + table.setModel(model); + table.setSelectionForeground(Color.WHITE); + + // 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"); + // System.out.println(RightsManagement.rightsManagement.getPmImageCreateList().size()); + + // person.verantwortlicher.getUserID(); + // System.out.println("Current userID: " + // +person.verantwortlicher.getUserID()); + + try { + map = client.getAllOtherSatelliteUsers(person.verantwortlicher + .getUserID()); + 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 + false, // Read + false, // Write + false, // Link + false, // Admin + map.get(x).getUserID() // userID + }; + // Fuege diese Objekte der Tabelle hinzu + model.addRow(obj); + i.next(); + x++; + + } + // System.out.println("Number of returned users in permission list: "+ + // map.size()); + + } 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.isRead(), // Read + temp.isWrite(), // Write + temp.isLinkAllowed(), // Link + temp.isAdmin(), // Admin + temp.getUserID() // userID + }; + System.out.println("Processing: " + temp.getName() + ", " + + temp.getVorname() + ", " + temp.isRead() + ", " + + temp.isWrite() + ", " + temp.isLinkAllowed() + ", " + + temp.isAdmin() + ", " + temp.getUserID()); + // Fuege diese Objekte der Tabelle hinzu + model.addRow(obj); + x++; + } + }// end set list of permitted users + + // table wird hier nie initialisiert und ist entsprechend null + if (table == null) + LOGGER.error("NPE incoming..."); + 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])); + + tc1.setHeaderRenderer(new CheckBoxHeader(new MyItemListener1(), + (String) titles[1])); + tc2.setHeaderRenderer(new CheckBoxHeader(new MyItemListener2(), + (String) titles[2])); + tc3.setHeaderRenderer(new CheckBoxHeader(new MyItemListener3(), + (String) titles[3])); + JLabel lblHauptmen = new JLabel("Hauptmenü"); lblHauptmen.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { - + PermissionCreateLecture_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("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ät Freiburg"})); + comboBox.setModel(new DefaultComboBoxModel(new String[] { + "Hochschule Offenburg", "Hochschule Reutlingen", + "Universität Freiburg" })); comboBox.setBounds(365, 36, 202, 20); contentPanel.add(comboBox); - + JPanel panel = new JPanel(); panel.setBounds(10, 67, 557, 148); contentPanel.add(panel); 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); - + 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."); + + 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>"); + + 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>"); + + 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); - + JCheckBox checkBox = new JCheckBox(""); checkBox.setBounds(115, 118, 21, 23); panel.add(checkBox); - + JLabel label_4 = new JLabel("Für alle sichtbar"); label_4.setBounds(20, 119, 90, 20); panel.add(label_4); - + JPanel panel_1 = new JPanel(); panel_1.setLayout(null); - 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.setBackground(SystemColor.menu); panel_1.setBounds(10, 226, 311, 294); contentPanel.add(panel_1); - + JScrollPane scrollPane = new JScrollPane(); - scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane + .setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.setBounds(10, 28, 291, 223); panel_1.add(scrollPane); - + JButton button = new JButton("Hinzufügen"); button.setEnabled(false); button.setBounds(10, 260, 89, 23); panel_1.add(button); - + JButton button_1 = new JButton("Löschen"); button_1.setEnabled(false); button_1.setBounds(109, 260, 89, 23); panel_1.add(button_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, 226, 236, 294); contentPanel.add(panel_2); - + 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(23, 88, 203, 161); panel_2.add(scrollPane_1); - + JRadioButton radioButton = new JRadioButton("Sichtbar für alle"); radioButton.setSelected(true); radioButton.setEnabled(false); radioButton.setBounds(6, 32, 109, 23); panel_2.add(radioButton); - + JRadioButton radioButton_1 = new JRadioButton("Individuell"); radioButton_1.setEnabled(false); radioButton_1.setBounds(6, 58, 109, 23); panel_2.add(radioButton_1); - + JButton button_2 = new JButton("Hinzufügen"); button_2.setEnabled(false); button_2.setBounds(23, 260, 89, 23); panel_2.add(button_2); - + JButton button_3 = new JButton("Löschen"); button_3.setEnabled(false); button_3.setBounds(122, 260, 89, 23); @@ -317,26 +443,26 @@ public class PermissionCreateLecture_GUI extends JFrame { JButton cancelButton = new JButton("Zurück"); cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - - - CreateLectureAllgemein_GUI sr=new CreateLectureAllgemein_GUI(c); + + CreateLectureAllgemein_GUI sr = new CreateLectureAllgemein_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) { - - CreateLectureLink_GUI ea=new CreateLectureLink_GUI(c); + + CreateLectureLink_GUI ea = new CreateLectureLink_GUI(c); ea.setVisible(true); dispose(); - + } }); continueButton.setActionCommand("Cancel"); @@ -344,34 +470,34 @@ public class PermissionCreateLecture_GUI extends JFrame { 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_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(); @@ -379,7 +505,6 @@ public class PermissionCreateLecture_GUI extends JFrame { } }); mnNewMenu_1.add(mntmFaq); - JMenuItem mntmOtrs = new JMenuItem("OTRS"); mntmOtrs.addMouseListener(new MouseAdapter() { @@ -387,22 +512,22 @@ public class PermissionCreateLecture_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) { @@ -411,131 +536,233 @@ public class PermissionCreateLecture_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, 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() + + // Column 0 == Concat user name + + // Read column + 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); + } + } + } + + // Write column + 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); + } + } + } + + // Admin column + 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); + } + } + } + + // Invisible userID column + 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); + } + } + } + + // 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.setAdmin(Boolean.parseBoolean(table.getModel() + .getValueAt(i, 4).toString())); // get Admin + temp.setLinkAllowed(Boolean.parseBoolean(table.getModel() + .getValueAt(i, 3).toString()));// get Link + temp.setWrite(Boolean.parseBoolean(table.getModel() + .getValueAt(i, 2).toString()));// get Write + temp.setRead(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.isAdmin() || temp.isLinkAllowed() || temp.isWrite() + || temp.isRead()) { + // 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() + +}// end class + +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 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) { -} -} |
