Blame view

sources/RoboforkApp/View/EditNodeView.xaml.cs 8.63 KB
729be9a6d   doan   New Project
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using System.Windows;
  using System.Windows.Controls;
  using System.Windows.Data;
  using System.Windows.Documents;
  using System.Windows.Input;
  using System.Windows.Media;
  using System.Windows.Media.Imaging;
  using System.Windows.Shapes;
  using System.Text.RegularExpressions;
99c770eb8   nguyen_nam   Task 2062: Update
15
  using System.Globalization;
01c8c8f49   doan   Update Task 2068
16
17
  using System.Data;
  using RoboforkApp.DataModel;
729be9a6d   doan   New Project
18
19
20
  
  namespace RoboforkApp
  {
01c8c8f49   doan   Update Task 2068
21

729be9a6d   doan   New Project
22
23
24
25
26
      /// <summary>
      /// Interaction logic for EditNode.xaml
      /// </summary>
      public partial class EditNodeWindow : Window
      {
01c8c8f49   doan   Update Task 2068
27
28
29
30
31
          /// <summary>
          /// SourceDataView
          /// </summary>
          private DataView SourceDataView { get; set; }
          public DataTable ListModeDataTable = new DataTable();
b338e1ff5   nguyen_nam   no message
32
33
34
35
36
37
          public string txtMode;
          public string _txtMode
          {
              get { return txtMode; }
              set { txtMode = value; }
          }
729be9a6d   doan   New Project
38
39
40
          public string txtMode1;
          public string _txtMode1
          {
b338e1ff5   nguyen_nam   no message
41
              get { return txtMode1; }
6312cbd86   doan   Task 2062
42
          }
729be9a6d   doan   New Project
43
44
45
46
          public string txtMode2;
          public string _txtMode2
          {
              get { return txtMode2; }
6312cbd86   doan   Task 2062
47
          }
729be9a6d   doan   New Project
48
49
50
51
52
53
54
55
56
57
          public string txtMode3;
          public string _txtMode3
          {
              get { return txtMode3; }
          }
          public bool ExitFlg = false;
          public bool _ExitFlg
          {
              get { return ExitFlg; }
          }
6312cbd86   doan   Task 2062
58

abaa8d900   doan   Update Task 2099
59
          public List<ListNodeInfo> NodeInf_Lst = new List<ListNodeInfo>();
01c8c8f49   doan   Update Task 2068
60
          public List<ListNodeInfo> NodeInf_List
6312cbd86   doan   Task 2062
61
          {
01c8c8f49   doan   Update Task 2068
62
63
              get { return NodeInf_Lst; }
              set { NodeInf_Lst = value; }
6312cbd86   doan   Task 2062
64
          }
abaa8d900   doan   Update Task 2099
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
          public string NameNode
          {
              get;
              set;
          }
  
          public string LAT
          {
              get;
              set;
          }
  
          public string LOC
          {
              get;
              set;
          }
01c8c8f49   doan   Update Task 2068
82

01c8c8f49   doan   Update Task 2068
83
84
  
          public EditNodeWindow()
6312cbd86   doan   Task 2062
85
          {
01c8c8f49   doan   Update Task 2068
86
              InitializeComponent();
6312cbd86   doan   Task 2062
87
          }
6312cbd86   doan   Task 2062
88

01c8c8f49   doan   Update Task 2068
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
          private void Window_Loaded(object sender, RoutedEventArgs e)
          {
              Load_Form();
          }
          public void Load_Form()
          {
              int rowSelected = 0;
              ListModeDataTable.Columns.Add("NO", typeof(int));
              ListModeDataTable.Columns.Add("MODE", typeof(string));
              ListModeDataTable.Columns.Add("SPEED", typeof(string));
              ListModeDataTable.Columns.Add("ANGLE", typeof(string));
              ListModeDataTable.Columns.Add("HIGHT", typeof(string));
              ListModeDataTable.Columns.Add("MODESELECTED", typeof(double));
  
              if (NodeInf_Lst.Count > 0)
              {
                  for (int i = 0; i < NodeInf_Lst.Count; i++)
                  {
                      string strMode = NodeInf_Lst[i].Mode;
                      string strSpeed = NodeInf_Lst[i].Speed.ToString();
                      string strAngle = NodeInf_Lst[i].Angle.ToString();
                      string strHeight = NodeInf_Lst[i].Height.ToString();
                      int intMode = NodeInf_Lst[i].ModeSelected;
  
                      ListModeDataTable.Rows.Add(i + 1, NodeInf_Lst[i].Mode, strSpeed, strAngle, strHeight, intMode);
                  }
              }
  
              for (int i = 0; i < ListModeDataTable.Rows.Count; i++)
              {
                  if (ListModeDataTable.Rows[i]["MODESELECTED"].ToString() == "1")
                  {
                      rowSelected = i;
                  }
              }
              //ListEditNodeData.SelectedIndex = rowSelected;
              SourceDataView = new DataView(ListModeDataTable);
              ListEditNodeData.ItemsSource = SourceDataView;
abaa8d900   doan   Update Task 2099
127
128
129
130
              txtNameNode.Text = NameNode;
              txtNameNode.Focus();
              txtLAT.Content= LAT;
              txtLOC.Content = LOC;
01c8c8f49   doan   Update Task 2068
131
132
133
134
              cbMode.Text = "";
              txtSpeed.Text = "0";
              txtAngle.Text = "0";
              txtHight.Text = "0";
01c8c8f49   doan   Update Task 2068
135
          }
6312cbd86   doan   Task 2062
136

729be9a6d   doan   New Project
137

729be9a6d   doan   New Project
138
139
140
141
142
143
144
          private void btnEditNode_Click(object sender, RoutedEventArgs e)
          {
  
              string tag = ((Button)sender).Tag.ToString();
              switch (tag)
              {
                  case "ADDMODE":
99c770eb8   nguyen_nam   Task 2062: Update
145
146
147
148
149
                      if (!checkFloat(txtSpeed.Text) || !checkFloat(txtAngle.Text) || !checkFloat(txtHight.Text))
                      {
                          MessageBox.Show("Please Check Again!");
                          break;
                      }
01c8c8f49   doan   Update Task 2068
150
151
152
153
154
155
                      if ((cbMode.Text.Trim() == "") || (txtSpeed.Text.Trim() == ""))
                      {
                          MessageBox.Show("Please Check Again!");
                          break;
                      }
                      CreateMode();
729be9a6d   doan   New Project
156
157
                      clearField();
                      break;
01c8c8f49   doan   Update Task 2068
158
159
160
                  case "DELETEMODE":
                      DeleteMode();
                      break;
729be9a6d   doan   New Project
161
162
163
164
165
                  case "No":
                      ExitFlg = true;
                      this.Close();
                      break;
                  case "Save":
99c770eb8   nguyen_nam   Task 2062: Update
166
167
168
169
170
                      if (!checkFloat(txtSpeed.Text) || !checkFloat(txtAngle.Text) || !checkFloat(txtHight.Text))
                      {
                          MessageBox.Show("Please Check Again!");
                          break;
                      }
b338e1ff5   nguyen_nam   no message
171
172
                      NewDoBeginSave();
                      MessageBox.Show("Data is saved");
729be9a6d   doan   New Project
173
174
175
176
177
178
179
                      this.Close();
                      break;
                  default:
                      break;
              }
  
          }
01c8c8f49   doan   Update Task 2068
180
          public void DeleteMode()
b338e1ff5   nguyen_nam   no message
181
          {
01c8c8f49   doan   Update Task 2068
182
183
184
185
              int rowIndex = -1;
  
              rowIndex = ListEditNodeData.SelectedIndex;
              if (rowIndex < 0)
b338e1ff5   nguyen_nam   no message
186
              {
01c8c8f49   doan   Update Task 2068
187
                  rowIndex = ListModeDataTable.Rows.Count - 1;
b338e1ff5   nguyen_nam   no message
188
              }
01c8c8f49   doan   Update Task 2068
189
              if (rowIndex < 0)
b338e1ff5   nguyen_nam   no message
190
              {
01c8c8f49   doan   Update Task 2068
191
                  return;
b338e1ff5   nguyen_nam   no message
192
              }
01c8c8f49   doan   Update Task 2068
193
194
195
196
197
              ListModeDataTable.Rows[rowIndex].Delete();
  
              ListModeDataTable.AcceptChanges();
  
              for (int i = 0; i < ListModeDataTable.Rows.Count; i++)
b338e1ff5   nguyen_nam   no message
198
              {
01c8c8f49   doan   Update Task 2068
199
                  ListModeDataTable.Rows[i]["NO"] = i + 1;
b338e1ff5   nguyen_nam   no message
200
              }
b338e1ff5   nguyen_nam   no message
201

01c8c8f49   doan   Update Task 2068
202
203
204
205
206
207
208
209
210
211
212
213
214
215
              ListModeDataTable.AcceptChanges();
          }
  
          public void CreateMode()
          {
              int count = ListModeDataTable.Rows.Count;
  
              ListModeDataTable.Rows.Add(count + 1, cbMode.Text, txtSpeed.Text, txtAngle.Text, txtHight.Text, 0);
  
              ListModeDataTable.AcceptChanges();
          }
  
          public void NewDoBeginSave()
          {
b864d9729   doan   Commit Task 2085
216
              int rowSelected = -1;
01c8c8f49   doan   Update Task 2068
217
218
  
              rowSelected = ListEditNodeData.SelectedIndex;
b864d9729   doan   Commit Task 2085
219
220
221
222
              if (rowSelected < 0)
              {
                  rowSelected = 0;
              }
01c8c8f49   doan   Update Task 2068
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
              NodeInf_Lst.Clear();
  
              for (int i = 0; i < ListModeDataTable.Rows.Count; i++)
              {
                  ListNodeInfo ni = new ListNodeInfo();
                  ni.Mode = ListModeDataTable.Rows[i]["MODE"].ToString();
                  if (ListModeDataTable.Rows[i]["SPEED"].ToString() != "")
                  {
                      ni.Speed = double.Parse((ListModeDataTable.Rows[i]["SPEED"].ToString()));
                  }
                  if (ListModeDataTable.Rows[i]["ANGLE"].ToString() != "")
                  {
                      ni.Angle = double.Parse((ListModeDataTable.Rows[i]["ANGLE"].ToString()));
                  }
                  if (ListModeDataTable.Rows[i]["HIGHT"].ToString() != "")
                  {
                      ni.Height = double.Parse((ListModeDataTable.Rows[i]["HIGHT"].ToString()));
                  }
                  if(i == rowSelected)
                  {
                      ni.ModeSelected = 1;
                  }
                  else
                  {
                      ni.ModeSelected = 0;
                  }
                  NodeInf_Lst.Add(ni);
              }
abaa8d900   doan   Update Task 2099
251
              NameNode = txtNameNode.Text;
b338e1ff5   nguyen_nam   no message
252

6312cbd86   doan   Task 2062
253
          }
b338e1ff5   nguyen_nam   no message
254

99c770eb8   nguyen_nam   Task 2062: Update
255
256
257
258
259
          //Check input string is Float format
          public bool checkFloat(string st)
          {
              bool flg = false;
              Regex regex = new Regex(@"^[0-9]*(?:\.[0-9]*)?$");
b338e1ff5   nguyen_nam   no message
260

99c770eb8   nguyen_nam   Task 2062: Update
261
262
263
              flg = regex.IsMatch(st);
              return flg;
          }
729be9a6d   doan   New Project
264
265
  
          public void clearField()
6312cbd86   doan   Task 2062
266
          {
729be9a6d   doan   New Project
267
              cbMode.Text = "";
01c8c8f49   doan   Update Task 2068
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
              txtSpeed.Text = "0";
              txtAngle.Text = "0";
              txtHight.Text = "0";
          }
  
          private void txtSpeed_LostFocus(object sender, RoutedEventArgs e)
          {
              if(txtSpeed.Text.Trim() == "")
              {
                  txtSpeed.Text = "0";
              }
          }
  
          private void txtAngle_LostFocus(object sender, RoutedEventArgs e)
          {
              if (txtAngle.Text.Trim() == "")
              {
                  txtAngle.Text = "0";
              }
          }
  
          private void txtHight_LostFocus(object sender, RoutedEventArgs e)
          {
              if (txtHight.Text.Trim() == "")
              {
                  txtHight.Text = "0";
              }
729be9a6d   doan   New Project
295
296
297
298
          }
  
      }
  }