private void DrawBasedOnParameters(bool bComputeSpeed, TrackSelector.ColorType speedColorType, Color singlecolor) { // Calcul des vitesses _ComputeSpeed = bComputeSpeed; _singlecolor = singlecolor; _speedColorType = speedColorType; _Daddy.Log("TrackSelector DrawBasedOnParameters: ComputeSpeeds"); ComputeSpeeds(); _Daddy.Log("TrackSelector DrawBasedOnParameters: ComputeMinMax"); ComputeMinMax(); if ((_Elevations == null) && (!_ComputeSpeed)) { // Nothing to display in graph this.Height = 145; pnGraph.Visible = false; } else { this.Height = 327; pnGraph.Visible = true; pnGraph.BackColor = Color.White; } // On trace la route en ligne droite & les elevations si besoin _Daddy.Log("TrackSelector DrawBasedOnParameters: DrawRoute"); DrawRoute(_Start, _End); }
/// <summary> /// Display an HMI requesting parameters need for this form /// </summary> /// <param name="daddy">Reference to main window (MainWindow instance), used for callback purposes</param> /// <param name="bComputeSpeed">out, If true, speed will be computed from time and positions</param> /// <param name="speedColorType">out, Color type that will be used on road to display speed (only useful if bComputeSpeed is true)</param> /// <param name="singlecolor">out, Color value that will be used on road (only useful if bComputeSpeed is true and speedColorType is SingleValue or if bComputeSpeed is false)</param> /// <returns>True if parameters successfuly filled</returns> static public bool RequestParameters(MainWindow daddy, out bool bComputeSpeed, out TrackSelector.ColorType speedColorType, out Color singlecolor) { List <ParameterObject> lst = new List <ParameterObject>(); List <String> lstcompare = new List <string>(); lst.Add(new ParameterObject(ParameterObject.ParameterType.Color, Color.Red, "color1", daddy.GetTranslator().GetString("LblRouteColorDefault"))); lstcompare.Add(daddy.GetTranslator().GetString("LblSpeedGreenRed")); lstcompare.Add(daddy.GetTranslator().GetString("LblSpeedHSL")); lstcompare.Add(daddy.GetTranslator().GetString("LblSpeedUnicolor")); lst.Add(new ParameterObject(ParameterObject.ParameterType.Bool, true, "usespeed", daddy.GetTranslator().GetString("LblDisplaySpeed"))); lst.Add(new ParameterObject(ParameterObject.ParameterType.List, lstcompare, "speedcolor", daddy.GetTranslator().GetString("LblSpeedColorType"))); ParametersChanger changer = new ParametersChanger(); changer.Title = daddy.GetTranslator().GetString("FMenuDisplayGPXTrack"); changer.BtnCancel = daddy.GetTranslator().GetString("BtnCancel"); changer.BtnOK = daddy.GetTranslator().GetString("BtnOk"); changer.ErrorFormater = daddy.GetTranslator().GetString("ErrWrongParameter"); changer.ErrorTitle = daddy.GetTranslator().GetString("Error"); changer.Parameters = lst; changer.Font = daddy.Font; changer.Icon = daddy.Icon; changer.TopMost = true; if (changer.ShowDialog() == DialogResult.OK) { bComputeSpeed = bool.Parse(changer.Parameters[1].Value); speedColorType = (TrackSelector.ColorType)(changer.Parameters[2].ValueIndex); singlecolor = (Color)(changer.Parameters[0].ValueO); return(true); } else { bComputeSpeed = false; speedColorType = ColorType.SingleColor; singlecolor = Color.Red; return(false); } }
/// <summary> /// Constructor /// pts and times shall have the same items count /// </summary> /// <param name="daddy">Reference to main window (MainWindow instance), used for callback purposes</param> /// <param name="pts">All the points of the track</param> /// <param name="times">All the DateTime associated to a point of the track</param> /// <param name="elevations">All the elevations (in meters) associated to a point of the track</param> /// <param name="bComputeSpeed">If true, speed will be computed from time and positions</param> /// <param name="speedColorType">Color type that will be used on road to display speed (only useful if bComputeSpeed is true)</param> /// <param name="singlecolor">Color value that will be used on road (only useful if bComputeSpeed is true and speedColorType is SingleValue or if bComputeSpeed is false)</param> public TrackSelector(MainWindow daddy, List <PointLatLng> pts, List <DateTime> times, List <Double> elevations, bool bComputeSpeed, TrackSelector.ColorType speedColorType, Color singlecolor) { _Daddy = daddy; _Daddy.Log("TrackSelector Ctor: Misc"); InitializeComponent(); this.Text = _Daddy.GetTranslator().GetString("LblTrackSelector"); btnConfiguretrksel.Image = _Daddy.GetImageSized("CartoConfiguration"); _Daddy.TranslateTooltips(this, null); _Pts = pts; _PtsRoute = _Pts; _Times = times; _TimesRoute = _Times; _Elevations = elevations; _ElevationsRoute = _Elevations; // Valeurs de base _Start = _Times[0]; _End = _Times[_Times.Count - 1]; // On crée l'IHM _Daddy.Log("TrackSelector Ctor: HMI"); if (_Times != null) { // Les textes labelTxtStart.Text = _Daddy.GetTranslator().GetString("LblStart"); labelTxtEnd.Text = _Daddy.GetTranslator().GetString("LblEnd"); // Les labels labelStart.Text = _Start.ToString("MM/dd/yyyy HH:mm:ss"); labelStart.Tag = _Start; labelEnd.Text = _End.ToString("MM/dd/yyyy HH:mm:ss"); labelEnd.Tag = _End; // La durée TimeSpan duree = _End - _Start; _Daddy.Log("_Start : " + _Start.ToString()); _Daddy.Log("_End : " + _End.ToString()); _Daddy.Log("duree.TotalSeconds : " + duree.TotalSeconds.ToString()); trackBarStarttrksel.Minimum = 0; trackBarEndtrksel.Minimum = 0; trackBarStarttrksel.Maximum = (int)(duree.TotalSeconds); trackBarEndtrksel.Maximum = (int)(duree.TotalSeconds); trackBarStarttrksel.Value = 0; trackBarEndtrksel.Value = (int)(duree.TotalSeconds); } // Le callback du graphique pnGraph._CallbackMethodMouseMove = CallbackMethodMouseMove; _Daddy.Log("TrackSelector Ctor: DrawBasedOnParams"); DrawBasedOnParameters(bComputeSpeed, speedColorType, singlecolor); // On affiche _Daddy.Log("TrackSelector Ctor: Display Map"); _Daddy.ShowCacheMapInCacheDetailImpl(_Pts[0]); }