예제 #1
0
        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);
            }
        }
예제 #2
0
        //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);
        }
예제 #3
0
파일: EditTrail.cs 프로젝트: tsofron/trails
        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();
        }