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
- MailMessageEventArgs.cs
- CodeMethodMap.cs
- TableLayoutColumnStyleCollection.cs
- ExpressionBuilder.cs
- JsonDataContract.cs
- TreeViewItem.cs
- TreeNodeEventArgs.cs
- OdbcParameter.cs
- MsmqSecureHashAlgorithm.cs
- BaseTemplateBuildProvider.cs
- VScrollProperties.cs
- XmlWrappingReader.cs
- Emitter.cs
- BitmapMetadataEnumerator.cs
- SQLDateTime.cs
- PropertyMapper.cs
- DataPagerFieldCollection.cs
- StrokeNodeOperations2.cs
- SecureEnvironment.cs
- RemoteWebConfigurationHost.cs
- ColorContext.cs
- Help.cs
- CriticalFinalizerObject.cs
- SettingsPropertyNotFoundException.cs
- LogArchiveSnapshot.cs
- WebFormDesignerActionService.cs
- ContentValidator.cs
- SqlParameterCollection.cs
- DayRenderEvent.cs
- XmlDataSourceView.cs
- IItemProperties.cs
- _HeaderInfoTable.cs
- ValidationRule.cs
- Matrix3D.cs
- UInt32.cs
- ToolStripSplitStackLayout.cs
- DecoderFallbackWithFailureFlag.cs
- UnsafeNativeMethodsCLR.cs
- UserControl.cs
- CompModHelpers.cs
- JsonSerializer.cs
- SoapHeaderAttribute.cs
- SqlFileStream.cs
- CqlParser.cs
- UnsafeNativeMethods.cs
- ExpressionLink.cs
- RangeBaseAutomationPeer.cs
- VerificationException.cs
- QueryCacheKey.cs
- Transform.cs
- DefaultBinder.cs
- Simplifier.cs
- XmlSchemaImport.cs
- TypeConverterAttribute.cs
- IOException.cs
- ColorContextHelper.cs
- PolicyImporterElementCollection.cs
- XsdBuildProvider.cs
- XslAst.cs
- SmtpMail.cs
- ParameterBinding.cs
- Tag.cs
- FrameworkTextComposition.cs
- WindowsToolbarItemAsMenuItem.cs
- Int32Rect.cs
- TextRangeProviderWrapper.cs
- CfgParser.cs
- InstanceHandleReference.cs
- EntityContainerEntitySet.cs
- AtomEntry.cs
- Scripts.cs
- RijndaelManaged.cs
- Publisher.cs
- Convert.cs
- HtmlTernaryTree.cs
- CacheMode.cs
- InvalidDataException.cs
- ConfigXmlReader.cs
- X500Name.cs
- Relationship.cs
- ValidatorAttribute.cs
- LogReservationCollection.cs
- Shared.cs
- _OSSOCK.cs
- AttributeQuery.cs
- ListDictionary.cs
- Compress.cs
- Size3D.cs
- CombinedGeometry.cs
- CompilerErrorCollection.cs
- RequestCachePolicy.cs
- XmlParserContext.cs
- ContentDisposition.cs
- ActivityInfo.cs
- CompositeClientFormatter.cs
- DebugViewWriter.cs
- PropertyEntry.cs
- ObjectView.cs
- validationstate.cs
- TreeNodeCollectionEditor.cs