/// <summary> /// Copies all values from source to target resource set /// </summary> private static void CopyResourceSetContent(ResourceSet source, ResourceSet target, BaseValuesFilter filter) { foreach (var sourceResourceItem in source.Values.Where(p => !p.Locked)) { if (!target.ContainsKey(sourceResourceItem.Name)) { var targetResourceItem = new ResourceItem(); targetResourceItem.Name = sourceResourceItem.Name; targetResourceItem.Value = sourceResourceItem.Value; target.Add(sourceResourceItem.Name, targetResourceItem); } else { if (target[sourceResourceItem.Name].ValueEmpty || filter == BaseValuesFilter.AllUnlocked) { target[sourceResourceItem.Name].Value = sourceResourceItem.Value; } } } }
private static void RowSetStatus(DataGridViewRow row, ResourceItem localResourceItem) { ResourceItem baseResourceItem = (ResourceItem)row.Tag; // set color (mark translated with gray color) if (localResourceItem != null && !localResourceItem.ValueEmpty) { row.Cells[ColumnNames.Key].Style.ForeColor = Color.DarkGray; } else { row.Cells[ColumnNames.Key].Style.ForeColor = SystemColors.ControlText; } row.Cells[ColumnNames.BaseValue].Style.ForeColor = row.Cells[ColumnNames.Key].Style.ForeColor; row.Cells[ColumnNames.BaseComment].Style.ForeColor = row.Cells[ColumnNames.Key].Style.ForeColor; row.Cells[ColumnNames.LocalValue].Style.BackColor = Color.Empty; // reset to empty - used when marking for reviewing row.Cells[ColumnNames.LocalComment].Style.BackColor = Color.Empty; // reset to empty - used when marking for reviewing // set icon if (baseResourceItem is ResourceStringItem) { if (baseResourceItem.Locked) { row.Cells[ColumnNames.Icon].Value = My.Resources.Local.resString_locked; } else { if (localResourceItem != null && localResourceItem.ReviewPending) { row.Cells[ColumnNames.Icon].Value = My.Resources.Local.resString_review; row.Cells[ColumnNames.LocalValue].Style.BackColor = Color.Yellow; row.Cells[ColumnNames.LocalComment].Style.BackColor = Color.Yellow; } else if (localResourceItem != null && !localResourceItem.ValueEmpty) { row.Cells[ColumnNames.Icon].Value = My.Resources.Local.resString_translated; } else { row.Cells[ColumnNames.Icon].Value = My.Resources.Local.resString; } } } else { row.Cells[ColumnNames.Icon].Value = null; } }
/// <summary> /// Updates the given grid row using the corresponding resource item of the given resource set /// </summary> private void UpdateResourceItemFromGridRow(DataGridViewRow row) { ResourceSet resourceSet = this.Context.CurrentLocalResourceSet; string rowKey = row.Cells[ColumnNames.Key].Value.ToString(); ResourceItem localResourceItem; // add resource item or get existing bool isNewItem; if (!resourceSet.ContainsKey(rowKey)) { localResourceItem = new ResourceItem(); localResourceItem.Name = rowKey; isNewItem = true; } else { localResourceItem = resourceSet[rowKey]; isNewItem = false; } // save value of row localResourceItem.Value = row.Cells[ColumnNames.LocalValue].Value != null ? row.Cells[ColumnNames.LocalValue].Value.ToString() : null; // save comment of row localResourceItem.Comment = row.Cells[ColumnNames.LocalComment].Value != null ? row.Cells[ColumnNames.LocalComment].Value.ToString() : null; if (isNewItem) { resourceSet.Add(rowKey, localResourceItem); } if (resourceSet.Status == ResourceSetStatus.Unaffected) { resourceSet.Status = ResourceSetStatus.Updated; } this.RefreshButtonState(); }