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