Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Annotations / AnnotationMap.cs / 1 / AnnotationMap.cs
//---------------------------------------------------------------------------- //// Copyright(C) Microsoft Corporation. All rights reserved. // // // Description: // AnnotationMap contains the implementation of the map // map between annotation id and attached annotations used by the service // // History: // 11/11/2003 [....]: created // 10/22/2004 [....]: Moved this class to MS.Internal namespace. // // Copyright(C) 2002 by Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Windows.Annotations; namespace MS.Internal.Annotations { ////// The AnnotationMap holds a map between the Id's of annotations and IAttachedAnnotations /// internal class AnnotationMap { ////// Add an IAttachedAnnotation to the annotation map. /// /// the IAttachedAnnotation to be added to the map internal void AddAttachedAnnotation(IAttachedAnnotation attachedAnnotation) { Listlist = null; if (!_annotationIdToAttachedAnnotations.TryGetValue(attachedAnnotation.Annotation.Id, out list)) { list = new List (1); _annotationIdToAttachedAnnotations.Add(attachedAnnotation.Annotation.Id, list); } list.Add(attachedAnnotation); } /// /// Remove an IAttachedAnnotation from the annotation map. /// /// internal void RemoveAttachedAnnotation(IAttachedAnnotation attachedAnnotation) { Listlist = null; if (_annotationIdToAttachedAnnotations.TryGetValue(attachedAnnotation.Annotation.Id, out list)) { list.Remove(attachedAnnotation); if (list.Count == 0) { _annotationIdToAttachedAnnotations.Remove(attachedAnnotation.Annotation.Id); } } } /// /// Returns whether or not there are any annotations currently loaded. This can be /// used to avoid costly walks of the tree. /// internal bool IsEmpty { get { return _annotationIdToAttachedAnnotations.Count == 0; } } ////// Return a list of IAttachedAnnotations for a given annotation id /// /// ///list of IAttachedAnnotations internal ListGetAttachedAnnotations(Guid annotationId) { List list = null; if (!_annotationIdToAttachedAnnotations.TryGetValue(annotationId, out list)) { // return empty list if annotation id not found return _emptyList; } Debug.Assert(list != null, "there should be an attached annotation list for the annotationId: " + annotationId.ToString()); return list; } /// /// Return a list of all IAttachedAnnotations in the map /// ///list of IAttachedAnnotations internal ListGetAllAttachedAnnotations() { List result = new List (_annotationIdToAttachedAnnotations.Keys.Count); foreach (Guid annId in _annotationIdToAttachedAnnotations.Keys) { List list = _annotationIdToAttachedAnnotations[annId]; result.AddRange(list); } if (result.Count == 0) { return _emptyList; } return result; } // hash table to hold annotation id to AttachedAnnotations list private Dictionary > _annotationIdToAttachedAnnotations = new Dictionary >(); // a readonly empty list - cached for performance reasons private static readonly List _emptyList = new List (0); } } // 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
- PathNode.cs
- DSASignatureDeformatter.cs
- AsymmetricAlgorithm.cs
- CodeFieldReferenceExpression.cs
- Array.cs
- WebPart.cs
- DependencyProperty.cs
- OleDbConnection.cs
- MLangCodePageEncoding.cs
- LineMetrics.cs
- AuthenticationException.cs
- DictionaryChange.cs
- _NestedMultipleAsyncResult.cs
- OciEnlistContext.cs
- QueryRewriter.cs
- SqlConnectionStringBuilder.cs
- PathNode.cs
- SqlProviderServices.cs
- DataSpaceManager.cs
- LoadGrammarCompletedEventArgs.cs
- ResourceManager.cs
- ArgumentDesigner.xaml.cs
- LayoutTableCell.cs
- TextEditorCopyPaste.cs
- Control.cs
- DependsOnAttribute.cs
- PixelFormatConverter.cs
- SqlErrorCollection.cs
- __ConsoleStream.cs
- StorageTypeMapping.cs
- StringReader.cs
- FormViewModeEventArgs.cs
- XmlSchemaSet.cs
- ControlBuilder.cs
- IndependentlyAnimatedPropertyMetadata.cs
- _ChunkParse.cs
- ArrayElementGridEntry.cs
- OutputWindow.cs
- DoWorkEventArgs.cs
- PixelFormats.cs
- CAGDesigner.cs
- BuildManager.cs
- VoiceObjectToken.cs
- FormParameter.cs
- HwndStylusInputProvider.cs
- xamlnodes.cs
- ResourceLoader.cs
- WebPartMinimizeVerb.cs
- SkinBuilder.cs
- RewritingSimplifier.cs
- WorkflowFileItem.cs
- ToolbarAUtomationPeer.cs
- FontUnit.cs
- AuthenticationModulesSection.cs
- MostlySingletonList.cs
- SessionState.cs
- CacheModeConverter.cs
- _LoggingObject.cs
- XmlDomTextWriter.cs
- SQLInt16.cs
- GradientSpreadMethodValidation.cs
- Number.cs
- ContextProperty.cs
- NotifyIcon.cs
- ToolStripMenuItem.cs
- DataGridTextBox.cs
- OutOfMemoryException.cs
- BulletDecorator.cs
- XmlSerializer.cs
- ChtmlMobileTextWriter.cs
- IPGlobalProperties.cs
- AllMembershipCondition.cs
- DllNotFoundException.cs
- ExpressionBuilderContext.cs
- TreeNode.cs
- AdapterDictionary.cs
- _Semaphore.cs
- _NegoStream.cs
- WebResourceUtil.cs
- NavigationCommands.cs
- Dispatcher.cs
- NumberSubstitution.cs
- ConfigurationValidatorAttribute.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- ImageSourceValueSerializer.cs
- WebPartVerbCollection.cs
- JsonEncodingStreamWrapper.cs
- BaseAddressPrefixFilterElementCollection.cs
- TypeDescriptionProviderAttribute.cs
- EmbossBitmapEffect.cs
- Array.cs
- ObjectViewFactory.cs
- Socket.cs
- ElapsedEventArgs.cs
- TaskDesigner.cs
- SchemaImporterExtension.cs
- XmlSchemaSimpleTypeUnion.cs
- DrawingAttributes.cs
- TextEffectResolver.cs
- WindowsListView.cs