public ChangeLifeCycleForm(long currentLifeCycleDefId, long currentLifeCycleStateId, VDF.Vault.Currency.Connections.Connection connection)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            LifeCycleService lifecycleSvc = connection.WebServiceManager.LifeCycleService;

            // get all of the life cycle definitions
            LfCycDef[] definitions = lifecycleSvc.GetAllLifeCycleDefinitions();
            Dictionary <long, LfCycDef> lifeCycleMap = new Dictionary <long, LfCycDef>();

            // put the life cycle definitions into a hashtable for easy lookup
            foreach (LfCycDef definition in definitions)
            {
                lifeCycleMap[definition.Id] = definition;
            }

            LfCycDef currentLifeCycleDef = lifeCycleMap[currentLifeCycleDefId];

            // list each life cycle that the current Item can move to
            foreach (LfCycTrans lifeCycleTrans in currentLifeCycleDef.TransArray)
            {
                LfCycState state = currentLifeCycleDef.StateArray.FirstOrDefault(lfState => lfState.Id == lifeCycleTrans.ToId);
                if (state != null)
                {
                    m_lifeCycleListBox.Items.Add(new ListLifeCycle(state));
                }
            }
        }