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
- EntityProviderFactory.cs
- XmlFormatReaderGenerator.cs
- MethodAccessException.cs
- BitmapMetadata.cs
- DesignerCommandAdapter.cs
- keycontainerpermission.cs
- TriggerAction.cs
- SpellerInterop.cs
- PointKeyFrameCollection.cs
- TextAnchor.cs
- ComponentGuaranteesAttribute.cs
- MimeXmlImporter.cs
- ComponentCache.cs
- ExpressionConverter.cs
- Error.cs
- NameSpaceExtractor.cs
- WrapperEqualityComparer.cs
- BooleanStorage.cs
- WebPartActionVerb.cs
- DbUpdateCommandTree.cs
- MetadataArtifactLoaderCompositeFile.cs
- ClaimSet.cs
- InvalidContentTypeException.cs
- KeyboardEventArgs.cs
- TCPListener.cs
- MatrixTransform.cs
- BindingListCollectionView.cs
- DataServiceKeyAttribute.cs
- SrgsSemanticInterpretationTag.cs
- SelectorAutomationPeer.cs
- BitmapEffectRenderDataResource.cs
- _CacheStreams.cs
- TemplateBamlTreeBuilder.cs
- XmlAttributeCache.cs
- StylusTouchDevice.cs
- AuthenticationConfig.cs
- NotImplementedException.cs
- PrinterResolution.cs
- TailPinnedEventArgs.cs
- PropertyExpression.cs
- TypeDescriptionProvider.cs
- SmtpDateTime.cs
- XmlText.cs
- XmlSerializerFactory.cs
- ListView.cs
- CombinedGeometry.cs
- ToolStripRenderEventArgs.cs
- BrowserCapabilitiesFactory.cs
- EncryptedKey.cs
- CodeIdentifiers.cs
- ObjectQuery.cs
- ModuleBuilder.cs
- WebControlsSection.cs
- BinaryFormatterSinks.cs
- Propagator.JoinPropagator.JoinPredicateVisitor.cs
- RepeaterItem.cs
- Page.cs
- DataObjectFieldAttribute.cs
- userdatakeys.cs
- RoleGroupCollection.cs
- StrongNameKeyPair.cs
- SchemaSetCompiler.cs
- ValidatorAttribute.cs
- InputLangChangeRequestEvent.cs
- EntityCollection.cs
- BooleanSwitch.cs
- CreateUserErrorEventArgs.cs
- ProxyGenerationError.cs
- SmtpDateTime.cs
- StructuredType.cs
- ConfigsHelper.cs
- TriggerCollection.cs
- EncoderExceptionFallback.cs
- XmlSchemaGroup.cs
- SortQuery.cs
- MergePropertyDescriptor.cs
- DesignerHierarchicalDataSourceView.cs
- AutomationPropertyInfo.cs
- QilTargetType.cs
- InstalledFontCollection.cs
- DriveNotFoundException.cs
- AssemblyHash.cs
- CTreeGenerator.cs
- HMACSHA256.cs
- XmlDigitalSignatureProcessor.cs
- Resources.Designer.cs
- IpcChannelHelper.cs
- DataGridViewRowsRemovedEventArgs.cs
- HttpPostedFile.cs
- LocatorManager.cs
- StateBag.cs
- DetailsView.cs
- SystemIPAddressInformation.cs
- LambdaCompiler.ControlFlow.cs
- XPathBinder.cs
- TextPattern.cs
- PermissionListSet.cs
- EntityTypeEmitter.cs
- GrammarBuilderBase.cs
- CurrencyManager.cs