diff options
author | Simon Rettberg | 2015-09-04 19:21:20 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-09-04 19:21:20 +0200 |
commit | 70219d8a7816777ef18e9120d7fedbffaf9e499a (patch) | |
tree | 10bf6612d59e59a587ec48192baf33dfc0060a6c /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java | |
parent | [client] Fixed linking to unallowed images. (diff) | |
download | tutor-module-70219d8a7816777ef18e9120d7fedbffaf9e499a.tar.gz tutor-module-70219d8a7816777ef18e9120d7fedbffaf9e499a.tar.xz tutor-module-70219d8a7816777ef18e9120d7fedbffaf9e499a.zip |
[client] Close details windows on save, 'Cancel' => 'Close'
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 | 103 |
1 files changed, 58 insertions, 45 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 dede015f..7b42c14a 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 @@ -70,6 +70,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe public interface ImageUpdatedCallback { public void updated(); } + /** * Callback instance */ @@ -139,13 +140,13 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe btnChangeOwner.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - UserListWindow.open(me, - new UserAddedCallback() { + UserListWindow.open(me, new UserAddedCallback() { @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); } @@ -155,8 +156,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe btnPermissions.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { - PermissionDefaultToCustomLink<ImagePermissions> pl = ImageCustomPermissionWindow.open(me, me.permissionMap, image.defaultPermissions, image.ownerId); - if (pl != null && pl.defaultPermissions != null && pl.customPermissions != null){ + PermissionDefaultToCustomLink<ImagePermissions> pl = ImageCustomPermissionWindow.open(me, + me.permissionMap, image.defaultPermissions, image.ownerId); + if (pl != null && pl.defaultPermissions != null && pl.customPermissions != null) { image.defaultPermissions = pl.defaultPermissions; permissionMap = pl.customPermissions; permissionsChanged = true; @@ -200,19 +202,24 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe public void mousePressed(MouseEvent e) { processClick(e); } + @Override public void mouseReleased(MouseEvent e) { processClick(e); } + private void processClick(MouseEvent e) { int r = versionTable.rowAtPoint(e.getPoint()); if (r >= 0 && r < versionTable.getRowCount()) { // 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 { @@ -236,10 +243,10 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe cboShareMode.setEnabled(false); } - /******************************************************************************** + /******************************************************************************** + * + * Helper triggering the actual thrift calls * - * Helper triggering the actual thrift calls - * ********************************************************************************/ /** * @param imageBaseId the id of the image to be displayed @@ -259,7 +266,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe // TODO } - synchronized(me) { + synchronized (me) { image = imageDetails; permissionMap = permissions; @@ -279,31 +286,30 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe if (!ThriftActions.setImageOwner(JOptionPane.getFrameForComponent(me), image.getImageBaseId(), user)) { return; } - Gui.showMessageBox(me, "Besitzrechte übertragen an " + FormatHelper.userName(user), - MessageType.INFO, null, null); + Gui.showMessageBox(me, "Besitzrechte übertragen an " + FormatHelper.userName(user), MessageType.INFO, + null, null); makeEditable(false); refresh(true); } /** - * Push the changes of the image details to the satellite + * Push the changes of the image details to the satellite */ private void saveChanges() { // 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), + 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), cboShareMode.getItemAt(cboShareMode.getSelectedIndex())); // now trigger the actual action if (!ThriftActions.updateImageBase(JOptionPane.getFrameForComponent(me), image.getImageBaseId(), ibw)) return; - if (permissionsChanged){ + if (permissionsChanged) { try { - ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(), image.imageBaseId, permissionMap); + ThriftManager.getSatClient().writeImagePermissions(Session.getSatelliteToken(), + image.imageBaseId, permissionMap); permissionsChanged = false; } catch (TException e) { LOGGER.error("Fehler beim Übertragen der benutzerspezifischen Berechtigungen: ", e); @@ -311,9 +317,10 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe } // success btnSaveChanges.setEnabled(false); - refresh(true); callback.updated(); + dispose(); } + /** * Triggers the download of the given image version * @@ -321,8 +328,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe */ private void performImageDownload(ImageVersionDetails selected) { if (selected.getVersionId() == null) { - Gui.showMessageBox(this, "Ausgewählte Version ist ungültig", MessageType.ERROR, - null, null); + Gui.showMessageBox(this, "Ausgewählte Version ist ungültig", MessageType.ERROR, null, null); return; } ThriftActions.initDownload(JOptionPane.getFrameForComponent(this), selected.versionId, @@ -337,19 +343,19 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe private void deleteVersion(final ImageVersionDetails version) { if (version == null) return; - ThriftActions.deleteImageVersion(JOptionPane.getFrameForComponent(this), - version.versionId, new DeleteCallback() { - @Override - public void isDeleted(boolean success) { - refresh(success); - } - }); + ThriftActions.deleteImageVersion(JOptionPane.getFrameForComponent(this), version.versionId, + new DeleteCallback() { + @Override + public void isDeleted(boolean success) { + refresh(success); + } + }); } - /******************************************************************************** + /******************************************************************************** + * + * General UI helpers * - * General UI helpers - * ********************************************************************************/ /** * @param forceRefresh @@ -361,6 +367,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe } setImage(baseId); } + /** * callback function when we received the image's details from the server */ @@ -390,7 +397,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe for (OperatingSystem os : osList) { cboOperatingSystem.addItem(os); } - cboOperatingSystem.setSelectedItem(new OperatingSystem(image.getOsId(), null, null, null, 0 , 0)); + cboOperatingSystem.setSelectedItem(new OperatingSystem(image.getOsId(), null, null, null, 0, 0)); } Virtualizer virt = MetaDataCache.getVirtualizerById(image.getVirtId()); @@ -429,10 +436,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe public void removeUpdate(DocumentEvent e) { changedUpdate(e); } + @Override public void insertUpdate(DocumentEvent e) { changedUpdate(e); } + @Override public void changedUpdate(DocumentEvent e) { reactToChange(); @@ -458,11 +467,12 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe final ActionListener checkBoxListener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - reactToChange(); + reactToChange(); } }; chkIsTemplate.addActionListener(checkBoxListener); } + /** * Enables/disables the editable fields based on 'editable' * @@ -491,7 +501,8 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe if (newOs != null) { if (!txtTitle.getText().isEmpty() && !txtTitle.getText().equals(image.getImageName())) { changed = true; - } else if (!txtDescription.getText().isEmpty() && !txtDescription.getText().equals(image.getDescription())) { + } else if (!txtDescription.getText().isEmpty() + && !txtDescription.getText().equals(image.getDescription())) { changed = true; } else if (newOs.getOsId() != image.getOsId()) { changed = true; @@ -499,7 +510,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe changed = true; } else if (chkIsTemplate.isSelected() != image.isTemplate) { changed = true; - } else if (permissionsChanged){ + } else if (permissionsChanged) { changed = true; } } @@ -507,6 +518,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe btnSaveChanges.setEnabled(changed); return changed; } + /** * Opens a new ImageDetailsWindow showing the details of the image with ID = * imageBaseId @@ -519,6 +531,7 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe win.setImage(imageBaseId); win.setVisible(true); } + /* ******************************************************************************* * * Dialog class overrides @@ -554,9 +567,9 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe * confirmation if so */ private void safeClose() { - if (reactToChange() && - !Gui.showMessageBox(me, - "Änderungen werden verworfen, wollen Sie wirklich abbrechen?", MessageType.QUESTION_YESNO, LOGGER, null)) + if (reactToChange() + && !Gui.showMessageBox(me, "Änderungen werden verworfen, wollen Sie wirklich abbrechen?", + MessageType.QUESTION_YESNO, LOGGER, null)) return; dispose(); } |