diff options
author | Stephan Schwaer | 2015-08-24 17:42:59 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-08-24 17:42:59 +0200 |
commit | 9168659e90149cffcabc2153ac1e132c4a8a3957 (patch) | |
tree | 48999980ea8dbfa2ac7f082c70ecb6ccb0774f36 /dozentenmodul | |
parent | [client] remove logged in user from the user list for custom permissions (diff) | |
download | tutor-module-9168659e90149cffcabc2153ac1e132c4a8a3957.tar.gz tutor-module-9168659e90149cffcabc2153ac1e132c4a8a3957.tar.xz tutor-module-9168659e90149cffcabc2153ac1e132c4a8a3957.zip |
[client] Included new permission options into lecture details.
Diffstat (limited to 'dozentenmodul')
10 files changed, 166 insertions, 129 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java index 39524fcc..a5992d17 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/ImageCustomPermissionManager.java @@ -134,7 +134,6 @@ public class ImageCustomPermissionManager extends JPanel { * @return Map with new custom permissions, null if something went wrong */ public Map<String, ImagePermissions> getMap(){ - // save the table stuff to our upload wizard state if (permissionList == null) return null; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java index 6921ea2e..e081c050 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/LectureCustomPermissionManager.java @@ -1,6 +1,5 @@ package org.openslx.dozmod.gui.control; -import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; @@ -9,6 +8,8 @@ import java.util.Map; import java.util.Map.Entry; import javax.swing.BorderFactory; +import javax.swing.Box; +import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JOptionPane; import javax.swing.JPanel; @@ -19,6 +20,7 @@ import org.openslx.bwlp.thrift.iface.LecturePermissions; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.dozmod.gui.control.table.LecturePermissionTable; import org.openslx.dozmod.gui.control.table.LecturePermissionTable.UserLecturePermissions; +import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.window.UserListWindow; import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; @@ -50,16 +52,29 @@ public class LectureCustomPermissionManager extends JPanel{ super(); me = this; - setLayout(new BorderLayout()); - setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + GridManager grid = new GridManager(this, 1); + + permissionTable = new LecturePermissionTable(); - add(new JScrollPane(permissionTable), BorderLayout.CENTER); + + // Panel for the add- and remove buttons JPanel userButtonPane = new JPanel(); + userButtonPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); + userButtonPane.setLayout(new BoxLayout(userButtonPane, BoxLayout.LINE_AXIS)); + btnAddUser = new JButton("Benutzer hinzufügern"); userButtonPane.add(btnAddUser); btnRemoveUser = new JButton("Benutzer entfernen"); userButtonPane.add(btnRemoveUser); - add(userButtonPane, BorderLayout.SOUTH); + userButtonPane.add(Box.createGlue()); + + // Put everything into the grid + grid.add(new JScrollPane(permissionTable)).fill(true, true).expand(true, true); + grid.nextRow(); + grid.add(userButtonPane).fill(true, false).expand(true, false); + grid.nextRow(); + grid.finish(false); + // add user button listener btnAddUser.addActionListener(new ActionListener() { @@ -123,7 +138,6 @@ public class LectureCustomPermissionManager extends JPanel{ * @return Map with new custom permissions, null if something went wrong */ public Map<String, LecturePermissions> getMap(){ - // save the table stuff to our upload wizard state if (permissionList == null) return null; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java index 551393ec..192fb552 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageCustomPermissionWindow.java @@ -48,7 +48,7 @@ public class ImageCustomPermissionWindow extends ImageCustomPermissionWindowLayo /** * Set a created ImageCustomPermissionWindow visible and return resulting permissions - * @return PermissionLink with default- and customPermissions when using OK button, null otherwise + * @return PermissionDefaultToCustomLink with default- and customPermissions when using OK button, null otherwise */ private PermissionDefaultToCustomLink<ImagePermissions> runAndReturn(){ setVisible(true); @@ -57,7 +57,6 @@ public class ImageCustomPermissionWindow extends ImageCustomPermissionWindowLayo } else { return null; } - } /** @@ -65,13 +64,11 @@ public class ImageCustomPermissionWindow extends ImageCustomPermissionWindowLayo * @param modalParent * @param permissionMap The current user permissions with which the permission manager to initialise, null creates empty list. * @param defaultPermissions The current default permissions, should not be null! - * @return PermissionLink with resulting permissions or null, if abort has been used to exit the dialog + * @return PermissionDefaultToCustomLink with resulting permissions or null, if abort has been used to exit the dialog */ public static PermissionDefaultToCustomLink<ImagePermissions> open(Frame modalParent, Map<String, ImagePermissions> permissionMap, ImagePermissions defaultPermissions) { return new ImageCustomPermissionWindow(modalParent, permissionMap, defaultPermissions).runAndReturn(); - } - } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java index 175c1ae8..294122bc 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java @@ -74,12 +74,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe * Image that this window shows the details of */ private ImageDetailsRead image = null; - + /** * The custom permissions of the image */ private Map<String, ImagePermissions> permissionMap; - + /** * Whether the custom permission window has been used. */ @@ -129,17 +129,17 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe public void actionPerformed(ActionEvent e) { UserListWindow.open(JOptionPane.getFrameForComponent(btnChangeOwner), new UserAddedCallback() { - @Override - public void userAdded(UserInfo user, UserListWindow window) { - window.dispose(); - setImageOwner(user); - } + @Override + public void userAdded(UserInfo user, UserListWindow window) { + window.dispose(); + setImageOwner(user); + } - }, "Besitzer festlegen"); + }, "Besitzer festlegen"); } }); - btnCustomPermissions.addActionListener(new ActionListener() { - + btnPermissions.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent arg0) { PermissionDefaultToCustomLink<ImagePermissions> pl = ImageCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), me.permissionMap, image.defaultPermissions); @@ -237,18 +237,18 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe final ImageMetaCallback callback = new ImageMetaCallback() { @Override public void fetchedImageDetails(ImageDetailsRead imageDetails, - Map<String, ImagePermissions> permissions) { + Map<String, ImagePermissions> permissions) { if (imageDetails == null) { return; } if (permissions == null) { // TODO } - + synchronized(me) { image = imageDetails; permissionMap = permissions; - + } fill(); } @@ -287,12 +287,14 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe // now trigger the actual action if (!ThriftActions.updateImageBase(JOptionPane.getFrameForComponent(me), image.getImageBaseId(), ibw)) return; - try { - LOGGER.info(permissionMap); - ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(), image.imageBaseId, permissionMap); - permissionsChanged = false; - } catch (TException e) { - LOGGER.error("Fehler beim Übertragen der benutzerdefinierten Berechtigungen: ", e); + if(permissionsChanged){ + try { + + ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(), image.imageBaseId, permissionMap); + permissionsChanged = false; + } catch (TException e) { + LOGGER.error("Fehler beim Übertragen der benutzerdefinierten Berechtigungen: ", e); + } } // success btnSaveChanges.setEnabled(false); @@ -324,11 +326,11 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe return; ThriftActions.deleteImageBaseOrVersion(JOptionPane.getFrameForComponent(this), image.getImageBaseId(), version.versionId, new DeleteCallback() { - @Override - public void isDeleted(boolean success) { - refresh(success); - } - }); + @Override + public void isDeleted(boolean success) { + refresh(success); + } + }); } /******************************************************************************** @@ -427,7 +429,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe }; cboOperatingSystem.addItemListener(comboItemListener); cboShareMode.addItemListener(comboItemListener); - + // Listener to detect changes in checkboxes final ActionListener checkBoxListener = new ActionListener() { @Override @@ -450,7 +452,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe txtTags.setEditable(editable); cboOperatingSystem.setEnabled(editable); cboShareMode.setEnabled(editable); - btnCustomPermissions.setEnabled(adminEdit); + btnPermissions.setEnabled(adminEdit); btnChangeOwner.setEnabled(adminEdit); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java index 11687086..858ab5a1 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureCustomPermissionWindow.java @@ -6,13 +6,9 @@ import java.awt.event.ActionListener; import java.util.Map; import org.apache.log4j.Logger; -import org.apache.thrift.TException; import org.openslx.bwlp.thrift.iface.LecturePermissions; -import org.openslx.dozmod.gui.Gui; -import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.window.layout.LectureCustomPermissionWindowLayout; -import org.openslx.dozmod.thrift.Session; -import org.openslx.thrifthelper.ThriftManager; +import org.openslx.dozmod.permissions.PermissionDefaultToCustomLink; /** * Window for modifying the custom permissions of an lecture. @@ -22,36 +18,29 @@ public class LectureCustomPermissionWindow extends LectureCustomPermissionWindow private static final Logger LOGGER = Logger.getLogger(LectureCustomPermissionWindow.class); - /** - * Self-reference - */ - private final LectureCustomPermissionWindow me; + private boolean okUsed = false; /** * Don't use this constructor, use static function LectureCustomPermissionWindow.open instead. */ - protected LectureCustomPermissionWindow(final Frame modalParent, final Map<String, LecturePermissions> permissionMap, final LecturePermissions defaultPermissions, final String lectureBaseId) { + protected LectureCustomPermissionWindow(final Frame modalParent, final Map<String, LecturePermissions> permissionMap, final LecturePermissions defaultPermissions) { super(modalParent); - me = this; /** * initialise the lecturePermissionManager */ lecturePermissionManager.initPanel(permissionMap, defaultPermissions); - + + chkCustomPermAdmin.setSelected(defaultPermissions.admin); + chkCustomPermEdit.setSelected(defaultPermissions.edit); + /** * ActionListeners for the buttons. */ - btnSave.addActionListener(new ActionListener() { + btnOk.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - // push permissions to satellite server - try { - ThriftManager.getSatClient().writeLecturePermissions(Session.getSatelliteToken(), - lectureBaseId, lecturePermissionManager.getMap()); - } catch (TException er) { - Gui.showMessageBox(me, "Konnte Berechtigungen nicht an den Satelliten übertragen: ", MessageType.ERROR, LOGGER, er); - } + okUsed = true; dispose(); } }); @@ -64,13 +53,28 @@ public class LectureCustomPermissionWindow extends LectureCustomPermissionWindow } /** + * Set a created ImageCustomPermissionWindow visible and return resulting permissions + * @return PermissionDefaultToCustomLink with default- and customPermissions when using OK button, null otherwise + */ + private PermissionDefaultToCustomLink<LecturePermissions> runAndReturn(){ + setVisible(true); + if (okUsed){ + return new PermissionDefaultToCustomLink<LecturePermissions>(lecturePermissionManager.getMap(), new LecturePermissions(chkCustomPermEdit.isSelected(), chkCustomPermAdmin.isSelected())); + } else { + return null; + } + } + + + /** * Create new LecturePermissionWindow dialog * @param modalParent parent of the popup window * @param permissionMap the permissions of the lecture * @param defaultPermissions default permissions of the lecture - * @param lectureBaseId baseId of the lecture, for which the permissionWindow should be opened + * @return PermissionDefaultToCustomLink with new permissions of null, if abort button has been used */ - public static void open(Frame modalParent, Map<String, LecturePermissions> permissionMap, LecturePermissions defaultPermissions, String lectureBaseId) { - new LectureCustomPermissionWindow(modalParent, permissionMap, defaultPermissions, lectureBaseId).setVisible(true); + + public static PermissionDefaultToCustomLink<LecturePermissions> open(Frame modalParent, Map<String, LecturePermissions> permissionMap, LecturePermissions defaultPermissions) { + return new LectureCustomPermissionWindow(modalParent, permissionMap, defaultPermissions).runAndReturn(); } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java index 02d6f233..33ac3627 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java @@ -36,6 +36,7 @@ import org.openslx.dozmod.gui.helper.UiFeedback; import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; import org.openslx.dozmod.gui.window.layout.LectureDetailsWindowLayout; import org.openslx.dozmod.permissions.LecturePerms; +import org.openslx.dozmod.permissions.PermissionDefaultToCustomLink; import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.ThriftActions; import org.openslx.dozmod.thrift.ThriftActions.LectureMetaCallback; @@ -81,6 +82,11 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements * Image, that the lecture is linked to. */ private ImageDetailsRead image = null; + + /** + * Whether the custom permission window has been used. + */ + private boolean permissionsChanged = false; private Task dateChecker; @@ -137,10 +143,18 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements }, "Besitzer festlegen"); } }); - btnCustomPermissions.addActionListener(new ActionListener() { + btnPermissions.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { - LectureCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, lecture.defaultPermissions, lecture.lectureId); + LOGGER.info(permissionMap); + LOGGER.info(lecture.defaultPermissions); + PermissionDefaultToCustomLink<LecturePermissions> pl = LectureCustomPermissionWindow.open(JOptionPane.getFrameForComponent(me), permissionMap, lecture.defaultPermissions); + if (pl != null && pl.defaultPermissions != null && pl.customPermissions != null){ + lecture.defaultPermissions = pl.defaultPermissions; + permissionMap = pl.customPermissions; + permissionsChanged = true; + } + reactToChange(); } }); btnSaveChanges.addActionListener(new ActionListener() { @@ -174,12 +188,15 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements synchronized (me) { lecture = lectureDetails; image = imageDetails; + permissionMap = ThriftActions.getLecturePermissions(JOptionPane.getFrameForComponent(me), lecture.lectureId); } fill(); } @Override public void fetchedLecturePermissions(Map<String, LecturePermissions> permissions) { return; } }); + + } /** @@ -318,6 +335,14 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements callback.updated(true); return; } + if(permissionsChanged){ + try { + ThriftManager.getSatClient().writeLecturePermissions(Session.getSatelliteToken(), lecture.lectureId, permissionMap); + permissionsChanged = false; + } catch (TException e) { + LOGGER.error("Fehler beim Übertragen der Berechtigungen: ", e); + } + } btnSaveChanges.setEnabled(true); refresh(true); callback.updated(true); @@ -363,24 +388,11 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements reactToChange(); } }; - chkCustomPermAdmin.addActionListener(checkBoxListener); - chkCustomPermEdit.addActionListener(checkBoxListener); btnAutoUpdate.addActionListener(checkBoxListener); btnIsExam.addActionListener(checkBoxListener); btnHasInternetAccess.addActionListener(checkBoxListener); btnIsActive.addActionListener(checkBoxListener); - final ActionListener dateTimeListener = new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - if (!isPeriodValid(DateTimeHelper.getDateFrom(startDate, startTime), DateTimeHelper.getDateFrom(endDate, endTime), false)) - return; - reactToChange(); - } - }; - - startDate.addActionListener(dateTimeListener); - endDate.addActionListener(dateTimeListener); dateChecker = new Task() { @Override public void fire() { @@ -438,9 +450,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements changed = true; } else if (btnIsActive.isSelected() != lecture.isEnabled) { changed = true; - } else if (chkCustomPermAdmin.isSelected() != lecture.defaultPermissions.admin) { - changed = true; - } else if (chkCustomPermEdit.isSelected() != lecture.defaultPermissions.edit) { + } else if (permissionsChanged) { changed = true; } @@ -460,6 +470,7 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements btnAutoUpdate.setEnabled(editable); cboVersions.setEnabled(editable && !lecture.autoUpdate); btnChangeOwner.setEnabled(editable && LecturePerms.canAdmin(lecture)); + btnPermissions.setEnabled(editable && LecturePerms.canAdmin(lecture)); startDate.setEnabled(editable); // TODO startTime.setEnabled(editable); endDate.setEnabled(editable); // TODO diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java index b537250f..52d5856c 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageCustomPermissionWindowLayout.java @@ -24,7 +24,7 @@ public class ImageCustomPermissionWindowLayout extends JDialog { private static final Logger LOGGER = Logger.getLogger(ImageCustomPermissionWindowLayout.class); - + protected final JCheckBox chkCustomPermAdmin; protected final JCheckBox chkCustomPermEdit; protected final JCheckBox chkCustomPermDownload; @@ -32,7 +32,7 @@ public class ImageCustomPermissionWindowLayout extends JDialog { protected final JButton btnOk; protected final JButton btnClose; - + protected final ImageCustomPermissionManager imagePermissionManager; private static String title = "Benutzerdefinierte Berechtigungen"; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java index 13e6e39a..297695d4 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/ImageDetailsWindowLayout.java @@ -51,7 +51,7 @@ public abstract class ImageDetailsWindowLayout extends JDialog { protected final JTextField txtVersion; - protected final JButton btnCustomPermissions; + protected final JButton btnPermissions; protected final JButton btnSaveChanges; protected final JButton btnUpdateImage; @@ -178,8 +178,8 @@ public abstract class ImageDetailsWindowLayout extends JDialog { - btnCustomPermissions = new JButton("Benutzerdefinierte Berechtigungen"); - grid.add(btnCustomPermissions); + btnPermissions = new JButton("Berechtigungen"); + grid.add(btnPermissions); grid.skip(2); grid.nextRow(); grid.finish(true); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureCustomPermissionWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureCustomPermissionWindowLayout.java index 7fcea518..fe3994b2 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureCustomPermissionWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureCustomPermissionWindowLayout.java @@ -1,7 +1,5 @@ package org.openslx.dozmod.gui.window.layout; -import java.awt.BorderLayout; -import java.awt.Container; import java.awt.Dimension; import java.awt.Frame; @@ -9,11 +7,13 @@ import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JPanel; import org.apache.log4j.Logger; import org.openslx.dozmod.gui.control.LectureCustomPermissionManager; +import org.openslx.dozmod.gui.helper.GridManager; /** @@ -27,9 +27,13 @@ public class LectureCustomPermissionWindowLayout extends JDialog { /** * Buttons */ - protected final JButton btnSave; + protected final JButton btnOk; protected final JButton btnClose; - + + + protected final JCheckBox chkCustomPermAdmin; + protected final JCheckBox chkCustomPermEdit; + /** * The lecturePermissionManager to use. */ @@ -44,24 +48,44 @@ public class LectureCustomPermissionWindowLayout extends JDialog { super(modalParent, title, modalParent != null ? ModalityType.APPLICATION_MODAL : ModalityType.MODELESS); + // Panel to add everything into, needed for the border. + JPanel contentPanel = new JPanel(); + contentPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); + add(contentPanel); + + GridManager grid = new GridManager(contentPanel, 1); + // create the lecturePermissionManager and add it to the pane. lecturePermissionManager = new LectureCustomPermissionManager(); - Container contentPane = getContentPane(); - contentPane.add(lecturePermissionManager, BorderLayout.CENTER); - - // buttons below the contentManager + + // Panel with the default permissions + JPanel defaultPermissionPane = new JPanel(); + defaultPermissionPane.setBorder(BorderFactory.createTitledBorder( "Andere Nutzer")); + chkCustomPermAdmin = new JCheckBox("Admin"); + chkCustomPermEdit = new JCheckBox("Bearbeiten"); + defaultPermissionPane.add(chkCustomPermAdmin); + defaultPermissionPane.add(chkCustomPermEdit); + + // Panel for the buttons at the bottom JPanel buttonPane = new JPanel(); buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS)); - buttonPane.setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10)); - btnSave = new JButton("Änderungen speichern"); - buttonPane.add(btnSave); + btnOk = new JButton("Übernehmen"); buttonPane.add(Box.createGlue()); + buttonPane.add(btnOk); btnClose = new JButton("Abbrechen"); - buttonPane.add(btnClose); - contentPane.add(buttonPane, BorderLayout.PAGE_END); - - - setPreferredSize(new Dimension(480, 350)); + buttonPane.add(btnClose); + + // Put everything into the grid + grid.add(lecturePermissionManager).fill(true, true).expand(true, true); + grid.nextRow(); + grid.add(defaultPermissionPane).fill(true, false).expand(true, false); + grid.nextRow(); + grid.add(buttonPane).fill(true, false).expand(false, false); + grid.nextRow(); + grid.finish(false); + + contentPanel.setPreferredSize(new Dimension(480, 350)); + pack(); setLocationRelativeTo( modalParent ); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java index ee697f98..7b3c8067 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/LectureDetailsWindowLayout.java @@ -61,12 +61,9 @@ public abstract class LectureDetailsWindowLayout extends JDialog { protected final JTextField txtId; protected final JLabel lblUseCount; - - protected final JCheckBox chkCustomPermAdmin; - protected final JCheckBox chkCustomPermEdit; - - protected final JButton btnCustomPermissions; - + + protected final JButton btnPermissions; + protected final JButton btnSaveChanges; protected final JButton btnClose; protected final JButton btnDownloadImage; @@ -75,7 +72,7 @@ public abstract class LectureDetailsWindowLayout extends JDialog { protected JDatePickerImpl endDate; protected JSpinner startTime; protected JSpinner endTime; - + protected Color dateTimeTextColor; // TODO: Permissions, ... @@ -130,13 +127,13 @@ public abstract class LectureDetailsWindowLayout extends JDialog { // versions combo cboVersions = new ComboBox<>(Comparators.imageVersionDetails, new ComboBoxRenderer<ImageVersionDetails>() { - @Override - public String renderItem(ImageVersionDetails item) { - if (item == null) - return null; - return FormatHelper.longDate(item.getCreateTime()); - } - }); + @Override + public String renderItem(ImageVersionDetails item) { + if (item == null) + return null; + return FormatHelper.longDate(item.getCreateTime()); + } + }); btnDownloadImage = new JButton("Download"); btnDownloadImage.setToolTipText("Momentan verwendete Version herunterladen"); JPanel versionPanel = new JPanel(new BorderLayout()); @@ -225,25 +222,14 @@ public abstract class LectureDetailsWindowLayout extends JDialog { grid.add(new JLabel("Aufrufe")); grid.add(lblUseCount, 2); grid.nextRow(); - - // Panel with the default permissions - JPanel defaultPermissionPane = new JPanel(); - defaultPermissionPane.setBorder(BorderFactory.createTitledBorder( "Default Berechtigungen")); - chkCustomPermAdmin = new JCheckBox("Admin"); - chkCustomPermEdit = new JCheckBox("Bearbeiten"); - defaultPermissionPane.add(chkCustomPermAdmin); - defaultPermissionPane.add(chkCustomPermEdit); - - grid.add(defaultPermissionPane, 3); - grid.nextRow(); - + // button for the custom permissions - btnCustomPermissions = new JButton("Benutzerdefinierte Berechtigungen"); - grid.add(btnCustomPermissions); + btnPermissions = new JButton("Berechtigungen"); + grid.add(btnPermissions); grid.skip(2); grid.nextRow(); grid.finish(true); - + // finally add the infoPanel itself to the main view add(infoPanel, BorderLayout.CENTER); // button panel on the bottom |