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
- SettingsAttributes.cs
- PageContentCollection.cs
- ExtenderControl.cs
- FixedBufferAttribute.cs
- ContentPresenter.cs
- TableDesigner.cs
- Rijndael.cs
- InputQueue.cs
- EntityDataSourceMemberPath.cs
- ConnectionPoint.cs
- ClientConfigPaths.cs
- NullToBooleanConverter.cs
- EFTableProvider.cs
- TransactedBatchingElement.cs
- DataTableMapping.cs
- CookieHandler.cs
- PersonalizationProviderCollection.cs
- GrammarBuilderPhrase.cs
- WebRequestModulesSection.cs
- ModuleElement.cs
- DataKeyPropertyAttribute.cs
- _AcceptOverlappedAsyncResult.cs
- NonParentingControl.cs
- FormatterServices.cs
- SecureStringHasher.cs
- RelationshipFixer.cs
- SendMailErrorEventArgs.cs
- ProfileSettingsCollection.cs
- DataServiceHostWrapper.cs
- SmtpReplyReader.cs
- ScrollBar.cs
- PieceDirectory.cs
- CancelEventArgs.cs
- RadioButtonFlatAdapter.cs
- GridViewSelectEventArgs.cs
- filewebrequest.cs
- FileChangesMonitor.cs
- PackWebRequestFactory.cs
- WindowsBrush.cs
- PreviewPageInfo.cs
- DefaultMemberAttribute.cs
- TemplateEditingFrame.cs
- SoapInteropTypes.cs
- HttpModulesSection.cs
- bindurihelper.cs
- ThreadPool.cs
- Storyboard.cs
- JpegBitmapEncoder.cs
- mactripleDES.cs
- DataColumnCollection.cs
- SpellerError.cs
- RemotingException.cs
- ToolStripContainerActionList.cs
- SoapSchemaExporter.cs
- HighlightVisual.cs
- PropertyTabAttribute.cs
- WebServiceMethodData.cs
- BlurBitmapEffect.cs
- WorkflowServiceAttributes.cs
- BatchWriter.cs
- CodeMemberEvent.cs
- HTTPRemotingHandler.cs
- RotateTransform3D.cs
- XmlAttributeProperties.cs
- ConfigUtil.cs
- DataGridViewRowStateChangedEventArgs.cs
- TraceContextEventArgs.cs
- MatrixValueSerializer.cs
- OutOfProcStateClientManager.cs
- ViewStateException.cs
- PropVariant.cs
- SafeSystemMetrics.cs
- TrackingMemoryStreamFactory.cs
- NumberFormatInfo.cs
- FrameworkTemplate.cs
- LabelAutomationPeer.cs
- DecimalAnimation.cs
- DeviceContexts.cs
- ApplicationCommands.cs
- LinkedDataMemberFieldEditor.cs
- SQLDoubleStorage.cs
- BitmapFrameEncode.cs
- RegistryDataKey.cs
- ExpressionBuilderCollection.cs
- XmlParser.cs
- DataGridColumnCollectionEditor.cs
- DateTimeSerializationSection.cs
- safex509handles.cs
- HttpChannelHelper.cs
- MemoryPressure.cs
- CompilerCollection.cs
- RequestQueryProcessor.cs
- PermissionSetTriple.cs
- Label.cs
- Transactions.cs
- FilteredAttributeCollection.cs
- DataRecordInfo.cs
- WinInet.cs
- DiscoveryClientDocuments.cs
- ContractBase.cs