SOLIDWORKS PDM Professional API Help

Create a Task that Finds Files in Workflow States Example (C#)

This example shows how to create a task add-in that finds files that have been in specified workflow states a specified number of days.

//--------------------------------------------------------------------------------------
// Preconditions:
//  1. Start Microsoft Visual Studio.
//  2. Click File > New > Project > Visual C# > Class Library (.NET Framework).

//  3. Select .NET Framework 4.5 or later in the dropdown.

//  4. Click Browse and navigate to the folder where to create the project.
//  5. Type StateAgeTask_CSharp in Name.

//  6. Click OK.
//  7. Right-click the project in the Solution Explorer and click Add > User Control.
//  8. In the Add New Item dialog, keep the default name and click Add.
//  9. Click Show all Files in the Solution Explorer toolbar and expand UserControl1.vb.

// 10. Replace the code in Class1.cs with this code.
// 11. Replace the code in UserControl1.Designer.cs with this code.
// 12. Replace the code in UserControl1.cs with this code.

// 13. Right-click the project name in the Solution Explorer and click Add Reference
// 14. In the Add Reference dialog:   

//     a. Add the SOLIDWORKS PDM Professional interop assembly as a reference (click Browse in the
//        left-side panel, click EPDM.Interop.epdm.dll
//        and click OK).
//     b. Add System.Windows.Forms as a reference (click Assemblies > Framework in the
//        left-side panel, click System.Windows.Forms, and click OK).

//     c. Click Close.
// 15. Right-click the project name in the Solution Explorer and click Properties.
// 16. In the Properties window:
//     a. On the Application tab, click Assembly Information.
//     b. De-select Make assembly COM-Visible.
//     c. On the Build tab, select Any CPU, de-select Prefer 32-bit, and select Register for COM interop.
// 17. Save the project.
// 18.
To populate the GUID attribute, click Tools > Create GUID in the IDE,
//     select GUID Format 5, click Copy, and click Exit. Replace [
Guid(""), ...]
//     with the copied string.

// 19. Click Build > Build Solution.

//
// Postconditions:
//  1. Open the SOLIDWORKS PDM Professional Administration tool, expand a vault_name node, 
//     and log in as Admin.
//  2. Under vault_name, right-click Add-ins and click New Add-in.
//     a. Navigate to the bin\Debug directory of your built project.
//     b. Click EPDM.Interop.epdm.dll and StateAgeTask_CSharp.dll.
//     c. Click Open.
//     d. Click OK.
//  3. Click OK after reading the SOLIDWORKS PDM Professional warning dialog.
//  4. In the taskbar notification area:
//     a. Click the SOLIDWORKS PDM icon.
//     b. Click Task Host Configuration.
//     c. Select vault_name in the File Vault dropdown.
//     d. Select Permit next to the add-in you just installed.
//     e. Click OK.
//  5. In the Administration tool under vault_name, right-click Tasks and click New Task.
//  6. In the New Task dialog:

//     a. Type State Age Task in the upper-left text box.
//     b. Select the C# Workflow State Age Task Add-in from the Add-in dropdown.
//     c. Click Next.
//     d. On the Execution Method properties page, select the local computer.
//     e. Click Next.
//     f. On the Scheduling properties page, select This task is not scheduled.
//     g. Click Next.
//     h. On the Choose states to check page, select the file search criteria in:
//        1. Choose Workflow.
//        2. Select States.
//        3. Number of Days in State.
//     i. Click Next.

//     j. On the Permissions property page, select Admin.
//     k. Click Next.
//     l. On the Success Notification property page:
//        1. Select Notify the user who launched the task.
//        2. In the Subject field, type Success.
//        3. In the Text field, type The task successfully completed at, type a space, 
//           click >, and click Current Time.
//     m. Click OK to close the New Task dialog.
//  7. Expand vault_name > Tasks and double-click Task List.
//  8. Click Add Task
//  9. In the Add Task dialog:
//     a. Select State Age Task from the dropdown.
//     b. Click OK.
// 10. The task appears in the Pending tasks list. Observe the task status.
// 11. When the task completes, the task moves to the Completed tasks
//     list. After a minute or so, the logged-in user receives a notification with the 
//     list of files that have
been in the specified workflow states a specified
//     number of days.

