public void State_FinishedStream(DriveProxy.API.DriveService.State sender, API.DriveService.Stream stream) { try { if (InvokeRequired) { BeginInvoke(new DriveProxy.API.DriveService.State.StreamHandler(State_FinishedStream), new object[] { sender, stream }); return; } for (int i = 0; i < panelBody.Controls.Count; i++) { var stateControl = panelBody.Controls[i] as StateControl; if (stateControl != null) { if (stateControl.Stream == stream) { if (stream.Failed) { _hasError = true; } break; } } } } catch (Exception exception) { Log.Error(exception, false); } }
public StateControl(API.DriveService.Stream stream) { try { InitializeComponent(); Enabled = false; Stream = stream; if (stream.IsFolder) { pictureBox1.Image = global::DriveProxy.Properties.Resources.smFolder; } else { Icon icon = DriveService.GetFileIcon(stream.FileInfo, 16, 16, true); if (icon == null) { pictureBox1.Image = global::DriveProxy.Properties.Resources.smFile; } else { pictureBox1.Image = icon.ToBitmap(); icon.Dispose(); icon = null; } } labelDescription.Text = stream.Title; stream.OnProgressChanged += Stream_ProgressChanged; labelStatus.Text = "Queued for " + stream.Type; } catch (Exception exception) { Log.Error(exception, false); } }
public void State_QueuedStream(API.DriveService.State sender, API.DriveService.Stream stream) { try { if (InvokeRequired) { BeginInvoke(new API.DriveService.State.StreamHandler(State_QueuedStream), new object[] { sender, stream }); return; } stream.OnProgressChanged += Stream_ProgressChanged; var control = new StateControl(stream); control.OnRemove += StateControl_Remove; AddControl(control); } catch (Exception exception) { Log.Error(exception, false); } }
private void Stream_ProgressChanged(API.DriveService.Stream stream) { try { if (InvokeRequired) { BeginInvoke(new API.DriveService.Stream.ProgressChanged(Stream_ProgressChanged), new object[] { stream }); return; } _ProgressChangedMutex.Wait(); try { if (stream == null) { return; } StreamType streamType = stream.Type; bool streamIsFolder = stream.IsFolder; bool streamProcessing = stream.Processing; bool streamProcessed = stream.Processed; bool streamStarting = stream.Starting; bool streamCompleted = stream.Completed; bool streamCancelled = stream.Cancelled; bool streamFailed = stream.Failed; string streamExceptionMessage = stream.ExceptionMessage; int streamPercentCompleted = stream.PercentCompleted; if (streamType == StreamType.Download) { pictureBoxState.Image = global::DriveProxy.Properties.Resources.download; if (streamProcessing) { labelTitle.Text = "Downloading file... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Download file complete"; } else if (streamCancelled) { labelTitle.Text = "Download file cancelled"; } else if (streamFailed) { labelTitle.Text = "Download file failed"; } } else if (streamType == StreamType.Upload) { pictureBoxState.Image = global::DriveProxy.Properties.Resources.upload; if (streamProcessing) { labelTitle.Text = "Uploading file... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Upload file complete"; } else if (streamCancelled) { labelTitle.Text = "Upload file cancelled"; } else if (streamFailed) { labelTitle.Text = "Upload file failed"; } } else if (streamType == StreamType.Insert) { pictureBoxState.Image = global::DriveProxy.Properties.Resources.upload; if (streamIsFolder) { if (streamProcessing) { labelTitle.Text = "Creating folder... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Create folder completed"; } else if (streamCancelled) { labelTitle.Text = "Create folder cancelled"; } else if (streamFailed) { labelTitle.Text = "Create folder failed"; } } else { if (streamProcessing) { labelTitle.Text = "Creating file... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Create file completed"; } else if (streamCancelled) { labelTitle.Text = "Create file cancelled"; } else if (streamFailed) { labelTitle.Text = "Create file failed"; } } } else if (streamType == StreamType.Insert) { pictureBoxState.Image = global::DriveProxy.Properties.Resources.upload; if (streamProcessing) { labelTitle.Text = "Uploading... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Upload completed"; } else if (streamCancelled) { labelTitle.Text = "Upload cancelled"; } else if (streamFailed) { labelTitle.Text = "Upload failed"; } } else if (streamType == StreamType.Trash) { pictureBoxState.Image = global::DriveProxy.Properties.Resources.upload; if (streamIsFolder) { if (streamProcessing) { labelTitle.Text = "Trashing folder... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Trash folder completed"; } else if (streamCancelled) { labelTitle.Text = "Trash folder cancelled"; } else if (streamFailed) { labelTitle.Text = "Trash folder failed"; } } else { if (streamProcessing) { labelTitle.Text = "Trashing file... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Trash file completed"; } else if (streamCancelled) { labelTitle.Text = "Trash file cancelled"; } else if (streamFailed) { labelTitle.Text = "Trash file failed"; } } } else if (streamType == StreamType.Untrash) { pictureBoxState.Image = global::DriveProxy.Properties.Resources.upload; if (streamIsFolder) { if (streamProcessing) { labelTitle.Text = "Restoring folder... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Restore folder completed"; } else if (streamCancelled) { labelTitle.Text = "Restore folder cancelled"; } else if (streamFailed) { labelTitle.Text = "Restore folder failed"; } } else { if (streamProcessing) { labelTitle.Text = "Restoring file... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Restore file completed"; } else if (streamCancelled) { labelTitle.Text = "Restore file cancelled"; } else if (streamFailed) { labelTitle.Text = "Restore file failed"; } } } else if (streamType == StreamType.Move) { pictureBoxState.Image = global::DriveProxy.Properties.Resources.upload; if (streamIsFolder) { if (streamProcessing) { labelTitle.Text = "Moving folder... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Move folder completed"; } else if (streamCancelled) { labelTitle.Text = "Move folder cancelled"; } else if (streamFailed) { labelTitle.Text = "Move folder failed"; } } else { if (streamProcessing) { labelTitle.Text = "Moving file... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Move file completed"; } else if (streamCancelled) { labelTitle.Text = "Move file cancelled"; } else if (streamFailed) { labelTitle.Text = "Move file failed"; } } } else if (streamType == StreamType.Copy) { pictureBoxState.Image = global::DriveProxy.Properties.Resources.upload; if (streamIsFolder) { if (streamProcessing) { labelTitle.Text = "Copying folder... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Copy folder completed"; } else if (streamCancelled) { labelTitle.Text = "Copy folder cancelled"; } else if (streamFailed) { labelTitle.Text = "Copy folder failed"; } } else { if (streamProcessing) { labelTitle.Text = "Copying file... (" + streamPercentCompleted + "%)"; } else if (streamCompleted) { labelTitle.Text = "Copy file completed"; } else if (streamCancelled) { labelTitle.Text = "Copy file cancelled"; } else if (streamFailed) { labelTitle.Text = "Copy file failed"; } } } pictureBoxState.Refresh(); labelTitle.Refresh(); panelTitleBar.Refresh(); panelHeader.Refresh(); Application.DoEvents(); } finally { _ProgressChangedMutex.Release(); } } catch (Exception exception) { Log.Error(exception, false, false); } }
private void Stream_ProgressChanged(API.DriveService.Stream stream) { try { if (InvokeRequired) { BeginInvoke(new API.DriveService.Stream.ProgressChanged(Stream_ProgressChanged), new object[] { stream }); return; } _ProgressChangedMutex.Wait(); try { if (!Enabled) { return; } var panel = Parent as Panel; if (panel == null || stream == null) { return; } StreamType streamType = stream.Type; bool streamIsFolder = stream.IsFolder; bool streamProcessing = stream.Processing; bool streamProcessed = stream.Processed; bool streamStarting = stream.Starting; bool streamCompleted = stream.Completed; bool streamCancelled = stream.Cancelled; bool streamFailed = stream.Failed; string streamExceptionMessage = stream.ExceptionMessage; int streamPercentCompleted = stream.PercentCompleted; if (!_ScrolledIntoView) { _ScrolledIntoView = true; panel.ScrollControlIntoView(this); } if (streamProcessed) { if (progressBar.Value < 100) { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = 100; } } if (streamType == StreamType.Download) { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Downloading File..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Downloaded File"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Download Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Download Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } else if (streamType == StreamType.Insert) { if (streamIsFolder) { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Creating Folder..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Created Folder"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Create Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Create Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } else { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Creating File..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Created File"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Create Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Create Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } } else if (streamType == StreamType.Upload) { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Uploading File..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Uploaded File"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Upload Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Upload Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } else if (streamType == StreamType.Trash) { if (streamIsFolder) { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Trashing Folder..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Trashed Folder"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Trash Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Trash Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } else { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Trashing File..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Trashed File"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Trash Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Trash Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } } else if (streamType == StreamType.Untrash) { if (streamIsFolder) { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Restoring Folder..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Restored Folder"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Restore Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Restore Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } else { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Restoring File..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Restored File"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Restore Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Restore Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } } else if (streamType == StreamType.Move) { if (streamIsFolder) { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Moving Folder..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Moved Folder"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Move Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Move Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } else { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Moving File..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Moved File"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Move Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Move Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } } else if (streamType == StreamType.Copy) { if (streamIsFolder) { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Copying Folder..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Copied Folder"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Copy Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Copy Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } else { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Copying File..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Copied File"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Copy Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Copy Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } } else if (streamType == StreamType.Rename) { if (streamIsFolder) { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Renaming Folder..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Renamed Folder"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Rename Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Rename Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } else { if (streamStarting) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Renaming File..."; } else if (streamCompleted) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Renamed File"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamCancelled) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Rename Cancelled"; labelCancel.Visible = false; labelRemove.Visible = true; } else if (streamFailed) { progressBar.Visible = false; labelStatus.Visible = true; labelStatus.Text = "Rename Failed"; toolTip.SetToolTip(labelStatus, streamExceptionMessage); toolTip.Active = true; labelCancel.Visible = false; labelRemove.Visible = true; } else { labelStatus.Visible = false; progressBar.Visible = true; progressBar.Value = streamPercentCompleted; } } } labelDescription.Refresh(); progressBar.Refresh(); labelStatus.Refresh(); labelCancel.Refresh(); labelRemove.Refresh(); panel3.Refresh(); Application.DoEvents(); } finally { _ProgressChangedMutex.Release(); } } catch (Exception exception) { Log.Error(exception, false, false); } }