//--------------------------------------
 public static void AddClasseUnite(IClasseUnite classe)
 {
     if (Instance.m_classes.FirstOrDefault(c => c.GlobalId == classe.GlobalId) == null)
     {
         Instance.m_classes.Add(classe);
     }
 }
        //--------------------------------------------------------
        private void m_btnOk_Click(object sender, EventArgs e)
        {
            IClasseUnite   classe = m_cmbClasse.SelectedValue as IClasseUnite;
            CResultAErreur result = CResultAErreur.True;

            if (classe == null)
            {
                result.EmpileErreur("Select a unity class|20073");
            }
            if (result)
            {
                m_unite.Classe          = classe;
                m_unite.Libelle         = m_txtLibellCourtUnite.Text;
                m_unite.LibelleLong     = m_txtLibelleLongUnite.Text;
                m_unite.GlobalId        = m_txtIdUnite.Text;
                m_unite.FacteurVersBase = m_txtFacteurConversion.DoubleValue.Value;
                m_unite.OffsetVersBase  = m_txtOffsetConversion.DoubleValue.Value;
                result = m_unite.CommitEdit();
            }
            if (!result)
            {
                CFormAlerte.Afficher(result.Erreur);
                return;
            }
            DialogResult = DialogResult.OK;
            Close();
        }
 private void DisplayClasse(IClasseUnite classe)
 {
     m_panelUnite.Visible       = false;
     m_panelClasse.Visible      = true;
     m_txtLibelleClasse.Text    = classe.Libelle;
     m_txtIdClasse.Text         = classe.GlobalId;
     m_txtUniteDeBase.Text      = classe.UniteBase;
     m_objetEdite               = classe;
     m_panelEditeClasse.Visible = classe is CClasseUniteInDb;
 }
        //------------------------------------------------------------
        private void RefreshFormule()
        {
            IClasseUnite classe = m_cmbClasse.SelectedValue as IClasseUnite;

            if (classe != null)
            {
                m_lblConversion.Text = 1 + m_txtLibellCourtUnite.Text + " = " +
                                       "A" + classe.Libelle + "+B";
                return;
            }
            m_lblConversion.Text = "";
        }
        //--------------------------------------
        public static IEnumerable <IUnite> GetUnites(IClasseUnite classe)
        {
            if (classe == null)
            {
                return(new IUnite[0]);
            }
            IEnumerable <IUnite> lst = from u in Instance.m_unites
                                       where
                                       u.Classe.GlobalId == classe.GlobalId
                                       select u;

            return(lst);
        }
Beispiel #6
0
 //------------------------------------
 public CUniteStandard(
     string strLibelleLong,
     string strLibelleCourt,
     string strId,
     IClasseUnite classe,
     double fFacteurVersBase,
     double fOffsetVersBase)
 {
     m_strLibelleLong   = strLibelleLong;
     m_strLibelleCourt  = strLibelleCourt;
     m_strId            = strId;
     m_strClasseUniteId = classe.GlobalId;
     m_fFacteurVersBase = fFacteurVersBase;
     m_fOffsetVersBase  = fOffsetVersBase;
 }
