public new void Add(LocalizationField localizationField) { bool isEmptyTranslation = localizationField.TranslationString == ""; LocalizationFieldStatus localizationFieldStatus = isEmptyTranslation ? LocalizationFieldStatus.NoTranslation : LocalizationFieldStatus.New; foreach (LocalizationField inField in this) //TODO: not very pretty code, need refactor { if (inField.Key == localizationField.Key) { if (inField.TranslationString == localizationField.TranslationString) { localizationFieldStatus = LocalizationFieldStatus.Idle; } else { localizationFieldStatus = LocalizationFieldStatus.Changed; } if (isEmptyTranslation) { localizationFieldStatus = LocalizationFieldStatus.NoTranslation; } inField.TranslationString = localizationField.TranslationString; LocalizationFieldsStatusMap[inField.Key] = localizationFieldStatus; return; } } LocalizationFieldsStatusMap.Add(localizationField.Key, localizationFieldStatus); base.Add(localizationField); }
private void LocalizationGridAddingNewItem(object sender, DataGridRowEventArgs e) { LocalizationField field = e.Row.Item as LocalizationField; if (field != null) { LocalizationFieldStatus status = LocalizationData.LocalizationFields.GetFieldStatusByKey(field.Key); Color color = ColorMap[status]; e.Row.Background = new SolidColorBrush(color); } }
public void ShrinkFieldsByStatus(LocalizationFieldStatus fieldStatus) { List <LocalizationField> localizationFields = this.ToList(); foreach (LocalizationField field in localizationFields) { if (LocalizationFieldsStatusMap[field.Key] != fieldStatus) { this.Remove(field); } } }
public void ShrinkLocalization(LocalizationFieldStatus fieldStatus) { LocalizationFields.ShrinkFieldsByStatus(fieldStatus); OnLocalizationUpdated(); }