diff options
author | Stephan Schwaer | 2015-09-29 18:00:13 +0200 |
---|---|---|
committer | Stephan Schwaer | 2015-09-29 18:00:13 +0200 |
commit | 1b7dfd683bc059ddbc46a6964234f1a453e0a0cc (patch) | |
tree | 3fa301e8e55f462ac4db3b1c0f508dd3628f0f71 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | |
parent | Merge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1 (diff) | |
download | tutor-module-1b7dfd683bc059ddbc46a6964234f1a453e0a0cc.tar.gz tutor-module-1b7dfd683bc059ddbc46a6964234f1a453e0a0cc.tar.xz tutor-module-1b7dfd683bc059ddbc46a6964234f1a453e0a0cc.zip |
[client] Added "Show linking lectures" button im imageDetailsW.
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | 94 |
1 files changed, 54 insertions, 40 deletions
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 fbd0f934..0fac31ac 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 @@ -19,6 +19,7 @@ import java.util.Map.Entry; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JOptionPane; +import javax.swing.RowFilter; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; @@ -28,12 +29,14 @@ import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.bwlp.thrift.iface.ImagePermissions; import org.openslx.bwlp.thrift.iface.ImageSummaryRead; import org.openslx.bwlp.thrift.iface.ImageVersionDetails; +import org.openslx.bwlp.thrift.iface.LectureSummary; import org.openslx.bwlp.thrift.iface.OperatingSystem; import org.openslx.bwlp.thrift.iface.ShareMode; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.bwlp.thrift.iface.Virtualizer; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; +import org.openslx.dozmod.gui.control.table.ListTable.ListModel; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.PopupMenu; import org.openslx.dozmod.gui.helper.UiFeedback; @@ -145,6 +148,18 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe refresh(true); } }); + + btnShowLinkingLectures.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + if (safeClose()) { + LectureListWindow page = MainWindow.showPage(LectureListWindow.class); + page.filterByImageBaseId(image.imageBaseId); + } + } + }); + btnChangeOwner.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -152,10 +167,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe @Override public void userAdded(UserInfo user, UserListWindow window) { window.dispose(); - if (Gui.showMessageBox(me, - "Sind Sie sicher, dass sie die Besitzerrechte an " - + "einen anderen Account übertragen wollen?", - MessageType.QUESTION_YESNO, LOGGER, null)) + if (Gui.showMessageBox(me, "Sind Sie sicher, dass sie die Besitzerrechte an " + + "einen anderen Account übertragen wollen?", MessageType.QUESTION_YESNO, + LOGGER, null)) setImageOwner(user); } @@ -224,12 +238,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe // highlight the row and popup the menu versionTable.setRowSelectionInterval(r, r); if (e.isPopupTrigger()) { - popupItemNew.setEnabled( - versionTable.getSelectedItem().isValid && ImagePerms.canLink(image)); - popupItemDownload.setEnabled( - versionTable.getSelectedItem().isValid && ImagePerms.canDownload(image)); - popupItemDelete.setEnabled( - versionTable.getSelectedItem().isValid && ImagePerms.canAdmin(image)); + popupItemNew.setEnabled(versionTable.getSelectedItem().isValid + && ImagePerms.canLink(image)); + popupItemDownload.setEnabled(versionTable.getSelectedItem().isValid + && ImagePerms.canDownload(image)); + popupItemDelete.setEnabled(versionTable.getSelectedItem().isValid + && ImagePerms.canAdmin(image)); pop.show(e.getComponent(), e.getX(), e.getY()); } } else { @@ -240,8 +254,6 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe versionTableScrollPane.addMouseListener(ma); versionTable.addMouseListener(ma); - - // listen to changes final DocumentListener docListener = new DocumentListener() { @Override @@ -279,7 +291,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe cboOperatingSystem.addItemListener(comboItemListener); cboShareMode.addItemListener(comboItemListener); chkIsTemplate.addActionListener(checkBoxListener); - + /** * Initial state of GUI elements */ @@ -300,10 +312,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe ********************************************************************************/ /** * Sets the image to the given imageBaseId. This will also trigger fill() - * which - * will set the image details fields to the values represented by this + * which will set the image details fields to the values represented by this * image. - * + * * @param imageBaseId the id of the image to be displayed */ public void setImage(final String imageBaseId) { @@ -338,8 +349,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe * @param user UserInfo to set the owner to */ private void setImageOwner(final UserInfo user) { - if (!ThriftActions.setImageOwner(JOptionPane.getFrameForComponent(me), image.getImageBaseId(), - user)) { + if (!ThriftActions.setImageOwner(JOptionPane.getFrameForComponent(me), image.getImageBaseId(), user)) { return; } Gui.showMessageBox(me, "Besitzrechte übertragen an " + FormatHelper.userName(user), MessageType.INFO, @@ -350,7 +360,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe /** * Called by the "Save" button, tries to save the changes internally and - * then react based depending on the outcome of the save + * then react based depending on the outcome of the save */ private void saveChanges() { boolean saved = saveChangesInternal(); @@ -367,17 +377,18 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe } /** - * Helper to only save the changes, nothing else. Updating GUI elements is done by saveChanges() - * + * Helper to only save the changes, nothing else. Updating GUI elements is + * done by saveChanges() + * * @return false if any try to save changes failed, true otherwise */ private boolean saveChangesInternal() { // first build the ImageBaseWrite from the GUI fields final ImageBaseWrite ibw = new ImageBaseWrite(txtTitle.getText(), txtDescription.getText(), cboOperatingSystem.getItemAt(cboOperatingSystem.getSelectedIndex()).osId, image.virtId, - chkIsTemplate.isSelected(), - new ImagePermissions(image.defaultPermissions.link, image.defaultPermissions.download, - image.defaultPermissions.edit, image.defaultPermissions.admin), + chkIsTemplate.isSelected(), new ImagePermissions(image.defaultPermissions.link, + image.defaultPermissions.download, image.defaultPermissions.edit, + image.defaultPermissions.admin), cboShareMode.getItemAt(cboShareMode.getSelectedIndex())); // now trigger the actual action if (metadataChanged) { @@ -460,7 +471,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe } // remember custom permissions if (customPermissions != null) { - // need a deep copy of the permission map to be able to check for changes after ImageCustomPermissionWindow + // need a deep copy of the permission map to be able to check for + // changes after ImageCustomPermissionWindow if (originalCustomPermissions == null) originalCustomPermissions = new HashMap<String, ImagePermissions>(); else @@ -480,7 +492,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe txtId.setText(image.getImageBaseId()); chkIsTemplate.setSelected(image.isTemplate); setTitle(image.getImageName()); - + // fill os combo, but only once :) if (cboOperatingSystem.getItemCount() == 0) { List<OperatingSystem> osList = MetaDataCache.getOperatingSystems(); @@ -524,8 +536,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe /** * Checks whether the user changed any fields of the image details and - * enables the save button if so - * TODO TAGS + * enables the save button if so TODO TAGS */ private void reactToChange() { metadataChanged = reactToChangeInternal(); @@ -586,7 +597,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe txtDescription.setEditable(editable); txtTags.setEditable(editable); cboOperatingSystem.setEnabled(editable); - // cboShareMode.setEnabled(editable); + // cboShareMode.setEnabled(editable); btnPermissions.setEnabled(editable && ImagePerms.canAdmin(image)); btnChangeOwner.setEnabled(editable && ImagePerms.canAdmin(image)); btnUpdateImage.setEnabled(editable); @@ -605,11 +616,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe win.setVisible(true); } - /* ******************************************************************************* + /* ******************************************************************************* * - * Dialog class overrides - * - ********************************************************************************/ + * Dialog class overrides + * + * ******************************************************************************* + */ @SuppressWarnings("deprecation") @Override public void show() { @@ -620,14 +632,15 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe super.show(); } - /* ******************************************************************************* + /* ******************************************************************************* * - * UIFeedback implementation - * - ********************************************************************************/ + * UIFeedback implementation + * + * ******************************************************************************* + */ @Override public boolean wantConfirmQuit() { - return metadataChanged || permissionsChanged ; + return metadataChanged || permissionsChanged; } @Override @@ -639,11 +652,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe * Safe close helper: checks if we have unsaved work and prompt the user for * confirmation if so */ - private void safeClose() { + private boolean safeClose() { if ((metadataChanged || permissionsChanged) && !Gui.showMessageBox(me, "Änderungen werden verworfen, wollen Sie wirklich abbrechen?", MessageType.QUESTION_YESNO, null, null)) - return; + return false; dispose(); + return true; } } |