private void MenuItemLoad_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter           = "Manipulator (*.json)|*.json|All files (*.*)|*.*";
            openFileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;

            openFileDialog.ShowDialog();

            if (openFileDialog.FileName != "")
            {
                var sr = new StreamReader(openFileDialog.FileName);

                var json = sr.ReadToEnd();

                ManipulatorSerialized manipulatorSerialized = JsonSerializer.Deserialize <ManipulatorSerialized>(json);


                if (manipulatorSerialized.elements.Count() != 0)
                {
                    manipulator.LoadManipulatorFromJson(manipulatorSerialized);
                }
                else
                {
                    MessageBox.Show("Структура данных в json неподходящая");
                }

                sr.Close();
            }
        }
Esempio n. 2
0
        public void LoadManipulatorFromJson(ManipulatorSerialized serializedManipulator)
        {
            elements.Clear();

            foreach (var element in serializedManipulator.elements)
            {
                if (element.ElementType == ManipulatorElement.elementTypes.JOINT)
                {
                    Joint joint = new Joint()
                    {
                        BeginPosition = element.BeginPosition,
                        Weight        = element.Weight
                    };

                    elements.Add(joint);
                }
                else if (element.ElementType == ManipulatorElement.elementTypes.LINK)
                {
                    Link link = new Link()
                    {
                        BeginPosition = element.BeginPosition,
                        EndPosition   = element.EndPosition,
                        Weight        = element.Weight
                    };

                    elements.Add(link);
                }
            }

            OnPropertyChanged("LoadManipulatorFromJson");
        }
        private void MenuItemSave_Click(object sender, RoutedEventArgs e)
        {
            ManipulatorSerialized manipulatorSerialized = new ManipulatorSerialized();

            foreach (var item in manipulator.elements)
            {
                ElementSerialized elementSerialized = new ElementSerialized(item);

                manipulatorSerialized.elements.Add(elementSerialized);
                if (item.ElementType == ManipulatorElement.elementTypes.LINK)
                {
                    ElementSerialized linkSerialized = new ElementSerialized((Link)item);
                }
            }

            if (manipulator.IsThereAnyIntersections())
            {
                MessageBox.Show("В манипуляторе есть пересечения");
            }

            string bufToJsonFile = JsonSerializer.Serialize <ManipulatorSerialized>(manipulatorSerialized);

            //JsonSerializer.WriteWhitespace(Environment.NewLine);

            if (bufToJsonFile.Length != 0)
            {
                SaveFileDialog sf = new SaveFileDialog();
                sf.Filter           = "Json files (*.json)|*.json";
                sf.FilterIndex      = 2;
                sf.RestoreDirectory = true;
                sf.ShowDialog();

                if (sf.FileName != "")
                {
                    string kBasePath = sf.FileName;
                    File.WriteAllText(kBasePath, bufToJsonFile);
                }
            }
            else
            {
                MessageBox.Show("Что-то пошло не так");
            }
        }