public static List <AstronomicalObject> ReadDataFile()
        {
            dataAlreadySaved = new List <AstronomicalObject>();
            List <AstronomicalObject> storedCelestialObjects = new List <AstronomicalObject>();

            try
            {
                StreamReader       dataFile;
                string             line;
                AstronomicalObject celesitalBody;// = new AstronomicalObject("", new ExponentionalValues(), new ExponentionalValues());

                char delimiter = ',';
                dataFile = File.OpenText(dataFilePath);
                while (!dataFile.EndOfStream)
                {
                    line = dataFile.ReadLine();

                    string[] tokens = line.Split(delimiter);
                    celesitalBody = new AstronomicalObject(
                        tokens[0],
                        new ExponentionalValues(
                            float.Parse(tokens[1]),
                            int.Parse(tokens[2]),
                            (SIUnit)Enum.Parse(typeof(SIUnit), tokens[3])),
                        new ExponentionalValues(
                            float.Parse(tokens[4]),
                            int.Parse(tokens[5]),
                            (SIUnit)Enum.Parse(typeof(SIUnit), tokens[6]))
                        );

                    storedCelestialObjects.Add(celesitalBody);
                    dataAlreadySaved.Add(celesitalBody);
                }
                dataFile.Close();
            }
            catch (Exception ex)
            {
                storedCelestialObjects.Add(new AstronomicalObject(
                                               "Pheonix Cluster Black Hole",
                                               new ExponentionalValues(2, 10, SIUnit.SolarMass),
                                               new ExponentionalValues(5.9f, 10, SIUnit.km)));
                storedCelestialObjects.Add(new AstronomicalObject(
                                               "Earth",
                                               new ExponentionalValues(5.972f, 24, SIUnit.kg),
                                               new ExponentionalValues(6.371f, 3, SIUnit.km)));
                System.Windows.Forms.MessageBox.Show(ex.Message);
            }

            return(storedCelestialObjects);
        }
Beispiel #2
0
        /// <summary>
        /// If the "save" check box is clicked; create a new entry in the list of Astronomical Objects
        /// Given the user input.
        /// Will calculate the Intesity of Gravity regardless if the object is being saved.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void add_CalculateButton_Click(object sender, EventArgs e)
        {
            string[] celestialBodyDescriptors = new string[] {
                add_NameTextBox.Text,
                add_MassTextBox.Text,
                add_MassExponentTextBox.Text,
                add_MassUnitComboBox.SelectedItem.ToString(),
                add_RadiusTextBox.Text,
                add_RadiusExponentTextBox.Text,
                add_RadiusUnitComboBox.SelectedItem.ToString()
            };

            _CreatedAstronomicalObject = new AstronomicalObject(celestialBodyDescriptors);

            if (saveCheckBox.Checked && !_AstronomicalObjectData.Contains(_CreatedAstronomicalObject))
            {
                _AstronomicalObjectData.Add(_CreatedAstronomicalObject);
                UpdateExistingData();
            }
            Add_DisplayDistance(1);
            //add_GravityOutputTextBox.Text = _CreatedAstronomicalObject.SurfaceGravityToString();
        }
Beispiel #3
0
        /// <summary>
        /// Display the corresponding information in the corresponding fields
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void loadedObjectsCombo_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Get the selected Astronomical Object
            _SelectedAstronomicalObject = _AstronomicalObjectData[loadedObjectsCombo.SelectedIndex];

            nameTextBox.Text = _SelectedAstronomicalObject.Name;
            //Mass
            ExponentionalValues mass = _SelectedAstronomicalObject.Mass;

            massTextBox.Text            = mass.value.ToString();
            massExponentTextBox.Text    = mass.exponent.ToString();
            massUnitsCombo.SelectedItem = (mass.units.Equals(SIUnit.kg)) ? "kilograms" : "Solar Masses";

            //Radius
            ExponentionalValues radius = _SelectedAstronomicalObject.Radius;

            radiusTextBox.Text            = radius.value.ToString();
            radiusExponentTextBox.Text    = radius.exponent.ToString();
            radiusUnitsCombo.SelectedItem = (radius.units.Equals(SIUnit.m)) ? "meters" : "kilometers";

            gravityOutputTextBox.Text = _SelectedAstronomicalObject.SurfaceGravityToString();
            DisplayDistance(distanceTrackBar.Value);
        }