//------------------------------------------------ public void Init(IObjetAFilsACoordonnees parent, IObjetACoordonnees fils) { m_parent = parent; if (parent != null) { EOptionControleCoordonnees?option = parent.OptionsControleCoordonneesApplique; if (option == null) { option = COptionCoordonnéeGlobale.GetOptionType(fils.ContexteDonnee.IdSession, parent.GetType()); } if (!SObjetAvecFilsAvecCoordonnees.IsAppliquable(option.Value, fils)) { LockEdition = true; } else { LockEdition = !m_gestionnaireModeEdition.ModeEdition; } } m_fils = fils; m_strCoorBase = fils.CoordonneeParente; if (m_strCoorBase.Length > 0) { m_strCoorBase += CSystemeCoordonnees.c_separateurNumerotations; } m_txtDebut.Text = m_strCoorBase; m_txtDebut.LockEdition = true; m_txtBoxCoordonnee.Text = fils.Coordonnee; VerifieDonnees(); }
//------------------------------------------------ private void InitToolTip() { string strAide = ""; if (m_releveEqpt != null) { IObjetAFilsACoordonnees parent = m_releveEqpt.ConteneurFilsACoordonnees; if (parent != null && parent.ParametrageCoordonneesApplique != null) { CParametrageSystemeCoordonnees parametrage = parent.ParametrageCoordonneesApplique; if (parametrage != null) { strAide = parametrage.SystemeCoordonnees.Libelle; List <CParametrageNiveau> lst = new List <CParametrageNiveau>(); foreach (CParametrageNiveau parametrageNiveau in parametrage.RelationParametragesNiveau) { lst.Add(parametrageNiveau); } lst.Sort(new CParametrageNiveauPositionComparer()); foreach (CParametrageNiveau param in lst) { strAide += "\r\n-" + param.Libelle + " (" + param.FormatNumerotation.Libelle + ")"; } m_tooltip.SetToolTip(this, strAide); m_tooltip.Show(strAide, this, new Point(0, Height), 3000); return; } } } m_tooltip.SetToolTip(this, ""); }
//--------------------------------------------- public CResultAErreur VerifieCoordonnee() { IObjetAFilsACoordonnees parent = ConteneurFilsACoordonnees; if (parent != null) { return(parent.IsCoordonneeValide(Coordonnee, this)); } return(CResultAErreur.True); }
//---------------------------------------------------------------------------- public static CResultAErreur VerifieDonnees(IObjetAFilsACoordonnees objet) { CParametrageSystemeCoordonnees parametrage = objet.ParametrageCoordonneesApplique; if (parametrage != null) { return(parametrage.IsModifValide()); } return(CResultAErreur.True); }
//------------------------------------------------------- public CResultAErreur VerifieCoordonnee(string strCoord) { CResultAErreur result = CResultAErreur.True; IObjetAFilsACoordonnees parent = ReleveEquipementParent != null ? (IObjetAFilsACoordonnees)ReleveEquipementParent.Equipement : (IObjetAFilsACoordonnees)ReleveSite.Site; if (parent != null) { return(parent.IsCoordonneeValide(strCoord, Equipement)); } return(result); }
public static CResultAErreur VerifieCoordonneesFils(IObjetAFilsACoordonnees parent) { CResultAErreur result = CResultAErreur.True; foreach (IObjetACoordonnees fils in parent.FilsACoordonnees) { result = VerifieCoordonneeFils(parent, fils, fils.Coordonnee); if (!result) { result.EmpileErreur(I.T("Element '@1' doesn't respect the Coordinate constrainte|255", fils.DescriptionElement)); return(result); } } return(result); }
//--------------------------------------- public virtual bool PlaceFilsACoordonnées(IObjetACoordonnees fils) { IObjetAFilsACoordonnees parent = fils.ConteneurFilsACoordonnees; if (parent == null) { return(false); } CParametrageSystemeCoordonnees paramCoord = parent.ParametrageCoordonneesApplique; if (paramCoord == null) { return(false); } CNiveauCoordonnee[] niveaux = paramCoord.DecodeCoordonnee(fils.Coordonnee); return(PlaceFilsACoordonnées(fils, niveaux)); }
//---------------------------------------------------------------------------- public static CResultAErreur TraitementAvantSauvegarde(IObjetAFilsACoordonnees objet) { CResultAErreur result = CResultAErreur.True; if (((CObjetDonnee)objet).Row.RowState == DataRowState.Deleted) { return(result); } CObjetDonnee objDonnee = (CObjetDonnee)objet; DataRow row = objDonnee.Row; if (row.RowState == DataRowState.Added) { if (objet.ParametrageCoordonneesPropre == null) { CParametrageSystemeCoordonnees parametrage = objet.ParametrageCoordonneesApplique; if (parametrage != null) { parametrage = (CParametrageSystemeCoordonnees)parametrage.Clone(false); parametrage.ObjetASystemeDeCoordonnees = objet; } } if (objet.OptionsControleCoordonneesPropre == null) { objet.OptionsControleCoordonneesPropre = objet.OptionsControleCoordonneesApplique; } } if (row.RowState == DataRowState.Modified) { DataRowVersion oldVers = objDonnee.VersionToReturn; objDonnee.VersionToReturn = DataRowVersion.Original; EOptionControleCoordonnees?oldOpt = objet.OptionsControleCoordonneesApplique; objDonnee.VersionToReturn = oldVers; EOptionControleCoordonnees?newOpt = objet.OptionsControleCoordonneesApplique; if (newOpt != oldOpt) { result = objet.VerifieCoordonneesFils(); if (!result) { return(result); } } } return(result); }
//---------------------------------------------------------------------- public static bool EditeCoordonnee( Point ptSouris, IObjetAFilsACoordonnees parent, IObjetACoordonnees fils, ref string strCoordonnee) { if (parent == null) { return(false); } if (fils == null) { return(false); } if (parent.ParametrageCoordonneesApplique == null) { CFormAlerte.Afficher(I.T("No coordinate system defined|30124"), EFormAlerteType.Erreur); return(false); } CFormPopupSaisieCoordonnee form = new CFormPopupSaisieCoordonnee(); form.m_parent = parent; form.m_fils = fils; form.m_strCoordonnee = strCoordonnee; if (ptSouris.X + form.Width > Screen.PrimaryScreen.WorkingArea.Width) { ptSouris.X = Screen.PrimaryScreen.WorkingArea.Width - form.Width; } form.Location = ptSouris; bool bResult = form.ShowDialog() == DialogResult.OK; if (bResult) { strCoordonnee = form.m_strCoordonnee; } return(bResult); }
/// <summary> /// Vérifie que la coordonnée demandée est valide pour le fils demandé dans le /// parent demandé /// </summary> /// <param name="parent"></param> /// <param name="fils"></param> /// <param name="strCoordonnee"></param> /// <returns></returns> public static CResultAErreur VerifieCoordonneeFils(IObjetAFilsACoordonnees parent, IObjetACoordonnees fils, string strCoordonnee) { CResultAErreur result = CResultAErreur.True; ///Vérifie qu'on a ce qu'il faut pour bosser !! if (parent == null) { result.EmpileErreur(I.T("Impossible to check the coordinates of an object which is not positioned|259")); return(result); } if (fils == null) { return(result); } CParametrageSystemeCoordonnees parametrage = parent.ParametrageCoordonneesApplique; if (parametrage == null || parametrage.SystemeCoordonnees == null) { return(result); } EOptionControleCoordonnees?optionControle = parent.OptionsControleCoordonneesApplique; if (optionControle == null) { optionControle = COptionCoordonnéeGlobale.GetOptionType(fils.ContexteDonnee.IdSession, parent.GetType()); } if (!IsAppliquable(optionControle.Value, fils)) { return(result); } //Test Coordonnée vide if (strCoordonnee == "") { if ((optionControle & EOptionControleCoordonnees.IgnorerLesFilsSansCoordonnees) == EOptionControleCoordonnees.IgnorerLesFilsSansCoordonnees) { return(result); } else { result.EmpileErreur(I.T("Mandatory coordinate|258")); return(result); } } ///Vérifie que la coordonnée a le bon format result = parametrage.VerifieCoordonnee(strCoordonnee); if (!result) { return(result); } string strCoordonneeFin = strCoordonnee; COccupationCoordonnees occupation = fils.OccupationCoordonneeAppliquee; //Prend en compte l'occupation if ((optionControle & EOptionControleCoordonnees.IgnorerLoccupation) != EOptionControleCoordonnees.IgnorerLoccupation) { if (occupation == null) { result.EmpileErreur(I.T("No occupation defined : control is impossible|256")); return(result); } if (occupation.NbUnitesOccupees < 1) { result.EmpileErreur(I.T("Incorrect number of occupied units|257")); return(result); } if (occupation.NbUnitesOccupees != 1) //1->coord fin = coord début ! { result = parametrage.SystemeCoordonnees.AjouteDansNiveau(strCoordonnee, occupation.NbUnitesOccupees - 1); if (!result) { return(result); } strCoordonneeFin = (string)result.Data; //Vérifie que la coordonnée de fin est correcte result = parametrage.VerifieCoordonnee(strCoordonneeFin); if (!result) { return(result); } } } //Vérifie que l'unité est cohérente if ((optionControle & EOptionControleCoordonnees.IgnorerLesUnites) != EOptionControleCoordonnees.IgnorerLesUnites && !fils.IgnorerUnite) { if (occupation == null) { result.EmpileErreur(I.T("No occupation defined : control is impossible|256")); return(result); } result = parametrage.SystemeCoordonnees.VerifieUnite(strCoordonnee, occupation.Unite); if (!result) { return(result); } } //Vérifie que la coordonnée n'est pas déjà occupée if ((optionControle & EOptionControleCoordonnees.AutoriserPlusieursFilsSurLaMemeCoordonnee) != EOptionControleCoordonnees.AutoriserPlusieursFilsSurLaMemeCoordonnee) { List <IObjetACoordonnees> lstobj = new List <IObjetACoordonnees>(); lstobj = parent.FilsACoordonnees; //On exclu l'objet actuel si il est déjà présent car il ne peut pas rentrer en conflit avec lui même if (lstobj.Contains(fils)) { lstobj.Remove(fils); } result = parametrage.Test_Interactions(strCoordonnee, strCoordonneeFin, lstobj); } result.Data = null; return(result); }