View | Details | Raw Unified | Return to bug 220258 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/ecf/internal/provider/filetransfer/Messages.java (+6 lines)
Lines 20-30 Link Here
20
	private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.filetransfer.messages"; //$NON-NLS-1$
20
	private static final String BUNDLE_NAME = "org.eclipse.ecf.internal.provider.filetransfer.messages"; //$NON-NLS-1$
21
	public static String AbstractOutgoingFileTransfer_EXCEPTION_FILE_TRANSFER_INFO_NOT_NULL;
21
	public static String AbstractOutgoingFileTransfer_EXCEPTION_FILE_TRANSFER_INFO_NOT_NULL;
22
	public static String AbstractOutgoingFileTransfer_EXCEPTION_IN_FINALLY;
22
	public static String AbstractOutgoingFileTransfer_EXCEPTION_IN_FINALLY;
23
	public static String AbstractRetrieveFileTransfer_DownloadRateFormat;
23
	public static String AbstractRetrieveFileTransfer_MalformedURLException;
24
	public static String AbstractRetrieveFileTransfer_MalformedURLException;
24
	public static String AbstractRetrieveFileTransfer_Progress_Data;
25
	public static String AbstractRetrieveFileTransfer_Progress_Data;
25
	public static String AbstractRetrieveFileTransfer_EXCEPTION_IN_FINALLY;
26
	public static String AbstractRetrieveFileTransfer_EXCEPTION_IN_FINALLY;
26
	public static String AbstractRetrieveFileTransfer_Exception_User_Cancelled;
27
	public static String AbstractRetrieveFileTransfer_Exception_User_Cancelled;
28
	public static String AbstractRetrieveFileTransfer_InfoDownloadRate;
27
	public static String AbstractRetrieveFileTransfer_RemoteFileID_Not_Null;
29
	public static String AbstractRetrieveFileTransfer_RemoteFileID_Not_Null;
30
	public static String AbstractRetrieveFileTransfer_SizeUnitBytes;
31
	public static String AbstractRetrieveFileTransfer_SizeUnitGB;
32
	public static String AbstractRetrieveFileTransfer_SizeUnitKB;
33
	public static String AbstractRetrieveFileTransfer_SizeUnitMB;
28
	public static String AbstractRetrieveFileTransfer_Status_Transfer_Completed_OK;
34
	public static String AbstractRetrieveFileTransfer_Status_Transfer_Completed_OK;
29
	public static String AbstractRetrieveFileTransfer_Status_Transfer_Exception;
35
	public static String AbstractRetrieveFileTransfer_Status_Transfer_Exception;
30
	public static String AbstractRetrieveFileTransfer_TransferListener_Not_Null;
36
	public static String AbstractRetrieveFileTransfer_TransferListener_Not_Null;
