//------------------------------------------------------------------------- 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); }
//------------------------------------------------------------------------------- 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()); }