Example #1
0
        void menuNumero_Click(object sender, EventArgs e)
        {
            CMenuNumero numero = sender as CMenuNumero;

            if (m_sourceLienParametre != null && m_destLienParametre != null && numero != null)
            {
                m_destLienParametre.SetExterne(numero.Numero, m_sourceLienParametre);
                OnChangeFormules();
            }
            m_sourceLienParametre = null;
            m_destLienParametre   = null;
        }
Example #2
0
        public void menu_Click(object sender, EventArgs e)
        {
            CMenuNumero menu = sender as CMenuNumero;

            if (menu != null)
            {
                if (m_sourceLienParametre != null && m_destLienParametre != null)
                {
                    m_sourceLienParametre.SetExterne(menu.Numero, m_destLienParametre);
                    OnChangeFormules();
                }
            }
        }
Example #3
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 #4
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();
     }
 }