public void Init(
            CRepresentationExpressionGraphique expressionGraphique,
            int nNumeroParametre,
            IFournisseurProprietesDynamiques fournisseur,
            CObjetPourSousProprietes objetAnalyse)
        {
            m_fournisseur          = fournisseur;
            m_bIsInitializing      = true;
            m_lblNomParametre.Text = I.T("Parametre @1|20000)", (nNumeroParametre + 1).ToString());
            C2iExpressionAnalysable expAn = expressionGraphique.Formule as C2iExpressionAnalysable;

            if (expAn != null)
            {
                CInfo2iExpression info = expAn.GetInfos();
                m_lblNomParametre.Text = info.GetNomParametre(nNumeroParametre);
                m_toolTip.SetToolTip(m_lblNomParametre, m_lblNomParametre.Text);
            }
            m_expressionGraphique = expressionGraphique;
            m_nNumParametre       = nNumeroParametre;
            m_txtFormule.Init(fournisseur, objetAnalyse);
            CRepresentationExpressionGraphique graf = expressionGraphique.GetExterne(m_nNumParametre);

            if (graf != null)
            {
                m_chkVisible.Checked = true;
            }
            else
            {
                m_chkVisible.Checked = false;
            }
            UpdateWindow();
            m_bIsInitializing = false;
        }
 public CMenuNewFormule(C2iExpressionAnalysable formule)
 {
     if (formule != null)
     {
         Formule = formule;
         CInfo2iExpression info = formule.GetInfos();
         Text        = info.Texte;
         ToolTipText = info.Description;
     }
 }
Example #3
0
        private void m_arbreFormules_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
        {
            TreeNode node = m_arbreFormules.SelectedNode;

            if (node == null || node.Tag == null)
            {
                return;
            }
            C2iExpressionAnalysable exp = (C2iExpressionAnalysable)node.Tag;

            SetInfos(exp.GetInfos().Description.Replace("\\n", Environment.NewLine));
        }
        //-------------------------------------------------
        public void AssureMenuAddFormule()
        {
            if (m_menuAddFormule.Items.Count != 0)
            {
                return;
            }
            Dictionary <string, ToolStripMenuItem> dicRubriques = new Dictionary <string, ToolStripMenuItem>();

            foreach (IExpression expression in CAllocateur2iExpression.ToutesExpressions)
            {
                C2iExpressionAnalysable expAn = expression as C2iExpressionAnalysable;
                if (expAn != null)
                {
                    CInfo2iExpression info = expAn.GetInfos();
                    if (info.Categorie.Length > 0 && info.Texte.Length > 0)
                    {
                        ToolStripMenuItem menuRubrique = null;
                        if (!dicRubriques.TryGetValue(info.Categorie, out menuRubrique))
                        {
                            menuRubrique = new ToolStripMenuItem(info.Categorie);
                            dicRubriques[info.Categorie] = menuRubrique;
                        }
                        CMenuNewFormule menuFormule = new CMenuNewFormule(expAn);
                        menuRubrique.DropDownItems.Add(menuFormule);
                        menuFormule.MouseDown += new MouseEventHandler(menuFormule_MouseDown);
                    }
                }
            }
            List <ToolStripMenuItem> lst = new List <ToolStripMenuItem>(dicRubriques.Values);

            lst.Sort((m1, m2) => m1.Text.CompareTo(m2.Text));
            m_menuAddFormule.Items.AddRange(lst.ToArray());
            foreach (ToolStripMenuItem item in lst)
            {
                List <ToolStripMenuItem> childs = new List <ToolStripMenuItem>();
                foreach (ToolStripMenuItem c in item.DropDownItems)
                {
                    childs.Add(c);
                }
                childs.Sort((m1, m2) => m1.Text.CompareTo(m2.Text));
                item.DropDownItems.Clear();
                item.DropDownItems.AddRange(childs.ToArray());
            }
        }
