summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java86
1 files changed, 4 insertions, 82 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
index afb0fed8..e7f9700f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
@@ -20,10 +20,9 @@ import javax.swing.filechooser.FileNameExtensionFilter;
import org.apache.log4j.Logger;
import org.openslx.bwlp.thrift.iface.TImageDataException;
import org.openslx.dozmod.Config;
-import org.openslx.dozmod.filetransfer.TransferEvent;
-import org.openslx.dozmod.filetransfer.TransferEventListener;
import org.openslx.dozmod.filetransfer.UploadTask;
import org.openslx.dozmod.gui.Gui;
+import org.openslx.dozmod.gui.MainWindow;
import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.gui.wizard.Wizard;
import org.openslx.dozmod.gui.wizard.layout.ImageUploadPageLayout;
@@ -31,8 +30,6 @@ import org.openslx.dozmod.state.UploadWizardState;
import org.openslx.dozmod.thrift.MetaDataCache;
import org.openslx.dozmod.thrift.Session;
import org.openslx.thrifthelper.ThriftManager;
-import org.openslx.util.QuickTimer;
-import org.openslx.util.QuickTimer.Task;
import org.openslx.util.Util;
import org.openslx.util.vm.VmMetaData.HardDisk;
import org.openslx.util.vm.VmwareMetaData;
@@ -241,20 +238,6 @@ public class ImageUploadPage extends ImageUploadPageLayout {
+ state.diskFile.getAbsolutePath(), MessageType.ERROR, LOGGER, e);
return false;
}
- // -- add listener for upload status/progress --
- state.uploadTask.addListener(new TransferEventListener() {
- @Override
- public void update(final TransferEvent event) {
- final TransferEventListener listener = this;
- Gui.asyncExec(new Runnable() {
- @Override
- public void run() {
- // always callback to gui
- processTransferStatus(listener, event);
- }
- });
- }
- });
new Thread(state.uploadTask).start();
do {
Util.sleep(5);
@@ -265,74 +248,13 @@ public class ImageUploadPage extends ImageUploadPageLayout {
if (state.uploadTask.getTransferCount() == 0) {
Gui.showMessageBox(this, "Aufbau der Verbindung zum Hochladen fehlgeschlagen", MessageType.ERROR,
LOGGER, null);
+ state.uploadTask.cancel();
+ state.uploadTask = null;
return false;
}
+ MainWindow.addUpload(state);
// -- check image creation --
blockProgressBar.setVisible(true);
return true;
}
-
- /**
- * Evaluates the transfer's state and show feedback to the user based on the
- * state.
- *
- * @param listener
- */
- private void processTransferStatus(TransferEventListener listener, TransferEvent event) {
- if (!getTopLevelAncestor().isVisible()) {
- if (state.uploadTask != null) {
- state.uploadTask.removeListener(listener);
- }
- return;
- }
- if (!isVisible())
- return;
- // always update progress bar
- if (event.progress != null) {
- // TODO: Maybe only display percentage in the wizard pages once we have the status bar in mainwindow
- blockProgressBar.setStatus(event.progress);
- }
- if (event.state == null)
- return;
- // TODO: Move user interaction to central listener when we have it
- switch (event.state) {
- case FINISHED:
- Gui.showMessageBox(this, "Upload abgeschlossen.", MessageType.INFO, LOGGER, null);
- break;
- case ERROR:
- if (state.uploadTask != null && state.uploadTask.isCanceled())
- return;
- Gui.showMessageBox(this, "Fehler beim Upload: " + event.errorMessage, MessageType.ERROR, LOGGER,
- null);
- // user wants to try again, just reset transferInformation ...
- state.uploadTask = null;
- break;
- case WORKING:
- case IDLE:
- break;
- default:
- LOGGER.warn("Unhandled transfer state: " + event.state);
- break;
- }
- }
-
- // TODO: In main control in main window....
- private void cancelUpload() {
- LOGGER.debug("Cancelling upload ...");
- // first tell the server about this
- QuickTimer.scheduleOnce(new Task() {
- @Override
- public void fire() {
- try {
- ThriftManager.getSatClient().cancelUpload(state.transferInformation.getToken());
- } catch (Exception e) {
- LOGGER.debug("Remote error while canceling upload for " + state.uuid, e);
- }
- // Then cancel the task
- state.uploadTask.cancel();
- }
- });
- setPageComplete(false);
- blockProgressBar.setVisible(false);
- }
}