Beispiel #7
0
        //---------------------------------------------------------------------------
        private void m_menu_Opening(object sender, System.ComponentModel.CancelEventArgs e)
        {
            m_menuCouper.Enabled    = SelectionLength > 0;
            m_menuCopier.Enabled    = SelectionLength > 0;
            m_menuColler.Enabled    = Clipboard.GetData(DataFormats.Text) != null;
            m_menuSupprimer.Enabled = SelectionLength > 0;
            m_menuSelectAll.Enabled = Text.Length > 0;
            foreach (IDisposable dis in new ArrayList(m_menuConvertir.DropDownItems))
            {
                dis.Dispose();
            }
            m_menuConvertir.DropDownItems.Clear();
            IClasseUnite classe = null;

            if (UniteRacine != null)
            {
                classe = UniteRacine.Classe;
            }
            else
            {
                CValeurUnite v = this.UnitValue;
                if (v != null && v.Unite != null)
                {
                    IUnite uTmp = CGestionnaireUnites.GetUnite(v.Unite);
                    if (uTmp != null)
                    {
                        classe = uTmp.Classe;
                    }
                }
            }

            m_menuConvertir.Enabled = classe != null;


            if (classe != null && UnitValue != null)
            {
                foreach (IUnite unite in CGestionnaireUnites.GetUnites(classe))
                {
                    ToolStripMenuItem itemUnite = new ToolStripMenuItem(unite.LibelleLong);
                    itemUnite.Tag    = unite;
                    itemUnite.Click += new EventHandler(itemUnite_Click);
                    m_menuConvertir.DropDownItems.Add(itemUnite);
                }
                ToolStripTextBox box = new ToolStripTextBox();
                m_menuConvertir.DropDownItems.Add(box);
                box.KeyDown += new KeyEventHandler(formatBox_KeyDown);
            }
        }
        //------------------------------------------------------------
        private void RefreshLibelleFormule()
        {
            IUnite unite = m_objetEdite as IUnite;

            if (unite != null)
            {
                IClasseUnite classe = unite.Classe;
                if (classe != null)
                {
                    m_lblConversion.Text = 1 + m_txtLibellCourtUnite.Text + " = " +
                                           "A" + classe.Libelle + "+B";
                    return;
                }
            }
            m_lblConversion.Text = "";
        }
        private void m_arbreUnits_AfterSelect(object sender, TreeViewEventArgs e)
        {
            IClasseUnite classe = e.Node.Tag as IClasseUnite;

            if (classe != null)
            {
                DisplayClasse(classe);
                return;
            }
            IUnite unite = e.Node.Tag as IUnite;

            if (unite != null)
            {
                DisplayUnite(unite);
                return;
            }
            m_panelClasse.Visible = false;
            m_panelUnite.Visible  = false;
        }
Beispiel #10
0
        /// //////////////////////////////////////////////////////
        private void m_btnOk_Click(object sender, System.EventArgs e)
        {
            if (m_cmbType.SelectedItem == null || !(m_cmbType.SelectedItem is CTypeChampBasique))
            {
                CFormAlerte.Afficher(I.T("Enter a data type|20027"), EFormAlerteType.Exclamation);
                return;
            }

            //Vérifie que toutes les données sont bien du type
            CTypeChampBasique typeDonnees = (CTypeChampBasique)m_cmbType.SelectedItem;


            if (typeDonnees.Code == ETypeChampBasique.Decimal)
            {
                IClasseUnite classe = m_cmbSelectClasseUnite.SelectedValue as IClasseUnite;
                m_variable.ClasseUnite          = classe;
                m_variable.FormatAffichageUnite = m_txtFormatUnite.Text;
            }
            else
            {
                m_variable.ClasseUnite          = null;
                m_variable.FormatAffichageUnite = "";
            }


            m_variable.Nom = m_txtNomVariable.Text.Replace(" ", "_").Trim();
            m_variable.TypeChampBasique = (CTypeChampBasique)m_cmbType.SelectedItem;

            if (m_txtValeurDefaut.Formule == null)
            {
                if (!m_txtValeurDefaut.ResultAnalyse)
                {
                    CFormAlerte.Afficher(m_txtValeurDefaut.ResultAnalyse.Erreur);
                    return;
                }
            }

            m_variable.FormuleValeurDefaut = m_txtValeurDefaut.Formule;
            m_elementAVariables.OnChangeVariable(m_variable);
            DialogResult = DialogResult.OK;
            Close();
        }
 //--------------------------------------
 public static void RemoveClasse(IClasseUnite classe)
 {
     Instance.m_classes.Remove(classe);
 }
