public void InitChamps(CActionSur2iLink action, CObjetPourSousProprietes objetPourSousProprietes)
        {
            m_actionEditee = action as CActionSur2iLinkMenuDeroulant;
            if (m_actionEditee == null)
            {
                Visible = false;
                return;
            }
            m_objetPourSousProprietes = objetPourSousProprietes;
            Visible = true;


            InitPanelDetailItem(null);

            m_wndListeMenuItems.Remplir(m_actionEditee.ListeMenuItems);
        }
        //---------------------------------------------------------------------------
        public CResultAErreur ExecuteAction(CActionSur2iLinkMenuDeroulant actionMenu, object sender, object objetCible)
        {
            CResultAErreur result = CResultAErreur.True;

            List <ToolStripItem> listeItems = new List <ToolStripItem>();

            foreach (IMenuItem item in actionMenu.ListeMenuItems)
            {
                bool bAdd = true;
                if (item.FormuleCondition != null)
                {
                    CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetCible);
                    result = item.FormuleCondition.Eval(ctx);
                    if (result && !CUtilBool.BoolFromObject(result.Data))
                    {
                        bAdd = false;
                    }
                }
                if (bAdd)
                {
                    IExecuteurSpecifiqueActionMenuItem executeurSpecifique = null;
                    if (m_dicTypeActionExecuteur.TryGetValue(item.GetType(), out executeurSpecifique))
                    {
                        listeItems.AddRange(executeurSpecifique.GetItemsForContextMenuStrip(item, sender, objetCible));
                    }
                }
            }
            ContextMenuStrip menuDeroulant = new ContextMenuStrip();

            menuDeroulant.Items.Clear();
            menuDeroulant.Items.AddRange(listeItems.ToArray());
            if (menuDeroulant.Items.Count > 0)
            {
                /*if (sender != null)
                 *  menuDeroulant.Show((Control)sender, new Point(0, ((Control)sender).Height));
                 * else*/
                menuDeroulant.Show(Cursor.Position);
            }
            result.Data = listeItems.ToArray();
            return(result);
        }
        /// /////////////////////////////////////////////////////////////////////////////////////
        private static CResultAErreur ExecuteActionMenuDeroulant(CActionSur2iLinkMenuDeroulant actionMenu, object sender, object objetCible)
        {
            CExecuteurActionSur2iLinkMenuDeroulant executeur = new CExecuteurActionSur2iLinkMenuDeroulant();

            return(executeur.ExecuteAction(actionMenu, sender, objetCible));
        }