//-------------------------------------------------------------------------
        private ToolStripMenuItem CreateMenu(CActionMenuItemListeDynamique menuListe, object objetCible)
        {
            ToolStripMenuItem menuItem = null;

            if (menuListe.FormuleItemLibelle != null && menuListe.Action != null)
            {
                CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetCible);
                CResultAErreur result             = menuListe.FormuleItemLibelle.Eval(ctx);
                if (result && result.Data != null)
                {
                    menuItem        = new ToolStripMenuItem(result.Data.ToString());
                    menuItem.Tag    = new CCoupleActionObjet(menuListe.Action, objetCible);
                    menuItem.Click += new EventHandler(menuItem_Click);
                }
            }
            return(menuItem);
        }
Exemple #2
0
        //-------------------------------------------------------------------------------
        public void InitChamps(IMenuItem menuItem, CObjetPourSousProprietes objetPourSousProprietes)
        {
            CActionMenuItemListeDynamique actionItem = menuItem as CActionMenuItemListeDynamique;

            if (actionItem == null)
            {
                Visible = false;
                m_actionMenuItemListeDynamique = null;
                return;
            }
            m_actionMenuItemListeDynamique = actionItem;

            Visible = true;
            m_objetPourSousProprietes  = objetPourSousProprietes;
            m_txtMenuItemLabel.Text    = actionItem.Libelle;
            m_numMenuItemSort.IntValue = actionItem.NumeroOrdre;
            m_wndFormuleCondition.Init(new CFournisseurGeneriqueProprietesDynamiques(), objetPourSousProprietes);
            m_wndFormuleCondition.Formule = actionItem.FormuleCondition;
            m_txtFormuleListeSource.Init(new CFournisseurGeneriqueProprietesDynamiques(), objetPourSousProprietes);
            m_txtFormuleListeSource.Formule = actionItem.FormuleListeSource;
            InitFormuleLibelleItem();
            m_txtFormuleItemLibelle.Formule = actionItem.FormuleItemLibelle;
            m_imageLinkOk.Visible           = actionItem.Action != null;
        }
        //--------------------------------------------------------------------------------------------------------------------------------------
        public ToolStripItem[] GetItemsForContextMenuStrip(IMenuItem menuItem, object sender, object objetCible)
        {
            List <ToolStripItem>          lstRetour = new List <ToolStripItem>();
            CActionMenuItemListeDynamique menu      = menuItem as CActionMenuItemListeDynamique;

            if (menu != null && menu.FormuleListeSource != null &&
                menu.FormuleItemLibelle != null)
            {
                CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetCible);
                CResultAErreur result             = menu.FormuleListeSource.Eval(ctx);
                if (result)
                {
                    object valeur = result.Data;
                    if (valeur is IEnumerable)
                    {
                        foreach (object obj in (IEnumerable)valeur)
                        {
                            ToolStripMenuItem newMenuItem = CreateMenu(menu, GetObjetPourItem(objetCible, obj));
                            if (newMenuItem != null)
                            {
                                lstRetour.Add(newMenuItem);
                            }
                        }
                    }
                    else if (valeur != null)
                    {
                        ToolStripMenuItem newMenuItem = CreateMenu(menu, GetObjetPourItem(objetCible, valeur));
                        if (newMenuItem != null)
                        {
                            lstRetour.Add(newMenuItem);
                        }
                    }
                }
            }
            return(lstRetour.ToArray());
        }