-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFormRepeatTask.cs
138 lines (126 loc) · 4.55 KB
/
FormRepeatTask.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace TheraWii
{
public partial class FormRepeatTask : Form
{
private RepeatTask rTask;
private static Point prevLocation;
public FormRepeatTask(RepeatTask t)
{
InitializeComponent();
rTask = t;
textBoxName.Text = rTask.Name;
// Load Repeat settings
numericUpDownRepetitions.Value = rTask.numRepeats;
numericUpDownTimeLimit.Value = rTask.TimeLimit;
switch (rTask.RepeatEndType)
{
case RepeatEndType.Repetitions:
radioButtonRepetitions.Checked = true;
numericUpDownRepetitions.Enabled = true;
numericUpDownTimeLimit.Enabled = false;
break;
case RepeatEndType.TimeLimit:
radioButtonTimeLimit.Checked = true;
numericUpDownRepetitions.Enabled = false;
numericUpDownTimeLimit.Enabled = true;
break;
case RepeatEndType.Both:
radioButtonBoth.Checked = true;
numericUpDownRepetitions.Enabled = true;
numericUpDownTimeLimit.Enabled = true;
break;
default:
throw new System.Exception("Unknown RepeatEndType!");
}
}
private void buttonOk_Click(object sender, EventArgs e)
{
rTask.Name = textBoxName.Text;
rTask.numRepeats = (int)numericUpDownRepetitions.Value;
rTask.TimeLimit = (int)numericUpDownTimeLimit.Value;
if (radioButtonBoth.Checked == true)
{
rTask.RepeatEndType = RepeatEndType.Both;
rTask.endCondition = new Repeat_BothEndCondition();
((Repeat_BothEndCondition)rTask.endCondition).Initialize(rTask.numRepeats, rTask.TimeLimit);
}
else if (radioButtonRepetitions.Checked == true)
{
rTask.RepeatEndType = RepeatEndType.Repetitions;
rTask.endCondition = new Repeat_rEndCondition();
((Repeat_rEndCondition)rTask.endCondition).Initialize(rTask.numRepeats);
}
else if (radioButtonTimeLimit.Checked == true)
{
rTask.RepeatEndType = RepeatEndType.TimeLimit;
rTask.endCondition = new Repeat_tEndCondition();
((Repeat_tEndCondition)rTask.endCondition).Initialize(rTask.TimeLimit);
}
else
{
throw new System.Exception("Repeat Task Radio Button error");
}
this.DialogResult = DialogResult.OK;
this.Close();
}
private void buttonCancel_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
private void radioButtonRepetitions_CheckedChanged(object sender, EventArgs e)
{
numericUpDownRepetitions.Enabled = true;
numericUpDownTimeLimit.Enabled = false;
}
private void radioButtonTimeLimit_CheckedChanged(object sender, EventArgs e)
{
numericUpDownRepetitions.Enabled = false;
numericUpDownTimeLimit.Enabled = true;
}
private void radioButtonBoth_CheckedChanged(object sender, EventArgs e)
{
numericUpDownRepetitions.Enabled = true;
numericUpDownTimeLimit.Enabled = true;
}
private void FormRepeatTask_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar.Equals(Convert.ToChar(13)))
{
buttonOk_Click(this, new EventArgs());
}
else if (e.KeyChar.Equals(Convert.ToChar(27)))
{
buttonCancel_Click(this, new EventArgs());
}
}
private void FormRepeatTask_Load(object sender, EventArgs e)
{
if (prevLocation == null || prevLocation.X == 0 && prevLocation.Y == 0)
{
Point center = ((FormMain)this.Tag).getCenterPosition();
Point newPosition = new Point();
newPosition.X = center.X - this.Width / 2;
newPosition.Y = center.Y - this.Height / 2;
if (newPosition.Y < 1)
newPosition.Y = 1;
if (newPosition.X < 1)
newPosition.X = 1;
this.Location = newPosition;
}
else
this.Location = prevLocation;
}
private void FormRepeatTask_FormClosing(object sender, FormClosingEventArgs e)
{
prevLocation = this.Location;
}
}
}