private void taskManager_TaskRemoved(object sender, AsyncTaskEventArgs e) { for (var i = 0; i < taskListView.Items.Count; i++) { if (taskListView.Items[i].Tag == e.Task) { taskListView.Items.RemoveAt(i); break; } } }
private void taskManager_TaskAdded(object sender, AsyncTaskEventArgs e) { if (e.Task is DeleteEmptyFolderTask || e.Task is EmptyTask) { return; } if (!displayingTaskListStates.Contains(e.Task.State)) { return; } Invoke(new MethodInvoker(() => AddTask(e.Task))); }
private void taskManager_TaskProgress(object sender, AsyncTaskEventArgs <AsyncTaskProgressEventArgs> e) { try { var items = taskListView.Items.Cast <ListViewItem>(); Invoke(new MethodInvoker(() => { var item = items.FirstOrDefault(x => x.Tag == e.Task); if (item == null) { return; } item.SubItems["percent"].Text = e.Args.PercentDone.ToString(); })); } catch (Exception ex) { OnError(ex); } }
private void taskManager_TaskStateChanged(object sender, AsyncTaskEventArgs e) { Invoke(new MethodInvoker(() => { if (e.Task.State == AsyncTaskState.Completed) { var attrs = e.Task.GetType().GetCustomAttributes(typeof(AccountFileStateChangeAttribute), true); if (attrs.Length != 0) { var attr = (AccountFileStateChangeAttribute)attrs[0]; var fileProp = e.Task.GetType().GetProperty(attr.FilePropertyName); var file = (AccountFile)fileProp.GetValue(e.Task); var parentFileProp = attr.ParentFilePropertyName == null ? null : e.Task.GetType().GetProperty(attr.ParentFilePropertyName); var parentFile = parentFileProp == null ? null : (AccountFile)parentFileProp.GetValue(e.Task); if (file.IsFile) { if (attr.NewState == AccountFileStates.New) { fileListView.AddFile(file, accounts.GetName(file.Account)); } else { foreach (ListViewItem x in fileListView.Items) { var info = (NodeInfo)x.Tag; if (info.File == file) { fileListView.UpdateFileListItem(attr.NewState, x); if (driveStrip1.File == file) { driveStrip1.RefreshData(); } break; } } } } else // IsFolder { if (attr.NewState == AccountFileStates.New) { foreach (var x in Oblqo.Controls.ControlUtil.GetAllTreeViewNodes(treeView1)) { var info = (NodeInfo)x.Tag; if (info.File == parentFile) { AddNode(file, x, info.AccountName); break; } } } else { foreach (var x in Oblqo.Controls.ControlUtil.GetAllTreeViewNodes(treeView1)) { var info = (NodeInfo)x.Tag; if (info.File == file) { Oblqo.Controls.ControlUtil.UpdateTeeViewNode(attr.NewState, x); } } } } } } switch (e.Task.State) { case AsyncTaskState.Completed: if (e.Task is CreateFolderTask) { var task = (CreateFolderTask)e.Task; var parentNode = task.Tag as TreeNode; if (parentNode != null) { var viewNode = parentNode.Nodes.Add("", task.FolderName, FolderImageKey); viewNode.SelectedImageKey = FolderImageKey; viewNode.Tag = new NodeInfo(task.CreatedFolder, task.AccountName); } } else if (e.Task is UploadFolderTask) { var task = (UploadFolderTask)e.Task; var parentNode = task.Tag as TreeNode; if (parentNode != null) { var viewNode = parentNode.Nodes.Add("", task.FolderName, FolderImageKey); viewNode.SelectedImageKey = FolderImageKey; viewNode.Tag = new NodeInfo(task.CreatedFolder, task.AccountName); } } else if (e.Task is UploadFileTask) { var task = (UploadFileTask)e.Task; var parentNode = task.Tag as TreeNode; var selectedNode = treeView1.SelectedNode; if (parentNode != null && selectedNode == parentNode) { UpdateFileList(); } } else if (e.Task is DeleteFileTask) { var task = (DeleteFileTask)e.Task; var listItem = task.Tag as ListViewItem; listItem?.Remove(); } else if (e.Task is DeleteFolderTask) { var task = (DeleteFolderTask)e.Task; var node = task.Tag as TreeNode; node?.Remove(); } break; } })); }
private void taskManager_TaskAdded(object sender, AsyncTaskEventArgs e) { if (e.Task is DeleteEmptyFolderTask || e.Task is EmptyTask) { return; } if (!displayingTaskListStates.Contains(e.Task.State)) { return; } Invoke(new MethodInvoker(() => AddTask(e.Task))); }
private void taskManager_TaskRemoved(object sender, AsyncTaskEventArgs e) { for (var i = 0; i < taskListView.Items.Count; i++) { if (taskListView.Items[i].Tag == e.Task) { taskListView.Items.RemoveAt(i); break; } } }
private void taskManager_TaskProgress(object sender, AsyncTaskEventArgs<AsyncTaskProgressEventArgs> e) { try { var items = taskListView.Items.Cast<ListViewItem>(); Invoke(new MethodInvoker(() => { var item = items.FirstOrDefault(x => x.Tag == e.Task); if (item == null) return; item.SubItems["percent"].Text = e.Args.PercentDone.ToString(); })); } catch (Exception ex) { OnError(ex); } }
private void taskManager_TaskStateChanged(object sender, AsyncTaskEventArgs e) { var items = taskListView.Items.Cast<ListViewItem>(); Invoke(new MethodInvoker(() => { var item = items.FirstOrDefault(x => x.Tag == e.Task); if (displayingTaskListStates.Contains(e.Task.State)) { if (item == null) { item = AddTask(e.Task); } } else { if (item != null) { item.Remove(); item = null; } } if (e.Task.State == AsyncTaskState.Completed) { var attrs = e.Task.GetType().GetCustomAttributes(typeof(AccountFileStateChangeAttribute), true); if (attrs.Length != 0) { var attr = (AccountFileStateChangeAttribute)attrs[0]; var fileProp = e.Task.GetType().GetProperty(attr.FilePropertyName); var file = (AccountFile)fileProp.GetValue(e.Task); var parentFileProp = attr.ParentFilePropertyName == null ? null : e.Task.GetType().GetProperty(attr.ParentFilePropertyName); var parentFile = parentFileProp == null ? null : (AccountFile)parentFileProp.GetValue(e.Task); } } if (item == null) { return; } switch (e.Task.State) { case AsyncTaskState.Cancelled: item.ImageKey = "cancel"; break; case AsyncTaskState.Completed: item.ImageKey = "ok"; break; case AsyncTaskState.Error: item.ImageKey = "error_red"; break; case AsyncTaskState.Running: item.ImageKey = "run"; break; case AsyncTaskState.Waiting: item.ImageKey = "queued"; break; } switch (e.Task.State) { case AsyncTaskState.Cancelled: case AsyncTaskState.Error: item.SubItems["percent"].Text = "0"; break; case AsyncTaskState.Completed: item.SubItems["percent"].Text = "100"; break; } })); }
private void taskManager_TaskStateChanged(object sender, AsyncTaskEventArgs e) { var items = taskListView.Items.Cast <ListViewItem>(); Invoke(new MethodInvoker(() => { var item = items.FirstOrDefault(x => x.Tag == e.Task); if (displayingTaskListStates.Contains(e.Task.State)) { if (item == null) { item = AddTask(e.Task); } } else { if (item != null) { item.Remove(); item = null; } } if (e.Task.State == AsyncTaskState.Completed) { var attrs = e.Task.GetType().GetCustomAttributes(typeof(AccountFileStateChangeAttribute), true); if (attrs.Length != 0) { var attr = (AccountFileStateChangeAttribute)attrs[0]; var fileProp = e.Task.GetType().GetProperty(attr.FilePropertyName); var file = (AccountFile)fileProp.GetValue(e.Task); var parentFileProp = attr.ParentFilePropertyName == null ? null : e.Task.GetType().GetProperty(attr.ParentFilePropertyName); var parentFile = parentFileProp == null ? null : (AccountFile)parentFileProp.GetValue(e.Task); } } if (item == null) { return; } switch (e.Task.State) { case AsyncTaskState.Cancelled: item.ImageKey = "cancel"; break; case AsyncTaskState.Completed: item.ImageKey = "ok"; break; case AsyncTaskState.Error: item.ImageKey = "error_red"; break; case AsyncTaskState.Running: item.ImageKey = "run"; break; case AsyncTaskState.Waiting: item.ImageKey = "queued"; break; } switch (e.Task.State) { case AsyncTaskState.Cancelled: case AsyncTaskState.Error: item.SubItems["percent"].Text = "0"; break; case AsyncTaskState.Completed: item.SubItems["percent"].Text = "100"; break; } })); }