Esempio n. 1
0
        private void DeleteMultipleItems(System.Collections.IList ItemsToRemove)
        {
            //v1.4 only
            double tempACE = 0;

            for (int i = 0; i < ItemsToRemove.Count - 1; i++)
            {
                StormIntensityNode SNode_ToBeDeleted = (StormIntensityNode)ItemsToRemove[i];

                StormIntensities.Items.Remove(SNode_ToBeDeleted);

                for (int j = 0; j < StormIntensities.Items.Count - 1; j++)
                {
                    if (j > i)
                    {
                        StormIntensityNode SNode_Change = (StormIntensityNode)StormIntensities.Items[j]; // the node to change
                        SNode_Change.Total -= tempACE;

                        if (SNode_Change.DateTime.Date != new DateTime(0001, 1, 1))
                        {
                            SNode_Change.DateTime = SNode_Change.DateTime.AddHours(-6); // yeah
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        private void StormMenu_CopyToClipboard_Click(object sender, RoutedEventArgs e)
        {
            StormIntensityNode temp = (StormIntensityNode)StormIntensities.Items[StormIntensities.Items.Count - 1]; // get the last item.

            Clipboard.SetText(temp.Total.ToString());                                                               // set the clipboard text to the current total ACE
            temp = null;                                                                                            // destroy
        }
Esempio n. 3
0
        public EditStorm(CalcMainWindow MainWindow) // shitty i know
        {
            InitializeComponent();
            MnWindow = MainWindow;
            StormIntensityNode mostrecent = (StormIntensityNode)MnWindow.StormIntensities.Items[MnWindow.StormIntensities.SelectedIndex];

            IntensityTextBox.Text = mostrecent.Intensity.ToString();
        }
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                // V1.4: If it ain't broke, don't fix it! (build 222)

                if (Ver14_DatePicker.SelectedDate == null)
                {
                    MessageBox.Show("Error: You must select a date!", "ACE Calculator", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                MnWindow.CurrentDateTime = (DateTime)Ver14_DatePicker.SelectedDate;

                // add the time

                MnWindow.CurrentDateTime = MnWindow.CurrentDateTime.AddHours(Convert.ToInt32(Ver14_HoursBox.Text));
                MnWindow.CurrentDateTime = MnWindow.CurrentDateTime.AddMinutes(Convert.ToInt32(Ver14_HoursBox.Text));


                int addBackFactor = 0;
                for (int i = 0; i < MnWindow.StormIntensities.Items.Count; i++)
                {
                    StormIntensityNode sin = (StormIntensityNode)MnWindow.StormIntensities.Items[i]; // subtract 6 each time.
                    sin.DateTime             = MnWindow.CurrentDateTime;
                    MnWindow.CurrentDateTime = MnWindow.CurrentDateTime.AddHours(6);
                    addBackFactor           += 6;
                }

                MnWindow.StormIntensities.Items.Refresh();
            }
            catch (ArgumentOutOfRangeException)
            {
                MessageBox.Show("Error: An invalid date or time was entered.", "ACE Calculator", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }
            catch (FormatException)
            {
                MessageBox.Show("Error: An invalid date or time was entered.", "ACE Calculator", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            this.Close(); // closes the window which implicitly destroys the class and thus makes it not unsafe hopefully!
        }
Esempio n. 5
0
        private void DeleteSingleItem()
        {
            int    s       = 0;
            double tempACE = 0;
            bool   deleted = false;

            // loop through everything
            for (int i = 0; i < StormIntensities.Items.Count; i++)
            {
                //V1.4: new version - support deleting multiple items

                if (StormIntensities.SelectedIndex == i) // if it is the same as the selected index
                {
                    s = StormIntensities.SelectedIndex;
                    StormIntensityNode sinTemp = (StormIntensityNode)StormIntensities.Items[i]; // cast...
                    tempACE = sinTemp.ACE;
                    deleted = true;
                    StormIntensities.Items.RemoveAt(i); // remove the item at the selected index. Yay.
                }

                if (deleted)
                {
                    if (i > s)
                    {
                        StormIntensityNode sin = (StormIntensityNode)StormIntensities.Items[i];

                        sin.Total -= tempACE;

                        if (sin.DateTime.Date != new DateTime(0001, 1, 1))
                        {
                            sin.DateTime = sin.DateTime.AddHours(-6); // yeah
                        }
                    }
                }
            }

            StormIntensities.Items.Refresh();
        }
Esempio n. 6
0
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            for (int i = 0; i < MnWindow.StormIntensities.Items.Count; i++) // oof
            {
                StormIntensityNode sin = (StormIntensityNode)MnWindow.StormIntensities.Items[i];
                if (MnWindow.StormIntensities.SelectedIndex == i)
                {
                    try
                    {
                        double origIntensity = sin.Intensity;
                        sin.Intensity = Convert.ToDouble(IntensityTextBox.Text);
                        double origACE = sin.ACE;

                        sin.ACE = MnWindow.GenACE(sin.Intensity, MnWindow.IntensityMeasure); // todo: check mode.
                        // loop through everything

                        double tempTotal = sin.Total - origACE; // so it doesn't add the original intensity in addition to the new.

                        for (int j = MnWindow.StormIntensities.SelectedIndex; j < MnWindow.StormIntensities.Items.Count; j++)
                        {
                            StormIntensityNode sin_shittycode = (StormIntensityNode)MnWindow.StormIntensities.Items[j];
                            // ADD updateall function.
                            tempTotal           += sin_shittycode.ACE; // this is a mess but it works.
                            sin_shittycode.Total = tempTotal;
                        }

                        MnWindow.StormIntensities.Items.Refresh();
                        this.Close();
                        return;
                    }
                    catch (FormatException)
                    {
                        MessageBox.Show("Error: Cannot change the intensity to something that is not a number.", "ACE Calculator", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                }
            }
        }
Esempio n. 7
0
        public void AddPoint()
        {
            try
            {
                double intensity = Convert.ToDouble(EnterKt.Text);
                double ace       = 0;
                double t         = 0;


                StormIntensityNode node = new StormIntensityNode {
                    DateTime = CurrentDateTime, Intensity = intensity, ACE = ace, Total = t
                };
                CurrentDateTime = CurrentDateTime.AddHours(6);

                if (IntensityMeasure == 0)
                {
                    node.ACE = GenACE(node.Intensity, 0); // calculate the ACE

                    if (intensity < 34)
                    {
                        node.ACE = 0;
                    }
                }
                else
                {
                    // CANCER CODE
                    node.ACE = GenACE(node.Intensity, 1); // convert to knots

                    if (intensity < 39)
                    {
                        node.ACE = 0;
                    }
                }
                if (SinglePoint == 0)
                {
                    foreach (StormIntensityNode sin in StormIntensities.Items)
                    {
                        TotalACE += sin.ACE; // add the ace of every node to each system
                    }

                    if (StormIntensities.Items.Count == 0)
                    {
                        TotalACE   = node.ACE; // fixes this bug
                        node.Total = TotalACE;
                    }
                    else
                    {
                        node.Total = TotalACE + node.ACE;
                    }
                }
                // fix bug.
                else
                {
                    StormIntensities.Items.Clear();
                    TotalACE  += node.ACE;
                    node.Total = TotalACE;
                }

                StormIntensities.Items.Add(node);


                if (SinglePoint == 0)
                {
                    TotalACE = 0; // dont do this if we are in single point mode
                }

                EnterKt.Text = ""; // v1.4: autoclear for usability.
                return;
            }
            catch (FormatException) // someone entered gibberish
            {
                MessageBox.Show("Error: You must input a number.", "ACE Calculator", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }
        }