Beispiel #12
0
        /// //////////////////////////////////////////////////////
        private void m_btnOk_Click(object sender, System.EventArgs e)
        {
            if (m_cmbType.SelectedItem == null || !(m_cmbType.SelectedItem is C2iTypeDonnee))
            {
                CFormAlerte.Afficher(I.T("Enter a data type|30023"), EFormAlerteType.Exclamation);
                return;
            }
            C2iExpression expression = GetExpression();

            if (expression == null)
            {
                return;
            }

            DataTable table = (DataTable)m_gridValeurs.DataSource;
            //Vérifie que toutes les données sont bien du type
            C2iTypeDonnee typeDonnees = (C2iTypeDonnee)m_cmbType.SelectedItem;
            ArrayList     lstValeurs  = new ArrayList();

            foreach (DataRow row in new ArrayList(table.Rows))
            {
                if (!typeDonnees.IsDuBonType(typeDonnees.ObjectToType(row[c_strColValeurStockee], null)))
                {
                    CFormAlerte.Afficher(I.T("The value @1 is not from type @2|30023", row[c_strColValeurStockee].ToString(), typeDonnees.Libelle), EFormAlerteType.Erreur);
                    return;
                }
                object val = typeDonnees.StringToType(row[c_strColValeurStockee].ToString(), null);
                lstValeurs.Add(new CValeurVariableDynamiqueSaisie(val, (string)row[c_strColValeurAffichee]));
            }

            if (typeDonnees.TypeDonnee == TypeDonnee.tDouble)
            {
                IClasseUnite classe = m_cmbSelectClasseUnite.SelectedValue as IClasseUnite;
                m_variable.ClasseUnite          = classe;
                m_variable.FormatAffichageUnite = m_txtFormatUnite.Text;
            }
            else
            {
                m_variable.ClasseUnite          = null;
                m_variable.FormatAffichageUnite = "";
            }


            m_variable.Nom          = m_txtNomVariable.Text.Replace(" ", "_").Trim();
            m_variable.TypeDonnee2i = (C2iTypeDonnee)m_cmbType.SelectedItem;

            m_variable.ExpressionValidation = expression;
            m_variable.DescriptionFormat    = m_txtDescriptionFormat.Text;
            m_variable.Valeurs.Clear();
            foreach (CValeurVariableDynamiqueSaisie valeur in lstValeurs)
            {
                m_variable.Valeurs.Add(valeur);
            }

            if (m_txtValeurParDefaut.Text.Trim() == "")
            {
                m_variable.ExpressionValeurParDefaut = null;
            }
            else
            {
                CContexteAnalyse2iExpression ctxAnalyse = new CContexteAnalyse2iExpression(new CFournisseurPropDynStd(), null);
                CResultAErreur resultExp = new CAnalyseurSyntaxiqueExpression(ctxAnalyse).AnalyseChaine(m_txtValeurParDefaut.Text);
                if (!resultExp)
                {
                    resultExp.EmpileErreur(I.T("Error in default value formula|30024"));
                    CFormAlerte.Afficher(resultExp);
                    return;
                }
                m_variable.ExpressionValeurParDefaut = (C2iExpression)resultExp.Data;
            }

            m_elementAVariables.OnChangeVariable(m_variable);
            DialogResult = DialogResult.OK;
            Close();
        }
