summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorStephan Schwaer2015-09-29 18:00:13 +0200
committerStephan Schwaer2015-09-29 18:00:13 +0200
commit1b7dfd683bc059ddbc46a6964234f1a453e0a0cc (patch)
tree3fa301e8e55f462ac4db3b1c0f508dd3628f0f71 /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parentMerge branch 'v1.1' of git.openslx.org:openslx-ng/tutor-module into v1.1 (diff)
downloadtutor-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.java94
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;
}
}