summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-04 19:21:20 +0200
committerSimon Rettberg2015-09-04 19:21:20 +0200
commit70219d8a7816777ef18e9120d7fedbffaf9e499a (patch)
tree10bf6612d59e59a587ec48192baf33dfc0060a6c /dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java
parent[client] Fixed linking to unallowed images. (diff)
downloadtutor-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.java103
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();
}