diff options
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.java | 86 |
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); - } } |