public override void Paint(object sender, PaintEventArgs e) { try { base.Paint(sender, e); if (!Project.spoiling) { if (!HasPutOnMap) { //LibSys.StatusBar.Trace("LayerEarthquakes:Paint(): calling PutOnMap()"); PutOnMap(); } foreach (Earthquake eq in EarthquakesCache.EarthquakesAll) { if (TimeMagnitudeFilter.passesAll(eq.DateTime, eq.Magn)) { if (eq.BoundingRect.IsEmpty) // new object just added dynamically, or old object moved { eq.PutOnMap(this, null, this); PictureManager.Invalidate(eq.BoundingRect); } Point pixelPos = toPixelLocation(eq.Location, null); if (e.ClipRectangle.IntersectsWith(eq.BoundingRect)) { eq.Paint(e.Graphics, this, null); } } } foreach (Earthquake eq in EarthquakesCache.EarthquakesAll) { if (TimeMagnitudeFilter.passesAll(eq.DateTime, eq.Magn)) { eq.AdjustPlacement(this, null, this); } } foreach (Earthquake eq in EarthquakesCache.EarthquakesAll) { Point pixelPos = toPixelLocation(eq.Location, null); if (e.ClipRectangle.IntersectsWith(eq.BoundingRect) && TimeMagnitudeFilter.passesAll(eq.DateTime, eq.Magn)) { eq.PaintLabel(e.Graphics, this, null, false); } } } } catch (Exception eee) { //LibSys.StatusBar.Error("LayerEarthquakes:Paint(): " + eee); } }
public void PutOnMap() { #if DEBUG LibSys.StatusBar.Trace("IP: LayerEarthquakes:PutOnMap() " + EarthquakesCache.EarthquakesAll.Count); #endif Project.mainCommand.eqFilterOn(TimeMagnitudeFilter.Enabled); foreach (LiveObject lo in EarthquakesCache.EarthquakesAll) { try { lo.init(true); } catch (Exception e) { LibSys.StatusBar.Error("LE:PutOnMap(): eq=" + lo + " " + e.Message); } } foreach (Earthquake eq in EarthquakesCache.EarthquakesAll) { try { if (TimeMagnitudeFilter.passesAll(eq.DateTime, eq.Magn)) { eq.PutOnMap(this, null, this); } } catch (Exception e) { LibSys.StatusBar.Error("LE:PutOnMap(): eq=" + eq + " " + e.Message); } } foreach (Earthquake eq in EarthquakesCache.EarthquakesAll) { try { if (TimeMagnitudeFilter.passesAll(eq.DateTime, eq.Magn)) { eq.AdjustPlacement(this, null, this); } } catch (Exception e) { LibSys.StatusBar.Error("LE:PutOnMap() - AdjustPlacement: eq=" + eq + " " + e.Message); } } m_hasPutOnMap = true; }
// // printing support: // public override void printPaint(Graphics graphics) { foreach (Earthquake eq in EarthquakesCache.EarthquakesAll) { if (TimeMagnitudeFilter.passesAll(eq.DateTime, eq.Magn)) { Point pixelPosPrint = toPixelLocationPrint(eq.Location, null); Point pixelPosDispl = eq.PixelLocation; int offsetX = pixelPosPrint.X - pixelPosDispl.X; int offsetY = pixelPosPrint.Y - pixelPosDispl.Y; eq.Paint(graphics, this, null, offsetX, offsetY); eq.PaintLabel(graphics, this, null, true, offsetX, offsetY); } } }