public static void PerformancePredictorPopup(IList <TrailsItemTrackSelectionInfo> selections, IDailyActivityView view, System.Windows.Forms.ProgressBar progressBar) { try { if (GetPerformancePredictor != null) { IList <IItemTrackSelectionInfo> sels = TrailsItemTrackSelectionInfo.SetAndAdjustFromSelectionToST(selections); IList <IActivity> activities = new List <IActivity>(); foreach (TrailsItemTrackSelectionInfo t in selections) { //Should not matter if activities are added in order, //but activity is "lost" as string in IItemTrackSelectionInfo, supply possible activities activities.Add(t.Activity); } MethodInfo methodInfo = GetPerformancePredictor.GetMethod(_PerformancePredictorPopup); object resultFromPlugIn = methodInfo.Invoke(null, new object[] { activities, sels, view, progressBar }); } } catch (Exception e) { // Log error? throw new Exception(string.Format(IntegrationUtility.OtherPluginExceptionText, PerformancePredictorPlugin + ".dll", PerformancePredictorPluginName) + Environment.NewLine, e); } if (GetPerformancePredictor == null) { throw new Exception(string.Format(IntegrationUtility.OtherPluginExceptionText, PerformancePredictorPlugin + ".dll", PerformancePredictorPluginName) + Environment.NewLine); } }
//Marked part of a track public static IList <TrailMapPolyline> GetTrailMapMarkedPolyline(TrailResult tr, TrailsItemTrackSelectionInfo sel) { IList <TrailMapPolyline> results = new List <TrailMapPolyline>(); foreach (IList <IGPSPoint> gp in tr.GpsPoints(sel)) { results.Add(new TrailMapPolyline(gp, RouteWidth() * 2, MarkedColor(tr.ResultColor.LineNormal), tr, "m" + cSeparator + results.Count)); } return(results); }
private void EList_AddRow() { int i = EList_SelectedRow(); if (i < 0) { if (((IList <EditTrailRow>) this.EList.RowData).Count > 0) { i = ((IList <EditTrailRow>) this.EList.RowData).Count - 1; } else { i = 0; } } TrailGPSLocation sel; if (((IList <EditTrailRow>) this.EList.RowData).Count > 0) { sel = new TrailGPSLocation(((IList <EditTrailRow>) this.EList.RowData)[i].TrailGPS); sel.GpsLoc = new GPSLocation(sel.LatitudeDegrees + 0.0001F, sel.LongitudeDegrees + 0.0001F); } else { IGPSLocation l = m_layer.GetCenterMap(); sel = new TrailGPSLocation(l, this.m_TrailToEdit.Radius); } sel.Name += " " + ZoneFiveSoftware.Common.Visuals.CommonResources.Text.ActionNew; //If a point is selected on the track, use it instead IList <IActivity> activities = new List <IActivity> { Controller.TrailController.Instance.ReferenceActivity }; IList <IItemTrackSelectionInfo> selectedGPS = TrailsItemTrackSelectionInfo.SetAndAdjustFromSelectionFromST(m_view.RouteSelectionProvider.SelectedItems, activities); if (TrailsItemTrackSelectionInfo.ContainsData(selectedGPS)) { IList <TrailGPSLocation> loc = TrailSelectorControl.GetGPS(this.Trail, activities, selectedGPS); if (loc.Count > 0 && loc[0] != null) { sel.GpsLoc = loc[0]; } } EditTrailRow newRow = new EditTrailRow(sel); if (((IList <EditTrailRow>) this.EList.RowData).Count > 0) { ((IList <EditTrailRow>) this.EList.RowData).Insert(i + 1, newRow); } else { this.EList.RowData = new List <EditTrailRow> { newRow }; } //Make ST see the update this.EList.RowData = ((IList <EditTrailRow>) this.EList.RowData); foreach (EditTrailRow t in (IList <EditTrailRow>) this.EList.RowData) { //Note: For reverse results, this is incorrect (but reverse results are only for incomplete, so no impact) this.EList.SetChecked(t, t.TrailGPS.Required); } this.EList.SelectedItems = new object[] { newRow }; this.EList.Refresh(); this.m_TrailToEdit.TrailLocations = EditTrailRow.getTrailGPSLocation((IList <EditTrailRow>) this.EList.RowData); this.m_layer.TrailPoints = m_TrailToEdit.TrailLocations; this.m_layer.SelectedTrailPoints = new List <TrailGPSLocation> { sel }; this.m_layer.Refresh(); }