From e0e6b82b54bef667d077efe933d1b7b35983a2cd Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Mon, 18 Apr 2016 18:03:01 +0200 Subject: [*] Display sat->master progress in client --- .../java/org/openslx/dozmod/gui/MainWindow.java | 19 +++++++++++++ .../dozmod/gui/activity/PassiveUploadPanel.java | 33 ++++++++++++++++++++++ .../openslx/dozmod/gui/activity/TransferPanel.java | 8 ++---- .../openslx/dozmod/gui/activity/UploadPanel.java | 11 ++++---- .../dozmod/gui/window/ImageDetailsWindow.java | 6 ++-- 5 files changed, 63 insertions(+), 14 deletions(-) create mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui') 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 0c90d60b..6ca0a4d0 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/MainWindow.java @@ -33,12 +33,14 @@ import org.openslx.bwlp.thrift.iface.TransferState; import org.openslx.dozmod.App; import org.openslx.dozmod.Config; import org.openslx.dozmod.filetransfer.DownloadTask; +import org.openslx.dozmod.filetransfer.PassiveTransfer; import org.openslx.dozmod.filetransfer.TransferEvent; import org.openslx.dozmod.filetransfer.TransferEventListener; import org.openslx.dozmod.filetransfer.UploadTask; import org.openslx.dozmod.gui.Gui.GuiCallable; import org.openslx.dozmod.gui.activity.ActivityPanel; import org.openslx.dozmod.gui.activity.DownloadPanel; +import org.openslx.dozmod.gui.activity.PassiveUploadPanel; import org.openslx.dozmod.gui.activity.UpdatePanel; import org.openslx.dozmod.gui.activity.UploadPanel; import org.openslx.dozmod.gui.control.QLabel; @@ -356,6 +358,23 @@ public abstract class MainWindow { }); } + public static void addUpload(String masterTransferToken, String name) { + final PassiveTransfer transfer = new PassiveTransfer(masterTransferToken); + addPanel(new PassiveUploadPanel(transfer, name)); + transfer.addListener(new TransferEventListener() { + @Override + public void update(TransferEvent event) { + if (event.state == TransferState.FINISHED) { + ImageListWindow page = getPage(ImageListWindow.class); + if (page != null) { + page.refresh(true); + } + transfer.removeListener(this); + } + } + }); + } + public static void addDownload(String imageName, String diskFile, DownloadTask dlTask) { addPanel(new DownloadPanel(imageName, diskFile, dlTask)); } 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 new file mode 100644 index 00000000..a889e7b6 --- /dev/null +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/activity/PassiveUploadPanel.java @@ -0,0 +1,33 @@ +package org.openslx.dozmod.gui.activity; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import org.apache.log4j.Logger; +import org.openslx.dozmod.filetransfer.TransferEventEmitter; + +@SuppressWarnings("serial") +public class PassiveUploadPanel extends TransferPanel { + + private static final Logger LOGGER = Logger.getLogger(PassiveUploadPanel.class); + + private final TransferEventEmitter state; + + private final PassiveUploadPanel panel = this; + + public PassiveUploadPanel(TransferEventEmitter state, String name) { + super(state, name, ""); + btnClose.addActionListener(new ButtonAction()); + this.state = state; + state.addListener(this); + btnClose.setText("Ausblenden"); + } + + private class ButtonAction implements ActionListener { + @Override + public void actionPerformed(ActionEvent e) { + state.removeListener(panel); + close(); + } + } +} 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 6e2e38ec..7a3582df 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 @@ -5,17 +5,15 @@ import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; -import javax.swing.BorderFactory; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JPanel; -import javax.swing.JSeparator; import org.apache.log4j.Logger; import org.openslx.dozmod.filetransfer.TransferEvent; +import org.openslx.dozmod.filetransfer.TransferEventEmitter; import org.openslx.dozmod.filetransfer.TransferEventListener; -import org.openslx.dozmod.filetransfer.TransferTask; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.control.BlockProgressBar; import org.openslx.dozmod.gui.control.QLabel; @@ -37,7 +35,7 @@ public abstract class TransferPanel extends ActivityPanel implements TransferEve protected final BlockProgressBar progress; - private final TransferTask transfer; + private final TransferEventEmitter transfer; private final TransferPanel panel = this; @@ -53,7 +51,7 @@ public abstract class TransferPanel extends ActivityPanel implements TransferEve private JPanel footer; - public TransferPanel(TransferTask transfer, String displayName, String fileName) { + public TransferPanel(TransferEventEmitter transfer, String displayName, String fileName) { setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS)); // Header: [status] VM-Name ---- fileName [Button] header = new JPanel(); 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 e8313120..d71a4a1c 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 @@ -7,6 +7,7 @@ import org.apache.log4j.Logger; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.state.UploadWizardState; +import org.openslx.dozmod.thrift.UploadInitiator; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; @@ -15,32 +16,32 @@ public class UploadPanel extends TransferPanel { private static final Logger LOGGER = Logger.getLogger(UploadPanel.class); - private final UploadWizardState state; + private final UploadInitiator state; private final UploadPanel panel = this; public UploadPanel(UploadWizardState state) { super(state.upload.getUploadTask(), state.name, state.diskFile.getName()); btnClose.addActionListener(new ButtonAction()); - this.state = state; + this.state = state.upload; state.upload.getUploadTask().addListener(this); } private class ButtonAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { - if (!state.upload.getUploadTask().isCanceled()) { + if (!state.getUploadTask().isCanceled()) { if (!Gui.showMessageBox(panel, "Wollen Sie diesen Transfer wirklich abbrechen?", MessageType.QUESTION_YESNO, null, null)) return; QuickTimer.scheduleOnce(new Task() { @Override public void fire() { - state.upload.cancelError(); + state.cancelError(); } }); } - state.upload.getUploadTask().removeListener(panel); + state.getUploadTask().removeListener(panel); close(); } } 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 a3541c0a..6c08dff8 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 @@ -414,16 +414,14 @@ public class ImageDetailsWindow extends ImageDetailsWindowLayout implements UiFe @Override public void fire() { try { - String transferId = ThriftManager.getSatClient().publishImageVersion( + final String transferId = ThriftManager.getSatClient().publishImageVersion( Session.getSatelliteToken(), image.latestVersionId); - /* Gui.asyncExec(new Runnable() { @Override public void run() { - MainWindow.addUpload(transferId, ); + MainWindow.addUpload(transferId, image.imageName); } }); - */ Gui.asyncMessageBox("Läuft: " + transferId, MessageType.INFO, null, null); } catch (TException e1) { ThriftError.showMessage(me, LOGGER, e1, -- cgit v1.2.3-55-g7522