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 } } } } }
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 }
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! }
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(); }
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); } } } }
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; } }