root/plot/Pybrary.Plot/ManualNumericAxisForm.cs

Revision 746, 2.9 kB (checked in by mfenniak, 2 years ago)

--

Line 
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Text;
7 using System.Windows.Forms;
8
9 namespace Pybrary.Plot
10 {
11     public partial class ManualNumericAxisForm : Form
12     {
13         private NumericAxis axis;
14
15         public ManualNumericAxisForm(NumericAxis axis)
16         {
17             this.axis = axis;
18
19             InitializeComponent();
20
21             minAutoButton.Checked = (axis.UserMinimum == null);
22             minManualButton.Checked = !minAutoButton.Checked;
23             maxAutoButton.Checked = (axis.UserMaximum == null);
24             maxManualButton.Checked = !maxAutoButton.Checked;
25             if (axis.UserMinimum.HasValue)
26                 minValueBox.Text = axis.FormatLabel(axis.UserMinimum.Value);
27             if (axis.UserMaximum.HasValue)
28                 maxValueBox.Text = axis.FormatLabel(axis.UserMaximum.Value);
29             UpdateEnabling();
30         }
31
32         private void UpdateEnabling()
33         {
34             minValueBox.Enabled = minManualButton.Checked;
35             maxValueBox.Enabled = maxManualButton.Checked;
36         }
37
38         private void maxAutoButton_CheckedChanged(object sender, EventArgs e)
39         {
40             UpdateEnabling();
41         }
42
43         private void maxManualButton_CheckedChanged(object sender, EventArgs e)
44         {
45             UpdateEnabling();
46         }
47
48         private void minManualButton_CheckedChanged(object sender, EventArgs e)
49         {
50             UpdateEnabling();
51         }
52
53         private void minAutoButton_CheckedChanged(object sender, EventArgs e)
54         {
55             UpdateEnabling();
56         }
57
58         private void okButton_Click(object sender, EventArgs e)
59         {
60             try
61             {
62                 if (minManualButton.Checked)
63                     axis.UserMinimum = Convert.ToDouble(minValueBox.Text);
64                 else
65                     axis.UserMinimum = null;
66
67                 if (maxManualButton.Checked)
68                     axis.UserMaximum = Convert.ToDouble(maxValueBox.Text);
69                 else
70                     axis.UserMaximum = null;
71
72                 if (axis.UserMaximum.HasValue && axis.UserMinimum.HasValue && axis.UserMinimum.Value > axis.UserMaximum.Value)
73                 {
74                     // Probably entered max in min field, and vice versa.  Auto-swap.
75                     double value = axis.UserMaximum.Value;
76                     axis.UserMaximum = axis.UserMinimum;
77                     axis.UserMinimum = value;
78                 }
79
80                 Dispose();
81             }
82             catch (FormatException)
83             {
84                 MessageBox.Show(this, "You must enter number values.", "Parse Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
85             }
86         }
87
88         private void cancelButton_Click(object sender, EventArgs e)
89         {
90             Dispose();
91         }
92     }
93 }
Note: See TracBrowser for help on using the browser.