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
- AVElementHelper.cs
- MergeLocalizationDirectives.cs
- DiscoveryCallbackBehavior.cs
- Timer.cs
- HelpKeywordAttribute.cs
- MenuItemStyle.cs
- ExpressionBindingCollection.cs
- TabControl.cs
- Label.cs
- NestPullup.cs
- UpdateExpressionVisitor.cs
- FixedPageStructure.cs
- BindingManagerDataErrorEventArgs.cs
- WebServiceHost.cs
- Pts.cs
- StringAttributeCollection.cs
- BlockUIContainer.cs
- StatusBarAutomationPeer.cs
- WebBrowserNavigatedEventHandler.cs
- XPathLexer.cs
- httpstaticobjectscollection.cs
- Internal.cs
- MergePropertyDescriptor.cs
- Schema.cs
- WebSysDefaultValueAttribute.cs
- ToolStripLabel.cs
- DropDownButton.cs
- FrameworkObject.cs
- WorkBatch.cs
- AffineTransform3D.cs
- BitmapData.cs
- WebSysDefaultValueAttribute.cs
- DataFormat.cs
- IntSecurity.cs
- Int32KeyFrameCollection.cs
- OdbcConnectionFactory.cs
- EdmToObjectNamespaceMap.cs
- SessionSymmetricTransportSecurityProtocolFactory.cs
- WCFBuildProvider.cs
- DbConnectionPoolOptions.cs
- LinqDataSourceEditData.cs
- IisTraceListener.cs
- DataContractJsonSerializer.cs
- PenThreadWorker.cs
- UniqueConstraint.cs
- AuthenticationModuleElement.cs
- WebPartEditVerb.cs
- WebRequest.cs
- PropertyValueUIItem.cs
- NotifyParentPropertyAttribute.cs
- FrugalMap.cs
- JournalEntry.cs
- Translator.cs
- Bitmap.cs
- NativeStructs.cs
- ThemeInfoAttribute.cs
- DataGridPagerStyle.cs
- FusionWrap.cs
- ClonableStack.cs
- NavigationPropertyEmitter.cs
- ListBindableAttribute.cs
- RadioButtonFlatAdapter.cs
- ResourcePermissionBase.cs
- WhereaboutsReader.cs
- AssemblyNameUtility.cs
- MSHTMLHost.cs
- ConcurrencyBehavior.cs
- PropertyManager.cs
- Matrix.cs
- TextControlDesigner.cs
- XPathDocumentNavigator.cs
- TraversalRequest.cs
- MultipleViewProviderWrapper.cs
- MediaCommands.cs
- WindowCollection.cs
- SaveFileDialog.cs
- HttpListenerRequest.cs
- COM2PictureConverter.cs
- SplineKeyFrames.cs
- Transform3D.cs
- ExpressionBuilderContext.cs
- _FtpControlStream.cs
- BamlStream.cs
- XmlSerializationGeneratedCode.cs
- ProcessHostServerConfig.cs
- LinqDataSourceDisposeEventArgs.cs
- LoginUtil.cs
- FormsAuthenticationUserCollection.cs
- DataGridGeneralPage.cs
- NativeStructs.cs
- HiddenField.cs
- RangeValueProviderWrapper.cs
- AttributeConverter.cs
- DbInsertCommandTree.cs
- ExpandCollapsePattern.cs
- TextElementCollection.cs
- MarshalByValueComponent.cs
- DataGridViewImageColumn.cs
- CacheMemory.cs
- ToolTipService.cs