/// <summary> /// Check if a regular switchboard element is activated in route. /// </summary> /// <param name="element">The <see cref="ElementBase"/> instance to check.</param> /// <returns><c>true</c> if the element is activated in route, otherwise return <c>false</c>.</returns> public static bool IsElementActivatedInRoute(ElementBase element) { if (ElementBase.IsRoutableElement(element)) { return(((IRoutable)element).ActivatedInRoute); } return(false); }
/// <summary> /// Clear all activated route in the panel. /// </summary> public void ClearRoute() { foreach (ElementBase element in this.Elements) { if (ElementBase.IsRoutableElement(element)) { ((IRoutable)element).SetInRoute(false); } } }
/// <summary> /// Clear all active routes. /// </summary> public void ClearRoutes() { foreach (SwitchboardPanel panel in this.Panels.Values) { foreach (ElementBase element in panel.Elements) { if (ElementBase.IsRoutableElement(element)) { ((IRoutable)element).SetInRoute(false); } } } }
/// <summary> /// Activate the specified route. /// </summary> /// <param name="route">Route to activate.</param> public void ActivateRoute(Route route) { // Check parameters if (route == null) { this.ActiveRoute = null; return; } // Deactivate active routes //if (this.ActiveRoute != null) //{ // this.ClearRoutes(); //} // Set the active route this.ActiveRoute = route; foreach (SwitchboardPanel panel in this.Panels.Values) { foreach (ElementBase element in panel.Elements) { if (ElementBase.IsRoutableElement(element)) { ((IRoutable)element).SetInRoute(false); foreach (RouteElement routeElem in this.ActiveRoute.Elements) { if (routeElem.ElementID == element.ID) { ((IRoutable)element).SetInRoute(true); if (ElementBase.IsAccessoryElement(element)) { ((IAccessory)element).SetAccessoryStatus(routeElem.AccessoryStatus, true); } break; } } } } } }