Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / Annotations / Anchoring / TreeNodeSelectionProcessor.cs / 1 / TreeNodeSelectionProcessor.cs
//------------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description:
// TreeNodeSelectionProcessor is a selection processor
// that can handle Logical Tree Nodes as selections.
// Spec: [....]/sites/ag/Specifications/Anchoring%20Namespace%20Spec.doc
//
// History:
// 8/8/2003: [....]: Created
// 08/18/2003: [....]: Updated to Anchoring Namespace Spec.
//
//-----------------------------------------------------------------------------
using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Windows;
using System.Windows.Annotations;
using System.Windows.Annotations.Storage;
using System.Windows.Documents;
using System.Windows.Media;
using System.Xml;
using MS.Utility;
namespace MS.Internal.Annotations.Anchoring
{
///
/// TreeNodeSelectionProcessor is a selection processor
/// that can handle Logical Tree Nodes as selections.
///
internal sealed class TreeNodeSelectionProcessor : SelectionProcessor
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Creates an instance of TreeNodeSelectionProcessor.
///
public TreeNodeSelectionProcessor()
{
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Merges the two selections into one, if possible.
///
/// selection to merge
/// other selection to merge
/// new selection that contains the data from both
/// selection1 and selection2
/// always returns false, Logical Tree Nodes cannot be merged
///
/// selection1 or selection2 are
/// null
public override bool MergeSelections(Object selection1, Object selection2, out Object newSelection)
{
if (selection1 == null)
throw new ArgumentNullException("selection1");
if (selection2 == null)
throw new ArgumentNullException("selection2");
newSelection = null;
return false;
}
///
/// Gets the tree elements spanned by the selection.
///
/// the selection to examine
/// a list of elements spanned by the selection; never returns
/// null
/// selection is null
/// selection is of wrong type
public override IList GetSelectedNodes(Object selection)
{
return new DependencyObject[] { GetParent(selection) };
}
///
/// Gets the parent element of this selection.
///
/// the selection to examine
/// the parent element of the selection; can be null
/// selection is null
/// selection is of wrong type
public override UIElement GetParent(Object selection)
{
if (selection == null)
throw new ArgumentNullException("selection");
UIElement element = selection as UIElement;
if (element == null)
{
throw new ArgumentException(SR.Get(SRID.WrongSelectionType), "selection");
}
return element;
}
///
/// Gets the anchor point for the selection
///
/// the selection to examine
/// the anchor point of the selection; can be null
/// selection is null
/// selection is of wrong type
public override Point GetAnchorPoint(Object selection)
{
if (selection == null)
throw new ArgumentNullException("selection");
Visual element = selection as Visual;
if (element == null)
throw new ArgumentException(SR.Get(SRID.WrongSelectionType), "selection");
// get the Visual's bounding rectangle's let, top and store them in a point
Rect rect = element.VisualContentBounds;
return new Point(rect.Left, rect.Top);
}
///
/// Creates one or more locator parts representing the portion
/// of 'startNode' spanned by 'selection'.
///
/// the selection that is being processed
/// the node the locator parts should be in the
/// context of
/// one or more locator parts representing the portion of 'startNode' spanned
/// by 'selection'
/// startNode or selection is null
/// startNode is not a DependencyObject or
/// selection is of the wrong type
public override IList GenerateLocatorParts(Object selection, DependencyObject startNode)
{
if (startNode == null)
throw new ArgumentNullException("startNode");
if (selection == null)
throw new ArgumentNullException("selection");
return new List(0);
}
///
/// Creates a selection object spanning the portion of 'startNode'
/// specified by 'locatorPart'.
///
/// locator part specifying data to be spanned
/// the node to be spanned by the created
/// selection
/// always set to AttachmentLevel.Full
/// a selection spanning the portion of 'startNode' specified by
/// 'locatorPart'
/// locatorPart or startNode are
/// null
/// locatorPart is of the incorrect type
public override Object ResolveLocatorPart(ContentLocatorPart locatorPart, DependencyObject startNode, out AttachmentLevel attachmentLevel)
{
if (startNode == null)
throw new ArgumentNullException("startNode");
if (locatorPart == null)
throw new ArgumentNullException("locatorPart");
attachmentLevel = AttachmentLevel.Full;
return startNode;
}
///
/// Returns a list of XmlQualifiedNames representing the
/// the locator parts this processor can resolve/generate.
///
public override XmlQualifiedName[] GetLocatorPartTypes()
{
return (XmlQualifiedName[])LocatorPartTypeNames.Clone();
}
#endregion Public Methods
//------------------------------------------------------
//
// Public Operators
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
//-----------------------------------------------------
//
// Public Events
//
//-----------------------------------------------------
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
// ContentLocatorPart types understood by this processor
private static readonly XmlQualifiedName[] LocatorPartTypeNames = new XmlQualifiedName[0];
#endregion Private Fields
}
}
// 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
- CommonGetThemePartSize.cs
- EnumBuilder.cs
- CodePageEncoding.cs
- SQLBytesStorage.cs
- DependencyPropertyChangedEventArgs.cs
- BufferedReceiveElement.cs
- PhonemeConverter.cs
- VerificationAttribute.cs
- ObjectTypeMapping.cs
- WindowsTooltip.cs
- DataColumnCollection.cs
- Assembly.cs
- GridItem.cs
- TypeHelpers.cs
- SessionPageStatePersister.cs
- RTLAwareMessageBox.cs
- WaitForChangedResult.cs
- TraversalRequest.cs
- FontWeight.cs
- CheckPair.cs
- PrintDialog.cs
- WebBrowserNavigatedEventHandler.cs
- XmlSubtreeReader.cs
- ResponseBodyWriter.cs
- TPLETWProvider.cs
- FrameDimension.cs
- DataSourceSelectArguments.cs
- UInt64Converter.cs
- HttpApplication.cs
- TriggerAction.cs
- DeflateInput.cs
- InsufficientExecutionStackException.cs
- SharedStatics.cs
- XmlCountingReader.cs
- ChtmlTextWriter.cs
- TextTreeRootNode.cs
- SyntaxCheck.cs
- SetterBaseCollection.cs
- AsymmetricAlgorithm.cs
- WorkflowServiceBuildProvider.cs
- EditBehavior.cs
- ExpressionBuilder.cs
- FileDetails.cs
- Base64Encoder.cs
- HostExecutionContextManager.cs
- IPipelineRuntime.cs
- DataTableCollection.cs
- COM2FontConverter.cs
- DispatcherTimer.cs
- DesignBindingPicker.cs
- Formatter.cs
- HttpCapabilitiesBase.cs
- SoapCodeExporter.cs
- ThousandthOfEmRealDoubles.cs
- DynamicObjectAccessor.cs
- CoreChannel.cs
- PropertyPushdownHelper.cs
- RequestCachingSection.cs
- XmlDigitalSignatureProcessor.cs
- RelationshipEndMember.cs
- SafeArrayTypeMismatchException.cs
- NotifyIcon.cs
- CatalogPart.cs
- DesignerActionTextItem.cs
- InputReportEventArgs.cs
- WorkflowDataContext.cs
- ClientRuntimeConfig.cs
- MinimizableAttributeTypeConverter.cs
- CompositeActivityDesigner.cs
- RenderDataDrawingContext.cs
- SoapReflectionImporter.cs
- ReflectionPermission.cs
- DateTimePicker.cs
- DBDataPermissionAttribute.cs
- cookiecollection.cs
- OutputCacheSection.cs
- InvalidPrinterException.cs
- WebContentFormatHelper.cs
- XPathBinder.cs
- GiveFeedbackEvent.cs
- BitmapSource.cs
- messageonlyhwndwrapper.cs
- PeerCollaborationPermission.cs
- VisualProxy.cs
- ToolStripItemImageRenderEventArgs.cs
- XmlSchemaValidationException.cs
- TcpClientSocketManager.cs
- MemberAssignment.cs
- EndPoint.cs
- HTMLTextWriter.cs
- XmlSchemaSimpleTypeUnion.cs
- ADMembershipUser.cs
- CopyOfAction.cs
- ObjectAnimationUsingKeyFrames.cs
- BaseResourcesBuildProvider.cs
- AutomationFocusChangedEventArgs.cs
- PackagePart.cs
- controlskin.cs
- CodeTypeParameter.cs
- Query.cs