예제 #1
0
                public CListeObjetsDonnees GetRelations(ISatisfactionBesoin satisfaction)
                {
                    DateLastAcces = DateTime.Now;
                    CCacheRelation cache = null;
                    CFiltreData    filtre;

                    if (!m_dicCaches.TryGetValue(GetKey(satisfaction), out cache))
                    {
                        filtre = new CFiltreData(
                            CRelationBesoin_Satisfaction.c_champTypeElement + "=@1 and " +
                            CRelationBesoin_Satisfaction.c_champIdElement + "=@2",
                            satisfaction.GetType().ToString(),
                            satisfaction.Id);
                        CListeObjetsDonnees liste = new CListeObjetsDonnees(satisfaction.ContexteDonnee, typeof(CRelationBesoin_Satisfaction), filtre);
                        liste.PreserveChanges = true;
                        SetRelations(satisfaction, liste);
                        return(liste);
                    }
                    filtre = new CFiltreDataImpossible();
                    if (cache.Ids.Count > 0)
                    {
                        filtre = new CFiltreData(CRelationBesoin_Satisfaction.c_champId + " in (" + cache.IdsPourFiltre + ")");
                    }
                    else
                    {
                        filtre = new CFiltreDataImpossible();
                    }
                    CListeObjetsDonnees lstOptim = new CListeObjetsDonnees(satisfaction.ContexteDonnee, typeof(CRelationBesoin_Satisfaction), filtre);

                    lstOptim.PreserveChanges     = true;
                    lstOptim.InterditLectureInDB = true;
                    return(lstOptim);
                }
예제 #2
0
        //------------------------------------------------------------------
        /// <summary>
        /// Retourne les liens aux besoins satisfaits
        /// </summary>
        /// <param name="objet"></param>
        /// <returns></returns>
        public static CListeObjetsDonnees GetRelationsBesoinsSatisfaits(ISatisfactionBesoin satisfaction)
        {
            if (m_cacheRelations != null)
            {
                return(m_cacheRelations.GetRelations(satisfaction));
            }
            CFiltreData filtre = new CFiltreData(
                CRelationBesoin_Satisfaction.c_champTypeElement + "=@1 and " +
                CRelationBesoin_Satisfaction.c_champIdElement + "=@2",
                satisfaction.GetType().ToString(),
                satisfaction.Id);
            CListeObjetsDonnees liste = new CListeObjetsDonnees(satisfaction.ContexteDonnee, typeof(CRelationBesoin_Satisfaction), filtre);

            liste.PreserveChanges = true;
            return(liste);
        }
예제 #3
0
            //------------------------------------------------------
            public void Draw(
                CControleMapBesoinOld controleMap,
                Color couleurFond,
                bool bSelected,
                Graphics g)
            {
                Rectangle rct = Rectangle;
                Brush     br  = new SolidBrush(Color.FromArgb(64, 0, 0, 0));

                g.FillRectangle(br,
                                rct.Left + 4,
                                rct.Bottom,
                                rct.Width, 4);
                g.FillRectangle(br, rct.Right,
                                rct.Top + 4,
                                4,
                                rct.Height - 4);
                br.Dispose();
                Color c = couleurFond;

                br = new SolidBrush(c);
                g.FillRectangle(br, rct);
                br.Dispose();
                Pen pTour = new Pen(Color.Black, bSelected ? 4 : 1);

                g.DrawRectangle(pTour, rct);
                pTour.Dispose();
                rct.Offset(1, 1);
                rct.Height = controleMap.m_nHauteurSatisfactionDefaut;
                rct.Inflate(-2, -2);

                Image img = sc2i.common.DynamicClassAttribute.GetImage(m_satisfaction.GetType());

                if (img != null)
                {
                    Rectangle rctImage = new Rectangle(rct.Left, rct.Top, 16, 16);
                    g.DrawImage(img, rctImage);
                    rct.Offset(16, 0);
                    rct.Width -= 16;
                }
                if (HasChildren)
                {
                    img = m_bIsExpanded ? Resources.blueUp32 : Resources.blueDown32;
                    Size      sz       = CUtilImage.GetSizeAvecRatio(img, new Size(2000, 16));
                    Rectangle rctImage = new Rectangle(rct.Right - sz.Width,
                                                       rct.Bottom - sz.Height,
                                                       sz.Width,
                                                       sz.Height);
                    g.DrawImage(img, rctImage, new Rectangle(0, 0, img.Width, img.Height), GraphicsUnit.Pixel);
                    Point pt = new Point(rctImage.Left, rctImage.Top);
                    pt = PointToClient(pt);
                    m_rectangleZoneExpand = new Rectangle(pt, rctImage.Size);
                }


                string       str = m_satisfaction.LibelleSatisfactionComplet;
                StringFormat sf  = new StringFormat(StringFormatFlags.FitBlackBox);

                sf.Alignment     = StringAlignment.Center;
                sf.LineAlignment = StringAlignment.Center;
                g.DrawString(str, controleMap.Font, Brushes.Black, rct, sf);
                sf.Dispose();
            }
예제 #4
0
 private string GetKey(ISatisfactionBesoin satisfaction)
 {
     return(satisfaction.GetType() + "/" + satisfaction.Id);
 }