// --Изменение визуализатора private void SetVisualizer() { SuspendLayout(); // Удаляем старый элемент управления if (visualizer != null) { groupBoxViz.Controls.Clear(); visualizer.VertexSelectedEvent -= OnSelectedVertex; visualizer.EdgeSelectedEvent -= OnSelectedEdge; } // Добавляем новый if (radioButtonVisualizatorSgvl.Checked) { SimpleGraphVisualizer sgv = new SimpleGraphVisualizer(); sgv.Dock = DockStyle.Fill; groupBoxViz.Controls.Add(sgv); visualizer = sgv; } else { MsaglGraphVisualizer msaglv = new MsaglGraphVisualizer(); msaglv.Dock = DockStyle.Fill; groupBoxViz.Controls.Add(msaglv); visualizer = msaglv; } ResumeLayout(); // Инициализируем его графом if (visualizingGraph != null) { visualizer.Initialize(visualizingGraph); } groupBoxViz.Invalidate(); // Задаём настройки SetVisualizerInteractiveMode(); // Подписываемся на события visualizer.VertexSelectedEvent += OnSelectedVertex; visualizer.EdgeSelectedEvent += OnSelectedEdge; }
// ----Методы для настройки визуализатора private void SetVisualizer(bool isSimple) { groupBoxVisualization.SuspendLayout(); groupBoxVisualization.Controls.Clear(); if (isSimple) { msaglGraphVisualizer = null; simpleGraphVisualizer = new SimpleGraphVisualizer(); groupBoxVisualization.Controls.Add(simpleGraphVisualizer); simpleGraphVisualizer.Dock = DockStyle.Fill; graphVisInterface = simpleGraphVisualizer; } else { simpleGraphVisualizer = null; msaglGraphVisualizer = new MsaglGraphVisualizer(); groupBoxVisualization.Controls.Add(msaglGraphVisualizer); msaglGraphVisualizer.Dock = DockStyle.Fill; graphVisInterface = msaglGraphVisualizer; } groupBoxVisualization.ResumeLayout(); graphVisInterface.EdgeSelectedEvent += EdgeSelectedHandler; graphVisInterface.VertexSelectedEvent += VertexSelectedHandler; }