Exemplo n.º 1
0
        public static CParametreFonctionDynamique EditeParametreFonction(CParametreFonctionDynamique parametre)
        {
            if (parametre == null)
            {
                return(null);
            }
            CFormEditVariableFormule form = new CFormEditVariableFormule();

            if (parametre != null)
            {
                form.m_txtNom.Text      = parametre.Nom;
                form.m_txtType.Text     = DynamicClassAttribute.GetNomConvivial(parametre.TypeResultatExpression.TypeDotNetNatif);
                form.m_chkArray.Checked = parametre.TypeResultatExpression.IsArrayOfTypeNatif;
            }
            else
            {
                parametre = new CParametreFonctionDynamique();
            }
            form.m_parametre = parametre;
            CParametreFonctionDynamique retour = null;

            if (form.ShowDialog() == DialogResult.OK)
            {
                retour = form.m_parametre;
            }
            form.Dispose();
            return(retour);
        }
 //--------------------------------------------------------------------
 private void m_lnkRemoveVar_LinkClicked(object sender, EventArgs e)
 {
     if (m_wndListeParametres.SelectedItems.Count == 1)
     {
         ListViewItem item = m_wndListeParametres.SelectedItems[0];
         CParametreFonctionDynamique parametre = item.Tag as CParametreFonctionDynamique;
         if (parametre != null)
         {
             m_wndListeParametres.Items.Remove(item);
             UpdateParametres();
         }
     }
 }
        //--------------------------------------------------------------------
        private void AddVariable(Type typeVariable)
        {
            CParametreFonctionDynamique parametre = new CParametreFonctionDynamique();

            parametre.TypeResultatExpression = new CTypeResultatExpression(typeVariable, false);
            parametre = CFormEditVariableFormule.EditeParametreFonction(parametre);
            if (parametre != null)
            {
                ListViewItem item = new ListViewItem();
                FillItem(item, parametre);
                m_wndListeParametres.Items.Add(item);
                UpdateParametres();
            }
        }
        //--------------------------------------------------------------------
        private void UpdateParametres()
        {
            int nIndex = 0;
            List <CParametreFonctionDynamique> parametres = new List <CParametreFonctionDynamique>();

            foreach (ListViewItem item in m_wndListeParametres.Items)
            {
                CParametreFonctionDynamique parametre = item.Tag as CParametreFonctionDynamique;
                if (parametre != null)
                {
                    parametre.NumParametre = nIndex++;
                }
                parametres.Add(parametre);
            }
            m_fonction.Parametres = parametres;
            m_txtFormule.Init(m_fonction, m_objetPourSousProprietes);
        }
        //--------------------------------------------------------------------
        private void m_wndListeVariables_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            ListViewHitTestInfo info = m_wndListeParametres.HitTest(e.X, e.Y);

            if (info != null)
            {
                CParametreFonctionDynamique parametre = info.Item.Tag as CParametreFonctionDynamique;
                if (parametre != null)
                {
                    CParametreFonctionDynamique newParam = CFormEditVariableFormule.EditeParametreFonction(parametre);
                    if (newParam != null)
                    {
                        FillItem(info.Item, newParam);
                        UpdateParametres();
                    }
                }
            }
        }
 //--------------------------------------------------------------------
 private void FillItem(ListViewItem item, CParametreFonctionDynamique parametre)
 {
     item.Tag  = parametre;
     item.Text = parametre.Nom;
 }