package com.tibco.as.spacebar.ui.editor.snapshot;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorSite;
import com.tibco.as.io.IInputStream;
import com.tibco.as.io.ITransfer;
import com.tibco.as.io.ITransferListener;
public class TransferListener implements ITransferListener {
private ITransfer transfer;
private SnapshotBrowser editor;
public TransferListener(ITransfer transfer, SnapshotBrowser editor) {
this.transfer = transfer;
this.editor = editor;
}
@Override
public void opened() {
}
@Override
public void transferred(int count) {
}
@Override
public void closed() {
IEditorSite site = editor.getEditorSite();
if (site == null) {
return;
}
Shell shell = site.getShell();
if (shell == null || shell.isDisposed()) {
return;
}
Display display = shell.getDisplay();
if (display == null || display.isDisposed()) {
return;
}
display.asyncExec(new Runnable() {
@Override
public void run() {
IEditorSite site = editor.getEditorSite();
if (site.getShell() == null || site.getShell().isDisposed()) {
return;
}
IInputStream<?> in = transfer.getInputStream();
long size = in.getPosition();
double browseTime = (double) in.getOpenTime() / 1000000d;
editor.setSize(size > 0 ? size - 1 : 0);
editor.setBrowseTime(browseTime);
}
});
}
}