(-)src/org/eclipse/ecf/internal/provider/filetransfer/messages.properties (+6 lines)
Lines 11-19 Link Here
11
11
12
AbstractOutgoingFileTransfer_EXCEPTION_FILE_TRANSFER_INFO_NOT_NULL=File transfer info cannot be null.
12
AbstractOutgoingFileTransfer_EXCEPTION_FILE_TRANSFER_INFO_NOT_NULL=File transfer info cannot be null.
13
AbstractOutgoingFileTransfer_EXCEPTION_IN_FINALLY=Exception in send done event handler.
13
AbstractOutgoingFileTransfer_EXCEPTION_IN_FINALLY=Exception in send done event handler.
14
AbstractRetrieveFileTransfer_DownloadRateFormat=0.00 {0}
14
AbstractRetrieveFileTransfer_Progress_Data=\ - data 
15
AbstractRetrieveFileTransfer_Progress_Data=\ - data 
15
AbstractRetrieveFileTransfer_EXCEPTION_IN_FINALLY=Exception in receive done/paused event handler.
16
AbstractRetrieveFileTransfer_EXCEPTION_IN_FINALLY=Exception in receive done/paused event handler.
16
AbstractRetrieveFileTransfer_Exception_User_Cancelled=Cancelled by user
17
AbstractRetrieveFileTransfer_Exception_User_Cancelled=Cancelled by user
18
AbstractRetrieveFileTransfer_InfoDownloadRate=({0}/s)
17
AbstractRetrieveFileTransfer_Status_Transfer_Completed_OK=Transfer Completed OK
19
AbstractRetrieveFileTransfer_Status_Transfer_Completed_OK=Transfer Completed OK
18
UrlConnectionRetrieveFileTransfer_CONNECT_EXCEPTION_NOT_CONNECTED=not connected
20
UrlConnectionRetrieveFileTransfer_CONNECT_EXCEPTION_NOT_CONNECTED=not connected
19
UrlConnectionRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS=file modified since last access
21
UrlConnectionRetrieveFileTransfer_EXCEPTION_FILE_MODIFIED_SINCE_LAST_ACCESS=file modified since last access
Lines 42-47 Link Here
42
HttpClientRetrieveFileTransfer_Unauthorized=Unauthorized
44
HttpClientRetrieveFileTransfer_Unauthorized=Unauthorized
43
HttpClientRetrieveFileTransfer_Proxy_Auth_Required=Proxy Authentication Required
45
HttpClientRetrieveFileTransfer_Proxy_Auth_Required=Proxy Authentication Required
44
AbstractRetrieveFileTransfer_MalformedURLException=Exception creating URL for {0}
46
AbstractRetrieveFileTransfer_MalformedURLException=Exception creating URL for {0}
47
AbstractRetrieveFileTransfer_SizeUnitBytes=bytes
48
AbstractRetrieveFileTransfer_SizeUnitGB=GB
49
AbstractRetrieveFileTransfer_SizeUnitKB=KB
50
AbstractRetrieveFileTransfer_SizeUnitMB=MB
45
FileSystemBrowser_EXCEPTION_DIRECTORY_DOES_NOT_EXIST=Directory {0} does not exist.
51
FileSystemBrowser_EXCEPTION_DIRECTORY_DOES_NOT_EXIST=Directory {0} does not exist.
46
FileSystemBrowser_EXCEPTION_NOT_DIRECTORY={0} is not a directory.
52
FileSystemBrowser_EXCEPTION_NOT_DIRECTORY={0} is not a directory.
47
FileTransferNamespace_Namespace_Protocol=ecf.provider.filetransfer
53
FileTransferNamespace_Namespace_Protocol=ecf.provider.filetransfer
(-)src/org/eclipse/ecf/provider/filetransfer/retrieve/AbstractRetrieveFileTransfer.java (-1 / +30 lines)
Lines 1-16 Link Here
1
/*******************************************************************************
1
/*******************************************************************************
2
 * Copyright (c) 2004, 2007 Composent, Inc. All rights reserved. This
2
 * Copyright (c) 2004, 2008 Composent, Inc. All rights reserved. This
3
 * program and the accompanying materials are made available under the terms of
3
 * program and the accompanying materials are made available under the terms of
4
 * the Eclipse Public License v1.0 which accompanies this distribution, and is
4
 * the Eclipse Public License v1.0 which accompanies this distribution, and is
5
 * available at http://www.eclipse.org/legal/epl-v10.html
5
 * available at http://www.eclipse.org/legal/epl-v10.html
6
 * 
6
 * 
7
 * Contributors: Composent, Inc. - initial API and implementation
7
 * Contributors: Composent, Inc. - initial API and implementation
8
 *               Benjamin Cabe <benjamin.cabe@anyware-tech.com> - bug 220258
8
 ******************************************************************************/
9
 ******************************************************************************/
