static TipGenerator() { _barrierAvailableCaption = (string)App.Current.FindResource("BarrierAvailableTooltipText"); _zoneAssignmentCaption = (string)App.Current.FindResource("ZoneAssignmentTooltipText"); _optimizeAndEditPage = (OptimizeAndEditPage)((MainWindow)App.Current.MainWindow).GetPage(PagePaths.SchedulePagePath); }
/// <summary> /// Define whether option is enabled. /// </summary> protected override void _CheckEnabled(OptimizeAndEditPage schedulePage) { Debug.Assert(schedulePage != null); if (schedulePage.CurrentSchedule == null) { this.IsEnabled = false; return; } bool result = false; // If all routes locked - option should be disabled. foreach (Route route in schedulePage.CurrentSchedule.Routes) { if (!route.IsLocked) { result = true; break; } } IsEnabled = result; }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="parentPage">Parent page.</param> public OrdersViewContextHandler(OptimizeAndEditPage parentPage) { Debug.Assert(null != parentPage); _parentPage = parentPage; _currentSchedule = parentPage.CurrentSchedule; _geocodablePage = parentPage.GeocodablePage; }
/// <summary> /// Creates instance of ScheduleViewsEditingManager, initializes local field _multipleListViewManager /// and adds handler to ListViewsCollectionChanged event. /// </summary> /// <param name="optimizeAndEditPage">OptimizeAndEditPage.</param> public ScheduleViewsEditingManager(OptimizeAndEditPage optimizeAndEditPage) { _ordersView = optimizeAndEditPage.OrdersView; _AddEditingEventHandlers(_ordersView); _routesView = optimizeAndEditPage.RoutesView; _AddEditingEventHandlers(_routesView); }
/// <summary> /// Creates new instance of MoveToCommandOptionBase and add handler to schedulePage.Selection changed. /// </summary> public MoveToCommandOptionBase() { _schedulePage = (OptimizeAndEditPage)App.Current.MainWindow.GetPage(PagePaths.SchedulePagePath); Debug.Assert(_schedulePage != null); _schedulePage.SelectionChanged += new EventHandler(_SelectionChanged); Debug.Assert(App.Current.Solver != null); App.Current.Solver.AsyncSolveCompleted += new AsyncSolveCompletedEventHandler(_AsyncSolveCompleted); TooltipText = EnabledTooltip; }
/// <summary> /// Checks whether command option is enabled. /// </summary> protected abstract void _CheckEnabled(OptimizeAndEditPage schedulePage);
protected virtual void Current_ApplicationInitialized(object sender, EventArgs e) { _optimizePage = (OptimizeAndEditPage)((MainWindow)App.Current.MainWindow).GetPage(PagePaths.SchedulePagePath); _optimizePage.CurrentScheduleChanged += new EventHandler(optimizePage_CurrentScheduleChanged); _optimizePage.SelectionChanged += new EventHandler(_schedulePage_SelectionChanged); _optimizePage.EditBegun += new DataObjectEventHandler(_optimizePage_EditBegun); _optimizePage.EditCommitted += new DataObjectEventHandler(_optimizePage_EditCommitted); _optimizePage.EditCanceled += new ESRI.ArcLogistics.App.Pages.DataObjectEventHandler(_optimizePage_EditCanceled); }
/// <summary> /// Creates new instance of MoveToUnassignedOrdersOption. Inits group ID. /// </summary> /// <param name="groupId">Option group ID (to set in separate group in UI).</param> public MoveToUnassignedOrdersOption(int groupId) { GroupID = groupId; _schedulePage = (OptimizeAndEditPage)App.Current.MainWindow.GetPage(PagePaths.SchedulePagePath); Debug.Assert(_schedulePage != null); _schedulePage.SelectionChanged += new EventHandler(_SelectionChanged); Debug.Assert(App.Current.Solver != null); App.Current.Solver.AsyncSolveCompleted += new AsyncSolveCompletedEventHandler(Solver_AsyncSolveCompleted); _UpdateTooltip(); }
/// <summary> /// Starts operation process. /// </summary> /// <param name="args">Operation args.</param> /// <exception cref="Exception">Throws if any unhandles exception occurs in method.</exception> protected override void _Execute(params object[] args) { try { // Get current schedule. if (_schedulePage == null) _schedulePage = (OptimizeAndEditPage)App.Current.MainWindow.GetPage(PagePaths.SchedulePagePath); Schedule schedule = _schedulePage.CurrentSchedule; ICollection<Order> selectedOrders = _GetOrdersWhichCanBeUnassignedFromSelection(_schedulePage.SelectedItems); ICollection<Order> orders = RoutingCmdHelpers.GetOrdersIncludingPairs(schedule, selectedOrders); ICollection<Route> routes = ViolationsHelper.GetRouteForUnassignOrders(schedule, orders); if (_CheckRoutingParams(schedule, routes, orders)) { SolveOptions options = new SolveOptions(); options.GenerateDirections = App.Current.MapDisplay.TrueRoute; options.FailOnInvalidOrderGeoLocation = false; _SetOperationStartedStatus((string)App.Current.FindResource(UNASSIGN_ORDERS), (DateTime)schedule.PlannedDate); OperationsIds.Add(App.Current.Solver.UnassignOrdersAsync(schedule, orders, options)); // set solve started message string infoMessage = RoutingMessagesHelper.GetUnassignOperationStartedMessage(orders); if (!string.IsNullOrEmpty(infoMessage)) App.Current.Messenger.AddInfo(infoMessage); } } catch (RouteException e) { if (e.InvalidObjects != null) // if exception throw because any Routes or Orders are invalid _ShowSolveValidationResult(e.InvalidObjects); else _ShowErrorMsg(RoutingCmdHelpers.FormatRoutingExceptionMsg(e)); } catch (Exception e) { Logger.Error(e); if ((e is LicenseException) || (e is AuthenticationException) || (e is CommunicationException)) CommonHelpers.AddRoutingErrorMessage(e); else throw; } }
/// <summary> /// Constructor. /// </summary> /// <param name="optimizeAndEditPage">Parent page.</param> /// <param name="timeView">Time view.</param> public SelectionManager(OptimizeAndEditPage optimizeAndEditPage) { _optimizeAndEditPage = optimizeAndEditPage; _timeView = optimizeAndEditPage.TimeView; _mapView = optimizeAndEditPage.MapView; _ordersView = optimizeAndEditPage.OrdersView; _routesView = optimizeAndEditPage.RoutesView; // Set callback for checking selection possibility. _mapView.mapCtrl.CanSelectCallback = _CanSelect; _CreateCollectionsInMultiCollectionBinding(); _InitEventHandlers(); _selectionChanger = new SelectionChanger(_optimizeAndEditPage); }
/// <summary> /// Creates all necessary event handlers when application is initialized. /// </summary> /// <param name="sender">Application.</param> /// <param name="e">Event args.</param> private void _ApplicationInitialized(object sender, EventArgs e) { // Add handlers to all events to enable/disable command and update collection of options when necessary. App.Current.ProjectLoaded += new EventHandler(_ProjectLoaded); App.Current.ProjectClosing += new EventHandler(_ProjectClosing); _schedulePage = (OptimizeAndEditPage)App.Current.MainWindow.GetPage(PagePaths.SchedulePagePath); Debug.Assert(_schedulePage != null); if (null != _schedulePage.CurrentSchedule) _CreateOptions(_schedulePage.CurrentSchedule); _schedulePage.SelectionChanged += new EventHandler(_SchedulePageSelectionChanged); _schedulePage.CurrentScheduleChanged += new EventHandler(_CurrentScheduleChanged); _schedulePage.EditBegun += new DataObjectEventHandler(_SchedulePageEditBegun); _schedulePage.EditCanceled += new DataObjectEventHandler(_SchedulePageEditCanceled); _schedulePage.EditCommitted += new DataObjectEventHandler(_SchedulePageEditCommitted); App.Current.Solver.AsyncSolveCompleted += new AsyncSolveCompletedEventHandler(_AsyncSolveCompleted); }
/// <summary> /// Constructor. /// </summary> /// <param name="parentPage">Optimize and edit page.</param> public RoutesListViewContextHandler(OptimizeAndEditPage parentPage) { Debug.Assert(null != parentPage); Debug.Assert(null != parentPage.CurrentSchedule); _parentPage = parentPage; _routes = parentPage.CurrentSchedule.Routes; _dataGridControl = parentPage.RoutesView.RoutesGrid; _dataGridControl.InitializingInsertionRow += new EventHandler<InitializingInsertionRowEventArgs>(xceedGrid_InitializingInsertionRow); _mapControl = parentPage.MapView.mapCtrl; _mapControl.EndEditRouteCallback = _EditEnded; }
/// <summary> /// Define whether option is enabled. /// </summary> protected override void _CheckEnabled(OptimizeAndEditPage schedulePage) { Debug.Assert(schedulePage != null); // Option is enabled if all selected stops belong to the same route. if (!_AreAllSelectedOrdersAssignedToOneRoute(schedulePage.SelectedItems)) { IsEnabled = false; return; } var sourceRoute = _GetSourceRoute(schedulePage.SelectedItems); var result = schedulePage.CurrentSchedule != null && schedulePage.CurrentSchedule.Routes.Any( route => !route.IsLocked && route != sourceRoute); IsEnabled = result; }
/// <summary> /// Constructor. /// </summary> /// <param name="optimizeAndEditPage">Parent page.</param> public SelectionChanger(OptimizeAndEditPage optimizeAndEditPage) { Debug.Assert(optimizeAndEditPage != null); _optimizeAndEditPage = optimizeAndEditPage; }
/// <summary> ///Checks whether option enabled. /// </summary> /// <returns></returns> protected override void _CheckEnabled(OptimizeAndEditPage schedulePage) { IsEnabled = !_targetRoute.IsLocked; }
private void _App_ApplicationInitialized(object sender, EventArgs e) { App.Current.CurrentDateChanged += new EventHandler(_ImportCmd_CurrentDateChanged); if (null != ParentPage) ParentPage.Loaded += new RoutedEventHandler(_ParentPage_Loaded); _schedulePage = (AppPages.OptimizeAndEditPage)App.Current.MainWindow.GetPage(AppPages.PagePaths.SchedulePagePath); _schedulePage.EditBegun += new AppPages.DataObjectEventHandler(_SchedulePage_EditBegun); _schedulePage.EditCommitted += new AppPages.DataObjectEventHandler(_SchedulePage_EditCommitted); _schedulePage.EditCanceled += new AppPages.DataObjectEventHandler(_SchedulePage_EditCanceled); }