Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Framework / System / Windows / Markup / Localizer / BamlLocalizationDictionary.cs / 1 / BamlLocalizationDictionary.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2001 // // File: BamlLocalizationDictionary.cs // // Contents: BamlLocalizationDictionary and BamlLocalizationDictionaryEnumerator // // History: 8/3/2004 Move to System.Windows namespace // 11/30/2004 Garyyang Move to System.Windows.Markup.Localization namespace // Renamed class to BamlLocalizationDictionary // 03/24/2005 Garyyang Move to System.Windows.Markup.Localizer namespace //----------------------------------------------------------------------- using System; using System.IO; using System.Globalization; using System.Runtime.InteropServices; using System.Collections; using System.Collections.Generic; using System.Windows.Markup; using System.Diagnostics; using System.Text; using System.Windows; namespace System.Windows.Markup.Localizer { ////// BamlLocalizationDictionaryEnumerator /// public sealed class BamlLocalizationDictionaryEnumerator : IDictionaryEnumerator { internal BamlLocalizationDictionaryEnumerator(IEnumerator enumerator) { _enumerator = enumerator; } ////// move to the next entry /// public bool MoveNext() { return _enumerator.MoveNext(); } ////// reset /// public void Reset() { _enumerator.Reset(); } ////// gets the DictionaryEntry /// public DictionaryEntry Entry { get{ return (DictionaryEntry) _enumerator.Current; } } ////// gets the key /// public BamlLocalizableResourceKey Key { get{ return (BamlLocalizableResourceKey) Entry.Key; } } ////// gets the value /// public BamlLocalizableResource Value { get{ return (BamlLocalizableResource) Entry.Value; } } ////// return the current entry /// public DictionaryEntry Current { get { return this.Entry; } } //------------------------------------ // Interfaces //------------------------------------ ////// Return the current object /// ///object object IEnumerator.Current { get { return this.Current; } } ////// return the key /// ///key object IDictionaryEnumerator.Key { get { return this.Key; } } ////// Value /// ///value object IDictionaryEnumerator.Value { get { return this.Value; } } //--------------------------------------- // Private //--------------------------------------- private IEnumerator _enumerator; } ////// Enumerator that enumerates all the localizable resources in /// a baml stream /// public sealed class BamlLocalizationDictionary : IDictionary { ////// Constructor that creates an empty baml resource dictionary /// public BamlLocalizationDictionary() { _dictionary = new Dictionary(); } /// /// gets value indicating whether the dictionary has fixed size /// ///true for fixed size, false otherwise. public bool IsFixedSize { get { return false; } } ////// get value indicating whether it is readonly /// ///true for readonly, false otherwise. public bool IsReadOnly { get { return false;} } ////// Return the key to the root element if the root element is localizable, return null otherwise /// ////// Modifications can be added to the proeprties of the root element which will have a global effect /// on the UI. For example, changing CulutreInfo or FlowDirection on the root element (if applicable) /// will have impact to the whole UI. /// public BamlLocalizableResourceKey RootElementKey { get { return _rootElementKey; } } ////// gets the collection of keys /// ///a collection of keys public ICollection Keys { get { return ((IDictionary)_dictionary).Keys; } } ////// gets the collection of values /// ///a collection of values public ICollection Values { get { return ((IDictionary)_dictionary).Values; } } ////// Gets or sets a localizable resource by the key /// /// BamlLocalizableResourceKey key ///BamlLocalizableResource object identified by the key public BamlLocalizableResource this[BamlLocalizableResourceKey key] { get { CheckNonNullParam(key, "key"); return _dictionary[key]; } set { CheckNonNullParam(key, "key"); _dictionary[key] = value; } } ////// Adds a localizable resource with the provided key /// /// the BamlLocalizableResourceKey key /// the BamlLocalizableResource public void Add(BamlLocalizableResourceKey key, BamlLocalizableResource value) { CheckNonNullParam(key, "key"); _dictionary.Add(key, value); } ////// removes all the resources in the dictionary. /// public void Clear() { _dictionary.Clear(); } ////// removes the localizable resource with the specified key /// /// the key public void Remove(BamlLocalizableResourceKey key) { _dictionary.Remove(key); } ////// determines whether the dictionary contains the localizable resource /// with the specified key /// /// ///public bool Contains(BamlLocalizableResourceKey key) { CheckNonNullParam(key, "key"); return _dictionary.ContainsKey(key); } /// /// returns an IDictionaryEnumerator for the dictionary. /// ///the enumerator for the dictionary public BamlLocalizationDictionaryEnumerator GetEnumerator() { return new BamlLocalizationDictionaryEnumerator( ((IDictionary)_dictionary).GetEnumerator() ); } ////// gets the number of localizable resources in the dictionary /// ///number of localizable resources public int Count { get { return _dictionary.Count; } } ////// Copies the dictionary's elements to a one-dimensional /// Array instance at the specified index. /// public void CopyTo(DictionaryEntry[] array, int arrayIndex) { CheckNonNullParam(array, "array"); if (arrayIndex < 0) { throw new ArgumentOutOfRangeException( "arrayIndex", SR.Get(SRID.ParameterCannotBeNegative) ); } if (arrayIndex >= array.Length) { throw new ArgumentException( SR.Get( SRID.Collection_CopyTo_IndexGreaterThanOrEqualToArrayLength, "arrayIndex", "array" ), "arrayIndex" ); } if (Count > (array.Length - arrayIndex)) { throw new ArgumentException( SR.Get( SRID.Collection_CopyTo_NumberOfElementsExceedsArrayLength, "arrayIndex", "array" ) ); } foreach(KeyValuePairpair in _dictionary) { DictionaryEntry entry = new DictionaryEntry(pair.Key, pair.Value); array[arrayIndex++] = entry; } } #region interface ICollection, IEnumerable, IDictionary //------------------------------ // interface functions //------------------------------ bool IDictionary.Contains(object key) { CheckNonNullParam(key, "key"); return ((IDictionary)_dictionary).Contains(key); } void IDictionary.Add(object key, object value) { CheckNonNullParam(key, "key"); ((IDictionary) _dictionary).Add(key, value); } void IDictionary.Remove(object key) { CheckNonNullParam(key, "key"); ((IDictionary) _dictionary).Remove(key); } object IDictionary.this[object key] { get { CheckNonNullParam(key, "key"); return ((IDictionary)_dictionary)[key]; } set { CheckNonNullParam(key, "key"); ((IDictionary)_dictionary)[key] = value; } } IDictionaryEnumerator IDictionary.GetEnumerator() { return this.GetEnumerator(); } void ICollection.CopyTo(Array array, int index) { if (array != null && array.Rank != 1) { throw new ArgumentException( SR.Get( SRID.Collection_CopyTo_ArrayCannotBeMultidimensional ), "array" ); } CopyTo(array as DictionaryEntry[], index); } int ICollection.Count { get { return Count; } } object ICollection.SyncRoot { get { return ((IDictionary)_dictionary).SyncRoot; } } bool ICollection.IsSynchronized { get { return ((IDictionary)_dictionary).IsSynchronized; } } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } #endregion //------------------------------ // internal functions //------------------------------ internal BamlLocalizationDictionary Copy() { BamlLocalizationDictionary newDictionary = new BamlLocalizationDictionary(); foreach (KeyValuePair pair in _dictionary) { BamlLocalizableResource resourceCopy = pair.Value == null ? null : new BamlLocalizableResource(pair.Value); newDictionary.Add(pair.Key, resourceCopy); } newDictionary._rootElementKey = _rootElementKey; // return the new dictionary return newDictionary; } internal void SetRootElementKey(BamlLocalizableResourceKey key) { _rootElementKey = key; } //------------------------------ // private methods //------------------------------ private void CheckNonNullParam(object param, string paramName) { if (param == null) throw new ArgumentNullException(paramName); } //------------------------------ // private member //------------------------------ private IDictionary _dictionary; private BamlLocalizableResourceKey _rootElementKey; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2001 // // File: BamlLocalizationDictionary.cs // // Contents: BamlLocalizationDictionary and BamlLocalizationDictionaryEnumerator // // History: 8/3/2004 Move to System.Windows namespace // 11/30/2004 Garyyang Move to System.Windows.Markup.Localization namespace // Renamed class to BamlLocalizationDictionary // 03/24/2005 Garyyang Move to System.Windows.Markup.Localizer namespace //----------------------------------------------------------------------- using System; using System.IO; using System.Globalization; using System.Runtime.InteropServices; using System.Collections; using System.Collections.Generic; using System.Windows.Markup; using System.Diagnostics; using System.Text; using System.Windows; namespace System.Windows.Markup.Localizer { /// /// BamlLocalizationDictionaryEnumerator /// public sealed class BamlLocalizationDictionaryEnumerator : IDictionaryEnumerator { internal BamlLocalizationDictionaryEnumerator(IEnumerator enumerator) { _enumerator = enumerator; } ////// move to the next entry /// public bool MoveNext() { return _enumerator.MoveNext(); } ////// reset /// public void Reset() { _enumerator.Reset(); } ////// gets the DictionaryEntry /// public DictionaryEntry Entry { get{ return (DictionaryEntry) _enumerator.Current; } } ////// gets the key /// public BamlLocalizableResourceKey Key { get{ return (BamlLocalizableResourceKey) Entry.Key; } } ////// gets the value /// public BamlLocalizableResource Value { get{ return (BamlLocalizableResource) Entry.Value; } } ////// return the current entry /// public DictionaryEntry Current { get { return this.Entry; } } //------------------------------------ // Interfaces //------------------------------------ ////// Return the current object /// ///object object IEnumerator.Current { get { return this.Current; } } ////// return the key /// ///key object IDictionaryEnumerator.Key { get { return this.Key; } } ////// Value /// ///value object IDictionaryEnumerator.Value { get { return this.Value; } } //--------------------------------------- // Private //--------------------------------------- private IEnumerator _enumerator; } ////// Enumerator that enumerates all the localizable resources in /// a baml stream /// public sealed class BamlLocalizationDictionary : IDictionary { ////// Constructor that creates an empty baml resource dictionary /// public BamlLocalizationDictionary() { _dictionary = new Dictionary(); } /// /// gets value indicating whether the dictionary has fixed size /// ///true for fixed size, false otherwise. public bool IsFixedSize { get { return false; } } ////// get value indicating whether it is readonly /// ///true for readonly, false otherwise. public bool IsReadOnly { get { return false;} } ////// Return the key to the root element if the root element is localizable, return null otherwise /// ////// Modifications can be added to the proeprties of the root element which will have a global effect /// on the UI. For example, changing CulutreInfo or FlowDirection on the root element (if applicable) /// will have impact to the whole UI. /// public BamlLocalizableResourceKey RootElementKey { get { return _rootElementKey; } } ////// gets the collection of keys /// ///a collection of keys public ICollection Keys { get { return ((IDictionary)_dictionary).Keys; } } ////// gets the collection of values /// ///a collection of values public ICollection Values { get { return ((IDictionary)_dictionary).Values; } } ////// Gets or sets a localizable resource by the key /// /// BamlLocalizableResourceKey key ///BamlLocalizableResource object identified by the key public BamlLocalizableResource this[BamlLocalizableResourceKey key] { get { CheckNonNullParam(key, "key"); return _dictionary[key]; } set { CheckNonNullParam(key, "key"); _dictionary[key] = value; } } ////// Adds a localizable resource with the provided key /// /// the BamlLocalizableResourceKey key /// the BamlLocalizableResource public void Add(BamlLocalizableResourceKey key, BamlLocalizableResource value) { CheckNonNullParam(key, "key"); _dictionary.Add(key, value); } ////// removes all the resources in the dictionary. /// public void Clear() { _dictionary.Clear(); } ////// removes the localizable resource with the specified key /// /// the key public void Remove(BamlLocalizableResourceKey key) { _dictionary.Remove(key); } ////// determines whether the dictionary contains the localizable resource /// with the specified key /// /// ///public bool Contains(BamlLocalizableResourceKey key) { CheckNonNullParam(key, "key"); return _dictionary.ContainsKey(key); } /// /// returns an IDictionaryEnumerator for the dictionary. /// ///the enumerator for the dictionary public BamlLocalizationDictionaryEnumerator GetEnumerator() { return new BamlLocalizationDictionaryEnumerator( ((IDictionary)_dictionary).GetEnumerator() ); } ////// gets the number of localizable resources in the dictionary /// ///number of localizable resources public int Count { get { return _dictionary.Count; } } ////// Copies the dictionary's elements to a one-dimensional /// Array instance at the specified index. /// public void CopyTo(DictionaryEntry[] array, int arrayIndex) { CheckNonNullParam(array, "array"); if (arrayIndex < 0) { throw new ArgumentOutOfRangeException( "arrayIndex", SR.Get(SRID.ParameterCannotBeNegative) ); } if (arrayIndex >= array.Length) { throw new ArgumentException( SR.Get( SRID.Collection_CopyTo_IndexGreaterThanOrEqualToArrayLength, "arrayIndex", "array" ), "arrayIndex" ); } if (Count > (array.Length - arrayIndex)) { throw new ArgumentException( SR.Get( SRID.Collection_CopyTo_NumberOfElementsExceedsArrayLength, "arrayIndex", "array" ) ); } foreach(KeyValuePairpair in _dictionary) { DictionaryEntry entry = new DictionaryEntry(pair.Key, pair.Value); array[arrayIndex++] = entry; } } #region interface ICollection, IEnumerable, IDictionary //------------------------------ // interface functions //------------------------------ bool IDictionary.Contains(object key) { CheckNonNullParam(key, "key"); return ((IDictionary)_dictionary).Contains(key); } void IDictionary.Add(object key, object value) { CheckNonNullParam(key, "key"); ((IDictionary) _dictionary).Add(key, value); } void IDictionary.Remove(object key) { CheckNonNullParam(key, "key"); ((IDictionary) _dictionary).Remove(key); } object IDictionary.this[object key] { get { CheckNonNullParam(key, "key"); return ((IDictionary)_dictionary)[key]; } set { CheckNonNullParam(key, "key"); ((IDictionary)_dictionary)[key] = value; } } IDictionaryEnumerator IDictionary.GetEnumerator() { return this.GetEnumerator(); } void ICollection.CopyTo(Array array, int index) { if (array != null && array.Rank != 1) { throw new ArgumentException( SR.Get( SRID.Collection_CopyTo_ArrayCannotBeMultidimensional ), "array" ); } CopyTo(array as DictionaryEntry[], index); } int ICollection.Count { get { return Count; } } object ICollection.SyncRoot { get { return ((IDictionary)_dictionary).SyncRoot; } } bool ICollection.IsSynchronized { get { return ((IDictionary)_dictionary).IsSynchronized; } } IEnumerator IEnumerable.GetEnumerator() { return this.GetEnumerator(); } #endregion //------------------------------ // internal functions //------------------------------ internal BamlLocalizationDictionary Copy() { BamlLocalizationDictionary newDictionary = new BamlLocalizationDictionary(); foreach (KeyValuePair pair in _dictionary) { BamlLocalizableResource resourceCopy = pair.Value == null ? null : new BamlLocalizableResource(pair.Value); newDictionary.Add(pair.Key, resourceCopy); } newDictionary._rootElementKey = _rootElementKey; // return the new dictionary return newDictionary; } internal void SetRootElementKey(BamlLocalizableResourceKey key) { _rootElementKey = key; } //------------------------------ // private methods //------------------------------ private void CheckNonNullParam(object param, string paramName) { if (param == null) throw new ArgumentNullException(paramName); } //------------------------------ // private member //------------------------------ private IDictionary _dictionary; private BamlLocalizableResourceKey _rootElementKey; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ResolvedKeyFrameEntry.cs
- _FixedSizeReader.cs
- EventSinkActivityDesigner.cs
- DriveNotFoundException.cs
- KeySplineConverter.cs
- MimeObjectFactory.cs
- DbInsertCommandTree.cs
- ButtonColumn.cs
- GuidTagList.cs
- ThicknessKeyFrameCollection.cs
- SqlBuilder.cs
- TraceSwitch.cs
- BitmapFrameEncode.cs
- Filter.cs
- SoapHeaders.cs
- IfAction.cs
- TdsParserStaticMethods.cs
- FontUnit.cs
- DrawTreeNodeEventArgs.cs
- XmlQueryRuntime.cs
- ClientBuildManager.cs
- PolicyLevel.cs
- InheritanceAttribute.cs
- XmlSerializerVersionAttribute.cs
- EventDescriptor.cs
- ViewStateModeByIdAttribute.cs
- AttachmentCollection.cs
- PassportPrincipal.cs
- EntryPointNotFoundException.cs
- CopyOfAction.cs
- ToolStripRenderer.cs
- BamlWriter.cs
- FilterQueryOptionExpression.cs
- Vector3DKeyFrameCollection.cs
- DictionaryManager.cs
- XmlSchemaSequence.cs
- BitSet.cs
- ResourceFallbackManager.cs
- ToolBar.cs
- Parser.cs
- PolyQuadraticBezierSegment.cs
- DesignTimeVisibleAttribute.cs
- PrintingPermissionAttribute.cs
- XmlSchema.cs
- ContentType.cs
- MediaTimeline.cs
- CannotUnloadAppDomainException.cs
- ParameterRetriever.cs
- HandlerFactoryWrapper.cs
- InheritanceService.cs
- ResXResourceSet.cs
- Pointer.cs
- ListBox.cs
- EffectiveValueEntry.cs
- EventRecordWrittenEventArgs.cs
- SqlInternalConnectionSmi.cs
- AutoGeneratedFieldProperties.cs
- XmlSchemaIdentityConstraint.cs
- XmlDocumentType.cs
- SqlDataSourceSelectingEventArgs.cs
- BuiltInExpr.cs
- ExclusiveNamedPipeTransportManager.cs
- SectionUpdates.cs
- DataGridColumnCollection.cs
- safesecurityhelperavalon.cs
- TreeNodeClickEventArgs.cs
- EventLogPermissionHolder.cs
- NavigationFailedEventArgs.cs
- CancelEventArgs.cs
- BrowserTree.cs
- PropertyChangeTracker.cs
- MediaCommands.cs
- MasterPage.cs
- ComponentGuaranteesAttribute.cs
- ImageEditor.cs
- WsdlInspector.cs
- ServerValidateEventArgs.cs
- _AcceptOverlappedAsyncResult.cs
- StringSource.cs
- TreeNodeCollectionEditor.cs
- PropertyEntry.cs
- ZipIOExtraFieldZip64Element.cs
- SamlSerializer.cs
- VirtualPathData.cs
- RegisteredScript.cs
- ClassImporter.cs
- OpacityConverter.cs
- RequestTimeoutManager.cs
- CellIdBoolean.cs
- JoinQueryOperator.cs
- NavigationWindow.cs
- ThrowHelper.cs
- ForAllOperator.cs
- SecurityUtils.cs
- GridViewColumnCollection.cs
- SizeValueSerializer.cs
- SiteMapHierarchicalDataSourceView.cs
- DataGridViewCellConverter.cs
- XmlToDatasetMap.cs
- WebConfigurationHost.cs