//---------------------------------------------------------------------------------------


Back to top
 

//Class1.cs


using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using EPDM.Interop.epdm;
using System.Runtime.InteropServices;
using System.Windows.Forms;


namespace StateAgeTask_CSharp
{
    [Guid(""), ComVisible(true)] 
    public class Class1 : IEdmAddIn5
    {
 
        SetupPage SetupPageObj;
        public void GetAddInInfo(ref EdmAddInInfo poInfo, IEdmVault5 poVault, IEdmCmdMgr5 poCmdMgr)
        {
 
            try
            {
                poInfo.mbsAddInName = "C# Workflow State Age Task Add-In";
                poInfo.mbsCompany = "Dassault Systemes";
                poInfo.mbsDescription = "Example demonstrates a task that finds files that have been in selected workflow states a selected number of days";
                poInfo.mlAddInVersion = 1;
                //Minimum SOLIDWORKS PDM Professional version
                //needed for Tasks is 10.0
                poInfo.mlRequiredVersionMajor = 10;
                poInfo.mlRequiredVersionMinor = 0;
 
                //Register to call OnCmd on task-related events
                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetup);
                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskSetupButton);
                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskRun);
                poCmdMgr.AddHook(EdmCmdType.EdmCmd_TaskDetails);
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        public void OnCmd(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
 
            try
            {
                switch (poCmd.meCmdType)
                {
 
                    //Called from the Administration tool when
                    //the user selects this task add-in from the
                    //drop-down list and whenever this task is
                    //subsequently edited in the Administration tool
                    case EdmCmdType.EdmCmd_TaskSetup:
                        OnTaskSetup(ref poCmd, ref ppoData);
 
                        break;
                    //Sent when the user clicks OK or
                    //Cancel in the task property dialog box
                    case EdmCmdType.EdmCmd_TaskSetupButton:
                        OnTaskSetupButton(ref poCmd, ref ppoData);
 
                        break;
                    //Called when an instance of the
                    //task is run
                    case EdmCmdType.EdmCmd_TaskRun:
                        OnTaskRun(ref poCmd, ref ppoData);
 
                        break;
                    //Called from the Task List in the
                    //Administration tool when the task details
                    //dialog is displayed
                    case EdmCmdType.EdmCmd_TaskDetails:
                        OnTaskDetails(ref poCmd, ref ppoData);
                        break;
                }
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
 
        }
 
        private void OnTaskSetup(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                IEdmTaskProperties props = (IEdmTaskProperties)poCmd.mpoExtra;
                if ((props != null))
                {
                    //Set the task properties
                    props.TaskFlags = (int)EdmTaskFlag.EdmTask_SupportsScheduling + (int)EdmTaskFlag.EdmTask_SupportsDetails;
 
                    SetupPageObj = new SetupPage((IEdmVault7)poCmd.mpoVault, props);
                    //Force immediate creation of the control
                    //and its handle
                    SetupPageObj.CreateControl();
                    SetupPageObj.LoadData(poCmd);
 
                    EdmTaskSetupPage[] pages = new EdmTaskSetupPage[1];
                    //Page name that appears in the
                    //navigation pane of the Add Task dialog
                    //in the Administration tool
                    pages[0].mbsPageName = "Choose states to check";
                    pages[0].mlPageHwnd = SetupPageObj.Handle.ToInt32();
                    pages[0].mpoPageImpl = SetupPageObj;
 
                    props.SetSetupPages(pages);
 
                }
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void OnTaskSetupButton(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                //Custom setup page, SetupPageObj, is created
                //in method Class1::OnTaskSetup; SetupPage::StoreData 
                //saves the contents of the list box to poCmd.mpoExtra 
                //in the IEdmTaskProperties interface
                if (poCmd.mbsComment == "OK" & (SetupPageObj != null))
                {
                    SetupPageObj.StoreData();
                }
                SetupPageObj = null;
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void OnTaskRun(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                IEdmTaskInstance TaskInstance = default(IEdmTaskInstance);
                TaskInstance = (IEdmTaskInstance)poCmd.mpoExtra;
                if ((TaskInstance != null))
                {
                    TaskInstance.SetStatus(EdmTaskStatus.EdmTaskStat_Running);
                    TaskInstance.SetProgressRange(100, 0, "Task is running.");
 
                    string NoDays = null;
                    NoDays = (string)TaskInstance.GetValEx("NoDaysVar");
 
                    string States = "";
                    States = (string)TaskInstance.GetValEx("SelectedStatesVar");
 
                    List<EdmSelItem2> Items = new List<EdmSelItem2>();
 
                    DoSearch((IEdmVault11)poCmd.mpoVault, States, NoDays, Items);
 
                    EdmSelItem2[] NotificationArray = new EdmSelItem2[Items.Count];
 
                    Items.CopyTo(NotificationArray);
 
                    string ProgresssMsg = null;
                    if ((Items.Count > 0))
                    {
                        ProgresssMsg = "Found " + Items.Count.ToString() + " files.";
                    }
                    else
                    {
                        ProgresssMsg = ("No files found.");
                    }
 
                    TaskInstance.SetProgressPos(100, ProgresssMsg);
                    TaskInstance.SetStatus(EdmTaskStatus.EdmTaskStat_DoneOK, 0, "", NotificationArray, ProgresssMsg);
                }
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + " " + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        public void DoSearch(IEdmVault11 Vault, string States, string Days, List<EdmSelItem2> Items)
        {
            try
            {
                //Calculate age to use for search 
                DateTime dt = DateTime.Today;
                int DaysInt = Convert.ToInt32(Days) - 1;
                TimeSpan ts = new TimeSpan(DaysInt, 0, 0, 0);
                dt = dt.Subtract(ts);
 
                //Split States into an array of
                //State strings
                string[] StatesObj = States.Split(new string[] { "\\n" }, StringSplitOptions.None);
                //Search each selected state for aged files
                foreach (string State in StatesObj)
                {
                    //Skip empty strings
                    if (string.IsNullOrEmpty(State.Trim()))
                    {
                        continue;
                    }
 
                    IEdmSearch6 Search = (IEdmSearch6)Vault.CreateSearch();
                    if (Search == null)
                        return;
 
                    Search.FindFiles = true;
                    Search.SetToken(EdmSearchToken.Edmstok_AllVersions, true);
                    Search.SetToken(EdmSearchToken.Edmstok_StateBefore, dt);
                    Search.SetToken(EdmSearchToken.Edmstok_StateName, State);
 
                    IEdmSearchResult5 SearchResult = Search.GetFirstResult();
                    while ((SearchResult != null))
                    {
                        EdmSelItem2 SelItem = new EdmSelItem2();
                        SelItem.mlID = SearchResult.ID;
                        SelItem.mlParentID = SearchResult.ParentFolderID;
                        SelItem.meType = SearchResult.ObjectType;
                        SelItem.mlVersion = SearchResult.Version;
 
                        Items.Add(SelItem);
                        SearchResult = Search.GetNextResult();
                    }
                }
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        private void OnTaskDetails(ref EdmCmd poCmd, ref EdmCmdData[] ppoData)
        {
            try
            {
                IEdmTaskInstance TaskInstance = (IEdmTaskInstance)poCmd.mpoExtra;
                if ((TaskInstance != null))
                {
                    SetupPageObj = new SetupPage((IEdmVault7)poCmd.mpoVault, TaskInstance);
                    //Force immediate creation of the control
                    //and its handle
                    SetupPageObj.CreateControl();
                    SetupPageObj.LoadData(poCmd);
                    SetupPageObj.DisableControls();
                    poCmd.mbsComment = "State Age Details";
                    poCmd.mlParentWnd = SetupPageObj.Handle.ToInt32();
                }
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
    }
}

Back to top

//UserControl1.cs


using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Windows.Forms;
using EPDM.Interop.epdm;
namespace StateAgeTask_CSharp
{
    // Setup page used in the task setup and task details dialogs must be a System.Windows.Forms.UserControl
    public partial class SetupPage
    {
 
        private IEdmVault7 mVault;
        private IEdmTaskProperties mTaskProps;
        private IEdmTaskInstance mTaskInst;
        // Constructor called from task setup
        public SetupPage(IEdmVault7 Vault, IEdmTaskProperties Props)
        {
            try
            {
                InitializeComponent();
                mVault = Vault;
                mTaskProps = Props;
                mTaskInst = null;
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X")  + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        // Constructor called from task details
        public SetupPage(IEdmVault7 Vault, IEdmTaskInstance Props)
        {
            try
            {
                InitializeComponent();
                mVault = Vault;
                mTaskProps = null;
                mTaskInst = Props;
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        public void LoadData(EdmCmd poCmd)
        {
            try
            {
                //Add the names of the available workflows
                //to WorkflowsComboBox
                WorkflowsComboBox.Items.Clear();
                IEdmWorkflowMgr6 WorkflowMgr = default(IEdmWorkflowMgr6);
                WorkflowMgr = (IEdmWorkflowMgr6)mVault.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr);
                IEdmPos5 WorkflowPos = WorkflowMgr.GetFirstWorkflowPosition();
                while (!WorkflowPos.IsNull)
                {
                    IEdmWorkflow6 Workflow = default(IEdmWorkflow6);
                    Workflow = WorkflowMgr.GetNextWorkflow(WorkflowPos);
                    WorkflowsComboBox.Items.Add(Workflow.Name);
                }
 
                string SelectedWorkflow = "";
                string NoDays = "";
                if ((mTaskProps != null))
                {
                    //Retrieve the name of the workflow that was
                    //selected by the user
                    SelectedWorkflow = (string)mTaskProps.GetValEx("SelectedWorkflowVar");
                    //Retrieve the number of days in a state
                    //before sending a message
                    NoDays = (string)mTaskProps.GetValEx("NoDaysVar");
                }
                else if ((mTaskInst != null))
                {
                    //Retrieve the name of the workflow that
                    //was selected by the user
                    SelectedWorkflow = (string)mTaskInst.GetValEx("SelectedWorkflowVar");
                    //Retrieve the number of days in a state
                    //before sending a message
                    NoDays = (string)mTaskInst.GetValEx("NoDaysVar");
                }
 
                //Select the workflow to display in
                //WorkflowsComboBox; setting this also
                //causes SetupPage::WorkflowsComboBox_SelectedIndexChanged
                //to be called to fill StatesListBox 
                //with the available states for this workflow
                if (string.IsNullOrEmpty(SelectedWorkflow))
                {
                    WorkflowsComboBox.SelectedIndex = 0;
                }
                else
                {
                    WorkflowsComboBox.Text = SelectedWorkflow;
                }
 
                
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X")  + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        public void StoreData()
        {
            try
            {
                //Add the selected states to StatesList
                string StatesList = "";
                foreach (int SelectedStateIndex in StatesListBox.SelectedIndices)
                {
                    StatesList += StatesListBox.Items[SelectedStateIndex] + "";
                }
                //Save the states selected by the user
                mTaskProps.SetValEx("SelectedStatesVar", StatesList);
                //Save the workflow selected by the user
                mTaskProps.SetValEx("SelectedWorkflowVar", WorkflowsComboBox.Text);
                //Save the number of days selected by the user
                mTaskProps.SetValEx("NoDaysVar", DaysNumericUpDown.Value.ToString());
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X") + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
 
        private void WorkflowsComboBox_SelectedIndexChanged(System.Object sender, System.EventArgs e)
        {
            try
            {
                //Find the IEdmWorkflow corresponding to the
                //selected workflow name
                IEdmWorkflowMgr6 WorkflowMgr = default(IEdmWorkflowMgr6);
                WorkflowMgr = (IEdmWorkflowMgr6)mVault.CreateUtility(EdmUtility.EdmUtil_WorkflowMgr);
                IEdmPos5 WorkflowPos = WorkflowMgr.GetFirstWorkflowPosition();
                IEdmWorkflow6 Workflow = null;
                IEdmWorkflow6 SelectedWorkflow = null;
                while (!WorkflowPos.IsNull)
                {
                    Workflow = WorkflowMgr.GetNextWorkflow(WorkflowPos);
                    if (Workflow.Name == WorkflowsComboBox.Text)
                    {
                        SelectedWorkflow = Workflow;
                        break
                    }
                }
                
                //Add the names of the available states for the
                //selected workflow to StatesListBox
                StatesListBox.Items.Clear();
                if (SelectedWorkflow != null)
                {
                    IEdmPos5 StatePos = SelectedWorkflow.GetFirstStatePosition();
                    while (!(StatePos.IsNull))
                    {
                        IEdmState6 State = default(IEdmState6);
                        State = SelectedWorkflow.GetNextState(StatePos);
                        StatesListBox.Items.Add(State.Name);
                        
                    }
                   
                }
 
                string SelectedStates = "";
                if ((mTaskProps != null))
                {
                    SelectedStates = (string)mTaskProps.GetValEx("SelectedStatesVar");
                }
                else if ((mTaskInst != null))
                {
                    SelectedStates = (string)mTaskInst.GetValEx("SelectedStatesVar");
                }
 
                string[] States = SelectedStates.Split(new string[] { "\\n" }, StringSplitOptions.None);
                foreach (string State in States)
                {
                    if (!string.IsNullOrEmpty(State.Trim()))
                    {
                        StatesListBox.SelectedItems.Add(State);
                    }
                }
 
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X")  + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
        public void DisableControls()
        {
            try
            {
                WorkflowsComboBox.Enabled = false;
                StatesListBox.Enabled = false;
                DaysNumericUpDown.Enabled = false;
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                MessageBox.Show("HRESULT = 0x" + ex.ErrorCode.ToString("X")  + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 
    }
}

Back to top

//UserControl1.Designer.cs


namespace StateAgeTask_CSharp
{
    
    partial class SetupPage : System.Windows.Forms.UserControl
    {
 
        //UserControl overrides dispose to clean up the component list.
        [System.Diagnostics.DebuggerNonUserCode()]
        protected override void Dispose(bool disposing)
        {
            try
            {
                if (disposing && components != null)
                {
                    components.Dispose();
                }
            }
            finally
            {
                base.Dispose(disposing);
            }
        }
 
 //Required by the Windows Form Designer
 
        private System.ComponentModel.IContainer components;
        //NOTE: The following procedure is required by the Windows Form Designer
        //It can be modified using the Windows Form Designer.  
        //Do not modify it using the code editor.
        [System.Diagnostics.DebuggerStepThrough()]
        private void InitializeComponent()
        {
            this.StatesListBox = new System.Windows.Forms.ListBox();
            this.WorkflowsComboBox = new System.Windows.Forms.ComboBox();
            this.WorkflowLabel = new System.Windows.Forms.Label();
            this.StatesLabel = new System.Windows.Forms.Label();
            this.DaysLabel = new System.Windows.Forms.Label();
            this.DaysNumericUpDown = new System.Windows.Forms.NumericUpDown();
            ((System.ComponentModel.ISupportInitialize)(this.DaysNumericUpDown)).BeginInit();
            this.SuspendLayout();
            // 
            // StatesListBox
            // 
            this.StatesListBox.FormattingEnabled = true;
            this.StatesListBox.Location = new System.Drawing.Point(19, 97);
            this.StatesListBox.Margin = new System.Windows.Forms.Padding(2);
            this.StatesListBox.Name = "StatesListBox";
            this.StatesListBox.SelectionMode = System.Windows.Forms.SelectionMode.MultiExtended;
            this.StatesListBox.Size = new System.Drawing.Size(124, 108);
            this.StatesListBox.TabIndex = 0;
            
            // 
            // WorkflowsComboBox
            // 
            this.WorkflowsComboBox.FormattingEnabled = true;
            this.WorkflowsComboBox.Location = new System.Drawing.Point(19, 35);
            this.WorkflowsComboBox.Margin = new System.Windows.Forms.Padding(2);
            this.WorkflowsComboBox.Name = "WorkflowsComboBox";
            this.WorkflowsComboBox.Size = new System.Drawing.Size(124, 21);
            this.WorkflowsComboBox.TabIndex = 1;
            this.WorkflowsComboBox.SelectedIndexChanged += new System.EventHandler(this.WorkflowsComboBox_SelectedIndexChanged);
            // 
            // WorkflowLabel
            // 
            this.WorkflowLabel.AutoSize = true;
            this.WorkflowLabel.Location = new System.Drawing.Point(20, 12);
            this.WorkflowLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.WorkflowLabel.Name = "WorkflowLabel";
            this.WorkflowLabel.Size = new System.Drawing.Size(91, 13);
            this.WorkflowLabel.TabIndex = 2;
            this.WorkflowLabel.Text = "Choose Workflow";
            // 
            // StatesLabel
            // 
            this.StatesLabel.AutoSize = true;
            this.StatesLabel.Location = new System.Drawing.Point(20, 72);
            this.StatesLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.StatesLabel.Name = "StatesLabel";
            this.StatesLabel.Size = new System.Drawing.Size(76, 13);
            this.StatesLabel.TabIndex = 3;
            this.StatesLabel.Text = "Select State(s)";
            // 
            // DaysLabel
            // 
            this.DaysLabel.AutoSize = true;
            this.DaysLabel.Location = new System.Drawing.Point(20, 223);
            this.DaysLabel.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.DaysLabel.Name = "DaysLabel";
            this.DaysLabel.Size = new System.Drawing.Size(122, 13);
            this.DaysLabel.TabIndex = 4;
            this.DaysLabel.Text = "Number of Days in State";
            // 
            // DaysNumericUpDown
            // 
            this.DaysNumericUpDown.Location = new System.Drawing.Point(22, 247);
            this.DaysNumericUpDown.Margin = new System.Windows.Forms.Padding(2);
            this.DaysNumericUpDown.Name = "DaysNumericUpDown";
            this.DaysNumericUpDown.Size = new System.Drawing.Size(119, 20);
            this.DaysNumericUpDown.TabIndex = 5;
            // 
            // SetupPage
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.DaysNumericUpDown);
            this.Controls.Add(this.DaysLabel);
            this.Controls.Add(this.StatesLabel);
            this.Controls.Add(this.WorkflowLabel);
            this.Controls.Add(this.WorkflowsComboBox);
            this.Controls.Add(this.StatesListBox);
            this.Margin = new System.Windows.Forms.Padding(2);
            this.Name = "SetupPage";
            this.Size = new System.Drawing.Size(162, 278);
            ((System.ComponentModel.ISupportInitialize)(this.DaysNumericUpDown)).EndInit();
            this.ResumeLayout(false);
            this.PerformLayout();
 
        }
        private System.Windows.Forms.ListBox StatesListBox;
        private System.Windows.Forms.ComboBox WorkflowsComboBox;
        private System.Windows.Forms.Label WorkflowLabel;
        private System.Windows.Forms.Label StatesLabel;
        private System.Windows.Forms.Label DaysLabel;
 
        private System.Windows.Forms.NumericUpDown DaysNumericUpDown;
    }
}

Back to top