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);
        }
Exemple #2
0
        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();
 }