Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Core.Presentation / System / Activities / Core / Presentation / InteropDesigner.xaml.cs / 1305376 / InteropDesigner.xaml.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Core.Presentation { using System.Activities.Statements; using System.ComponentModel; using System.Activities.Presentation.PropertyEditing; using System.Activities.Presentation; using System.Activities.Presentation.Metadata; using System.Windows.Threading; using System.Activities.Presentation.View; using System.IO; using System.Runtime; partial class InteropDesigner { static Funcfilter; public InteropDesigner() { this.InitializeComponent(); } public static Func Filter { get { if (InteropDesigner.filter == null) { // We will build tye Tyname for System.Workflow.ComponentModel.Activity string typeName = typeof(Activity).AssemblyQualifiedName; typeName = typeName.Replace("System.Activities", "System.Workflow.ComponentModel"); Type activityType = null; try { activityType = Type.GetType(typeName); } catch (System.Exception e) { if (Fx.IsFatal(e)) { throw; } activityType = null; } if (activityType != null) { //Interop.Body has to be a 3.5 Activity InteropDesigner.filter = (type) => activityType.IsAssignableFrom(type); } } return InteropDesigner.filter; } } protected override void OnModelItemChanged(object newItem) { base.OnModelItemChanged(newItem); this.ModelItem.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(OnModelItemPropertyChanged); } void OnModelItemPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "ActivityType") { //Whenever ActivityType property changes, the activity will generate a new set of // dynamic properties. the property browser will not pick up the changes till // we select some other modelitem and then select this back. // modelItem.root is theone that will be always available. this.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle, (Action)(() => { Selection.SelectOnly(this.Context, this.ModelItem.Root); })); this.Dispatcher.BeginInvoke(DispatcherPriority.SystemIdle, (Action)(() => { Selection.SelectOnly(this.Context, this.ModelItem); })); } } public static void RegisterMetadataDelayed() { WorkflowViewService.AddDelayedDesignerRegistration("System.Activities.Statements.Interop", () => { AttributeTableBuilder builder = new AttributeTableBuilder(); string typeName = typeof(InteropDesigner).AssemblyQualifiedName; typeName = typeName.Replace("System.Activities.Core.Presentation.InteropDesigner", "System.Activities.Statements.Interop"); typeName = typeName.Replace("System.Activities.Core.Presentation", "System.Workflow.Runtime"); Type activityType; try { activityType = Type.GetType(typeName); } catch (System.Exception e) { if (Fx.IsFatal(e)) { throw; } activityType = null; } //activityType will be null in ClientSKU since System.Workflow.Runtime.dll is not a part of clientSKU. if (activityType != null) { builder.AddCustomAttributes(activityType, new DesignerAttribute(typeof(InteropDesigner))); builder.AddCustomAttributes( activityType, "ActivityType", new EditorOptionsAttribute { Name = TypePropertyEditor.BrowseTypeDirectly, Value = true }); builder.AddCustomAttributes( activityType, "ActivityType", new EditorOptionsAttribute { Name = TypePropertyEditor.Filter, Value = Filter }); builder.AddCustomAttributes( activityType, "ActivityType", new RefreshPropertiesAttribute(RefreshProperties.All)); builder.AddCustomAttributes(activityType, new ActivityDesignerOptionsAttribute { AllowDrillIn = false }); MetadataStore.AddAttributeTable(builder.CreateTable()); } }); } } } // 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
- KeyValueSerializer.cs
- RelativeSource.cs
- StackBuilderSink.cs
- StringFormat.cs
- Duration.cs
- ObjectDataSourceDisposingEventArgs.cs
- TextAutomationPeer.cs
- MetadataItemSerializer.cs
- DataGridHeaderBorder.cs
- DesignerObjectListAdapter.cs
- TextEffect.cs
- ContainerUIElement3D.cs
- ArgIterator.cs
- MultiByteCodec.cs
- MDIClient.cs
- TextViewSelectionProcessor.cs
- PasswordRecovery.cs
- TextRunTypographyProperties.cs
- CompilationPass2Task.cs
- WebServiceHostFactory.cs
- Directory.cs
- FileEnumerator.cs
- NamespaceEmitter.cs
- ContentHostHelper.cs
- SqlInternalConnectionTds.cs
- ProfileService.cs
- ByteArrayHelperWithString.cs
- UserControl.cs
- ClientApiGenerator.cs
- TextChangedEventArgs.cs
- Section.cs
- TextDocumentView.cs
- MoveSizeWinEventHandler.cs
- NavigationProperty.cs
- StringBuilder.cs
- FastEncoderWindow.cs
- NavigationProperty.cs
- HMACSHA256.cs
- LongAverageAggregationOperator.cs
- ListView.cs
- DependencyProperty.cs
- CompositeScriptReferenceEventArgs.cs
- VBCodeProvider.cs
- MachineKeyConverter.cs
- HwndAppCommandInputProvider.cs
- InternalControlCollection.cs
- PerspectiveCamera.cs
- PathFigure.cs
- BufferAllocator.cs
- DataMemberAttribute.cs
- UserNamePasswordValidationMode.cs
- oledbconnectionstring.cs
- NamedElement.cs
- XmlTypeMapping.cs
- RemoteWebConfigurationHostStream.cs
- Animatable.cs
- XslException.cs
- basemetadatamappingvisitor.cs
- Size3DConverter.cs
- ProfileSettingsCollection.cs
- MonthChangedEventArgs.cs
- Mapping.cs
- DataGridViewMethods.cs
- SchemaImporter.cs
- HttpAsyncResult.cs
- RequestResponse.cs
- MatrixUtil.cs
- SineEase.cs
- SqlDataSourceEnumerator.cs
- SetterBaseCollection.cs
- MethodAccessException.cs
- TextDecorationCollection.cs
- CodeTypeDeclarationCollection.cs
- XmlLoader.cs
- DebugView.cs
- TcpClientSocketManager.cs
- BitmapEffect.cs
- WebPartCatalogAddVerb.cs
- XmlSerializerAssemblyAttribute.cs
- MessageDecoder.cs
- FastPropertyAccessor.cs
- PhysicalFontFamily.cs
- HiddenFieldPageStatePersister.cs
- StyleConverter.cs
- WriteTimeStream.cs
- ComplexTypeEmitter.cs
- ThemeableAttribute.cs
- Signature.cs
- XmlStringTable.cs
- EnglishPluralizationService.cs
- XPathExpr.cs
- CompositeCollectionView.cs
- ClockGroup.cs
- RenamedEventArgs.cs
- XmlWrappingWriter.cs
- SslStream.cs
- GenericEnumerator.cs
- DefaultMemberAttribute.cs
- StringDictionary.cs
- InteropTrackingRecord.cs