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
- SqlCharStream.cs
- PropertyChangedEventManager.cs
- ElementHostAutomationPeer.cs
- SqlProviderManifest.cs
- Calendar.cs
- RegexGroupCollection.cs
- HitTestParameters3D.cs
- UTF7Encoding.cs
- ObjectAssociationEndMapping.cs
- PageBorderless.cs
- MarshalByRefObject.cs
- Pen.cs
- WorkflowStateRollbackService.cs
- ClonableStack.cs
- TypeUsage.cs
- WebServiceReceiveDesigner.cs
- XmlArrayItemAttribute.cs
- ProfessionalColors.cs
- ProviderConnectionPointCollection.cs
- EdmComplexPropertyAttribute.cs
- LookupBindingPropertiesAttribute.cs
- TabItem.cs
- BinaryNode.cs
- CodeLinePragma.cs
- EncoderFallback.cs
- ReachObjectContext.cs
- ListViewEditEventArgs.cs
- httpstaticobjectscollection.cs
- ExternalCalls.cs
- RequestDescription.cs
- CodeGotoStatement.cs
- ReferenceConverter.cs
- SqlComparer.cs
- ListParaClient.cs
- SmtpNegotiateAuthenticationModule.cs
- NextPreviousPagerField.cs
- ControlEvent.cs
- DBParameter.cs
- WindowsToolbar.cs
- KeyGesture.cs
- TokenBasedSetEnumerator.cs
- ColumnCollection.cs
- ConnectionInterfaceCollection.cs
- WmlValidatorAdapter.cs
- UserControl.cs
- CalendarDataBindingHandler.cs
- XmlHierarchicalDataSourceView.cs
- PhysicalOps.cs
- CryptoKeySecurity.cs
- BaseValidatorDesigner.cs
- Floater.cs
- WhitespaceRuleReader.cs
- Sql8ExpressionRewriter.cs
- IISMapPath.cs
- HwndHostAutomationPeer.cs
- CurrentChangedEventManager.cs
- StorageMappingItemLoader.cs
- ScrollViewer.cs
- RichTextBoxAutomationPeer.cs
- RegisteredArrayDeclaration.cs
- OleDbSchemaGuid.cs
- EventProviderWriter.cs
- HeaderedItemsControl.cs
- HtmlControlPersistable.cs
- PolicyManager.cs
- Point3DConverter.cs
- DragDrop.cs
- GcSettings.cs
- TypeUnloadedException.cs
- BinaryNode.cs
- StateRuntime.cs
- ListViewItemMouseHoverEvent.cs
- mactripleDES.cs
- FontInfo.cs
- IPPacketInformation.cs
- RequestQueue.cs
- RubberbandSelector.cs
- BitmapSource.cs
- Latin1Encoding.cs
- ProtocolsConfigurationEntry.cs
- ObjectDataSourceMethodEventArgs.cs
- PersonalizationDictionary.cs
- FixedSOMLineRanges.cs
- FileDialog.cs
- TextSpan.cs
- ReferencedType.cs
- TcpServerChannel.cs
- SHA1.cs
- WebPageTraceListener.cs
- Row.cs
- NegatedCellConstant.cs
- SqlWebEventProvider.cs
- WindowsGraphicsWrapper.cs
- HighContrastHelper.cs
- SoapMessage.cs
- webeventbuffer.cs
- DataGridViewCellStyle.cs
- InfocardExtendedInformationEntry.cs
- SessionStateSection.cs
- EventSetter.cs