Example #1
0
        private void createNewButton_Click(object sender, EventArgs e)
        {
            try
            {
                ClearCreateNewSection();
                double coveredAngle = 0;
                try
                {
                    coveredAngle = double.Parse(createNewCoveredAngleBox.Text);
                }
                catch (Exception exc)
                { }

                double mass             = 0;
                double radius           = 0;
                double orbitalParameter = 0;
                if (createNewTypeBox.SelectedIndex != 0)
                {
                    mass             = MathUtilities.ParseFromExpNotation(double.Parse(createNewMassBox.Text), int.Parse(createNewMassEBox.Text));
                    radius           = MathUtilities.ParseFromExpNotation(double.Parse(createNewRadiusBox.Text), int.Parse(createNewRadiusEBox.Text));
                    orbitalParameter = MathUtilities.ParseFromExpNotation(double.Parse(orbitalParameterBox.Text), int.Parse(orbitalParameterEBox.Text));
                }

                switch (createNewTypeBox.SelectedIndex)
                {
                case 0:
                    currentPlanetarySystem = new PlanetarySystem(createNewNameBox.Text);
                    Star star = new Star(
                        new PlanetSystem.Models.Utilities.Point(0, 0, 0),
                        1,
                        1,
                        createNewNameBox.Text + "\' star");
                    currentPlanetarySystem.SetStar(star);
                    break;

                case 1:
                    Planet planet = new Planet(
                        new PlanetSystem.Models.Utilities.Point(0, 0, 0),
                        mass,
                        radius,
                        createNewNameBox.Text);

                    if (orbitByRadiusRadio.Checked)
                    {
                        currentPlanetarySystem.AddPlanetByOrbitalRadius(
                            planet,
                            orbitalParameter,
                            coveredAngle);
                    }
                    else
                    {
                        currentPlanetarySystem.AddPlanetByOrbitalSpeed(
                            planet,
                            orbitalParameter,
                            coveredAngle);
                    }
                    break;

                case 2:
                    string planetName = createNewPrimeSelectionBox.Text;
                    var    primeQuery = from p in currentPlanetarySystem.Planets
                                        where p.Name == planetName
                                        select p;
                    var  prime = primeQuery.FirstOrDefault();
                    Moon moon  = new Moon(
                        new PlanetSystem.Models.Utilities.Point(0, 0, 0),
                        mass,
                        radius,
                        createNewNameBox.Text);

                    if (orbitByRadiusRadio.Checked)
                    {
                        currentPlanetarySystem.AddMoonByOrbitalRadius(
                            moon,
                            prime,
                            orbitalParameter,
                            coveredAngle);
                    }
                    else
                    {
                        currentPlanetarySystem.AddMoonByOrbitalSpeed(
                            moon,
                            prime,
                            orbitalParameter,
                            coveredAngle);
                    }
                    break;

                case 3:
                    Asteroid asteroid = new Asteroid(
                        new PlanetSystem.Models.Utilities.Point(0, 0, 0),
                        mass,
                        radius,
                        createNewNameBox.Text);
                    currentPlanetarySystem.AddAsteroid(asteroid);
                    break;

                case 4:
                    ArtificialObject artObj = new ArtificialObject(new PlanetSystem.Models.Utilities.Point(0, 0, 0),
                                                                   mass,
                                                                   radius,
                                                                   createNewNameBox.Text);
                    currentPlanetarySystem.AddArtificialObject(artObj);
                    break;
                }
                LoadPlanetarySystemToTree(currentPlanetarySystem);
                Backup();
            }
            catch (Exception exc)
            {
            }
        }