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