//конец добавлени-удаления

        /// <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;
            });
        }
Beispiel #4
0
        /// <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;
        }
Beispiel #6
0
 /// <summary> Вариант загружен </summary>
 protected abstract void OnTaskLoadingComlete(VariantDownloadedEventArgs e);