From 42dc1d36235292786322d28340a81c6cb3fd46c0 Mon Sep 17 00:00:00 2001 From: hurter Date: Wed, 31 Aug 2011 16:25:05 +0000 Subject: --- Data/Beacon.cs | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 Data/Beacon.cs (limited to 'Data/Beacon.cs') diff --git a/Data/Beacon.cs b/Data/Beacon.cs new file mode 100644 index 0000000..fe9314a --- /dev/null +++ b/Data/Beacon.cs @@ -0,0 +1,140 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Drawing; +using System.Xml.Serialization; +using System.IO; + +namespace Data +{ + public class Beacon + { + #region Attributes + + public static float Ratio = Config.coordinatesRatio; + + private string _code; + private string _type; + private double _lat; + private double _lon; + private bool _isSelected = false; + + #endregion + + #region Constructor + + public Beacon(pointsPoint beacon) + { + this._code = beacon.code; + this._type = beacon.type; + this._lat = beacon.lat; + this._lon = beacon.lon; + } + + #endregion + + #region Methods + + public void Draw(Graphics g) + { + //Pen drawBeaconsPen = new Pen(Config.drawBeaconCodeColor, 0.1f); + SolidBrush drawBeaconBrush = new SolidBrush(Config.drawBeaconColor); + SolidBrush drawBeaconCodeBrush = new SolidBrush(Config.drawBeaconCodeColor); + Font beaconsCodesFont = Config.unselectedBeaconsCodesFont; + + if (this._isSelected) + { + //drawBeaconsPen = new Pen(Config.drawSelectedBeaconCodeColor, 0.1f); + drawBeaconBrush = new SolidBrush(Config.drawSelectedBeaconColor); + drawBeaconCodeBrush = new SolidBrush(Config.drawSelectedBeaconCodeColor); + beaconsCodesFont = Config.selectedBeaconsCodesFont; + } + + PointF locationPointF = this.toPointF(); + if (this.Type != "unpublished") + { + //g.DrawEllipse(drawBeaconsPen, (float)PanAndZoomX(locationPointF.X / Ratio), (float)PanAndZoomY(locationPointF.Y / Ratio), Config.beaconsCirclesSize, Config.beaconsCirclesSize); + g.FillEllipse(drawBeaconBrush, (float)PanAndZoomX(locationPointF.X / Ratio), (float)PanAndZoomY(locationPointF.Y / Ratio), Config.beaconsCirclesSize, Config.beaconsCirclesSize); + g.DrawString(this.Code, beaconsCodesFont, drawBeaconCodeBrush, new PointF((float)PanAndZoomX(locationPointF.X / Ratio) + 5, (float)PanAndZoomY(locationPointF.Y / Ratio) + 5)); + } + } + + public PointF toPointF() + { + return MathCautra.ToCautra4(this._lat, this._lon); + } + + #endregion + + #region Getters and Setters + + public string Code + { + get { return _code; } + set { _code = value; } + } + + public string Type + { + get { return _type; } + set { _type = value; } + } + + public double Lat + { + get { return _lat; } + set { _lat = value; } + } + + public double Lon + { + get { return _lon; } + set { _lon = value; } + } + + public bool isBeaconSelected + { + get { return _isSelected; } + set { _isSelected = value; } + } + + #endregion + + #region Delegate Pan And Zoom + + public delegate double PanAndZoom(double input); + + [NonSerialized] + static public PanAndZoom PanAndZoomX; + [NonSerialized] + static public PanAndZoom PanAndZoomY; + + #endregion + + #region createList + + public static Beacon[] LoadBeaconsFile(string fileName) + { + XmlSerializer serializer = new XmlSerializer(typeof(points)); + TextReader reader = new StreamReader(fileName); + + Beacon[] Beacons = null; + if (reader != null) + { + points beaconsXml = (points)serializer.Deserialize(reader); + reader.Close(); + Beacons = new Beacon[beaconsXml.Items.Length]; + int indexSec = 0; + foreach (pointsPoint s in beaconsXml.Items) + { + Beacons[indexSec++] = new Beacon(s); + //Console.WriteLine("Balise : " + s.code + " --> lat : " + s.lat + " & lon : " + s.lon); + } + //Console.WriteLine("Beacons : " + beaconsXml.Items.Length); + } + return Beacons; + } + #endregion + } +} -- cgit v1.1