Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Using ECF filetransfer with progress

Hi Scott,
Thanks for the pointers. Yes, this approach might help. I do have two issues with it. The first is that I miss a method that returns the 'fileLength'. getPercentageComplete() is probably OK though, so that's not a biggie. But then there's the Job and it's progress monitor. Either the code is faulty or I miss something.

The GetFileHandler.execute() creates a new Job and schedules it. Once it starts, it passes an IProgressMonitor to its run method. The monitor is declared final so that it is accessible from within the IFileTransferListener.handleTransferEvent() method. The run method calls on adapter.sendRetrieveRequest(), then monitor.done(), and then it exits.

AFAIK, the monitor is now no longer valid. So what happens the next time the IFileTransferListener.handleTransferEvent() is called? Or is the sendRetrieveRequest() used here synchronous somehow?

Regards,
Thomas Hallgren


Scott Lewis wrote:
Hi Thomas,

Coincidently, just over the past few days Paul Webster has contributed some UI code that uses ECF file transfer. And over this past weekend I hooked this up to a relatively new FileTransfersView (a view that shows pending and completed file transfers).

GetFileHandler (this is implemented as a command handler, so that it can be used in multiple ui contexts):

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ecf/plugins/org.eclipse.ecf.filetransfer.ui/src/org/eclipse/ecf/internal/filetransfer/ui/GetFileHandler.java?root=Technology_Project&view=log

Here's the FileTransfersView class:

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.ecf/plugins/org.eclipse.ecf.filetransfer.ui/src/org/eclipse/ecf/filetransfer/ui/FileTransfersView.java?root=Technology_Project&view=log

What this does is to access the FileTransfersView class and pass in the IIncomingFileTransfer instance created on successfull call to event.receive(outputstream)

This is not necessarily the only/best way, but it does work. I've contemplated other ways (i.e. creating a separate shell/window just for file transfer status [like FireFox], creating a separate one for each transfer...etc)...but I've not produced them yet. Any contributions in this area would be most welcome, of course.

Thanks,

Scott

Thomas Hallgren wrote:
Our current download mechanism uses a progress monitor that is initialized using the URLConnection.getContentLength(). I can see that the FileTransferJob started from the AbstractTetrieveFileTransfer does the same thing. What I'm lacking is some way to add a more elaborate progress reporting. Our reporter will continuously set new subtasks with a text like

"Downloading <filename>: 845kB of 2.8MB at 130kB/s"

I don't seem to find the interfaces I need to implement this using ECF. Any ideas on how to do this?

Regards,
Thomas Hallgren

_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev

_______________________________________________
ecf-dev mailing list
ecf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ecf-dev



Back to the top