use of org.eclipse.ecf.filetransfer.IFileTransfer in project ecf by eclipse.
the class BitTorrentConnectWizard method performFinish.
public boolean performFinish() {
workbenchPage = workbench.getActiveWorkbenchWindow().getActivePage();
final IRetrieveFileTransferContainerAdapter irftca = (IRetrieveFileTransferContainerAdapter) container.getAdapter(IRetrieveFileTransferContainerAdapter.class);
try {
targetID = FileIDFactory.getDefault().createFileID(irftca.getRetrieveNamespace(), page.getTorrentName());
} catch (final FileCreateException e) {
new ContainerConnectErrorDialog(workbench.getActiveWorkbenchWindow().getShell(), 1, "The target ID to connect to could not be created", page.getTorrentName(), e).open();
return true;
}
try {
irftca.sendRetrieveRequest(targetID, new IFileTransferListener() {
public void handleTransferEvent(final IFileTransferEvent e) {
if (e instanceof IIncomingFileTransferReceiveStartEvent) {
try {
final IFileTransfer ift = ((IIncomingFileTransferReceiveStartEvent) e).receive(new File(page.getTargetName()));
workbenchPage.getWorkbenchWindow().getShell().getDisplay().asyncExec(new Runnable() {
public void run() {
FileTransfersView.addTransfer(ift);
}
});
} catch (final IOException ioe) {
new ContainerConnectErrorDialog(workbench.getActiveWorkbenchWindow().getShell(), 1, "Could not write to " + page.getTargetName(), page.getTargetName(), null).open();
}
} else if (e instanceof IIncomingFileTransferEvent) {
final FileTransfersView ftv = (FileTransfersView) workbenchPage.findView(FileTransfersView.ID);
if (ftv != null) {
workbenchPage.getWorkbenchWindow().getShell().getDisplay().asyncExec(new Runnable() {
public void run() {
ftv.update(((IIncomingFileTransferEvent) e).getSource());
}
});
}
}
}
}, null);
} catch (final IncomingFileTransferException e) {
new ContainerConnectErrorDialog(workbench.getActiveWorkbenchWindow().getShell(), 1, "Could not send retrieval request.", targetID.getName(), e).open();
}
return true;
}
Aggregations