Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Designers / EventSinkActivityDesigner.cs / 1305376 / EventSinkActivityDesigner.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 HandleExternalEventActivityDesigner [ActivityDesignerTheme(typeof(EventSinkDesignerTheme))] internal class HandleExternalEventActivityDesigner : ActivityDesigner { protected override void PreFilterProperties(IDictionary properties) { base.PreFilterProperties(properties); object corrRefProperty = properties["CorrelationToken"]; HandleExternalEventActivity eventSink = Activity as HandleExternalEventActivity; AddRemoveCorrelationToken(eventSink.InterfaceType, properties, corrRefProperty); Type type = eventSink.InterfaceType; if (type == null) return; AddRemoveCorrelationToken(type, properties, corrRefProperty); eventSink.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); HandleExternalEventActivity eventSinkActivity = e.Activity as HandleExternalEventActivity; PropertyDescriptorUtils.SetPropertyValue(Activity.Site, TypeDescriptor.GetProperties(Activity)["EventName"], 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)); } } else if ((e.Member.Name == "EventName") && e.Activity is HandleExternalEventActivity) { (e.Activity as HandleExternalEventActivity).ParameterBindings.Clear(); } if (e.Member.Name == "InterfaceType" || e.Member.Name == "EventName" || e.Member.Name == "CorrelationToken") TypeDescriptor.Refresh(e.Activity); } } } #endregion #region EventSinkDesignerTheme internal sealed class EventSinkDesignerTheme : ActivityDesignerTheme { public EventSinkDesignerTheme(WorkflowTheme theme) : base(theme) { this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00); this.BorderColor = Color.FromArgb(0xFF, 0x9C, 0xAE, 0x73); this.BorderStyle = DashStyle.Solid; this.BackColorStart = Color.FromArgb(0xFF, 0xF5, 0xFB, 0xE1); this.BackColorEnd = Color.FromArgb(0xFF, 0xD6, 0xEB, 0x84); 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
- SortFieldComparer.cs
- DiagnosticsConfiguration.cs
- Compensate.cs
- TrackingWorkflowEventArgs.cs
- SchemaLookupTable.cs
- FaultDesigner.cs
- RemoteWebConfigurationHost.cs
- RecommendedAsConfigurableAttribute.cs
- Wildcard.cs
- SessionStateSection.cs
- MonikerProxyAttribute.cs
- ListItemsPage.cs
- LinearGradientBrush.cs
- Config.cs
- EntityDataSourceState.cs
- UnmanagedMemoryStream.cs
- WriteLine.cs
- DataGridAddNewRow.cs
- cache.cs
- ExplicitDiscriminatorMap.cs
- CommonGetThemePartSize.cs
- XPathAncestorQuery.cs
- DataAdapter.cs
- CreatingCookieEventArgs.cs
- EllipticalNodeOperations.cs
- TransformerTypeCollection.cs
- RequestCache.cs
- TextEffect.cs
- SQLGuidStorage.cs
- BackgroundFormatInfo.cs
- InfoCardTrace.cs
- DescendantBaseQuery.cs
- SqlUserDefinedAggregateAttribute.cs
- JsonQNameDataContract.cs
- UnsettableComboBox.cs
- WebHttpBinding.cs
- AnnotationService.cs
- RotationValidation.cs
- ToolStripSettings.cs
- RegexWorker.cs
- ArrayTypeMismatchException.cs
- HebrewNumber.cs
- AliasGenerator.cs
- TextTreeUndoUnit.cs
- CompilerGlobalScopeAttribute.cs
- ClientSection.cs
- PropertiesTab.cs
- TrackingLocationCollection.cs
- ChannelSinkStacks.cs
- XslCompiledTransform.cs
- WorkflowInstanceExtensionManager.cs
- BufferedOutputStream.cs
- InterleavedZipPartStream.cs
- Executor.cs
- Timer.cs
- HelpProvider.cs
- PageStatePersister.cs
- PointLight.cs
- UIHelper.cs
- _RequestCacheProtocol.cs
- DbXmlEnabledProviderManifest.cs
- RefreshEventArgs.cs
- TickBar.cs
- SizeKeyFrameCollection.cs
- DesignBindingValueUIHandler.cs
- basenumberconverter.cs
- NonParentingControl.cs
- PreloadedPackages.cs
- XPathSelfQuery.cs
- XmlUtil.cs
- FontFamily.cs
- DuplicateContext.cs
- CommandEventArgs.cs
- VisualTarget.cs
- XmlBaseReader.cs
- ListBindingConverter.cs
- HealthMonitoringSection.cs
- ConfigurationElementProperty.cs
- HttpRequestWrapper.cs
- ApplicationInfo.cs
- XhtmlConformanceSection.cs
- InteropBitmapSource.cs
- HttpWriter.cs
- ToolStripManager.cs
- XmlLoader.cs
- TcpTransportSecurity.cs
- CollectionContainer.cs
- PreDigestedSignedInfo.cs
- CngAlgorithmGroup.cs
- AnnotationResourceChangedEventArgs.cs
- EventSetter.cs
- EndGetFileNameFromUserRequest.cs
- XmlBinaryReader.cs
- UpDownBase.cs
- LocalBuilder.cs
- RoutedCommand.cs
- AsymmetricSignatureDeformatter.cs
- HasCopySemanticsAttribute.cs
- RequestCacheEntry.cs
- ProjectionCamera.cs