//конец добавлени-удаления /// <summary> Задание загружено </summary> /// <param name="e"></param> protected override void OnTaskLoadingComlete(VariantDownloadedEventArgs e) { // Мы вызваны из другого потока. Поэтому работаем с UI-элементами через Dispatcher. //Dispatcher.BeginInvoke(() => { GivenGraph = VariantSerializer.Deserialize(e.Data)[0]; }); //var number = e.Number; -- м.б. тоже где-то показать надо //var version = e.Version; GivenGraph = DirectedGraph.CreateEmpty(0); MatrixGraph = (DirectedGraph)VariantSerializer.Deserialize(e.Data)[0]; Matrix = new ObservableCollection <MatrixRowViewModel <string> >(); for (var i = 0; i < MatrixGraph.VerticesCount; ++i) { var row = new ObservableCollection <string> { i.ToString() }; for (var j = 0; j < MatrixGraph.VerticesCount; ++j) { var testEdge = new DirectedEdge(MatrixGraph.Vertices[i], MatrixGraph.Vertices[j]); row.Add(MatrixGraph.Edges.Any(testEdge.Equals) //row.Add((MatrixGraph[MatrixGraph.Vertices[i],MatrixGraph.Vertices[j]] != null) ? "1" : "0"); } row.CollectionChanged += RowChanged; Matrix.Add(new MatrixRowViewModel <string>(row)); } }
/// <summary> Задание загружено </summary> /// <param name="e"></param> protected override void OnTaskLoadingComlete(VariantDownloadedEventArgs e) { // Мы вызваны из другого потока. Поэтому работаем с UI-элементами через Dispatcher. Dispatcher.BeginInvoke(() => { GivenGraph = VariantSerializer.Deserialize(e.Data)[0]; }); //var number = e.Number; -- м.б. тоже где-то показать надо //var version = e.Version; }
/// <summary> Задание загружено </summary> /// <param name="e"></param> protected override void OnTaskLoadingComlete(VariantDownloadedEventArgs e) { // Мы вызваны из другого потока. Поэтому работаем с UI-элементами через Dispatcher. Dispatcher.BeginInvoke( () => { try { GivenGraph = (UndirectedGraph)VariantSerializer.Deserialize(e.Data)[0]; } catch (InvalidCastException ex) { throw new InvalidCastException("Входной граф должен быть неориентированным.", ex); } MdsRows = new ObservableCollection <MdsRowViewModel>(); DomSet = new ObservableCollection <Vertex>(); IsMouseVerticesMovingEnabled = true; var minDsCount = new MinDSEvaluator(GivenGraph); minDsCount.Evaluate(GivenGraph, true); RealMdsRows = new List <MdsRowViewModel>(); foreach (var minDs in minDsCount.MinDs) { var tempScc = new MdsRowViewModel(minDs); RealMdsRows.Add(tempScc); } var minimalDsCount = new MinDSEvaluator(GivenGraph); minimalDsCount.Evaluate(GivenGraph, false); var tempCount = 0; foreach (var minDs in minimalDsCount.MinDs) { tempCount++; } _task = Task.TaskAdjacencyMatrix; _dsCount = tempCount - 1; _countOfSes = _dsCount; var matrix = new ObservableCollection <CommonUI.Controls.ViewModels.MatrixRowViewModel <string> >(); for (var i = 0; i < GivenGraph.VerticesCount; ++i) { var row = new ObservableCollection <string> { i.ToString() }; for (var j = 0; j < GivenGraph.VerticesCount; ++j) { row.Add("0"); } row.CollectionChanged += RowChanged; matrix.Add(new CommonUI.Controls.ViewModels.MatrixRowViewModel <string>(row)); } Matrix = matrix; }); }
/// <summary> Вариант загружен </summary> private void OnTaskLoadingComleteInternal(VariantDownloadedEventArgs e) { Dispatcher.BeginInvoke( () => { var sendReportOnEveryActionOld = UserActionsManager.SendReportOnEveryAction; UserActionsManager.SendReportOnEveryAction = true; UserActionsManager.RegisterInfo("Задание запущено"); UserActionsManager.SendReportOnEveryAction = sendReportOnEveryActionOld; OnTaskLoadingComlete(e); }); }
/// <summary> Задание загружено </summary> /// <param name="e"></param> protected override void OnTaskLoadingComlete(VariantDownloadedEventArgs e) { // Мы вызваны из другого потока. Поэтому работаем с UI-элементами через Dispatcher. Dispatcher.BeginInvoke(() => { var data = VariantSerializer.Deserialize(e.Data); GivenGraph = data[0]; CurrentGraph = UndirectedGraph.CreateEmpty(GivenGraph.VerticesCount); }); //var number = e.Number; -- м.б. тоже где-то показать надо //var version = e.Version; }
/// <summary> Вариант загружен </summary> protected abstract void OnTaskLoadingComlete(VariantDownloadedEventArgs e);