/// <summary> /// 全タスク一覧の更新時イベント /// </summary> /// <param name="sender">イベント送信オブジェクト</param> /// <param name="e">イベント引数</param> private void DgvAllTasksOnUpdateEvent(object sender, TaskIchiranEventArgs e) { if (this.isUpdatingTaskIchiran) { return; } this.isUpdatingTaskIchiran = true; var taskList = ResourceManager.Instance.GetAllTaskItems(); var filtered = Utils.FilterRecentLimitTask(taskList); this.DgvRecentTasks.RefleshTaskItems(filtered, null); this.TxtFilter_OnTextChanged(null, null); this.RefleshTaskGroupIchiran(); this.isUpdatingTaskIchiran = false; }
/// <summary> /// 直近のタスク一覧更新時イベント /// </summary> /// <param name="sender">イベント送信オブジェクト</param> /// <param name="e">イベント引数</param> private void DgvRecentTasksOnUpdateEvent(object sender, TaskIchiranEventArgs e) { if (this.isUpdatingTaskIchiran) { return; } this.isUpdatingTaskIchiran = true; if (this.DgvAllTasks.ShowingGroup != null) { this.DgvAllTasks.RefleshTaskItems(this.DgvAllTasks.ShowingGroup.ChildTaskItems.ToList(), this.DgvAllTasks.ShowingGroup); } else { this.ShowAllTaskListInDgvAllTasks(); } this.TxtFilter_OnTextChanged(null, null); this.RefleshTaskGroupIchiran(); this.isUpdatingTaskIchiran = false; }
/// <summary> /// セル上のボタン押下時イベント /// </summary> /// <param name="sender">sender</param> /// <param name="e">e</param> private async void OnCellContentClick(object sender, DataGridViewCellEventArgs e) { var rowIndex = e.RowIndex; var columnIndex = e.ColumnIndex; DataGridColumnInfo info; if (this.columnInfoMap.TryGetValue(columnIndex, out info)) { if (info != null) { if (rowIndex < 0 || rowIndex >= this.RowCount) { return; } if (columnIndex < 0 || columnIndex >= this.ColumnCount) { return; } var cell = this.Rows[rowIndex].Cells[columnIndex]; if (cell.Value == null) { return; } var isButton = info.ColumnType == DataGridColumnType.Button; if (!isButton) { return; } var row = this.Rows[rowIndex]; var contentName = cell.Value.ToString(); var isAdd = contentName == "追加"; var isEdit = contentName == "編集"; var isDelete = contentName == "削除"; var isCopy = contentName == "複製"; var isComplete = contentName == "完了"; var isTorikeshi = contentName == "取消"; var curItem = this.GetTaskItemInRow(row); var ret = false; // 完了済みタスクかどうか var isCompleted = curItem != null ? curItem.IsComeplate : false; if (isCompleted) { // 完了済みの場合は取り消し,削除のみ許可 if (isTorikeshi) { var item = this.GetTaskItemInRow(row); if (item != null) { item.IsComeplate = false; ret = true; } } else if (isDelete) { ret = this.ExecuteDelete(row); } } else { // 未完了のタスク if (isAdd) { // 追加 ret = await this.ExecuteAdd(); } else if (isEdit) { // 編集 if (curItem != null) { ret = await this.ExecuteEdit(curItem); } } else if (isDelete) { // 削除 ret = this.ExecuteDelete(row); } else if (isCopy) { // 複製 if (curItem != null) { ret = this.ExecuteCopy(curItem); } } else if (isComplete) { // 完了 if (curItem != null) { curItem.IsComeplate = true; ret = true; } } } this.UpdateCellStatus(); if (ret) { if (this.UpdateEvent != null) { var args = new TaskIchiranEventArgs(); args.GroupItem = this.ShowingGroup; args.TaskItem = new List <TaskItem>(); this.UpdateEvent(this, args); } } } } }