Exemplo n.º 1
0
        //------------------------------------------------
        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();
        }
Exemplo n.º 2
0
        //------------------------------------------------
        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, "");
        }
Exemplo n.º 3
0
        //---------------------------------------------
        public CResultAErreur VerifieCoordonnee()
        {
            IObjetAFilsACoordonnees parent = ConteneurFilsACoordonnees;

            if (parent != null)
            {
                return(parent.IsCoordonneeValide(Coordonnee, this));
            }
            return(CResultAErreur.True);
        }
Exemplo n.º 4
0
        //----------------------------------------------------------------------------
        public static CResultAErreur VerifieDonnees(IObjetAFilsACoordonnees objet)
        {
            CParametrageSystemeCoordonnees parametrage = objet.ParametrageCoordonneesApplique;

            if (parametrage != null)
            {
                return(parametrage.IsModifValide());
            }
            return(CResultAErreur.True);
        }
Exemplo n.º 5
0
        //-------------------------------------------------------
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        //---------------------------------------
        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));
        }
Exemplo n.º 8
0
        //----------------------------------------------------------------------------
        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);
        }
Exemplo n.º 9
0
        //----------------------------------------------------------------------
        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);
        }
Exemplo n.º 10
0
        /// <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);
        }