private void ValidePanelFormules() { if (m_lastSymbolSel != null) { CParametreRepresentationElementDeSymbole parametre = new CParametreRepresentationElementDeSymbole(); parametre.ElementName = m_lastSymbolSel.Name; bool bHasFormules = false; foreach (Control ctrl in m_panelFormules.Controls) { CControlEditFormulePropriete ctrlFormule = ctrl as CControlEditFormulePropriete; if (ctrlFormule != null) { if (ctrlFormule.Propriete.Length > 0 && ctrlFormule.Formule != null) { parametre[ctrlFormule.Propriete] = ctrlFormule.Formule; bHasFormules = true; } } } if (bHasFormules) { m_parametre.AddParametre(parametre); } } }
//------------------------------------------ public void AddParametre(CParametreRepresentationElementDeSymbole parametre) { CParametreRepresentationElementDeSymbole oldParam = m_parametres.FirstOrDefault(p => p.ElementName == parametre.ElementName); if (oldParam != null) { m_parametres.Remove(oldParam); } m_parametres.Add(parametre); }
private void InitPanelFormules() { ValidePanelFormules(); m_lastSymbolSel = null; C2iSymbole objet = m_panelEditeurSymbole.ObjetSelectionne; m_panelFormules.SuspendDrawing(); foreach (Control ctrl in m_panelFormules.Controls) { CControlEditFormulePropriete ctrlFormule = ctrl as CControlEditFormulePropriete; if (ctrl != null) { ctrlFormule.Visible = false; ctrlFormule.Clear(); } } if (objet == null || objet.Name.Trim() == "") { m_panelFormules.ResumeDrawing(); return; } int nControle = 0; CParametreRepresentationElementDeSymbole parametreElement = m_parametre.Parametres.FirstOrDefault(p => p.ElementName == objet.Name); foreach (PropertyInfo propriete in objet.GetType().GetProperties()) { if (propriete.GetGetMethod() == null) { continue; } if (propriete.PropertyType != typeof(Color) && propriete.PropertyType != typeof(int) && propriete.PropertyType != typeof(string) && propriete.PropertyType != typeof(double) && propriete.PropertyType != typeof(bool)) { continue; } //Ne prend pas le propriétés non browsable object[] attrs = propriete.GetCustomAttributes(typeof(BrowsableAttribute), true); if (attrs.Length > 0) { BrowsableAttribute attr = (BrowsableAttribute)attrs[0]; if (!attr.Browsable) { continue; } } CControlEditFormulePropriete ctrlFormule = null; if (nControle >= m_listeControlesFormule.Count()) { ctrlFormule = new CControlEditFormulePropriete(); m_panelFormules.Controls.Add(ctrlFormule); ctrlFormule.Dock = DockStyle.Top; m_listeControlesFormule.Add(ctrlFormule); } else { ctrlFormule = m_listeControlesFormule[nControle]; } nControle++; C2iExpression formule = null; if (parametreElement != null) { formule = parametreElement[propriete.Name]; } ctrlFormule.Init(m_typeElements, propriete.Name, formule); ctrlFormule.Visible = true; ctrlFormule.BringToFront(); } m_panelFormules.ResumeDrawing(); m_lastSymbolSel = objet; }
//------------------------------------------ public void RemoveParametre(CParametreRepresentationElementDeSymbole parametre) { m_parametres.Remove(parametre); }