PolicyDesigner.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Designers / PolicyDesigner.cs / 1305376 / PolicyDesigner.cs

                            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.Rules;
using System.Globalization; 
using System.Windows.Forms.Design;
using System.Workflow.Activities.Rules.Design; 
using System.Windows.Forms; 
using System.Workflow.Activities.Common;
 
namespace System.Workflow.Activities
{
    [ActivityDesignerTheme(typeof(PolicyDesignerTheme))]
    internal sealed class PolicyDesigner: ActivityDesigner, IServiceProvider 
    {
        new public object GetService(Type type) 
        { 
            return base.GetService(type);
        } 

        protected override void DoDefaultAction()
        {
            base.DoDefaultAction(); 

            // Do not allow editing if in debug mode. 
            WorkflowDesignerLoader workflowDesignerLoader = this.GetService(typeof(WorkflowDesignerLoader)) as WorkflowDesignerLoader; 
            if (workflowDesignerLoader != null && workflowDesignerLoader.InDebugMode)
                throw new InvalidOperationException(Messages.DebugModeEditsDisallowed); 

            // Do not allow editing if locked
            PolicyActivity activity = (PolicyActivity)this.Activity;
            if (Helpers.IsActivityLocked(activity)) 
                return;
 
            RuleDefinitions rules = ConditionHelper.Load_Rules_DT(this, Helpers.GetRootActivity(activity)); 
            if (rules != null)
            { 
                RuleSetCollection ruleSetCollection = rules.RuleSets;
                RuleSetReference ruleSetReference = activity.RuleSetReference;
                RuleSet ruleSet = null;
                string ruleSetName = null; 
                if (ruleSetReference != null
                    && !string.IsNullOrEmpty(ruleSetReference.RuleSetName)) 
                { 
                    ruleSetName = ruleSetReference.RuleSetName;
                    if (ruleSetCollection.Contains(ruleSetName)) 
                    {
                        ruleSet = ruleSetCollection[ruleSetName];
                    }
                } 
                else
                { 
                    ruleSetName = ruleSetCollection.GenerateRuleSetName(); 
                }
                using (RuleSetDialog dlg = new RuleSetDialog(activity, ruleSet)) 
                {
                    if (DialogResult.OK == dlg.ShowDialog())
                    {
                        if (ruleSet != null) // modifying 
                        {
                            ruleSetCollection.Remove(ruleSetName); 
                        } 
                        else // creating
                        { 
                            dlg.RuleSet.Name = ruleSetName;
                            activity.RuleSetReference = new RuleSetReference(ruleSetName);
                        }
                        ruleSetCollection.Add(dlg.RuleSet); 
                        ConditionHelper.Flush_Rules_DT(this, Helpers.GetRootActivity(activity));
                    } 
                } 
            }
 
            // force revalidation by setting a property
            TypeDescriptor.GetProperties(activity)["RuleSetReference"].SetValue(activity, activity.RuleSetReference);
        }
    } 

 
    internal sealed class PolicyDesignerTheme : ActivityDesignerTheme 
    {
        public PolicyDesignerTheme(WorkflowTheme theme) 
            : base(theme)
        {
            this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00);
            this.BorderColor = Color.FromArgb(0xFF, 0x80, 0x80, 0x80); 
            this.BorderStyle = DashStyle.Solid;
            this.BackColorStart = Color.FromArgb(0xFF, 0xF4, 0xF4, 0xF4); 
            this.BackColorEnd = Color.FromArgb(0xFF, 0xC0, 0xC0, 0xC0); 
            this.BackgroundStyle = LinearGradientMode.Horizontal;
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
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.Rules;
using System.Globalization; 
using System.Windows.Forms.Design;
using System.Workflow.Activities.Rules.Design; 
using System.Windows.Forms; 
using System.Workflow.Activities.Common;
 
namespace System.Workflow.Activities
{
    [ActivityDesignerTheme(typeof(PolicyDesignerTheme))]
    internal sealed class PolicyDesigner: ActivityDesigner, IServiceProvider 
    {
        new public object GetService(Type type) 
        { 
            return base.GetService(type);
        } 

        protected override void DoDefaultAction()
        {
            base.DoDefaultAction(); 

            // Do not allow editing if in debug mode. 
            WorkflowDesignerLoader workflowDesignerLoader = this.GetService(typeof(WorkflowDesignerLoader)) as WorkflowDesignerLoader; 
            if (workflowDesignerLoader != null && workflowDesignerLoader.InDebugMode)
                throw new InvalidOperationException(Messages.DebugModeEditsDisallowed); 

            // Do not allow editing if locked
            PolicyActivity activity = (PolicyActivity)this.Activity;
            if (Helpers.IsActivityLocked(activity)) 
                return;
 
            RuleDefinitions rules = ConditionHelper.Load_Rules_DT(this, Helpers.GetRootActivity(activity)); 
            if (rules != null)
            { 
                RuleSetCollection ruleSetCollection = rules.RuleSets;
                RuleSetReference ruleSetReference = activity.RuleSetReference;
                RuleSet ruleSet = null;
                string ruleSetName = null; 
                if (ruleSetReference != null
                    && !string.IsNullOrEmpty(ruleSetReference.RuleSetName)) 
                { 
                    ruleSetName = ruleSetReference.RuleSetName;
                    if (ruleSetCollection.Contains(ruleSetName)) 
                    {
                        ruleSet = ruleSetCollection[ruleSetName];
                    }
                } 
                else
                { 
                    ruleSetName = ruleSetCollection.GenerateRuleSetName(); 
                }
                using (RuleSetDialog dlg = new RuleSetDialog(activity, ruleSet)) 
                {
                    if (DialogResult.OK == dlg.ShowDialog())
                    {
                        if (ruleSet != null) // modifying 
                        {
                            ruleSetCollection.Remove(ruleSetName); 
                        } 
                        else // creating
                        { 
                            dlg.RuleSet.Name = ruleSetName;
                            activity.RuleSetReference = new RuleSetReference(ruleSetName);
                        }
                        ruleSetCollection.Add(dlg.RuleSet); 
                        ConditionHelper.Flush_Rules_DT(this, Helpers.GetRootActivity(activity));
                    } 
                } 
            }
 
            // force revalidation by setting a property
            TypeDescriptor.GetProperties(activity)["RuleSetReference"].SetValue(activity, activity.RuleSetReference);
        }
    } 

 
    internal sealed class PolicyDesignerTheme : ActivityDesignerTheme 
    {
        public PolicyDesignerTheme(WorkflowTheme theme) 
            : base(theme)
        {
            this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00);
            this.BorderColor = Color.FromArgb(0xFF, 0x80, 0x80, 0x80); 
            this.BorderStyle = DashStyle.Solid;
            this.BackColorStart = Color.FromArgb(0xFF, 0xF4, 0xF4, 0xF4); 
            this.BackColorEnd = Color.FromArgb(0xFF, 0xC0, 0xC0, 0xC0); 
            this.BackgroundStyle = LinearGradientMode.Horizontal;
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK