private void DesignRouteClickDispatcher(ElementBase element)
        {
            RouteElement re       = null;
            IRoutable    relement = element as IRoutable;

            // Avoid add no routebale elements to the route
            if (relement == null)
            {
                return;
            }

            // Set next route status
            relement.SetRouteNextStatus();

            if (!relement.ActivatedInRoute)
            {
                this.Route.RemoveByElement(element);
            }
            else
            {
                re = this.Route.GetByElement(element);
                if (re == null)
                {
                    re         = new RouteElement();
                    re.ID      = element.ID;
                    re.Element = element;
                    re.Route   = this.Route;
                }
                re.AccessoryStatus = ElementBase.GetAccessoryStatus(element);

                this.Route.Add(re);
            }

            this.RepaintCoordinates(element.Coordinates);
        }
示例#2
0
        public void Add(ElementBase element)
        {
            foreach (RouteElement elem in this.Elements)
            {
                if (elem.ElementID == element.ID)
                {
                    elem.AccessoryStatus = ElementBase.GetAccessoryStatus(element);
                    return;
                }
            }

            this.Elements.Add(new RouteElement(element));
        }