private void updateCell(DataGridViewCell cell, bool sync) { TaskRow taskRow = cell.OwningRow.Tag as TaskRow; System.Diagnostics.Debug.WriteLine(String.Format("Bitches {0}", cell.OwningColumn.HeaderText)); if (taskRow.has_key(cell.OwningColumn.HeaderText)) { Hashtable data = taskRow[cell.OwningColumn.HeaderText]; cell.Value = data["value"]; cell.Style = null; if (sync == false) { cell.Style.ForeColor = System.Drawing.Color.Gray; cell.Style.SelectionForeColor = System.Drawing.Color.Gray; } else if (syncCheckboxes.ContainsKey(cell.OwningColumn.Index) && (syncCheckboxes[cell.OwningColumn.Index].Checked == false)) { cell.Style.ForeColor = System.Drawing.Color.Gray; cell.Style.SelectionForeColor = System.Drawing.Color.Gray; } else if ((bool)data["errored"] == true) { cell.Style.ForeColor = System.Drawing.Color.Red; cell.Style.SelectionForeColor = System.Drawing.Color.Red; cell.Style.BackColor = System.Drawing.Color.Bisque; } else if ((bool)data["different"] == true) { cell.Style.ForeColor = System.Drawing.Color.DarkGreen; cell.Style.SelectionForeColor = System.Drawing.Color.DarkGreen; cell.Style.BackColor = System.Drawing.Color.Honeydew; } } }
private void updateRowStatus(DataGridViewRow row, bool syncChanged = false) { TaskRow taskRow = row.Tag as TaskRow; String oldStatus = row.Cells[StatusColumn.Index].Value as String; String newStatus = taskRow.status; row.Cells[StatusColumn.Index].Value = newStatus; row.Cells[StatusColumn.Index].Style = null; row.Visible = (!filterOutRow(row) && (newStatus != "Skip")); bool sync = (row.Cells[SyncColumn.Index].Value != null) && ((bool)row.Cells[SyncColumn.Index].Value == true); if (sync == false) { row.Cells[StatusColumn.Index].Style.ForeColor = System.Drawing.Color.Gray; row.Cells[StatusColumn.Index].Style.SelectionForeColor = System.Drawing.Color.Gray; } else { switch (newStatus) { case "Error": case "Omit": case "Remove": row.Cells[StatusColumn.Index].Style.ForeColor = System.Drawing.Color.Red; row.Cells[StatusColumn.Index].Style.SelectionForeColor = System.Drawing.Color.Red; break; case "Create": row.Cells[StatusColumn.Index].Style.ForeColor = System.Drawing.Color.Green; row.Cells[StatusColumn.Index].Style.SelectionForeColor = System.Drawing.Color.Green; break; case "Update": row.Cells[StatusColumn.Index].Style.ForeColor = System.Drawing.Color.Blue; row.Cells[StatusColumn.Index].Style.SelectionForeColor = System.Drawing.Color.Blue; break; case "Skip": row.Cells[StatusColumn.Index].Style.ForeColor = System.Drawing.Color.MediumTurquoise; row.Cells[StatusColumn.Index].Style.SelectionForeColor = System.Drawing.Color.MediumTurquoise; break; default: throw new Exception("Unknown row status: " + status); } } // sync // update status bar if (oldStatus != newStatus) { if (oldStatus != null && statusCounts.ContainsKey(oldStatus) && (statusCounts[oldStatus] > 0)) { statusCounts[oldStatus]--; } statusCounts[newStatus]++; } else { if (syncChanged) { int adjustment = (sync) ? 1 : -1; statusCounts[newStatus] += adjustment; statusCounts["Skip"] -= adjustment; } } status.Items[0].Text = String.Format( "{0} tasks. {1} updates. {2} creates. {3} omits. {4} removes. {5} errors. {6} skipped.", statusCounts["Total"], statusCounts["Update"], statusCounts["Create"], statusCounts["Omit"], statusCounts["Remove"], statusCounts["Error"], statusCounts["Skip"] ); }