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
- CodeMemberMethod.cs
- SuppressMessageAttribute.cs
- StylusEditingBehavior.cs
- RectangleHotSpot.cs
- SoapFault.cs
- ScriptingWebServicesSectionGroup.cs
- ResourceContainer.cs
- DataListItem.cs
- AsymmetricCryptoHandle.cs
- ReflectionServiceProvider.cs
- ErrorWebPart.cs
- ProxyWebPartManager.cs
- SoapTypeAttribute.cs
- RectangleHotSpot.cs
- DialogWindow.cs
- CompModSwitches.cs
- XhtmlTextWriter.cs
- ConfigXmlReader.cs
- CounterSample.cs
- BasicHttpMessageSecurityElement.cs
- ResolveNameEventArgs.cs
- AttributeAction.cs
- WebZone.cs
- ClientRolePrincipal.cs
- ListViewItemSelectionChangedEvent.cs
- MemoryRecordBuffer.cs
- GradientSpreadMethodValidation.cs
- EditableRegion.cs
- MouseGestureConverter.cs
- XPathMultyIterator.cs
- SnapLine.cs
- base64Transforms.cs
- BinaryObjectReader.cs
- WebConfigurationFileMap.cs
- MsmqAppDomainProtocolHandler.cs
- DiscoveryClientOutputChannel.cs
- UnsafeNativeMethods.cs
- TracePayload.cs
- Int32Converter.cs
- DataGridViewImageColumn.cs
- _ListenerRequestStream.cs
- Configuration.cs
- DataTableTypeConverter.cs
- PEFileReader.cs
- HttpCapabilitiesEvaluator.cs
- CompositeControl.cs
- StructuredTypeEmitter.cs
- RenderTargetBitmap.cs
- ConnectionStringSettings.cs
- RNGCryptoServiceProvider.cs
- MailWebEventProvider.cs
- WebZone.cs
- OracleCommand.cs
- ToolstripProfessionalRenderer.cs
- ModelFactory.cs
- TreeViewImageGenerator.cs
- AppliesToBehaviorDecisionTable.cs
- PeerResolver.cs
- UriSchemeKeyedCollection.cs
- HostingPreferredMapPath.cs
- Win32.cs
- NativeMethods.cs
- arabicshape.cs
- Directory.cs
- ConstructorNeedsTagAttribute.cs
- Axis.cs
- WindowsRebar.cs
- ExpressionNode.cs
- ScrollChrome.cs
- QueryStringParameter.cs
- XappLauncher.cs
- EventRouteFactory.cs
- TextSelection.cs
- Button.cs
- DataGridViewColumnCollection.cs
- PersonalizationStateInfo.cs
- CodeIndexerExpression.cs
- DigitalSignature.cs
- SqlInternalConnectionTds.cs
- RangeValidator.cs
- XmlReturnReader.cs
- ServiceModelTimeSpanValidator.cs
- Merger.cs
- XhtmlBasicControlAdapter.cs
- CodePrimitiveExpression.cs
- DataBindEngine.cs
- OrderingQueryOperator.cs
- CaseExpr.cs
- PatternMatcher.cs
- ParentQuery.cs
- Assign.cs
- DispatchWrapper.cs
- ToggleButton.cs
- SafeSecurityHandles.cs
- NamespaceList.cs
- ExecutedRoutedEventArgs.cs
- SoapAttributeAttribute.cs
- XmlDictionaryReaderQuotasElement.cs
- MetadataFile.cs
- XmlSchemaDocumentation.cs