Example #5
0
        public void Init(CRepresentationExpressionGraphique exp, IFournisseurProprietesDynamiques fournisseur,
                         CObjetPourSousProprietes objetAnalyse)
        {
            m_fournisseur  = fournisseur;
            m_objetAnalyse = objetAnalyse;
            m_panelControls.SuspendDrawing();
            try
            {
                m_bIsInitialising  = true;
                m_expressionEditee = exp;

                m_txtFormule.Init(fournisseur, objetAnalyse);

                m_txtFormule.Formule = exp.Formule;


                foreach (Control ctrl in m_panelControls.Controls)
                {
                    CEditeurParametreFormule editeur = ctrl as CEditeurParametreFormule;
                    if (editeur != null && !m_reserve.Contains(editeur))
                    {
                        editeur.Visible = false;
                        m_reserve.Add(editeur);
                    }
                }
                if (exp.Formule == null)
                {
                    m_panelControls.Visible = false;
                    return;
                }
                m_panelControls.Visible = true;


                C2iExpressionAnalysable formule = exp.Formule as C2iExpressionAnalysable;
                if (formule != null)
                {
                    int nNbParametres      = 0;
                    CInfo2iExpression info = formule.GetInfos();
                    foreach (CInfo2iDefinitionParametres par in info.InfosParametres)
                    {
                        nNbParametres = Math.Max(par.TypesDonnees.Length, nNbParametres);
                    }
                    for (int nParam = 0; nParam < nNbParametres; nParam++)
                    {
                        CEditeurParametreFormule editeur = null;
                        editeur      = GetNewEditeur();
                        editeur.Dock = DockStyle.Top;
                        editeur.BringToFront();
                        editeur.Init(exp, nParam, fournisseur, objetAnalyse);
                        editeur.Visible = true;
                    }
                }
                else
                {
                    int nParam = 0;
                    foreach (C2iExpression f in exp.Formule.Parametres2i)
                    {
                        CEditeurParametreFormule editeur = null;
                        editeur      = GetNewEditeur();
                        editeur.Dock = DockStyle.Top;
                        editeur.BringToFront();
                        editeur.Init(exp, nParam, fournisseur, objetAnalyse);
                        editeur.Visible = true;
                        nParam++;
                    }
                }
            }
            catch { }
            finally
            {
                m_bIsInitialising = false;
                m_panelControls.ResumeDrawing();
            }
            RecalcObjetsAnalyse();
        }
Example #6
0
        private void ShowInterfaceLienParametre(
            CRepresentationExpressionGraphique source,
            CRepresentationExpressionGraphique dest)
        {
            Dictionary <int, CMenuNumero> dicMenus = new Dictionary <int, CMenuNumero>();

            if (source == null || dest == null)
            {
                return;
            }
            if (m_menuNumeroParametre.Items.Count == 0)
            {
                //Création initiale des sous menus
                for (int n = 0; n < 20; n++)
                {
                    CMenuNumero menu = new CMenuNumero(n.ToString(), n);
                    m_menuNumeroParametre.Items.Add(menu);
                    menu.Click += new EventHandler(menuNumero_Click);
                }
            }
            foreach (ToolStripMenuItem item in m_menuNumeroParametre.Items)
            {
                CMenuNumero num = item as CMenuNumero;
                if (num != null)
                {
                    dicMenus[num.Numero] = num;
                }
            }

            C2iExpressionAnalysable expAn = dest.Formule == null ? null : dest.Formule as C2iExpressionAnalysable;

            if (expAn != null)
            {
                CInfo2iExpression info = null;
                info = expAn.GetInfos();
                CInfo2iDefinitionParametres[] infosParams = info.InfosParametres;
                for (int n = 0; n < 20; n++)
                {
                    string strNom = info.GetNomParametre(n);
                    if (strNom.Trim() == "")
                    {
                        dicMenus[n].Visible = false;
                    }
                    else
                    {
                        dicMenus[n].Visible = true;
                        dicMenus[n].Text    = strNom;
                    }
                }

                sc2i.expression.C2iExpression[] parametres = dest.Formule.Parametres2i;
                foreach (ToolStripMenuItem item in m_menuNumeroParametre.Items)
                {
                    int nPos = item.Text.IndexOf('(');
                    if (nPos > 0)
                    {
                        item.Text = item.Text.Substring(0, nPos).Trim();
                    }
                    CMenuNumero numero = item as CMenuNumero;
                    if (numero != null)
                    {
                        if (numero.Numero < parametres.Length)
                        {
                            sc2i.expression.C2iExpression exp = parametres[numero.Numero];
                            if (exp != null)
                            {
                                item.Text += " (" + exp.GetString() + ")";
                            }
                        }
                    }
                }
                m_sourceLienParametre = source;
                m_destLienParametre   = dest;
                m_menuNumeroParametre.Show(Cursor.Position);
            }
        }
