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
- Binding.cs
- Crc32.cs
- IsolatedStorageFile.cs
- TextEditorCharacters.cs
- KeyedHashAlgorithm.cs
- securestring.cs
- SplitterDesigner.cs
- KeyManager.cs
- TraceLog.cs
- CodeStatementCollection.cs
- ClaimComparer.cs
- datacache.cs
- Size.cs
- RulePatternOps.cs
- TrackBar.cs
- ControlBuilderAttribute.cs
- SettingsPropertyIsReadOnlyException.cs
- ValidationHelpers.cs
- EdgeProfileValidation.cs
- VisualStyleInformation.cs
- AuthenticationConfig.cs
- TraceData.cs
- WmlPanelAdapter.cs
- TextPenaltyModule.cs
- DynamicILGenerator.cs
- DbMetaDataFactory.cs
- Keyboard.cs
- RecordsAffectedEventArgs.cs
- Enum.cs
- ValidateNames.cs
- LifetimeServices.cs
- Content.cs
- PresentationSource.cs
- HebrewNumber.cs
- Menu.cs
- WorkflowServiceHostFactory.cs
- ConfigurationConverterBase.cs
- EntityType.cs
- RegionIterator.cs
- SmtpClient.cs
- DispatcherSynchronizationContext.cs
- Pens.cs
- ChangeBlockUndoRecord.cs
- RepeatBehavior.cs
- TreeBuilder.cs
- NamedObject.cs
- rsa.cs
- ErrorBehavior.cs
- WebPartZone.cs
- DesignerLoader.cs
- CompareInfo.cs
- ReadOnlyDataSource.cs
- ExternalCalls.cs
- XD.cs
- XDRSchema.cs
- HitTestDrawingContextWalker.cs
- RouteItem.cs
- ActivityTypeDesigner.xaml.cs
- AxisAngleRotation3D.cs
- DbProviderFactory.cs
- _StreamFramer.cs
- DataGridSortCommandEventArgs.cs
- SafeUserTokenHandle.cs
- StateItem.cs
- OdbcEnvironment.cs
- ExtenderControl.cs
- SmtpClient.cs
- ScriptResourceHandler.cs
- Model3D.cs
- XhtmlBasicPageAdapter.cs
- Figure.cs
- QilSortKey.cs
- ObjectParameterCollection.cs
- DownloadProgressEventArgs.cs
- ILGen.cs
- FieldBuilder.cs
- HotSpot.cs
- DataBoundLiteralControl.cs
- TraceLevelHelper.cs
- TraceLevelHelper.cs
- ToolBarOverflowPanel.cs
- HttpModuleActionCollection.cs
- _ListenerAsyncResult.cs
- SecurityUtils.cs
- InteropExecutor.cs
- Monitor.cs
- HttpUnhandledOperationInvoker.cs
- PageAsyncTaskManager.cs
- FocusManager.cs
- PerformanceCountersElement.cs
- EmissiveMaterial.cs
- CanonicalizationDriver.cs
- JournalEntryStack.cs
- CodeSubDirectoriesCollection.cs
- ScrollBar.cs
- RuleInfoComparer.cs
- ExpressionVisitor.cs
- NativeMethods.cs
- CollectionsUtil.cs
- _FixedSizeReader.cs