Exemplo n.º 1
0
        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();
                }
            }
        }
Exemplo n.º 2
0
 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();
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
                }
            }
        }
Exemplo n.º 5
0
        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();
                }
            }
        }
Exemplo n.º 6
0
 public void SetUp()
 {
     graph = new UiGraph(typeof(Graph));
 }