Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / Workflow / Activities / ReceiveActivityDesigner.cs / 1305376 / ReceiveActivityDesigner.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Workflow.Activities { using System.Collections; using System.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Drawing; using System.Reflection; using System.Workflow.ComponentModel; using System.ComponentModel.Design; using System.Workflow.Activities.Design; using System.ServiceModel; using System.Workflow.ComponentModel.Compiler; using System.Windows.Forms; [ActivityDesignerTheme(typeof(ReceiveActivityDesignerTheme))] class ReceiveActivityDesigner : SequenceDesigner { static ActivityComparermatchByContractCallback; static ActivityComparer matchByOperationCallback; public override Size MinimumSize { get { return new Size(170, 80); } } public override string Text { get { if (this.ReceiveActivity.ServiceOperationInfo != null) { string operationName = this.ReceiveActivity.ServiceOperationInfo.Name; if (!String.IsNullOrEmpty(operationName)) { return operationName; } } return base.Text; } } protected override ActivityDesignerVerbCollection Verbs { get { ActivityDesignerVerbCollection verbs = new ActivityDesignerVerbCollection(); foreach (ActivityDesignerVerb verb in base.Verbs) { verbs.Add(verb); } ActivityDesignerVerb findSimilarOperationsVerb = new FindSimilarActivitiesVerb ( this, MatchByOperationCallback, SR2.GetString(SR2.ShowActivitiesWithSameOperation)); verbs.Add(findSimilarOperationsVerb); ActivityDesignerVerb findSimilarContractVerb = new FindSimilarActivitiesVerb ( this, MatchByContractCallback, SR2.GetString(SR2.ShowActivitiesWithSameContract)); verbs.Add(findSimilarContractVerb); return verbs; } } static ActivityComparer MatchByContractCallback { get { if (matchByContractCallback == null) { matchByContractCallback = new ActivityComparer (MatchByContract); } return matchByContractCallback; } } static ActivityComparer MatchByOperationCallback { get { if (matchByOperationCallback == null) { matchByOperationCallback = new ActivityComparer (MatchByOperation); } return matchByOperationCallback; } } ReceiveActivity ReceiveActivity { get { return this.Activity as ReceiveActivity; } } internal static bool MatchByContract(OperationInfoBase source, OperationInfoBase target) { if ((source == null) || (target == null)) { return false; } string sourceContract = source.GetContractFullName(null); string targetContract = target.GetContractFullName(null); return MatchNames(sourceContract, targetContract); } internal static bool MatchByOperation(OperationInfoBase source, OperationInfoBase target) { if (!MatchByContract(source, target)) { return false; } return MatchNames(source.Name, target.Name); } protected override void Initialize(Activity activity) { base.Initialize(activity); IExtenderListService extenderListService = (IExtenderListService) GetService(typeof(IExtenderListService)); if (extenderListService != null) { bool foundExtender = false; foreach (IExtenderProvider extenderProvider in extenderListService.GetExtenderProviders()) { if (extenderProvider.GetType() == typeof(WorkflowServiceAttributesPropertyProviderExtender)) { foundExtender = true; } } if (!foundExtender) { IExtenderProviderService extenderProviderService = (IExtenderProviderService) GetService(typeof(IExtenderProviderService)); if (extenderProviderService != null) { extenderProviderService.AddExtenderProvider(new WorkflowServiceAttributesPropertyProviderExtender()); } } } } protected override void OnActivityChanged(ActivityChangedEventArgs e) { base.OnActivityChanged(e); if (e.Member != null && e.Member.Name == ReceiveActivity.ServiceOperationInfoProperty.Name) { ReceiveActivity receiveActivity = e.Activity as ReceiveActivity; if (receiveActivity != null) { receiveActivity.ParameterBindings.Clear(); } TypeDescriptor.Refresh(e.Activity); PerformLayout(); } } protected override void OnMouseDoubleClick(System.Windows.Forms.MouseEventArgs e) { // Do not allow editing if activity is locked if (this.IsLocked) { return; } OperationInfoBase pickedServiceOperation = null; if (ServiceOperationUIEditor.TryPickOperation(this.Activity.Site, this.Activity, this.ReceiveActivity.ServiceOperationInfo, out pickedServiceOperation)) { PropertyDescriptorUtils.SetPropertyValue(this.Activity.Site, ServiceOperationHelpers.GetServiceOperationInfoPropertyDescriptor(this.Activity), this.Activity, pickedServiceOperation); } } protected override void OnPaint(ActivityDesignerPaintEventArgs e) { base.OnPaint(e); Rectangle incomingArrowRect = new Rectangle(this.Location.X - 2, this.Location.Y + 20, 24, 24); Rectangle outgoingArrowRect = new Rectangle(this.Location.X + 22, this.Location.Y + this.Size.Height - 45, -24, 24); e.Graphics.DrawImage(ImageResources.Arrow, incomingArrowRect); bool isOneWay = false; if (ReceiveActivity.ServiceOperationInfo != null) { // Refresh the referenced design time types in the serviceoperationInfo object properties; //ServiceOperationHelpers.RefreshReferencedDesignTimeTypes(this.Activity.Site as IServiceProvider, operation); isOneWay = this.ReceiveActivity.ServiceOperationInfo.GetIsOneWay(this.Activity.Site as IServiceProvider); } if (!isOneWay) { e.Graphics.DrawImage(ImageResources.Arrow, outgoingArrowRect); } } protected override void PreFilterProperties(IDictionary properties) { base.PreFilterProperties(properties); ReceiveActivity receiveActivity = this.Activity as ReceiveActivity; if (receiveActivity != null) { receiveActivity.GetParameterPropertyDescriptors(properties); } } static bool MatchByContract(ReceiveActivity source, ReceiveActivity target) { return MatchByContract(source.ServiceOperationInfo, target.ServiceOperationInfo); } static bool MatchByOperation(ReceiveActivity source, ReceiveActivity target) { return MatchByOperation(source.ServiceOperationInfo, target.ServiceOperationInfo); } static bool MatchNames(string sourceName, string targetName) { if (string.IsNullOrEmpty(sourceName) || string.IsNullOrEmpty(targetName)) { return false; } return (sourceName == targetName); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ViewManagerAttribute.cs
- EncryptedPackage.cs
- SmtpClient.cs
- UnsafeNativeMethods.cs
- ColorBlend.cs
- PerformanceCounterPermission.cs
- XsltException.cs
- ZipIOFileItemStream.cs
- StdValidatorsAndConverters.cs
- EventLogHandle.cs
- ListViewHitTestInfo.cs
- VectorAnimationBase.cs
- BindingExpressionUncommonField.cs
- CodeSubDirectory.cs
- objectresult_tresulttype.cs
- AccessControlList.cs
- ConfigurationValues.cs
- NullableLongSumAggregationOperator.cs
- ImageListDesigner.cs
- SByteStorage.cs
- CqlParserHelpers.cs
- WebReferencesBuildProvider.cs
- PartialCachingAttribute.cs
- ParameterToken.cs
- DebugView.cs
- PropertyEmitterBase.cs
- SessionStateItemCollection.cs
- ElapsedEventArgs.cs
- RuleInfoComparer.cs
- EntityViewGenerator.cs
- DebugManager.cs
- DataBindingHandlerAttribute.cs
- SafeHGlobalHandleCritical.cs
- Operand.cs
- Mapping.cs
- LinkLabelLinkClickedEvent.cs
- SqlDataReader.cs
- EntityModelSchemaGenerator.cs
- DataProviderNameConverter.cs
- CommentAction.cs
- XmlDataFileEditor.cs
- MailAddress.cs
- RectangleHotSpot.cs
- InstanceCollisionException.cs
- UInt16Converter.cs
- COM2PropertyBuilderUITypeEditor.cs
- DataControlField.cs
- MarshalDirectiveException.cs
- ToolCreatedEventArgs.cs
- BaseCAMarshaler.cs
- TableItemStyle.cs
- BoolLiteral.cs
- RealProxy.cs
- ArrayTypeMismatchException.cs
- HotCommands.cs
- ActivityBindForm.Designer.cs
- LinkedList.cs
- UserControl.cs
- TerminatorSinks.cs
- QueryOperationResponseOfT.cs
- XmlEventCache.cs
- DPCustomTypeDescriptor.cs
- DataSourceCacheDurationConverter.cs
- Internal.cs
- ArglessEventHandlerProxy.cs
- OperationCanceledException.cs
- MasterPageCodeDomTreeGenerator.cs
- ListControlConvertEventArgs.cs
- FunctionDetailsReader.cs
- Console.cs
- ResourceDescriptionAttribute.cs
- CompiledXpathExpr.cs
- MouseCaptureWithinProperty.cs
- PreviousTrackingServiceAttribute.cs
- EventItfInfo.cs
- ItemTypeToolStripMenuItem.cs
- BigInt.cs
- HostDesigntimeLicenseContext.cs
- BrowserCapabilitiesCodeGenerator.cs
- DbDataSourceEnumerator.cs
- KeyedHashAlgorithm.cs
- DebugController.cs
- StyleCollection.cs
- WorkflowInstance.cs
- SplitterEvent.cs
- HttpModuleActionCollection.cs
- CharEntityEncoderFallback.cs
- Brush.cs
- StringAnimationBase.cs
- Animatable.cs
- KeyValuePairs.cs
- ProfileSection.cs
- DataRowCollection.cs
- MatrixAnimationBase.cs
- TargetInvocationException.cs
- StrokeNodeOperations2.cs
- WindowsComboBox.cs
- PropertyDescriptorGridEntry.cs
- CompilationUnit.cs
- PropertyItemInternal.cs