private void SetGraph(GraphEmbedding graphEmbedding) { PauseButton_Click(null, null); this.RunAlgorithmButton.IsEnabled = true; this.StaticGraphCanvas.Children.Clear(); this.GraphVisual = GraphVisual.Create(StaticGraphCanvas, NodeBrush, NumBrush, LineBrush, PenLineCap); foreach (var node in graphEmbedding.Graph.Nodes) { GraphVisual.AddNode(node, graphEmbedding.Embedding[node]); } foreach (var edge in graphEmbedding.Graph.Edges) { GraphVisual.AddEdge(edge); } var scaleViewStackPanel = new StackPanel(); this.ScaleViewViewer.Content = scaleViewStackPanel; WeightsHandler.Create(scaleViewStackPanel, NodeBrush, LineBrush, GraphVisual.NodeWidth, GraphVisual.MinLineThickness, GraphVisual.MaxLineThickness, GraphVisual.MinWeight, GraphVisual.MaxWeight); var edges = EdgesHandler.Create(this.WeightsViewer); foreach (var edge in graphEmbedding.Graph.Edges) { edges.AddEdge(edge, active: false); } }
private UIElement InputGraphBullet() { Predicate <string> validityCheck = path => File.Exists(path) && GraphEmbedding.CanParse(path); Action <string> onPathChanged = path => { InputGraphPath = path; SetGraph(GraphEmbedding.FromText(File.ReadLines(path))); }; var textBox = InteractiveTextBox.Create(InputGraphPath, validityCheck, onPathChanged, Dispatcher); InputGraphTextBox = textBox; return(HorizontalContainerStrecherd.Create() .AddLeft(TextBlockCreator.RegularTextBlock("Input Graph").WithBullet()) .AddRight(ButtonCreator.Create("...", () => DialogCreator.ChooseFile(path => textBox.Text = path))) .AsDock(textBox)); }
private void OpenGraphButton_OnClick(object __, RoutedEventArgs _) { try { void FileChosen(string path) { var embedding = GraphEmbedding.FromText(File.ReadLines(path)); this.GraphVisual.SetNewEmbedding(embedding); } DialogCreator.ChooseFile(FileChosen); } catch (Exception e) { MessageBox.Show("An error occured. file is malformed:" + Environment.NewLine + e.Message); } }