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