diff --git a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/commands/AbstractRemoteCommand.java b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/commands/AbstractRemoteCommand.java index e704712fad2..613f3b81529 100755 --- a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/commands/AbstractRemoteCommand.java +++ b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/commands/AbstractRemoteCommand.java @@ -47,7 +47,8 @@ public abstract class AbstractRemoteCommand { protected static class CommandProgressMonitor implements SftpProgressMonitor { private final IProgressMonitor fMonitor; private double fWorkPercentFactor; - private Long fMaxWorkKB; + private Long fMaxWork; + private String fMaxWorkSize; private long fWorkToDate; public CommandProgressMonitor(IProgressMonitor monitor) { @@ -57,11 +58,23 @@ public abstract class AbstractRemoteCommand { @Override public boolean count(long count) { fWorkToDate += count; - Long workToDateKB = new Long(fWorkToDate / 1024L); - Double workPercent = new Double(fWorkPercentFactor * fWorkToDate); - String subDesc = MessageFormat.format(Messages.AbstractRemoteCommand_format, - new Object[] { workToDateKB, fMaxWorkKB, workPercent }); - + String size; + Long workToDate; + if (fWorkToDate < 1024L) { + size = "bytes"; //$NON-NLS-1$ + workToDate = fWorkToDate; + } else { + size = "KB"; //$NON-NLS-1$ + workToDate = fWorkToDate / 1024L; + } + String subDesc; + if (fWorkPercentFactor < 0) { + subDesc = MessageFormat.format(Messages.AbstractRemoteCommand_format1, new Object[] { workToDate, size }); + } else { + Double workPercent = new Double(fWorkPercentFactor * fWorkToDate); + subDesc = MessageFormat.format(Messages.AbstractRemoteCommand_format2, new Object[] { workToDate, size, fMaxWork, + fMaxWorkSize, workPercent }); + } fMonitor.subTask(subDesc); fMonitor.worked((int) count); return !(fMonitor.isCanceled()); @@ -75,7 +88,13 @@ public abstract class AbstractRemoteCommand { @Override public void init(int op, String src, String dest, long max) { fWorkPercentFactor = 1.0 / max; - fMaxWorkKB = new Long(max / 1024L); + if (max < 1024L) { + fMaxWorkSize = "bytes"; //$NON-NLS-1$ + fMaxWork = max; + } else { + fMaxWorkSize = "KB"; //$NON-NLS-1$ + fMaxWork = max / 1024L; + } fWorkToDate = 0; fMonitor.beginTask(new Path(src).lastSegment(), (int) max); } diff --git a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/messages/Messages.java b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/messages/Messages.java index 614e0e37a46..4d75effcc54 100755 --- a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/messages/Messages.java +++ b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/messages/Messages.java @@ -16,15 +16,14 @@ import org.eclipse.osgi.util.NLS; public class Messages extends NLS { private static final String BUNDLE_ID = "org.eclipse.remote.internal.jsch.core.messages.messages"; //$NON-NLS-1$ - public static String AbstractRemoteCommand_format; - + public static String AbstractRemoteCommand_format1; + public static String AbstractRemoteCommand_format2; public static String AbstractRemoteCommand_Get_symlink_target; public static String AbstractRemoteCommand_Operation_cancelled_by_user; public static String AuthInfo_Authentication_message; public static String ExecCommand_Exec_command; public static String JSchConnection_Connection_was_cancelled; public static String JSchConnection_connectionNotOpen; - public static String JSchConnection_Executing_command; public static String JSchConnection_remote_address_must_be_set; public static String JSchConnection_remotePort; diff --git a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/messages/messages.properties b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/messages/messages.properties index 1c148bc251c..f36307c4bf3 100755 --- a/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/messages/messages.properties +++ b/bundles/org.eclipse.remote.jsch.core/src/org/eclipse/remote/internal/jsch/core/messages/messages.properties @@ -8,7 +8,8 @@ # Contributors: # IBM Corporation - initial implementation ############################################################################### -AbstractRemoteCommand_format={0,number,integer} KB of {1,number,integer} KB complete ({2,number,percent}) +AbstractRemoteCommand_format1={0,number,integer} {1} completed +AbstractRemoteCommand_format2={0,number,integer} {1} of {2,number,integer} {3} complete ({4,number,percent}) AbstractRemoteCommand_Get_symlink_target=Get symlink target AbstractRemoteCommand_Operation_cancelled_by_user=Operation cancelled by user AuthInfo_Authentication_message=Authentication Message