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
- _IPv4Address.cs
- MULTI_QI.cs
- CollectionBase.cs
- ContentFilePart.cs
- LineServicesRun.cs
- UInt32Converter.cs
- ElementMarkupObject.cs
- SequenceDesigner.xaml.cs
- XmlConverter.cs
- ThreadInterruptedException.cs
- NetPipeSection.cs
- XmlReflectionImporter.cs
- SqlWriter.cs
- MonitorWrapper.cs
- HandleCollector.cs
- CacheRequest.cs
- ParserStreamGeometryContext.cs
- Socket.cs
- XmlPreloadedResolver.cs
- OneOfScalarConst.cs
- CacheOutputQuery.cs
- ProtocolViolationException.cs
- FloaterBaseParagraph.cs
- UnitySerializationHolder.cs
- TdsParserHelperClasses.cs
- TreeNodeBindingDepthConverter.cs
- StateItem.cs
- VisualStateGroup.cs
- DataQuery.cs
- InheritanceContextHelper.cs
- ICspAsymmetricAlgorithm.cs
- DataControlImageButton.cs
- Frame.cs
- TemplateFactory.cs
- CompilerInfo.cs
- WindowsAuthenticationEventArgs.cs
- MessageSecurityOverHttpElement.cs
- UrlUtility.cs
- PropertySegmentSerializer.cs
- RegexNode.cs
- _BaseOverlappedAsyncResult.cs
- FixedSOMLineRanges.cs
- RegionData.cs
- CryptoHelper.cs
- EntitySet.cs
- SurrogateEncoder.cs
- ToolStripOverflow.cs
- NonVisualControlAttribute.cs
- Vector3DAnimation.cs
- AssemblyAttributes.cs
- XmlText.cs
- ScriptDescriptor.cs
- BinaryFormatterWriter.cs
- TreeIterator.cs
- MD5.cs
- ColumnBinding.cs
- PointCollection.cs
- HttpCachePolicyElement.cs
- ListSortDescription.cs
- FocusTracker.cs
- SqlCommandBuilder.cs
- ArcSegment.cs
- TableItemPattern.cs
- ColumnResizeUndoUnit.cs
- ArglessEventHandlerProxy.cs
- CompositionAdorner.cs
- InputScopeManager.cs
- SqlDependencyListener.cs
- RowVisual.cs
- XmlSignatureProperties.cs
- XmlAnyAttributeAttribute.cs
- DataGridViewSelectedCellCollection.cs
- ProcessModelInfo.cs
- ComponentManagerBroker.cs
- Attributes.cs
- DriveNotFoundException.cs
- QilStrConcat.cs
- InkCanvasSelectionAdorner.cs
- Privilege.cs
- BoundingRectTracker.cs
- ObjectAnimationUsingKeyFrames.cs
- WebPartConnectionsConnectVerb.cs
- ReliabilityContractAttribute.cs
- StateFinalizationDesigner.cs
- ConfigurationStrings.cs
- XomlCompilerError.cs
- BooleanToVisibilityConverter.cs
- BindingEntityInfo.cs
- WindowsComboBox.cs
- HiddenFieldPageStatePersister.cs
- DragStartedEventArgs.cs
- ToolStripContainer.cs
- MetadataFile.cs
- RunClient.cs
- FixedBufferAttribute.cs
- MutexSecurity.cs
- ObjectPersistData.cs
- TiffBitmapDecoder.cs
- RadioButtonAutomationPeer.cs
- FlowLayoutPanelDesigner.cs