public void Execute(IPCBIWindow parent)
        {
            IStep step = parent.GetCurrentStep();

            if (step == null)
            {
                return;
            }
            double tolerance = 1;

            List <IODBObject> selection = step.GetSelectedElements();

            foreach (IODBObject selObj in selection)
            {
                IODBLayer layer = (IODBLayer)step.GetLayer(selObj.GetParentLayerName());

                if (selObj.Type == IObjectType.Line)
                {
                    ILineSpecificsD line     = (ILineSpecificsD)selObj.GetSpecificsD();
                    List <IObject>  startPos = layer.GetAllObjectsOnPosition(line.Start.ToPointF());
                    bool            setColor = true;
                    setColor = CheckConnection(tolerance, selObj, line.Start, startPos, setColor);
                    if (setColor)
                    {
                        List <IObject> endPos = layer.GetAllObjectsOnPosition(line.End.ToPointF());
                        setColor = CheckConnection(tolerance, selObj, line.End, endPos, setColor);
                    }
                    if (setColor)
                    {
                        selObj.ObjectColorTemporary(Color.Aquamarine);
                    }
                }
                else if (selObj.Type == IObjectType.Arc)
                {
                    IArcSpecificsD arc = (IArcSpecificsD)selObj.GetSpecificsD();

                    List <IObject> startPos = layer.GetAllObjectsOnPosition(arc.Start.ToPointF());
                    bool           setColor = true;
                    setColor = CheckConnection(tolerance, selObj, arc.Start, startPos, setColor);
                    if (setColor)
                    {
                        List <IObject> endPos = layer.GetAllObjectsOnPosition(arc.End.ToPointF());
                        setColor = CheckConnection(tolerance, selObj, arc.End, endPos, setColor);
                    }
                    if (setColor)
                    {
                        selObj.ObjectColorTemporary(Color.Aquamarine);
                    }
                }
            }

            step.ClearSelection();
        }