Beispiel #13
0
        //------------------------------------
        //Se débrouille pour que les éléments qui ont la même classe d'unité travaillent dans
        //la même unité
        public static string GetUniteHarmonisee(string strUniteReference, string strUniteAHarmoniser)
        {
            string[]         strComposantsRef         = Developpe(strUniteReference);
            string[]         strComposantsAHarmoniser = Developpe(strUniteAHarmoniser);
            List <string>    lstAHarmoniser           = new List <string>(strComposantsAHarmoniser);
            List <string>    lstFinale     = new List <string>();
            HashSet <string> classesFaites = new HashSet <string>();
            HashSet <int>    setFaits      = new HashSet <int>();

            foreach (string strCompoRef in strComposantsRef)
            {
                string strRef = strCompoRef;
                if (strRef[0] == '/')
                {
                    strRef = strRef.Substring(1);
                }
                IUnite u1 = CGestionnaireUnites.GetUnite(strRef);
                if (u1 == null)
                {
                    return(strUniteAHarmoniser);
                }
                IClasseUnite classe = u1.Classe;
                if (!classesFaites.Contains(classe.GlobalId))
                {
                    classesFaites.Add(classe.GlobalId);
                    for (int n = 0; n < lstAHarmoniser.Count; n++)
                    {
                        if (!setFaits.Contains(n))
                        {
                            string strHar   = lstAHarmoniser[n];
                            bool   bDiviser = false;
                            if (strHar[0] == '/')
                            {
                                bDiviser = true;
                                strHar   = strHar.Substring(1);
                            }
                            IUnite u2 = CGestionnaireUnites.GetUnite(strHar);
                            if (u2 == null)
                            {
                                return(strUniteAHarmoniser);
                            }
                            if (u2.Classe.GlobalId == u1.Classe.GlobalId)
                            {
                                setFaits.Add(n);
                                if (strHar != strRef)
                                {
                                    string strTmp = strRef;
                                    if (bDiviser)
                                    {
                                        strTmp = "/" + strRef;
                                    }
                                    lstAHarmoniser[n] = strTmp;
                                }
                            }
                        }
                    }
                }
            }
            StringBuilder bl = new StringBuilder();

            foreach (string strCompo in lstAHarmoniser)
            {
                if (bl.Length > 0 && strCompo[0] != '/')
                {
                    bl.Append('.');
                }
                bl.Append(strCompo);
            }
            return(bl.ToString());
        }
Beispiel #14
0
        //------------------------------------
        /// <summary>
        /// Décompose une valeur simple dans les unités de l'unité.
        /// Par exemple, 65 min décomposé en h min donne 1h5min
        /// </summary>
        /// <param name="strUnitesAUtiliser"></param>
        /// <returns></returns>
        public string GetStringDecomposeeValeurSimple(params string[] strUnitesAUtiliser)
        {
            List <string> strUnitesCorrigées = new List <string>();

            foreach (string strUnite in strUnitesAUtiliser)
            {
                if (strUnite.Length > 0)
                {
                    strUnitesCorrigées.Add(strUnite.Trim());
                }
            }
            IUnite unite = CGestionnaireUnites.GetUnite(Unite);

            if (unite == null)
            {
                return(null);
            }
            IClasseUnite classe = unite.Classe;

            if (classe == null)
            {
                return(null);
            }
            List <double?> lstVals         = new List <double?>();
            double         fValeurRestante = ConvertToBase();
            StringBuilder  bl = new StringBuilder();

            CValeurUnite valeurTmp = new CValeurUnite(Math.Abs(fValeurRestante), classe.UniteBase);

            for (int nUnite = 0; nUnite < strUnitesCorrigées.Count; nUnite++)
            {
                string strUnite = strUnitesCorrigées[nUnite];
                string strLib   = strUnite;
                IUnite u        = CGestionnaireUnites.GetUnite(strUnite);
                if (u != null)
                {
                    strLib = u.LibelleCourt;
                }
                valeurTmp = valeurTmp.ConvertTo(strUnite);

                int nVal = (int)valeurTmp.Valeur;
                if (nUnite < strUnitesCorrigées.Count - 1)
                {
                    valeurTmp = valeurTmp - (double)nVal;
                    if (nVal > 0)
                    {
                        bl.Append(nVal + strLib + " ");
                    }
                    if (valeurTmp.Valeur == 0)
                    {
                        break;
                    }
                }
                else
                {
                    if (valeurTmp.Valeur != 0)
                    {
                        bl.Append(Math.Round(valeurTmp.Valeur, 5).ToString() + strLib);
                    }
                }
            }
            if (Valeur < 0)
            {
                bl.Insert(0, "-");
            }
            return(bl.ToString());
        }