예제 #1
0
 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);
         }
     }
 }
예제 #2
0
        //------------------------------------------
        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);
        }
예제 #3
0
        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;
        }
예제 #4
0
 //------------------------------------------
 public void RemoveParametre(CParametreRepresentationElementDeSymbole parametre)
 {
     m_parametres.Remove(parametre);
 }