File: StateMachineWorkflow.cs
Project: ndp\cdf\src\WF\Activities\System.Workflow.Activities.csproj (System.Workflow.Activities)
namespace System.Workflow.Activities
{
    using System;
    using System.Xml.Serialization;
    using System.ComponentModel;
    using System.ComponentModel.Design;
    using System.Collections;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Drawing.Design;
    using System.Reflection;
    using System.Workflow.ComponentModel;
    using System.Workflow.ComponentModel.Design;
    using System.ComponentModel.Design.Serialization;
    using System.Workflow.ComponentModel.Compiler;
 
    [SRDescription(SR.StateMachineWorkflowActivityDescription)]
    [Designer(typeof(StateMachineWorkflowDesigner), typeof(IRootDesigner))]
    [Designer(typeof(StateMachineWorkflowDesigner), typeof(IDesigner))]
    [ToolboxItem(false)]
    [ToolboxBitmap(typeof(StateMachineWorkflowActivity), "Resources.StateMachineWorkflowActivity.png")]
    [ActivityValidator(typeof(StateActivityValidator))]
    [SRCategory(SR.Standard)]
    [SRDisplayName(SR.StateMachineWorkflow)]
    [System.Runtime.InteropServices.ComVisible(false)]
    [Obsolete("The System.Workflow.* types are deprecated.  Instead, please use the new types from System.Activities.*")]
    public class StateMachineWorkflowActivity : StateActivity
    {
        internal const string InitialStateNamePropertyName = "InitialStateName";
        internal const string CompletedStateNamePropertyName = "CompletedStateName";
        public const string SetStateQueueName = "SetStateQueue";
 
        //metadata properties
        public static readonly DependencyProperty InitialStateNameProperty = DependencyProperty.Register(StateMachineWorkflowActivity.InitialStateNamePropertyName, typeof(string), typeof(StateMachineWorkflowActivity), new PropertyMetadata(DependencyPropertyOptions.Metadata));
        public static readonly DependencyProperty CompletedStateNameProperty = DependencyProperty.Register(StateMachineWorkflowActivity.CompletedStateNamePropertyName, typeof(string), typeof(StateMachineWorkflowActivity), new PropertyMetadata(DependencyPropertyOptions.Metadata));
 
        public StateMachineWorkflowActivity()
        {
        }
 
 
        public StateMachineWorkflowActivity(string name)
            : base(name)
        {
        }
 
        [SRDescription(SR.DynamicUpdateConditionDescr)]
        [SRCategory(SR.Conditions)]
        public ActivityCondition DynamicUpdateCondition
        {
            get
            {
                return WorkflowChanges.GetCondition(this) as ActivityCondition;
            }
            set
            {
                WorkflowChanges.SetCondition(this, value);
            }
        }
 
 
        [ValidationOption(ValidationOption.Optional)]
        [SRDescription(SR.InitialStateDescription)]
        [Editor(typeof(StateDropDownEditor), typeof(UITypeEditor))]
        [DefaultValue("")]
        public string InitialStateName
        {
            get
            {
                return (string)base.GetValue(InitialStateNameProperty);
            }
            set
            {
                base.SetValue(InitialStateNameProperty, value);
            }
        }
 
        [SRDescription(SR.CompletedStateDescription)]
        [Editor(typeof(StateDropDownEditor), typeof(UITypeEditor))]
        [DefaultValue("")]
        public string CompletedStateName
        {
            get
            {
                return (string)base.GetValue(CompletedStateNameProperty);
            }
            set
            {
                base.SetValue(CompletedStateNameProperty, value);
            }
        }
 
        [Browsable(false)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public string CurrentStateName
        {
            get
            {
                StateMachineExecutionState executionState = this.ExecutionState;
                if (executionState == null)
                    return null;
 
                return executionState.CurrentStateName;
            }
        }
 
        [Browsable(false)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public string PreviousStateName
        {
            get
            {
                StateMachineExecutionState executionState = this.ExecutionState;
                if (executionState == null)
                    return null;
 
                return executionState.PreviousStateName;
            }
        }
 
        internal StateMachineExecutionState ExecutionState
        {
            get
            {
                return (StateMachineExecutionState)base.GetValue(StateMachineExecutionStateProperty);
            }
        }
    }
}