Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Visual.cs
- FormsAuthenticationEventArgs.cs
- CDSsyncETWBCLProvider.cs
- RewritingValidator.cs
- XPathDocument.cs
- PathGradientBrush.cs
- MenuItemCollection.cs
- GraphicsContext.cs
- TypefaceCollection.cs
- OrderPreservingSpoolingTask.cs
- ObjectSet.cs
- TypeUtils.cs
- StructuredCompositeActivityDesigner.cs
- CopyAttributesAction.cs
- DtdParser.cs
- DataGridViewColumnHeaderCell.cs
- AudioBase.cs
- DesignerMetadata.cs
- FragmentQuery.cs
- CapabilitiesUse.cs
- DataDocumentXPathNavigator.cs
- DesignerObject.cs
- DataSourceHelper.cs
- SynchronizationLockException.cs
- RepeaterItemEventArgs.cs
- CubicEase.cs
- _OverlappedAsyncResult.cs
- HtmlFormAdapter.cs
- Bidi.cs
- _UriTypeConverter.cs
- ArgumentNullException.cs
- EntityDataSourceContextCreatedEventArgs.cs
- CompilationPass2TaskInternal.cs
- XMLSyntaxException.cs
- CallbackHandler.cs
- DataTableNameHandler.cs
- ListItemConverter.cs
- WebDisplayNameAttribute.cs
- Pointer.cs
- SqlReorderer.cs
- MarkupCompilePass1.cs
- IssuerInformation.cs
- TypeSemantics.cs
- StructureChangedEventArgs.cs
- SoapSchemaImporter.cs
- ExpressionBuilder.cs
- CompositeFontFamily.cs
- GenerateTemporaryTargetAssembly.cs
- XamlTypeWithExplicitNamespace.cs
- ConfigurationStrings.cs
- ValueTypeFieldReference.cs
- SafeCryptHandles.cs
- TabPanel.cs
- PathFigureCollection.cs
- WindowsAltTab.cs
- EventWaitHandle.cs
- PropertyRef.cs
- FrameworkTextComposition.cs
- Scheduler.cs
- TaskFormBase.cs
- HwndKeyboardInputProvider.cs
- UInt64Storage.cs
- LinkLabelLinkClickedEvent.cs
- UserNamePasswordValidator.cs
- MergablePropertyAttribute.cs
- SizeValueSerializer.cs
- Transform.cs
- mongolianshape.cs
- pingexception.cs
- CustomTypeDescriptor.cs
- FloaterParagraph.cs
- RecognizedPhrase.cs
- VisualStyleRenderer.cs
- WeakEventManager.cs
- ImageMap.cs
- RSAProtectedConfigurationProvider.cs
- WebContext.cs
- DelegatedStream.cs
- _NetworkingPerfCounters.cs
- ToolStripContainer.cs
- RepeaterItemEventArgs.cs
- nulltextnavigator.cs
- PathGradientBrush.cs
- CompositeDataBoundControl.cs
- GenerateTemporaryAssemblyTask.cs
- AnimatedTypeHelpers.cs
- XmlCountingReader.cs
- TransformerInfoCollection.cs
- AssemblyName.cs
- JumpList.cs
- CompositeFontFamily.cs
- MappingModelBuildProvider.cs
- DayRenderEvent.cs
- WebPartConnectionsCancelEventArgs.cs
- Environment.cs
- WebPartAuthorizationEventArgs.cs
- OledbConnectionStringbuilder.cs
- ColumnHeader.cs
- WmlTextViewAdapter.cs
- FaultPropagationRecord.cs