Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Model / ModelServiceImpl.cs / 1305376 / ModelServiceImpl.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Presentation.Model { using System.Collections.Generic; using System.Diagnostics; using System.Activities.Presentation.Services; using System.Runtime; // This is the implementaion of the ModelService, this is published by the ModelTreeManager // on the editingContext. This is just a facade to the modelTreemanager methods. class ModelServiceImpl : ModelService { ModelTreeManager modelTreeManager; public ModelServiceImpl(ModelTreeManager modelTreeManager) { if (modelTreeManager == null) { throw FxTrace.Exception.AsError( new ArgumentNullException("modelTreeManager")); } this.modelTreeManager = modelTreeManager; } public override event EventHandlerModelChanged; public override ModelItem Root { get { return modelTreeManager.Root; } } public override IEnumerable Find(ModelItem startingItem, Predicate match) { return modelTreeManager.Find(startingItem, match, false); } public override IEnumerable Find(ModelItem startingItem, Type type) { if (startingItem == null) { throw FxTrace.Exception.AsError( new ArgumentNullException("startingItem")); } if (type == null) { throw FxTrace.Exception.AsError( new ArgumentNullException("type")); } Fx.Assert(!type.IsValueType, "hmm why would some one search for modelitems for value types?"); return modelTreeManager.Find(startingItem, delegate(Type modelItemType) { return type.IsAssignableFrom(modelItemType); }, false); } public override ModelItem FromName(ModelItem scope, string name, StringComparison comparison) { // The workflow component model does not implement a unique named activity object right now // so we cannot support this feature. throw FxTrace.Exception.AsError( new NotSupportedException()); } internal void OnModelItemAdded(ModelItem modelItem) { Fx.Assert(modelItem != null, "modelItem should not be null"); if (ModelChanged != null) { Fx.Assert(modelItem != null, "trying to add empty model item"); List modelItemsAdded = new List (1); modelItemsAdded.Add(modelItem); ModelChanged.Invoke(this, new ModelChangedEventArgsImpl(modelItemsAdded, null, null)); modelTreeManager.SyncModelAndText(); } } internal void OnModelItemRemoved(ModelItem modelItem) { Fx.Assert(modelItem != null, "modelItem should not be null"); if (ModelChanged != null) { List modelItemsRemoved = new List (1); modelItemsRemoved.Add(modelItem); ModelChanged.Invoke(this, new ModelChangedEventArgsImpl(null, modelItemsRemoved, null)); modelTreeManager.SyncModelAndText(); } } internal void OnModelItemsRemoved(IEnumerable modelItems) { Fx.Assert(modelItems != null, "modelItem should not be null"); if (ModelChanged != null) { List modelItemsRemoved = new List (); modelItemsRemoved.AddRange(modelItems); ModelChanged.Invoke(this, new ModelChangedEventArgsImpl(null, modelItemsRemoved, null)); modelTreeManager.SyncModelAndText(); } } internal void OnModelPropertyChanged(ModelProperty property) { Fx.Assert(property != null,"property cannot be null"); if (ModelChanged != null) { List propertiesChanged = new List (1); propertiesChanged.Add(property); ModelChanged.Invoke(this, new ModelChangedEventArgsImpl(null, null, propertiesChanged)); modelTreeManager.SyncModelAndText(); } } protected override ModelItem CreateItem(object instance) { return modelTreeManager.CreateModelItem(null, instance); } protected override ModelItem CreateItem(Type itemType, CreateOptions options, params object[] arguments) { Object instance = Activator.CreateInstance(itemType, arguments); return modelTreeManager.CreateModelItem(null, instance); } protected override ModelItem CreateStaticMemberItem(Type type, string memberName) { throw FxTrace.Exception.AsError( new NotSupportedException()); } internal ModelItem WrapAsModelItem(object instance) { return CreateItem(instance); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SafeJobHandle.cs
- XmlAttribute.cs
- Misc.cs
- AssociatedControlConverter.cs
- VectorAnimationUsingKeyFrames.cs
- MediaElement.cs
- ProfessionalColorTable.cs
- Authorization.cs
- ErrorFormatter.cs
- XsltLibrary.cs
- SafeViewOfFileHandle.cs
- StorageRoot.cs
- DecoderFallbackWithFailureFlag.cs
- DbgCompiler.cs
- SiteMapNode.cs
- LabelLiteral.cs
- WebWorkflowRole.cs
- ProtectedConfiguration.cs
- DictationGrammar.cs
- SchemaMapping.cs
- InstanceLockQueryResult.cs
- TextSimpleMarkerProperties.cs
- UpdateProgress.cs
- BoundField.cs
- Matrix.cs
- DesignerLoader.cs
- XPathSingletonIterator.cs
- DataBindingCollectionEditor.cs
- DBCommandBuilder.cs
- SiteOfOriginContainer.cs
- ISAPIRuntime.cs
- UntypedNullExpression.cs
- DocumentStatusResources.cs
- ParentUndoUnit.cs
- ContractMapping.cs
- XNodeValidator.cs
- Vector3DIndependentAnimationStorage.cs
- WebControlParameterProxy.cs
- FileLoadException.cs
- DataGridItemEventArgs.cs
- CookielessHelper.cs
- TogglePattern.cs
- RegistryKey.cs
- ColumnProvider.cs
- counter.cs
- WindowsListViewGroupHelper.cs
- ActiveXSerializer.cs
- HybridWebProxyFinder.cs
- Image.cs
- SafeProcessHandle.cs
- InlinedAggregationOperatorEnumerator.cs
- MapPathBasedVirtualPathProvider.cs
- XamlVector3DCollectionSerializer.cs
- SqlDataSource.cs
- NativeMethodsOther.cs
- IISMapPath.cs
- ConditionCollection.cs
- Intellisense.cs
- WorkflowViewService.cs
- WindowsSlider.cs
- NativeObjectSecurity.cs
- Point.cs
- DBPropSet.cs
- SpotLight.cs
- GiveFeedbackEventArgs.cs
- BitmapSizeOptions.cs
- OracleDataAdapter.cs
- ColorKeyFrameCollection.cs
- PersonalizationEntry.cs
- FlowDocumentPageViewerAutomationPeer.cs
- XPathCompileException.cs
- _RequestCacheProtocol.cs
- XmlHierarchicalEnumerable.cs
- ActivityValidator.cs
- VBIdentifierTrimConverter.cs
- ColorTransformHelper.cs
- BaseDataBoundControl.cs
- CommandLibraryHelper.cs
- NavigationCommands.cs
- _NtlmClient.cs
- TextTreeRootNode.cs
- SchemaObjectWriter.cs
- SecurityChannelFactory.cs
- OdbcErrorCollection.cs
- Int64Storage.cs
- ListBindableAttribute.cs
- Errors.cs
- StateMachineExecutionState.cs
- CapabilitiesUse.cs
- BitStack.cs
- ArgumentElement.cs
- TextRenderer.cs
- X509Chain.cs
- ModelService.cs
- ExpressionWriter.cs
- WaitHandle.cs
- ProjectionAnalyzer.cs
- PackagePart.cs
- WindowsGraphicsWrapper.cs
- _ConnectOverlappedAsyncResult.cs