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); }
//------------------------------------------------------------------ /// <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); }
//------------------------------------------------------ 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(); }
private string GetKey(ISatisfactionBesoin satisfaction) { return(satisfaction.GetType() + "/" + satisfaction.Id); }