|
|
|
|
using System;
|
|
|
|
|
|
|
|
|
|
using Codice.Client.BaseCommands;
|
|
|
|
|
using Codice.Client.BaseCommands.CheckIn.Progress;
|
|
|
|
|
using Codice.Client.Commands.CheckIn;
|
|
|
|
|
using Codice.CM.Common;
|
|
|
|
|
using PlasticGui;
|
|
|
|
|
using PlasticGui.WorkspaceWindow;
|
|
|
|
|
|
|
|
|
|
namespace Unity.PlasticSCM.Editor.Developer
|
|
|
|
|
{
|
|
|
|
|
internal class CheckinProgress
|
|
|
|
|
{
|
|
|
|
|
internal bool CancelPressed;
|
|
|
|
|
|
|
|
|
|
internal CheckinProgress(WorkspaceInfo wkInfo, WorkspaceWindow workspaceWindow)
|
|
|
|
|
{
|
|
|
|
|
mWkInfo = wkInfo;
|
|
|
|
|
mWorkspaceWindow = workspaceWindow;
|
|
|
|
|
|
|
|
|
|
mWorkspaceWindow.Progress.CanCancelProgress = true;
|
|
|
|
|
|
|
|
|
|
mProgressRender = new CheckinUploadProgressRender(
|
|
|
|
|
PlasticLocalization.GetString(
|
|
|
|
|
PlasticLocalization.Name.CheckinProgressMultiThreadUploading),
|
|
|
|
|
PlasticLocalization.GetString(
|
|
|
|
|
PlasticLocalization.Name.CheckinProgressMultiThreadNumOfBlocks),
|
|
|
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.CheckinProgressUploadingFiles),
|
|
|
|
|
PlasticLocalization.GetString(
|
|
|
|
|
PlasticLocalization.Name.CheckinProgressUploadingFileData),
|
|
|
|
|
PlasticLocalization.GetString(PlasticLocalization.Name.CheckinProgressOf),
|
|
|
|
|
PlasticLocalization.GetString(
|
|
|
|
|
PlasticLocalization.Name.RemainingProgressMessage));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
internal void Refresh(
|
|
|
|
|
CheckinStatus checkinStatus,
|
|
|
|
|
BuildProgressSpeedAndRemainingTime.ProgressData progressData)
|
|
|
|
|
{
|
|
|
|
|
if (checkinStatus == null)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
var progress = mWorkspaceWindow.Progress;
|
|
|
|
|
|
|
|
|
|
progress.ProgressHeader = checkinStatus.StatusString;
|
|
|
|
|
|
|
|
|
|
if (checkinStatus.Status >= EnumCheckinStatus.eciConfirming)
|
|
|
|
|
progress.CanCancelProgress = false;
|
|
|
|
|
|
|
|
|
|
if (checkinStatus.Status == EnumCheckinStatus.eciCancelling)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
int nowTicks = Environment.TickCount;
|
|
|
|
|
|
|
|
|
|
progress.TotalProgressMessage = mProgressRender.GetUploadSize(
|
|
|
|
|
checkinStatus.TransferredSize, checkinStatus.TotalSize, progressData);
|
|
|
|
|
|
|
|
|
|
progress.TotalProgressPercent = GetProgressBarPercent.ForTransfer(
|
|
|
|
|
checkinStatus.TransferredSize, checkinStatus.TotalSize) / 100f;
|
|
|
|
|
|
|
|
|
|
progress.ShowCurrentBlock = mProgressRender.
|
|
|
|
|
NeedShowCurrentBlockForCheckinStatus(checkinStatus, nowTicks);
|
|
|
|
|
|
|
|
|
|
string currentFileInfo = mProgressRender.GetCurrentFileInfo(
|
|
|
|
|
checkinStatus.CurrentCheckinBlock, mWkInfo.ClientPath);
|
|
|
|
|
|
|
|
|
|
progress.ProgressHeader = currentFileInfo;
|
|
|
|
|
|
|
|
|
|
float fileProgressBarValue = GetProgressBarPercent.ForTransfer(
|
|
|
|
|
checkinStatus.CurrentCheckinBlock.UploadedSize,
|
|
|
|
|
checkinStatus.CurrentCheckinBlock.BlockSize) / 100f;
|
|
|
|
|
|
|
|
|
|
progress.CurrentBlockProgressPercent = fileProgressBarValue;
|
|
|
|
|
|
|
|
|
|
progress.CurrentBlockProgressMessage = mProgressRender.GetCurrentBlockUploadSize(
|
|
|
|
|
checkinStatus.CurrentCheckinBlock, nowTicks);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CheckinUploadProgressRender mProgressRender;
|
|
|
|
|
WorkspaceWindow mWorkspaceWindow;
|
|
|
|
|
WorkspaceInfo mWkInfo;
|
|
|
|
|
}
|
|
|
|
|
}
|