Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Designers / InvokeMethodActivityDesigner.cs / 1305376 / InvokeMethodActivityDesigner.cs
namespace System.Workflow.Activities { using System; using System.Text; using System.Reflection; using System.Collections; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Drawing.Drawing2D; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.Activities.Common; #region Class CallExternalMethodActivityDesigner [ActivityDesignerTheme(typeof(InvokeMethodDesignerTheme))] internal class CallExternalMethodActivityDesigner : ActivityDesigner { protected override void PreFilterProperties(IDictionary properties) { base.PreFilterProperties(properties); CallExternalMethodActivity invokeMethod = Activity as CallExternalMethodActivity; object corrRefProperty = properties["CorrelationToken"]; AddRemoveCorrelationToken(invokeMethod.InterfaceType, properties, corrRefProperty); Type type = invokeMethod.InterfaceType; if (type == null) return; AddRemoveCorrelationToken(type, properties, corrRefProperty); invokeMethod.GetParameterPropertyDescriptors(properties); } private void AddRemoveCorrelationToken(Type interfaceType, IDictionary properties, object corrRefProperty) { if (interfaceType != null) { object[] corrProvAttribs = interfaceType.GetCustomAttributes(typeof(CorrelationProviderAttribute), false); object[] corrParamAttribs = interfaceType.GetCustomAttributes(typeof(CorrelationParameterAttribute), false); if (corrProvAttribs.Length != 0 || corrParamAttribs.Length != 0) { if (!properties.Contains("CorrelationToken")) properties.Add("CorrelationToken", corrRefProperty); return; } } if (properties.Contains("CorrelationToken")) properties.Remove("CorrelationToken"); } protected override void OnActivityChanged(ActivityChangedEventArgs e) { base.OnActivityChanged(e); if (e.Member != null) { if (e.Member.Name == "InterfaceType") { if (Activity.Site != null) { Type interfaceType = e.NewValue as Type; if (interfaceType != null) new ExternalDataExchangeInterfaceTypeFilterProvider(Activity.Site).CanFilterType(interfaceType, true); CallExternalMethodActivity invokeActivity = e.Activity as CallExternalMethodActivity; PropertyDescriptorUtils.SetPropertyValue(Activity.Site, TypeDescriptor.GetProperties(Activity)["MethodName"], Activity, String.Empty); IExtendedUIService extUIService = (IExtendedUIService)Activity.Site.GetService(typeof(IExtendedUIService)); if (extUIService == null) throw new Exception(SR.GetString(SR.General_MissingService, typeof(IExtendedUIService).FullName)); } } if ((e.Member.Name == "MethodName") && e.Activity is CallExternalMethodActivity) (e.Activity as CallExternalMethodActivity).ParameterBindings.Clear(); if (e.Member.Name == "InterfaceType" || e.Member.Name == "MethodName" || e.Member.Name == "CorrelationToken") TypeDescriptor.Refresh(e.Activity); } } } #endregion #region InvokeMethodDesignerTheme internal sealed class InvokeMethodDesignerTheme : ActivityDesignerTheme { public InvokeMethodDesignerTheme(WorkflowTheme theme) : base(theme) { this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00); this.BorderColor = Color.FromArgb(0xFF, 0x73, 0x79, 0xA5); this.BorderStyle = DashStyle.Solid; this.BackColorStart = Color.FromArgb(0xFF, 0xDF, 0xE8, 0xFF); this.BackColorEnd = Color.FromArgb(0xFF, 0x95, 0xB3, 0xFF); this.BackgroundStyle = LinearGradientMode.Horizontal; } } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Workflow.Activities { using System; using System.Text; using System.Reflection; using System.Collections; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Drawing.Drawing2D; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.Activities.Common; #region Class CallExternalMethodActivityDesigner [ActivityDesignerTheme(typeof(InvokeMethodDesignerTheme))] internal class CallExternalMethodActivityDesigner : ActivityDesigner { protected override void PreFilterProperties(IDictionary properties) { base.PreFilterProperties(properties); CallExternalMethodActivity invokeMethod = Activity as CallExternalMethodActivity; object corrRefProperty = properties["CorrelationToken"]; AddRemoveCorrelationToken(invokeMethod.InterfaceType, properties, corrRefProperty); Type type = invokeMethod.InterfaceType; if (type == null) return; AddRemoveCorrelationToken(type, properties, corrRefProperty); invokeMethod.GetParameterPropertyDescriptors(properties); } private void AddRemoveCorrelationToken(Type interfaceType, IDictionary properties, object corrRefProperty) { if (interfaceType != null) { object[] corrProvAttribs = interfaceType.GetCustomAttributes(typeof(CorrelationProviderAttribute), false); object[] corrParamAttribs = interfaceType.GetCustomAttributes(typeof(CorrelationParameterAttribute), false); if (corrProvAttribs.Length != 0 || corrParamAttribs.Length != 0) { if (!properties.Contains("CorrelationToken")) properties.Add("CorrelationToken", corrRefProperty); return; } } if (properties.Contains("CorrelationToken")) properties.Remove("CorrelationToken"); } protected override void OnActivityChanged(ActivityChangedEventArgs e) { base.OnActivityChanged(e); if (e.Member != null) { if (e.Member.Name == "InterfaceType") { if (Activity.Site != null) { Type interfaceType = e.NewValue as Type; if (interfaceType != null) new ExternalDataExchangeInterfaceTypeFilterProvider(Activity.Site).CanFilterType(interfaceType, true); CallExternalMethodActivity invokeActivity = e.Activity as CallExternalMethodActivity; PropertyDescriptorUtils.SetPropertyValue(Activity.Site, TypeDescriptor.GetProperties(Activity)["MethodName"], Activity, String.Empty); IExtendedUIService extUIService = (IExtendedUIService)Activity.Site.GetService(typeof(IExtendedUIService)); if (extUIService == null) throw new Exception(SR.GetString(SR.General_MissingService, typeof(IExtendedUIService).FullName)); } } if ((e.Member.Name == "MethodName") && e.Activity is CallExternalMethodActivity) (e.Activity as CallExternalMethodActivity).ParameterBindings.Clear(); if (e.Member.Name == "InterfaceType" || e.Member.Name == "MethodName" || e.Member.Name == "CorrelationToken") TypeDescriptor.Refresh(e.Activity); } } } #endregion #region InvokeMethodDesignerTheme internal sealed class InvokeMethodDesignerTheme : ActivityDesignerTheme { public InvokeMethodDesignerTheme(WorkflowTheme theme) : base(theme) { this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00); this.BorderColor = Color.FromArgb(0xFF, 0x73, 0x79, 0xA5); this.BorderStyle = DashStyle.Solid; this.BackColorStart = Color.FromArgb(0xFF, 0xDF, 0xE8, 0xFF); this.BackColorEnd = Color.FromArgb(0xFF, 0x95, 0xB3, 0xFF); this.BackgroundStyle = LinearGradientMode.Horizontal; } } #endregion } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BamlRecordWriter.cs
- NotImplementedException.cs
- SynchronousChannel.cs
- SslStream.cs
- TextRangeAdaptor.cs
- XmlCustomFormatter.cs
- EngineSite.cs
- ExpressionBindings.cs
- DesignerView.xaml.cs
- WebErrorHandler.cs
- RegexRunnerFactory.cs
- TimeoutTimer.cs
- RegexTree.cs
- DataGridViewLinkCell.cs
- CultureTable.cs
- TextServicesContext.cs
- IndexerReference.cs
- HttpCapabilitiesEvaluator.cs
- HtmlWindowCollection.cs
- odbcmetadatafactory.cs
- AliasedExpr.cs
- UnsafeNativeMethodsCLR.cs
- RuntimeHelpers.cs
- SettingsSavedEventArgs.cs
- CodeArrayIndexerExpression.cs
- RC2CryptoServiceProvider.cs
- WebBrowserContainer.cs
- InheritablePropertyChangeInfo.cs
- PageTheme.cs
- Validator.cs
- BufferedWebEventProvider.cs
- DeviceContexts.cs
- MsmqBindingElementBase.cs
- ToolStripPanelDesigner.cs
- LoadWorkflowCommand.cs
- mil_sdk_version.cs
- HtmlElementEventArgs.cs
- IncrementalCompileAnalyzer.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- smtpconnection.cs
- CfgParser.cs
- ContextInformation.cs
- Debug.cs
- _OverlappedAsyncResult.cs
- UnsafeNativeMethodsPenimc.cs
- WebPartTransformerAttribute.cs
- ListBox.cs
- MimeMapping.cs
- UriWriter.cs
- CharacterBufferReference.cs
- XmlAttributes.cs
- Popup.cs
- IConvertible.cs
- BevelBitmapEffect.cs
- XmlBaseWriter.cs
- StrongName.cs
- MaterialGroup.cs
- Util.cs
- HuffModule.cs
- Model3DGroup.cs
- EntityObject.cs
- WindowsListViewItem.cs
- PlanCompilerUtil.cs
- Normalization.cs
- LocatorPartList.cs
- HMACRIPEMD160.cs
- Gdiplus.cs
- TextEffectCollection.cs
- ProcessModule.cs
- UniqueIdentifierService.cs
- TextCollapsingProperties.cs
- HandlerFactoryWrapper.cs
- StringFunctions.cs
- SeverityFilter.cs
- EnumMember.cs
- LeaseManager.cs
- SingleResultAttribute.cs
- EdmProviderManifest.cs
- Drawing.cs
- CheckableControlBaseAdapter.cs
- SafeProcessHandle.cs
- TrackPointCollection.cs
- SystemDropShadowChrome.cs
- ECDsaCng.cs
- DeobfuscatingStream.cs
- DbMetaDataFactory.cs
- BaseParaClient.cs
- ServicePointManager.cs
- ResourceManager.cs
- EdmToObjectNamespaceMap.cs
- ResourceExpression.cs
- Types.cs
- WebPartMenu.cs
- CacheVirtualItemsEvent.cs
- StateBag.cs
- HttpConfigurationSystem.cs
- MLangCodePageEncoding.cs
- PreProcessor.cs
- SqlInternalConnectionSmi.cs
- SQLDecimalStorage.cs