private void SaveGraphToFile() { using (var saveFileDialog = new SaveFileDialog()) { saveFileDialog.Filter = "GraphMaker files (*.gm)|*.gm"; saveFileDialog.FilterIndex = 1; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { var fileName = saveFileDialog.FileName; string json; try { json = UiGraph.Serialize(graph); } catch (Exception ex) { MessageBox.Show($"Ошибка при сериализации графа: {ex.Message}"); return; } File.WriteAllText(fileName, json); draw(); } } }
private void CreateNewFile_Click(object sender, EventArgs e) { if (graph.Nodes.Any() && SaveFileIfNecessary() == DialogResult.Cancel) { return; } cbEdgeSizeChange.Items.Clear(); graph = UiGraph.New(); graph.Changed += OnGraphUpdate; draw(); }
public void ShouldBeSerializable() { var node1 = graph.AddNode(0, 0, Color.Red); var node2 = graph.AddNode(1, 1, Color.Green); graph.AddEdge(node1, node2, 42, Color.Blue); var json1 = UiGraph.Serialize(graph); var deserializedGraph = UiGraph.Deserialize(json1); var json2 = UiGraph.Serialize(deserializedGraph); json1.Should().Be(json2); }
public MainForm() { InitializeComponent(); graph = UiGraph.New(); graph.Changed += OnGraphUpdate; for (int i = 0; i < FontFamily.Families.Length; i++) { if (FontFamily.Families[i].Name == "Impact") { fontImpactId = i; } if (FontFamily.Families[i].Name == "Cambria") { fontCambriaId = i; } } }
private void OpenFile_Click(object sender, EventArgs e) { using (var openFileDialog = new OpenFileDialog()) { openFileDialog.Filter = " GraphMaker files (*.gm)|*.gm"; openFileDialog.FilterIndex = 1; openFileDialog.RestoreDirectory = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { var fileName = openFileDialog.FileName; var json = File.ReadAllText(fileName); UiGraph deserializedGraph; try { deserializedGraph = UiGraph.Deserialize(json); if (deserializedGraph == null) { throw new ArgumentException("Файл пуст."); } } catch (Exception ex) { MessageBox.Show($"Не удалось десериализовать граф из указанного файла: {ex.Message}"); return; } graph = deserializedGraph; graph.Changed += OnGraphUpdate; selectedEdge = null; clickedEdge = null; cbEdgeSizeChange.Items.Clear(); foreach (var edge in graph.Edges) { cbEdgeSizeChange.Items.Add(edge); } if (cbEdgeSizeChange.SelectedIndex == -1) { nudEdgeSizeChange.Value = 1; } draw(); } } }
public void SetUp() { graph = new UiGraph(typeof(Graph)); }