summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java29
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java5
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java5
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java7
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java22
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java27
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageUpdateWizard.java5
7 files changed, 73 insertions, 27 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
index d8e7f797..4be287d7 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java
@@ -255,19 +255,26 @@ public abstract class MainWindow {
@Override
public void fire() {
App.waitForInit();
- // now try to init the session with the saved configuration (by giving it null)
- if (ThriftActions.initSession(null, false, SwingUtilities.getWindowAncestor(mainWindow))) {
- initWindow();
- } else {
- // session resume failed, so do the normal login procedure
- Gui.asyncExec(new Runnable() {
- @Override
- public void run() {
- LoginWindow.open(mainWindow);
+ Gui.syncExec(new GuiCallable<Boolean>() {
+ @Override
+ public Boolean run() {
+ // now try to init the session with the saved configuration (by giving it null)
+ if (ThriftActions.initSession(null, false,
+ SwingUtilities.getWindowAncestor(mainWindow))) {
initWindow();
+ } else {
+ // session resume failed, so do the normal login procedure
+ Gui.asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ LoginWindow.open(mainWindow);
+ initWindow();
+ }
+ });
}
- });
- }
+ return null;
+ }
+ });
}
});
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java
index a25bd661..a50e67c5 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/DownloadPanel.java
@@ -69,5 +69,10 @@ public class DownloadPanel extends TransferPanel implements ActionListener, Quit
public void onApplicationQuit() {
download.cancel();
}
+
+ @Override
+ protected void releaseResources() {
+ // NOOP
+ }
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java
index bfd9b783..93b412de 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java
@@ -38,4 +38,9 @@ public class PassiveUploadPanel extends TransferPanel {
return false;
}
+ @Override
+ protected void releaseResources() {
+ // NOOP
+ }
+
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java
index 0718946e..95464f24 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/TransferPanel.java
@@ -129,11 +129,13 @@ public abstract class TransferPanel extends ActivityPanel implements TransferEve
status = I18n.ACTIVITY.getString("TransferPanel.TransferState.error");
if (transfer.isCanceled()) {
transfer.removeListener(panel);
+ releaseResources();
}
break;
case FINISHED:
transferDone();
status = I18n.ACTIVITY.getString("TransferPanel.TransferState.finished");
+ releaseResources();
break;
case IDLE:
status = I18n.ACTIVITY.getString("TransferPanel.TransferState.idle");
@@ -166,6 +168,11 @@ public abstract class TransferPanel extends ActivityPanel implements TransferEve
}
});
}
+
+ /**
+ * Called when the transfer is finished, or cancelled due to an error
+ */
+ protected abstract void releaseResources();
private void transferDone() {
transfer.removeListener(panel);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
index 6b8c5a94..7e56b0e8 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/UploadPanel.java
@@ -34,7 +34,7 @@ public class UploadPanel extends TransferPanel implements QuitNotification {
private static final Logger LOGGER = LogManager.getLogger(UploadPanel.class);
- private final UploadInitiator state;
+ private UploadInitiator state;
private final UploadPanel panel = this;
@@ -59,26 +59,33 @@ public class UploadPanel extends TransferPanel implements QuitNotification {
private class ButtonAction implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
+ if (state == null)
+ return;
+ state.getUploadTask().removeListener(panel);
if (!state.getUploadTask().isCanceled()) {
if (!Gui.showMessageBox(panel, I18n.ACTIVITY.getString("UploadPanel.Message.yesNo.cancelTransfer"),
MessageType.QUESTION_YESNO, null, null))
return;
+ final UploadInitiator fstate = state;
QuickTimer.scheduleOnce(new Task() {
@Override
public void fire() {
- state.cancelError("UploadPanel: Requested by user through button press");
+ fstate.cancelError("UploadPanel: Requested by user through button press");
}
});
}
- state.getUploadTask().removeListener(panel);
close();
+ state = null;
}
}
private class SscToggle implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
+ if (state == null)
+ return;
final UploadOptions options = new UploadOptions(chkServerSideCopy.isSelected());
+ final UploadInitiator fstate = state;
QuickTimer.scheduleOnce(new Task() {
@Override
public void fire() {
@@ -86,7 +93,7 @@ public class UploadPanel extends TransferPanel implements QuitNotification {
UploadOptions newOpt = null;
try {
newOpt = ThriftManager.getSatClient().setUploadOptions(Session.getSatelliteToken(),
- state.getToken(), options);
+ fstate.getToken(), options);
} catch (TAuthorizationException | TInvalidTokenException e) {
dis = true;
} catch (TException e) {
@@ -117,6 +124,13 @@ public class UploadPanel extends TransferPanel implements QuitNotification {
@Override
public void onApplicationQuit() {
// Application quit, tell server we cancel
+ if (state == null)
+ return;
state.cancelError("Application quit (via UploadPanel)");
}
+
+ @Override
+ protected void releaseResources() {
+ state = null;
+ }
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java
index 0bfe2b22..0c56a5c0 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageCreationWizard.java
@@ -291,22 +291,24 @@ public class ImageCreationWizard extends Wizard implements UiFeedback, QuitNotif
}
@Override protected boolean onCancelRequest() {
- if (state.uuid == null)
+ if (state == null || state.uuid == null)
return true; // Allow closing - nothing in progress
boolean confirmed = Gui.showMessageBox(this,
I18n.WIZARD.getString("ImageCreation.Message.yesNo.cancelRequest"),
MessageType.QUESTION_YESNO, null, null);
if (confirmed) {
QuickTimer.scheduleOnce(new Task() {
- @Override public void fire() {
- if (state.upload != null) {
+ @Override
+ public void fire() {
+ if (state != null && state.upload != null) {
state.upload.cancelError("Cancelled through aborting wizard");
- }
- // As we're creating a new VM, delete base image aswell
- try {
- ThriftManager.getSatClient().deleteImageBase(Session.getSatelliteToken(), state.uuid);
- } catch (TException e) {
- LOGGER.debug("Error canceling upload on sat: ", e);
+ // As we're creating a new VM, delete base image aswell
+ try {
+ ThriftManager.getSatClient()
+ .deleteImageBase(Session.getSatelliteToken(), state.uuid);
+ } catch (TException e) {
+ LOGGER.debug("Error canceling upload on sat: ", e);
+ }
}
}
});
@@ -315,7 +317,7 @@ public class ImageCreationWizard extends Wizard implements UiFeedback, QuitNotif
}
@Override public boolean wantConfirmQuit() {
- return state.uuid != null;
+ return state != null && state.uuid != null;
}
@Override public void escapePressed() {
@@ -330,7 +332,10 @@ public class ImageCreationWizard extends Wizard implements UiFeedback, QuitNotif
@Override
protected void doCleanup() {
- state = null;
+ if (state != null) {
+ state.upload = null;
+ state = null;
+ }
containerDefinition = null;
currentPages.clear();
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageUpdateWizard.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageUpdateWizard.java
index ac8f80c1..1bcbaaf6 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageUpdateWizard.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/ImageUpdateWizard.java
@@ -147,8 +147,11 @@ public class ImageUpdateWizard extends Wizard implements UiFeedback, QuitNotific
@Override
protected void doCleanup() {
+ if (state != null) {
+ state.upload = null;
+ state = null;
+ }
imageUploadPage = null;
- state = null;
}
}