Exemple #1
0
        public void Initialiser(CDecoupage decoupage)
        {
            m_bInitialise        = false;
            m_bSkipEveChangement = true;
            if (m_cmbPeriodicite.Items.Count == 0)
            {
                InitComboPeriodicite();
            }

            m_decoupage = decoupage;

            if (m_decoupage == null || !m_decoupage.Valide)
            {
                DateTime dtStart = DateTime.Now.Date;
                DateTime dtEnd   = dtStart.AddYears(1);
                m_decoupage = new CDecoupage(dtStart, dtEnd, 3, EEchelleTemps.Mois, true, EEchelleTemps.Jour);
                if (ChangementDecoupage != null)
                {
                    ChangementDecoupage(Decoupage);
                }
            }

            MAJAffichageSansNotificationModification();

            m_bInitialise        = true;
            m_bSkipEveChangement = false;
        }
Exemple #2
0
 public void Refresh()
 {
     m_mappageNumeroLigneContrat    = null;
     m_bEnEditionCalcule            = false;
     m_cacheContratListeOpAAfficher = null;
     m_intersLigne     = null;
     m_intersEnEdition = null;
     m_decoupageObj    = null;
     m_cacheDessin     = null;
     foreach (CDessinTrancheSite cell in DessinsCellules)
     {
         cell.Refresh();
     }
 }
Exemple #3
0
        public CDessinEditeurPreventive(
            CContexteDonnee context,
            CDecoupage decoupage,
            CContrat_ListeOperations relEnCour,
            List <CSite> sitesAffiches,
            List <CContrat_ListeOperations> listesOpAffichees)
        {
            m_context               = context;
            m_intersSelec           = new List <CInterventionPourEditeurPreventive>();
            m_dessinsSites          = new List <CDessinSite>();
            m_dessinTranches        = new List <CDessinTranche>();
            m_mappageSiteListeInter = new Dictionary <int, List <CInterventionPourEditeurPreventive> >();
            m_mappageSiteEtDessin   = new Dictionary <int, CDessinSite>();
            //m_dessinsSiteToRefresh = new List<CDessinSite>();

            //Angle
            m_angle = new CDessinAngle(this);

            MAJStructure(decoupage, relEnCour, sitesAffiches, listesOpAffichees);
        }
Exemple #4
0
        public void MAJStructure(
            CDecoupage decoupage,
            CContrat_ListeOperations relEnCour,
            List <CSite> sitesAffiches,
            List <CContrat_ListeOperations> listesOpAffichees)
        {
            m_bValide = false;

            m_interOver   = null;
            m_listeOpOver = null;
            m_intersSelec.Clear();

            m_contratLstOp = relEnCour;
            if (listesOpAffichees.Contains(relEnCour))
            {
                listesOpAffichees.Remove(relEnCour);
            }

            m_sites = sitesAffiches;
            m_contratLstOpsAffichees = listesOpAffichees;


            //Decoupage
            m_decoupage = decoupage;

            if (!m_decoupage.Valide)
            {
                return;
            }

            //Tranches
            m_dessinTranches.Clear();
            if (m_decoupage.NbTranche == 0)
            {
                return;
            }
            for (int t = 1; t <= m_decoupage.NbTranche; t++)
            {
                EPositionDessinTranche?pos = null;
                if (m_decoupage.NbTranche == 1)
                {
                    pos = EPositionDessinTranche.Unique;
                }
                else if (t == 1)
                {
                    pos = EPositionDessinTranche.Debut;
                }
                else if (t == m_decoupage.NbTranche)
                {
                    pos = EPositionDessinTranche.Fin;
                }
                else
                {
                    pos = EPositionDessinTranche.Intermediaire;
                }

                m_dessinTranches.Add(new CDessinTranche(this, m_decoupage[t - 1], (EPositionDessinTranche)pos));
            }

            //Sites
            ChargerIntersDesSites();

            m_bValide = true;
        }
