/// <summary> /// Initializes a new instance of the <see cref="ResourceTableEntry" /> class. /// </summary> /// <param name="container">The owner.</param> /// <param name="key">The resource key.</param> /// <param name="index">The original index of the resource in the file.</param> /// <param name="languages">The localized values.</param> internal ResourceTableEntry([NotNull] ResourceEntity container, [NotNull] string key, double index, [NotNull] IDictionary <CultureKey, ResourceLanguage> languages) { Container = container; _storedKey = key; Key.SetBackingField(key); Index.SetBackingField(index); _languages = languages; Values = new ResourceTableValues <string>(_languages, lang => lang.GetValue(Key), (lang, value) => lang.SetValue(Key, value)); Values.ValueChanged += Values_ValueChanged; Comments = new ResourceTableValues <string>(_languages, lang => lang.GetComment(Key), (lang, value) => lang.SetComment(Key, value)); Comments.ValueChanged += Comments_ValueChanged; FileExists = new ResourceTableValues <bool>(_languages, lang => true, (lang, value) => false); SnapshotValues = new ResourceTableValues <string>(_languages, lang => Snapshot?.GetValueOrDefault(lang.CultureKey)?.Text, (lang, value) => false); SnapshotComments = new ResourceTableValues <string>(_languages, lang => Snapshot?.GetValueOrDefault(lang.CultureKey)?.Comment, (lang, value) => false); ValueAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetValueAnnotations, (lang, value) => false); CommentAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetCommentAnnotations, (lang, value) => false); IsItemInvariant = new ResourceTableValues <bool>(_languages, lang => GetIsInvariant(lang.CultureKey), (lang, value) => SetIsInvariant(lang.CultureKey, value)); }
/// <summary> /// Initializes a new instance of the <see cref="ResourceTableEntry" /> class. /// </summary> /// <param name="container">The owner.</param> /// <param name="key">The resource key.</param> /// <param name="index">The original index of the resource in the file.</param> /// <param name="languages">The localized values.</param> internal ResourceTableEntry(ResourceEntity container, string key, double index, IDictionary <CultureKey, ResourceLanguage> languages) { Contract.Requires(container != null); Contract.Requires(!string.IsNullOrEmpty(key)); Contract.Requires(languages != null); Contract.Requires(languages.Any()); _container = container; _key = key; _index = index; _languages = languages; _values = new ResourceTableValues <string>(_languages, lang => lang.GetValue(_key), (lang, value) => lang.SetValue(_key, value)); _values.ValueChanged += Values_ValueChanged; _comments = new ResourceTableValues <string>(_languages, lang => lang.GetComment(_key), (lang, value) => lang.SetComment(_key, value)); _comments.ValueChanged += Comments_ValueChanged; _fileExists = new ResourceTableValues <bool>(_languages, lang => true, (lang, value) => false); _valueAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetValueAnnotations, (lang, value) => false); _commentAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetCommentAnnotations, (lang, value) => false); Contract.Assume(languages.Any()); _neutralLanguage = languages.First().Value; Contract.Assume(_neutralLanguage != null); }
/// <summary> /// Initializes a new instance of the <see cref="ResourceTableEntry" /> class. /// </summary> /// <param name="container">The owner.</param> /// <param name="key">The resource key.</param> /// <param name="index">The original index of the resource in the file.</param> /// <param name="languages">The localized values.</param> internal ResourceTableEntry([NotNull] ResourceEntity container, [NotNull] string key, double index, [NotNull] IDictionary <CultureKey, ResourceLanguage> languages) { Contract.Requires(container != null); Contract.Requires(!string.IsNullOrEmpty(key)); Contract.Requires(languages != null); Contract.Requires(languages.Any()); _container = container; _key = key; _index = index; _languages = languages; _deferredValuesChangedThrottle = new DispatcherThrottle(() => OnPropertyChanged(nameof(Values))); _deferredCommentChangedThrottle = new DispatcherThrottle(() => OnPropertyChanged(nameof(Comment))); _values = new ResourceTableValues <string>(_languages, lang => lang.GetValue(_key), (lang, value) => lang.SetValue(_key, value)); _values.ValueChanged += Values_ValueChanged; _comments = new ResourceTableValues <string>(_languages, lang => lang.GetComment(_key), (lang, value) => lang.SetComment(_key, value)); _comments.ValueChanged += Comments_ValueChanged; _fileExists = new ResourceTableValues <bool>(_languages, lang => true, (lang, value) => false); _snapshotValues = new ResourceTableValues <string>(_languages, lang => _snapshot?.GetValueOrDefault(lang.CultureKey)?.Text, (lang, value) => false); _snapshotComments = new ResourceTableValues <string>(_languages, lang => _snapshot?.GetValueOrDefault(lang.CultureKey)?.Comment, (lang, value) => false); _valueAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetValueAnnotations, (lang, value) => false); _commentAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetCommentAnnotations, (lang, value) => false); Contract.Assume(languages.Any()); _neutralLanguage = languages.First().Value; Contract.Assume(_neutralLanguage != null); }
private void ResetTableValues() { _values.ValueChanged -= Values_ValueChanged; _values = new ResourceTableValues <string>(_languages, lang => lang.GetValue(_key), (lang, value) => lang.SetValue(_key, value)); _values.ValueChanged += Values_ValueChanged; _comments.ValueChanged -= Comments_ValueChanged; _comments = new ResourceTableValues <string>(_languages, lang => lang.GetComment(_key), (lang, value) => lang.SetComment(_key, value)); _comments.ValueChanged += Comments_ValueChanged; _fileExists = new ResourceTableValues <bool>(_languages, lang => true, (lang, value) => false); _valueAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetValueAnnotations, (lang, value) => false); _commentAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetCommentAnnotations, (lang, value) => false); }
private void ResetTableValues() { Values.ValueChanged -= Values_ValueChanged; Values = new ResourceTableValues <string>(_languages, lang => lang.GetValue(Key), (lang, value) => lang.SetValue(Key, value)); Values.ValueChanged += Values_ValueChanged; Comments.ValueChanged -= Comments_ValueChanged; Comments = new ResourceTableValues <string>(_languages, lang => lang.GetComment(Key), (lang, value) => lang.SetComment(Key, value)); Comments.ValueChanged += Comments_ValueChanged; FileExists = new ResourceTableValues <bool>(_languages, lang => true, (lang, value) => false); SnapshotValues = new ResourceTableValues <string>(_languages, lang => Snapshot?.GetValueOrDefault(lang.CultureKey)?.Text, (lang, value) => false); SnapshotComments = new ResourceTableValues <string>(_languages, lang => Snapshot?.GetValueOrDefault(lang.CultureKey)?.Comment, (lang, value) => false); ValueAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetValueAnnotations, (lang, value) => false); CommentAnnotations = new ResourceTableValues <ICollection <string> >(_languages, GetCommentAnnotations, (lang, value) => false); IsItemInvariant = new ResourceTableValues <bool>(_languages, lang => GetIsInvariant(lang.CultureKey), (lang, value) => SetIsInvariant(lang.CultureKey, value)); }