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
- InvalidStoreProtectionKeyException.cs
- SystemInfo.cs
- InternalUserCancelledException.cs
- StatusBarItemAutomationPeer.cs
- TextServicesProperty.cs
- GridEntry.cs
- Processor.cs
- CompiledIdentityConstraint.cs
- PersonalizationStateInfoCollection.cs
- DbSetClause.cs
- Simplifier.cs
- Property.cs
- EntityViewContainer.cs
- MarkedHighlightComponent.cs
- DNS.cs
- PartialToken.cs
- Baml2006ReaderSettings.cs
- EditingScope.cs
- EditorPart.cs
- DataControlFieldCollection.cs
- webproxy.cs
- RecordManager.cs
- HtmlEncodedRawTextWriter.cs
- SimpleFieldTemplateUserControl.cs
- WebZone.cs
- Quack.cs
- EditorZoneBase.cs
- PersistenceTypeAttribute.cs
- NativeMethods.cs
- DataServiceProcessingPipelineEventArgs.cs
- RedirectionProxy.cs
- ArraySubsetEnumerator.cs
- TreeNode.cs
- ArrangedElementCollection.cs
- RawStylusInputReport.cs
- DataGridAutoFormat.cs
- InputProcessorProfiles.cs
- HttpServerVarsCollection.cs
- CapiSymmetricAlgorithm.cs
- DesignTimeSiteMapProvider.cs
- TogglePatternIdentifiers.cs
- TranslateTransform.cs
- IndexOutOfRangeException.cs
- SByte.cs
- MenuEventArgs.cs
- EndPoint.cs
- DirtyTextRange.cs
- ScaleTransform3D.cs
- MarkupExtensionParser.cs
- DataTemplateKey.cs
- Size.cs
- coordinatorscratchpad.cs
- SQLResource.cs
- HostSecurityManager.cs
- RichTextBox.cs
- ActivityExecutorOperation.cs
- DragEvent.cs
- AutomationIdentifierGuids.cs
- LayoutInformation.cs
- InputMethod.cs
- SoapTypeAttribute.cs
- SymbolType.cs
- TimeZone.cs
- MimeWriter.cs
- EntityCollection.cs
- DataGridHeaderBorder.cs
- JournalNavigationScope.cs
- TextEditor.cs
- TextElementEnumerator.cs
- PowerEase.cs
- Scene3D.cs
- TextBoxAutomationPeer.cs
- RegexStringValidator.cs
- DeclarativeCatalogPart.cs
- QuadraticBezierSegment.cs
- ServicesExceptionNotHandledEventArgs.cs
- Zone.cs
- ReachBasicContext.cs
- BaseTemplateBuildProvider.cs
- PrimarySelectionAdorner.cs
- ListenerBinder.cs
- DropShadowEffect.cs
- AnchoredBlock.cs
- DrawListViewItemEventArgs.cs
- AttributedMetaModel.cs
- ItemsControlAutomationPeer.cs
- PropVariant.cs
- OleDbConnection.cs
- WebPartCollection.cs
- BindingMAnagerBase.cs
- ResourceAttributes.cs
- NotImplementedException.cs
- GeneralTransform3DGroup.cs
- OutputCacheSettingsSection.cs
- ConstrainedDataObject.cs
- PersistenceMetadataNamespace.cs
- Solver.cs
- DataGridViewTextBoxEditingControl.cs
- DataGridViewCellCollection.cs
- SharedPerformanceCounter.cs