1 using System; 2 using System.Collections; 3 using System.Collections.Generic; 4 using System.Reflection; 5 using System.Runtime.Serialization; 6 using System.ComponentModel; 7 using System.ComponentModel.Design; 8 using System.Workflow.ComponentModel; 9 using System.Workflow.ComponentModel.Design; 10 using System.Workflow.ComponentModel.Compiler; 11 using System.Windows.Forms.Design; 12 using System.Security.Permissions; 13 using System.Drawing; 14 using System.Drawing.Design; 15 using System.Drawing.Drawing2D; 16 using System.Windows.Forms; 17 18 namespace System.Workflow.Activities 19 { 20 [ActivityDesignerTheme(typeof(WebServiceResponseDesignerTheme))] 21 internal sealed class WebServiceResponseDesigner : ActivityDesigner 22 { 23 #region Properties and Methods PreFilterProperties(IDictionary properties)24 protected override void PreFilterProperties(IDictionary properties) 25 { 26 base.PreFilterProperties(properties); 27 28 ITypeProvider typeProvider = (ITypeProvider)GetService(typeof(ITypeProvider)); 29 if (typeProvider == null) 30 throw new InvalidOperationException(SR.GetString(SR.General_MissingService, typeof(ITypeProvider).FullName)); 31 32 WebServiceOutputActivity webServiceResponse = this.Activity as WebServiceOutputActivity; 33 webServiceResponse.GetParameterPropertyDescriptors(properties); 34 } 35 OnActivityChanged(ActivityChangedEventArgs e)36 protected override void OnActivityChanged(ActivityChangedEventArgs e) 37 { 38 base.OnActivityChanged(e); 39 40 if (e.Member != null) 41 { 42 // If the receive activity id changed, clear out parameters. 43 if (e.Member.Name == "InputActivityName") 44 { 45 (e.Activity as WebServiceOutputActivity).ParameterBindings.Clear(); 46 TypeDescriptor.Refresh(e.Activity); 47 } 48 } 49 } 50 #endregion 51 } 52 #region WebServiceResponseDesignerTheme 53 internal sealed class WebServiceResponseDesignerTheme : ActivityDesignerTheme 54 { WebServiceResponseDesignerTheme(WorkflowTheme theme)55 public WebServiceResponseDesignerTheme(WorkflowTheme theme) 56 : base(theme) 57 { 58 this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00); 59 this.BorderColor = Color.FromArgb(0xFF, 0x94, 0xB6, 0xF7); 60 this.BorderStyle = DashStyle.Solid; 61 this.BackColorStart = Color.FromArgb(0xFF, 0xFF, 0xFF, 0xDF); 62 this.BackColorEnd = Color.FromArgb(0xFF, 0xA5, 0xC3, 0xF7); 63 this.BackgroundStyle = LinearGradientMode.Horizontal; 64 } 65 } 66 #endregion 67 } 68