9
package org.eclipse.ecf.provider.filetransfer.retrieve;
10
package org.eclipse.ecf.provider.filetransfer.retrieve;
10
11
11
import java.io.*;
12
import java.io.*;
12
import java.net.MalformedURLException;
13
import java.net.MalformedURLException;
13
import java.net.URL;
14
import java.net.URL;
15
import java.text.DecimalFormat;
14
import java.util.Map;
16
import java.util.Map;
15
import org.eclipse.core.net.proxy.IProxyData;
17
import org.eclipse.core.net.proxy.IProxyData;
16
import org.eclipse.core.net.proxy.IProxyService;
18
import org.eclipse.core.net.proxy.IProxyService;
Lines 69-74 Link Here
69
71
70
	protected IConnectContext connectContext;
72
	protected IConnectContext connectContext;
71
73
74
	protected long jobStartTime;
75
72
	public void setConnectContextForAuthentication(IConnectContext connectContext) {
76
	public void setConnectContextForAuthentication(IConnectContext connectContext) {
73
		this.connectContext = connectContext;
77
		this.connectContext = connectContext;
74
	}
78
	}
Lines 113-123 Link Here
113
			bytesReceived += bytes;
117
			bytesReceived += bytes;
114
			localFileContents.write(buf, 0, bytes);
118
			localFileContents.write(buf, 0, bytes);
115
			fireTransferReceiveDataEvent();
119
			fireTransferReceiveDataEvent();
120
			double downloadRateBps = (bytesReceived / ((System.currentTimeMillis() + 1 - jobStartTime) / 1000.0));
121
			monitor.setTaskName(getRemoteFileURL().toString() + Messages.AbstractRetrieveFileTransfer_Progress_Data + NLS.bind(Messages.AbstractRetrieveFileTransfer_InfoDownloadRate, toHumanReadableBytes(downloadRateBps)));
116
			monitor.worked((int) Math.round(factor * bytes));
122
			monitor.worked((int) Math.round(factor * bytes));
117
		} else
123
		} else
118
			done = true;
124
			done = true;
119
	}
125
	}
120
126
127
	public static String toHumanReadableBytes(double size) {
128
		double convertedSize;
129
		String unit;
130
131
		if (size / (1024 * 1024 * 1024) >= 1) {
132
			convertedSize = size / (1024 * 1024 * 1024);
133
			unit = Messages.AbstractRetrieveFileTransfer_SizeUnitGB;
134
		} else if (size / (1024 * 1024) >= 1) {
135
			convertedSize = size / (1024 * 1024);
136
			unit = Messages.AbstractRetrieveFileTransfer_SizeUnitMB;
137
		} else if (size / 1024 >= 1) {
138
			convertedSize = size / 1024;
139
			unit = Messages.AbstractRetrieveFileTransfer_SizeUnitKB;
140
		} else {
141
			convertedSize = size;
142
			unit = Messages.AbstractRetrieveFileTransfer_SizeUnitBytes;
143
		}
144
145
		DecimalFormat df = new DecimalFormat(NLS.bind(Messages.AbstractRetrieveFileTransfer_DownloadRateFormat, unit));
146
		return df.format(convertedSize);
147
	}
148
121
	public class FileTransferJob extends Job {
149
	public class FileTransferJob extends Job {
122
150
123
		public FileTransferJob(String name) {
151
		public FileTransferJob(String name) {
Lines 125-130 Link Here
125
		}
153
		}
126
154
127
		protected IStatus run(IProgressMonitor monitor) {
155
		protected IStatus run(IProgressMonitor monitor) {
156
			jobStartTime = System.currentTimeMillis();
128
			final byte[] buf = new byte[buff_length];
157
			final byte[] buf = new byte[buff_length];
129
			final long totalWork = ((fileLength == -1) ? 100 : fileLength);
158
			final long totalWork = ((fileLength == -1) ? 100 : fileLength);
130
			double factor = (totalWork > Integer.MAX_VALUE) ? (((double) Integer.MAX_VALUE) / ((double) totalWork)) : 1.0;
159
			double factor = (totalWork > Integer.MAX_VALUE) ? (((double) Integer.MAX_VALUE) / ((double) totalWork)) : 1.0;

Return to bug 220258