Exemple #5
0
        public void Draw(Graphics g, Rectangle rect)
        {
            if (m_cacheDessin == null && !m_bRefreshInters)
            {
                Initialiser();
            }
            else if (rect.Size == CacheDessin.Size && !m_bRefreshInters)
            {
                g.DrawImageUnscaled(CacheDessin, rect.Location);
                return;
            }


            Rectangle rcImage = rect;

            rcImage.Offset(new Point(-rcImage.Left, -rcImage.Top));

            Image    img  = new Bitmap(rect.Size.Width, rect.Size.Height);
            Graphics gTmp = Graphics.FromImage(img);


            SolidBrush brushAzure      = new SolidBrush(Color.Azure);
            SolidBrush brushGray       = new SolidBrush(Color.Gray);
            SolidBrush brushRoyaleBlue = new SolidBrush(Color.RoyalBlue);
            Pen        crayonBleu      = new Pen(brushRoyaleBlue);

            crayonBleu.Width = 2;

            //Pour toutes les lignes
            for (int nL = 1; nL <= NombreLigne; nL++)
            {
                //Recupération du rectangle
                int       posY       = nL == 1 ? 0 : (nL - 1) * (rcImage.Height / NombreLigne);
                Rectangle rectLigneN = new Rectangle(0, posY, rcImage.Width, rcImage.Height / NombreLigne);

                //BACKGROUND
                bool bConcerne = DessinSite.MappageNumeroLigneContrat[nL].AssocieAuSite(DessinSite.Site);
                if (bConcerne)
                {
                    gTmp.FillRectangle(brushAzure, rectLigneN);
                }
                else
                {
                    gTmp.FillRectangle(brushGray, rectLigneN);
                }
                if (nL == 1 && DessinSite.EnEdition && bConcerne)
                {
                    List <CTranche> tranches = DessinSite.DecoupageObjectifElementEnEdition.GetTranchesConcernees(DateDebut, DateFin);
                    foreach (CTranche t in tranches)
                    {
                        SolidBrush brush = new SolidBrush(DessinSite.GetColorOfTranche(t));

                        DateTime dtStartDecoup = t.DateDebut < DateDebut ? DateDebut : t.DateDebut;
                        DateTime dtEndDecoup   = t.DateFin > DateFin ? DateFin : t.DateFin;
                        decimal  fWithTranche  = ((
                                                      ((decimal)dtEndDecoup.Ticks - (decimal)dtStartDecoup.Ticks)
                                                      * (decimal)rectLigneN.Width) /
                                                  ((decimal)DateFin.Ticks - (decimal)DateDebut.Ticks));
                        int       nWithTranche = Convert.ToInt32(fWithTranche) + 1;
                        int       posX         = GetX(dtStartDecoup, rectLigneN.Width);
                        Rectangle rTranche     = new Rectangle(posX, 0, nWithTranche, rectLigneN.Height);
                        gTmp.FillRectangle(brush, rTranche);
                        brush.Dispose();
                    }
                }

                //DESSIN DES INTERS
                List <CDessinListeOperations> dessinsInters = GetDessinsInterOfLigne(nL);
                foreach (CDessinListeOperations dessin in dessinsInters)
                {
                    dessin.Draw(gTmp, rectLigneN);
                }



                if (nL > 1)
                {
                    CDessinEditeurPreventive.DessinerLigne(ECoteRectangle.Haut, System.Drawing.Drawing2D.DashStyle.Dot, Color.Wheat, 1, rectLigneN, gTmp);
                }
            }


            //LIGNES OBJECTIF
            if (DessinSite.ContratListesOperationsEnCour != null)
            {
                CDecoupage      decoupEle      = DessinSite.DecoupageObjectifElementEnEdition;
                List <DateTime> datesDecoupage = decoupEle.GetDatesConcernees(DateDebut, DateFin);
                foreach (DateTime dt in datesDecoupage)
                {
                    //Dessiner la ligne
                    //System.Drawing.Drawing2D.DashStyle styleLigne = System.Drawing.Drawing2D.DashStyle.Solid;
                    //if (nCptDecoup == 0 || nCptDecoup == datesDecoupage.Count - 1)
                    //    styleLigne = System.Drawing.Drawing2D.DashStyle.DashDotDot;
                    //crayonBleu.DashStyle = styleLigne;
                    int posXLigne = GetX(dt, rcImage.Width);
                    if (posXLigne == rcImage.Width)
                    {
                        posXLigne--;
                    }
                    if (posXLigne == 0)
                    {
                        posXLigne++;
                    }
                    gTmp.DrawLine(crayonBleu, new Point(posXLigne, 0), new Point(posXLigne, rcImage.Height));
                }
            }


            //BORDS DROIT ET GAUCHE
            switch (DessinTranche.PositionTranche)
            {
            case EPositionDessinTranche.Debut:
                CDessinEditeurPreventive.DessinerLigne(ECoteRectangle.Gauche, System.Drawing.Drawing2D.DashStyle.Solid, Color.Black, 1, rcImage, gTmp);
                break;

            case EPositionDessinTranche.Fin:
                CDessinEditeurPreventive.DessinerLigne(ECoteRectangle.Droite, System.Drawing.Drawing2D.DashStyle.Solid, Color.Black, 1, rcImage, gTmp);
                goto case EPositionDessinTranche.Intermediaire;

            case EPositionDessinTranche.Intermediaire:
                CDessinEditeurPreventive.DessinerLigne(ECoteRectangle.Gauche, System.Drawing.Drawing2D.DashStyle.Dash, Color.Black, 1, rcImage, gTmp);
                break;

            case EPositionDessinTranche.Unique:
                CDessinEditeurPreventive.DessinerLigne(ECoteRectangle.Gauche, System.Drawing.Drawing2D.DashStyle.Solid, Color.Black, 1, rcImage, gTmp);
                CDessinEditeurPreventive.DessinerLigne(ECoteRectangle.Droite, System.Drawing.Drawing2D.DashStyle.Solid, Color.Black, 1, rcImage, gTmp);
                break;
            }

            CDessinEditeurPreventive.DessinerLigne(ECoteRectangle.Bas, System.Drawing.Drawing2D.DashStyle.Solid, Color.Black, 1, rcImage, gTmp);

            g.DrawImageUnscaled(img, rect.Location);
            m_cacheDessin = img;

            m_bRefreshInters = false;

            brushAzure.Dispose();
            brushGray.Dispose();
            brushRoyaleBlue.Dispose();
            crayonBleu.Dispose();
        }