private void EnableNDisable()
        {
            massToolStripMenuItem.Enabled            = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.Mass);
            radiiToolStripMenuItem.Enabled           = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.Radius);
            orbitalPeriodToolStripMenuItem.Enabled   = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.OrbitalPeriod);
            semiMajorAxisToolStripMenuItem.Enabled   = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.SemiMajorAxis);
            eccentricityToolStripMenuItem.Enabled    = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.Eccentricity);
            angularDistanceToolStripMenuItem.Enabled = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.AngularDistance);
            inclinationToolStripMenuItem.Enabled     = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.Inclination);
            omegaToolStripMenuItem.Enabled           = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.Omega);
            kToolStripMenuItem.Enabled     = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.VelocitySemiamplitude);
            tcalcToolStripMenuItem.Enabled = Exoplanets.IsPlotable(Exoplanets.ExoplanetsArray, PlotTypes.TemperatureCalculated);

            massVsRadiusToolStripMenuItem.Enabled          = (massToolStripMenuItem.Enabled && radiiToolStripMenuItem.Enabled) ? true : false;
            massVsOrbitalPeriodToolStripMenuItem.Enabled   = (massToolStripMenuItem.Enabled && orbitalPeriodToolStripMenuItem.Enabled) ? true : false;
            massVsSemiMajorAxisToolStripMenuItem.Enabled   = (massToolStripMenuItem.Enabled && semiMajorAxisToolStripMenuItem.Enabled) ? true : false;
            massVsEccentricityToolStripMenuItem.Enabled    = (massToolStripMenuItem.Enabled && eccentricityToolStripMenuItem.Enabled) ? true : false;
            massVsAngularDistanceToolStripMenuItem.Enabled = (massToolStripMenuItem.Enabled && angularDistanceToolStripMenuItem.Enabled) ? true : false;
            massVsInclinationToolStripMenuItem.Enabled     = (massToolStripMenuItem.Enabled && inclinationToolStripMenuItem.Enabled) ? true : false;
            massVsOmegaToolStripMenuItem.Enabled           = (massToolStripMenuItem.Enabled && omegaToolStripMenuItem.Enabled) ? true : false;
            massVsKToolStripMenuItem.Enabled = (massToolStripMenuItem.Enabled && kToolStripMenuItem.Enabled) ? true : false;

            radiusVsMassToolStripMenuItem.Enabled            = (radiiToolStripMenuItem.Enabled && massToolStripMenuItem.Enabled) ? true : false;
            radiusVsOrbitalPeriodToolStripMenuItem.Enabled   = (radiiToolStripMenuItem.Enabled && orbitalPeriodToolStripMenuItem.Enabled) ? true : false;
            radiusVsSemiMajorAxisToolStripMenuItem.Enabled   = (radiiToolStripMenuItem.Enabled && semiMajorAxisToolStripMenuItem.Enabled) ? true : false;
            radiusVsEccentricityToolStripMenuItem.Enabled    = (radiiToolStripMenuItem.Enabled && eccentricityToolStripMenuItem.Enabled) ? true : false;
            radiusVsAngularDistanceToolStripMenuItem.Enabled = (radiiToolStripMenuItem.Enabled && angularDistanceToolStripMenuItem.Enabled) ? true : false;
            radiusVsInclinationToolStripMenuItem.Enabled     = (radiiToolStripMenuItem.Enabled && inclinationToolStripMenuItem.Enabled) ? true : false;
            radiusVsOmegaToolStripMenuItem.Enabled           = (radiiToolStripMenuItem.Enabled && omegaToolStripMenuItem.Enabled) ? true : false;
            radiusVsKToolStripMenuItem.Enabled = (radiiToolStripMenuItem.Enabled && kToolStripMenuItem.Enabled) ? true : false;
        }
        private void compare_Click(object sender, EventArgs e)
        {
            string xmlFileName = string.Empty;

            if (open(out xmlFileName) == 0)
            {
                System.Collections.ArrayList array2 = ReadXML.Read(xmlFileName);

                MessageBox.Show(Exoplanets.Compare(Exoplanets.ExoplanetsArray, array2), "Comparison " + xmlFileName);
            }
        }
        private void merge_Click(object sender, EventArgs e)
        {
            string xmlFileName = string.Empty;

            if (open(out xmlFileName) == 0)
            {
                System.Collections.ArrayList array2 = ReadXML.Read(xmlFileName);

                Exoplanets.ExoplanetsArray = Exoplanets.Merge(Exoplanets.ExoplanetsArray, array2);
                WriteXML.WriteExoplanets(XmlFileName, Exoplanets.ExoplanetsArray);
                UpdateExoplanetListView(false);
            }
        }
        public void RefreshGraphics()
        {
            ArrayList array             = null;
            bool      includeDuplicates = Visualization.IncludeDuplicates == CheckState.Checked ? true : false;

            EnableNDisable();

            switch (PlotType)
            {
            case PlotTypes.Mass:
                array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.Radius:
                array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.OrbitalPeriod:
                array = Exoplanets.PlanetsWithOrbitalPeriods(Exoplanets.ExoplanetsArray, false, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.SemiMajorAxis:
                array = Exoplanets.PlanetsWithSemiMajorAxis(Exoplanets.ExoplanetsArray, false, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.Eccentricity:
                array = Exoplanets.PlanetsWithEccentricity(Exoplanets.ExoplanetsArray, false, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.AngularDistance:
                array = Exoplanets.PlanetsWithAngularDistance(Exoplanets.ExoplanetsArray, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.Inclination:
                array = Exoplanets.PlanetsWithInclination(Exoplanets.ExoplanetsArray, false, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.TemperatureCalculated:
                array = Exoplanets.PlanetsWithTemperatureCalculated(Exoplanets.ExoplanetsArray, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.Omega:
                array = Exoplanets.PlanetsWithOmega(Exoplanets.ExoplanetsArray, false, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.VelocitySemiamplitude:
                array = Exoplanets.PlanetsWithVelocitySemiamplitude(Exoplanets.ExoplanetsArray, false, true, includeDuplicates);
                Plotting.VisualizeLinearDiagrams(PlotSurface2D, array, PlotType);
                break;

            case PlotTypes.MassAndRadius:
                if ((array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithRadius(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.MassAndRadius);
                    }
                }
                break;

            case PlotTypes.MassAndOrbitalPeriod:
                if ((array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithOrbitalPeriods(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.MassAndOrbitalPeriod);
                    }
                }
                break;

            case PlotTypes.MassAndSemiMajorAxis:
                if ((array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithSemiMajorAxis(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.MassAndSemiMajorAxis);
                    }
                }
                break;

            case PlotTypes.MassAndEccentricity:
                if ((array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithEccentricity(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.MassAndEccentricity);
                    }
                }
                break;

            case PlotTypes.MassAndAngularDistance:
                if ((array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithAngularDistance(array, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.MassAndAngularDistance);
                    }
                }
                break;

            case PlotTypes.MassAndOmega:
                if ((array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithOmega(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.MassAndOmega);
                    }
                }
                break;

            case PlotTypes.MassAndInclination:
                if ((array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithInclination(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.MassAndInclination);
                    }
                }
                break;

            case PlotTypes.MassAndVelocitySemiamplitude:
                if ((array = Exoplanets.PlanetsWithMass(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithVelocitySemiamplitude(array, false, true, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.MassAndVelocitySemiamplitude);
                    }
                }
                break;

            case PlotTypes.RadiusAndMass:
                if ((array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithMass(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.RadiusAndMass);
                    }
                }
                break;

            case PlotTypes.RadiusAndOrbitalPeriod:
                if ((array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithOrbitalPeriods(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.RadiusAndOrbitalPeriod);
                    }
                }
                break;

            case PlotTypes.RadiusAndSemiMajorAxis:
                if ((array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithSemiMajorAxis(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.RadiusAndSemiMajorAxis);
                    }
                }
                break;

            case PlotTypes.RadiusAndEccentricity:
                if ((array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithEccentricity(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.RadiusAndEccentricity);
                    }
                }
                break;

            case PlotTypes.RadiusAndAngularDistance:
                if ((array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithAngularDistance(array, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.RadiusAndAngularDistance);
                    }
                }
                break;

            case PlotTypes.RadiusAndOmega:
                if ((array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithOmega(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.RadiusAndOmega);
                    }
                }
                break;

            case PlotTypes.RadiusAndInclination:
                if ((array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithInclination(array, false, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.RadiusAndInclination);
                    }
                }
                break;

            case PlotTypes.RadiusAndVelocitySemiamplitude:
                if ((array = Exoplanets.PlanetsWithRadius(Exoplanets.ExoplanetsArray, false, true)) != null)
                {
                    if ((array = Exoplanets.PlanetsWithVelocitySemiamplitude(array, false, true, true)) != null)
                    {
                        Plotting.VisualizePointDiagrams(PlotSurface2D, array, PlotTypes.RadiusAndVelocitySemiamplitude);
                    }
                }
                break;

            case PlotTypes.Stars:
                Plotting.VisualizeStars(PlotSurface2D, Exoplanets.ExoplanetsArray);
                break;
            }

            PlotSurface2D.RightMenu = NPlot.Windows.PlotSurface2D.DefaultContextMenu;
        }
 private void verifyNames_Click(object sender, EventArgs e)
 {
     MessageBox.Show(Exoplanets.VerifyNames(Exoplanets.ExoplanetsArray), "Verify Names");
 }