PurplePen.SelectionMgr.SelectCourseObject C# (CSharp) Method

SelectCourseObject() public method

public SelectCourseObject ( CourseObj courseObject ) : void
courseObject CourseObj
return void
        public void SelectCourseObject(CourseObj courseObject)
        {
            if (courseObject is ControlCourseObj || courseObject is StartCourseObj || courseObject is FinishCourseObj ||
                (courseObject is CrossingCourseObj && courseObject.specialId.IsNone) || courseObject is CodeCourseObj || courseObject is ControlNumberCourseObj)
            {
                SetSelection(SelectionKind.Control, courseObject.courseControlId, Id<CourseControl>.None, courseObject.controlId, Id<Special>.None, null, DescriptionLine.TextLineKind.None);
            }
            else if (courseObject.specialId.IsNotNone) {
                SetSelection(SelectionKind.Special, Id<CourseControl>.None, Id<CourseControl>.None, Id<ControlPoint>.None, courseObject.specialId, null, DescriptionLine.TextLineKind.None);
            }
            else if (courseObject is LegCourseObj || courseObject is FlaggedLegCourseObj || courseObject is TopologyLegCourseObj) {
                SetSelection(SelectionKind.Leg, courseObject.courseControlId, ((LineCourseObj) courseObject).courseControlId2, courseObject.controlId, Id<Special>.None, null, DescriptionLine.TextLineKind.None);
            }
        }

Usage Example

Example #1
0
        public override void LeftButtonClick(Pane pane, PointF location, float pixelSize, ref bool displayUpdateNeeded)
        {
            // Drop targets are the only think in the All Variations layer we can click on.
            // Also, don't click
            CourseObj clickedObject = HitTest(pane, location, pixelSize,
                                              co => !(co.layer == CourseLayer.AllVariations && !(co is TopologyDropTargetCourseObj)) &&
                                              !((co is MapIssueCourseObj) && co.controlId.IsNone));

            if (clickedObject != null)
            {
                selectionMgr.SelectCourseObject(clickedObject);
            }
            else
            {
                if (pane == Pane.Map)
                {
                    // clicked on nothing. Clear selection.
                    controller.ClearSelection();
                }
            }
        }