private void Run() { if (StartController == null) { return; } var savedHighlights = _tree.HighlightedNodes; var settings = CreateSettings(); var solver = Tabs[_selectedTabIndex].CreateSolver(settings); var controllerVm = new ControllerViewModel(solver, Tabs[_selectedTabIndex].DisplayName, _tree); controllerVm.StartSolverAsync(); // Kinda crude, but I'm not going to write a framework for a few popups. StartController.Raise(this, new StartControllerEventArgs(controllerVm)); if (controllerVm.Result == true) { _tree.SkilledNodes = new HashSet <ushort>(controllerVm.BestSoFar); } _tree.HighlightedNodes = savedHighlights; _tree.DrawTreeComparisonHighlight(); _tree.DrawHighlights(); _tree.UpdateAvailNodes(); RunFinished.Raise(this); }
public async Task RunAsync() { var savedHighlights = _tree.HighlightedNodes; var settings = CreateSettings(); var solver = Tabs[_selectedTabIndex].CreateSolver(settings); var controllerResult = await _dialogCoordinator .ShowControllerDialogAsync(this, solver, Tabs[_selectedTabIndex].DisplayName, _tree); if (controllerResult != null) { _tree.SkilledNodes = new HashSet <ushort>(controllerResult); } _tree.HighlightedNodes = savedHighlights; _tree.DrawTreeComparisonHighlight(); _tree.DrawHighlights(); _tree.UpdateAvailNodes(); RunFinished.Raise(this); }