Example #7
0
 //-----------------------------------------------------------------
 public override void OnMouseUpNonStandard(object sender, MouseEventArgs e)
 {
     if ((ModeSourisCustom == EModeSourisCustom.LienSequence || ModeSourisCustom == EModeSourisCustom.LienParametre) && e.Button == MouseButtons.Left)
     {
         Point ptLogique = GetLogicalPointFromDisplay(new Point(e.X, e.Y));
         CRepresentationExpressionGraphique dest = ObjetEdite.SelectionnerElementDuDessus(ptLogique) as CRepresentationExpressionGraphique;
         if (dest != null && dest != m_expressionStartJoin)
         {
             if (dest != null)
             {
                 bool bTraite = false;
                 if (ModeSourisCustom == EModeSourisCustom.LienSequence)
                 {
                     foreach (ToolStripMenuItem item in new ArrayList(m_menuSortieSequence.Items))
                     {
                         if (item != m_menuNext)
                         {
                             m_menuSortieSequence.Items.Remove(item);
                             item.Dispose();
                         }
                     }
                     C2iExpressionAnalysable expAn = m_expressionStartJoin.Formule as C2iExpressionAnalysable;
                     if (expAn != null)
                     {
                         CInfo2iExpression info = expAn.GetInfos();
                         if (info.InfosParametres.Count() == 1)
                         {
                             CInfo2iDefinitionParametres defs = info.InfosParametres[0];
                             int nNum = 0;
                             foreach (CInfoUnParametreExpression par in defs.InfosParametres)
                             {
                                 if (par.IsSortieSequence)
                                 {
                                     CMenuNumero menu = new CMenuNumero(par.NomParametre, nNum);
                                     m_menuSortieSequence.Items.Add(menu);
                                     menu.Click += new EventHandler(menu_Click);
                                     if (ModifierKeys == Keys.Control)
                                     {
                                         if (m_expressionStartJoin.GetExterne(nNum) == dest)
                                         {
                                             m_expressionStartJoin.SetExterne(nNum, null);
                                             bTraite = true;
                                         }
                                     }
                                 }
                                 nNum++;
                             }
                         }
                     }
                     if (!bTraite)
                     {
                         if (ModifierKeys == Keys.Control)
                         {
                             m_expressionStartJoin.Next = null;
                         }
                         else
                         {
                             if (m_menuSortieSequence.Items.Count != 1)
                             {
                                 ShowInterfaceLienAction(m_expressionStartJoin, dest);
                             }
                             else
                             {
                                 m_expressionStartJoin.Next = dest;
                             }
                         }
                     }
                 }
                 else if (ModeSourisCustom == EModeSourisCustom.LienParametre)
                 {
                     if (ModifierKeys == Keys.Control)
                     {
                         dest.StopUseExterne(m_expressionStartJoin);
                     }
                     else
                     {
                         ShowInterfaceLienParametre(m_expressionStartJoin, dest);
                     }
                 }
             }
         }
         m_expressionStartJoin = null;
         OnChangeFormules();
     }
 }
Example #8
0
        ///////////////////////////////////////////////////////////////////////////
        private void InsereElement()
        {
            if (m_tab.SelectedTab == m_tabFonctions)
            {
                TreeNode node = m_arbreFormules.SelectedNode;
                if (node == null || node.Tag == null)
                {
                    return;
                }
                C2iExpressionAnalysable       exp   = (C2iExpressionAnalysable)node.Tag;
                CInfo2iDefinitionParametres[] infos = exp.GetInfos().InfosParametres;
                CInfo2iExpression             info  = exp.GetInfos();
                string strEnvoi = info.Texte;
                int    nPos     = strEnvoi.Length;
                if (info.Niveau == 0 && !typeof(C2iExpressionConstanteDynamique).IsAssignableFrom(exp.GetType()))
                {
                    strEnvoi += " ( ";
                    if (infos.Length != 0)
                    {
                        for (int n = 1; n < infos[0].TypesDonnees.Length; n++)
                        {
                            strEnvoi += "; ";
                        }
                    }
                    strEnvoi += ")";
                    nPos     += 3;
                }
                OnSendCommande(strEnvoi, nPos);
            }
            else
            {
                TreeView arbre = null;
                if (m_tab.SelectedTab == m_tabChamps)
                {
                    arbre = m_arbreChamps;
                }
                else
                {
                    arbre = m_arbreTypes;
                }

                TreeNode node = arbre.SelectedNode;
                if (node == null)
                {
                    return;
                }
                if (node.Tag is Type)
                {
                    string strText = "\"" + node.Text + "\"";
                    OnSendCommande(strText, strText.Length);
                    return;
                }
                if (!(node.Tag is CDefinitionProprieteDynamique))
                {
                    return;
                }
                string strChemin = "";
                while (node != null)
                {
                    string strTexte = node.Text;
                    if (node.Tag is CDefinitionProprieteDynamique)
                    {
                        CDefinitionProprieteDynamique def = (CDefinitionProprieteDynamique)node.Tag;
                        if (m_bSendIdChamps)
                        {
                            strTexte = def.Nom;
                        }
                        if (arbre == m_arbreChamps && !(def is CDefinitionMethodeDynamique) && !(def is CDefinitionFonctionDynamique))
                        {
                            strChemin = "[" + strTexte + "]." + strChemin;
                        }
                        else
                        {
                            strChemin = strTexte + "." + strChemin;
                        }
                    }
                    if (m_chkNomsComplets.Checked)
                    {
                        node = node.Parent;
                    }
                    else
                    {
                        node = null;
                    }
                }
                if (strChemin.Length > 0)
                {
                    strChemin = strChemin.Substring(0, strChemin.Length - 1);
                }
                int nPos = strChemin.Length;
                OnSendCommande(strChemin, nPos);
            }
        }