JLChen
2020-06-04 6d55af8792cf8fbef0055e677b900fc352dba9a2
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
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
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
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
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
using System;
using System.Collections.Generic;
 
namespace Shared.SimpleControl.Phone
{
    public class SystemLightDimming : FrameLayout
    {
        public void SystemLightDimmingShow (LightDimming lightDimming, Common common)
        {
            MainPage.Loading.Start (Language.StringByID(R.MyInternationalizationString.load));
            if (common.Type == DeviceType.LightDALI) {
                lightDimming = lightDimming as LightDALI;
            }   
                System.Threading.Tasks.Task.Run (() => {
                try {
                    var lightDimmingBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, new byte [] { lightDimming.BigClass, lightDimming.MinClass, lightDimming.LoopID });
                    if (lightDimmingBytes == null) {
                        if (common.Type == DeviceType.LightDALI)
                            lightDimmingBytes = new byte [38];
                        else
                            lightDimmingBytes = new byte [26];
                        lightDimmingBytes [0] = lightDimming.BigClass;
                        lightDimmingBytes [1] = lightDimming.MinClass;
                        lightDimmingBytes [2] = lightDimming.LoopID;
                    } else {
                        Application.RunOnMainThread (() => {
                            #region  top
                            RowLayout topTitleView = new RowLayout () {
                                Height = Application.GetRealHeight (100),
                                BackgroundColor = SkinStyle.Current.MainColor
                            };
 
                            AddChidren (topTitleView);
                            Button backButton = new Button () {
                                X = Application.GetRealWidth (0),
                                Height = Application.GetRealHeight (90),
                                Width = Application.GetRealWidth (85),
                                UnSelectedImagePath = "Item/Back.png",
                                SelectedImagePath = "Item/BackSelected.png",
                                Gravity = Gravity.CenterVertical,
                            };
                            backButton.MouseUpEventHandler += (sender, e) => {
                                (Parent as PageLayout).PageIndex -= 1;
                                //SystemEquipmentBase.RefreshView (common);
                                //Animate = Animate.RightToLeft;
                            };
                            topTitleView.AddChidren (backButton);
 
                            EditText textButton = new EditText () {
                                X = Application.GetRealWidth (30) + backButton.Right,
                                Height = Application.GetRealHeight (50),
                                Width = Application.GetRealWidth (400),
                                Text = lightDimming.Name,
                                TextAlignment = TextAlignment.CenterLeft,
                                Gravity = Gravity.CenterVertical,
                                BackgroundColor = SkinStyle.Current.Transparent,
                                SelectedBackgroundColor = SkinStyle.Current.SysEditBox,
                                Enable = false,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            topTitleView.AddChidren (textButton);
 
                            Button editor = new Button () {
                                X = Application.GetRealWidth (520),
                                Height = Application.GetRealHeight (90),
                                Width = Application.GetRealWidth (70),
                                UnSelectedImagePath = "Item/Editor.png",
                                SelectedImagePath = "Item/EditorSelected.png",
                                Gravity = Gravity.CenterVertical,
                            };
                            topTitleView.AddChidren (editor);
                            EventHandler<MouseEventArgs> eHandler = new EventHandler<MouseEventArgs> ((sender, e) => {
                                if (editor.IsSelected) {
                                    MainPage.Loading.Start ();
                                    byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (textButton.Text.Trim ());
                                    textButton.IsSelected = editor.IsSelected = textButton.Enable = false;
                                    System.Threading.Tasks.Task.Run (() => {
                                        byte [] updateBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, new byte [] {
                                                                                             lightDimming.BigClass,lightDimming.MinClass,lightDimming.LoopID
                                                                                        });
                                        if (updateBytes == null) {
                                            Application.RunOnMainThread (() => {
                                                MainPage.Loading.Hide ();
                                                new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                            });
                                            return;
                                        }
                                        byte [] uBytes = new byte [20];
                                        Array.Copy (remakeBytes, 0, uBytes, 0, remakeBytes.Length < 20 ? remakeBytes.Length : 20);
                                        Array.Copy (uBytes, 0, updateBytes, 3, 20 < uBytes.Length ? 20 : uBytes.Length);
                                        var reBytes = Control.ControlBytesSendHasReturn (Command.SetDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, updateBytes);
                                        if (reBytes != null) {
                                            Application.RunOnMainThread (() => {
                                                lightDimming.Name = textButton.Text.Trim ();
                                                IO.FileUtils.SaveEquipmentMessage (lightDimming, lightDimming.LoopID.ToString ());
                                                MainPage.Loading.Hide ();
                                            });
                                        } else {
                                            Application.RunOnMainThread (() => {
                                                new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                                MainPage.Loading.Hide ();
                                            });
                                        }
                                    });
                                } else {
                                    textButton.Enable = textButton.IsSelected = editor.IsSelected = true;
                                }
                            });
                            editor.MouseUpEventHandler += eHandler;
                            #endregion
 
                            #region MyRegion
                            FrameLayout frameLayoutBody = new FrameLayout () {
                                Y = Application.GetRealHeight (100),
                                Height = Application.GetRealHeight (700),
                            };
                            AddChidren (frameLayoutBody);
 
                            Button btnMaximum = new Button () {
                                Width = Application.GetRealHeight (150),
                                Height = Application.GetRealHeight (45),
                                X = backButton.Right,
                                Y = Application.GetRealHeight (60),
                                TextID = R.MyInternationalizationString.MaximumOutput,
                                TextAlignment = TextAlignment.CenterLeft,
                                Enable = false,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            frameLayoutBody.AddChidren (btnMaximum);
                            EditText etMaxout = new EditText () {
                                X = btnMaximum.Right,
                                Y = btnMaximum.Y,
                                Width = Application.GetRealWidth (300),
                                Height = btnMaximum.Height,
                                Text = lightDimming.MaxLevel.ToString (),
                                TextAlignment = TextAlignment.CenterLeft,
                                BorderColor = SkinStyle.Current.BorderColor,
                                BorderWidth = 1,
                                Radius = 5,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            frameLayoutBody.AddChidren (etMaxout);
                            //---Min
                            Button btnMinimum = new Button () {
                                Width = Application.GetRealHeight (150),
                                Height = Application.GetRealHeight (45),
                                X = backButton.Right,
                                Y = btnMaximum.Bottom + Application.GetRealHeight (20),
                                TextID = R.MyInternationalizationString.MinimumOutput,
                                TextAlignment = TextAlignment.CenterLeft,
                                Enable = false,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            frameLayoutBody.AddChidren (btnMinimum);
                            EditText etMinout = new EditText () {
                                X = btnMinimum.Right,
                                Y = btnMinimum.Y,
                                Width = Application.GetRealWidth (300),
                                Height = btnMaximum.Height,
                                Text = lightDimming.Minimum.ToString (),
                                TextAlignment = TextAlignment.CenterLeft,
                                BorderColor = SkinStyle.Current.BorderColor,
                                BorderWidth = 1,
                                Radius = 5,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            frameLayoutBody.AddChidren (etMinout);
 
                            var lblDelayTime = new Button () {
                                X = backButton.Right,
                                Y = etMinout.Bottom + Application.GetRealHeight (20),
                                Width = Application.GetRealWidth (200),
                                Height = btnMaximum.Height,
                                TextID = R.MyInternationalizationString.DelayTime,
                                TextAlignment = TextAlignment.CenterLeft,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            //frameLayoutBody.AddChidren (lblDelayTime);
                            var etDelayTime = new EditText () {
                                X = lblDelayTime.Right + Application.GetRealWidth (10),
                                Y = etMinout.Bottom + Application.GetRealHeight (20),
                                Width = Application.GetRealWidth (240),
                                Height = lblDelayTime.Height,
                                TextAlignment = TextAlignment.CenterLeft,
                                Text = " " + (lightDimming.DelayTimeHeight * 256 + lightDimming.DelayTimeLow),
                                BackgroundColor = SkinStyle.Current.SubtitleView,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            //frameLayoutBody.AddChidren (etDelayTime);
 
                            Button btnSave = new Button () {
                                Width = Application.GetRealWidth (150),
                                Height = Application.GetRealHeight (50),
                                X = (Application.CurrentWidth - Application.GetRealWidth (150)) / 2,
                                Y = etMinout.Bottom + Application.GetRealHeight (20),
                                BackgroundColor = SkinStyle.Current.ButtonColor,
                                SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
                                BorderWidth = 1,
                                Radius = 5,
                                BorderColor = SkinStyle.Current.Transparent,
                                TextID = R.MyInternationalizationString.SAVE,
                                TextAlignment = TextAlignment.Center,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            frameLayoutBody.AddChidren (btnSave);
                            btnSave.MouseUpEventHandler += (sender, e) => {
                              
                                int MByte = 0;
                                int MiByte = 0;
                                if (int.TryParse (etMaxout.Text.Trim (), out MByte)) {
                                    lightDimming.MaxLevel = (byte)MByte;
                                }
                                if (int.TryParse (etMinout.Text.Trim (), out MiByte)) {
                                    lightDimming.Minimum = (byte)MiByte;
                                }
 
                                System.Threading.Tasks.Task.Run (() => {
                                    try {
                                        if (lightDimming.MaxLevel < lightDimming.Minimum || lightDimming.MaxLevel > 100 || lightDimming.MaxLevel < 0 || lightDimming.Minimum > 100 || lightDimming.Minimum < 0) {
                                            System.Threading.Tasks.Task.Run (() => {
                                                new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseEnterTheCorrectData),
                                                    Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                            });
                                        }
                                        lightDimmingBytes [23] = lightDimming.Minimum;
                                        lightDimmingBytes [24] = lightDimming.MaxLevel;
 
                                    } catch {
                                        System.Threading.Tasks.Task.Run (() => {
                                            new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseEnterTheCorrectData),
                                                Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                        });
                                    }
                                    byte [] usefulBytes = Control.ControlBytesSendHasReturn (Command.SetDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, lightDimmingBytes);
                                    if (usefulBytes == null) {
                                        Application.RunOnMainThread (() => {
                                            new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.ModifythefailurePleasechecktheequipmentisonline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                        });
                                        return;
                                    } else {
                                        IO.FileUtils.SaveEquipmentMessage (lightDimming, lightDimming.LoopID.ToString ());
                                        Application.RunOnMainThread (() => {
                                            new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.ThePerationWasSuccessful), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                        });
                                    }
                                });
                            };
 
                            Button btnDimmingText = new Button () {
                                X = backButton.Right,
                                Y = btnSave.Bottom + Application.GetRealHeight (100),
                                Width = Application.GetRealWidth (130),
                                Height = Application.GetRealHeight (60),
                                TextID = R.MyInternationalizationString.DimmingFunction,
                                TextAlignment = TextAlignment.CenterLeft,
                                TextColor = SkinStyle.Current.TextColor1,
                            };
 
                            frameLayoutBody.AddChidren (btnDimmingText);
 
                            Button btnDimming = new Button () {
                                X = btnDimmingText.Right,
                                Y = btnSave.Bottom + Application.GetRealHeight (100),
                                Width = Application.GetRealWidth (60),
                                Height = Application.GetRealHeight (59),
                                SelectedImagePath = "Light/CheckOn.png",
                                UnSelectedImagePath = "Light/Check.png",
                            };
                            frameLayoutBody.AddChidren (btnDimming);
                            btnDimming.IsSelected = lightDimming.DimmingFunction;
 
                            Button btnSwitch = new Button () {
                                Y = btnDimming.Y,
                                X = btnDimming.Right + Application.GetRealWidth (70),
                                Width = Application.GetRealWidth (200),
                                Height = Application.GetRealHeight (60),
                                BackgroundColor = SkinStyle.Current.ButtonColor,
                                SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
                                BorderWidth = 1,
                                Radius = 5,
                                BorderColor = SkinStyle.Current.Transparent,
                                TextID = R.MyInternationalizationString.ON,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            frameLayoutBody.AddChidren (btnSwitch);
 
                            FrameLayout MianSeekBarView = new FrameLayout () {
                                Width = Application.GetRealWidth (640),
                                Height = Application.GetRealHeight (80),
                                Y = btnDimming.Bottom + Application.GetRealHeight (20),
                            };
                            frameLayoutBody.AddChidren (MianSeekBarView);
                            var btnMinBrightness = new Button () {
                                Width = Application.GetRealWidth (100),
                                Height = Application.GetRealHeight (80),
                                Text = "0%",
                                TextAlignment = TextAlignment.CenterRight,
                            };
                            MianSeekBarView.AddChidren (btnMinBrightness);
 
                            var tempSeekBarFrame = new FrameLayout () {
                                Width = Application.GetRealWidth (640 - 200),
                                Height = Application.GetRealHeight (80),
                                X = btnMinBrightness.Right,
                            };
                            MianSeekBarView.AddChidren (tempSeekBarFrame);
                            var horizontalSeekBar = new HorizontalSeekBar () {
                                ThumbColor = SkinStyle.Current.ThumbColor
                            };
                            tempSeekBarFrame.AddChidren (horizontalSeekBar);
 
                            Button btnMaxBrightness = new Button () {
                                Width = Application.GetRealWidth (100),
                                Height = Application.GetRealHeight (80),
                                X = tempSeekBarFrame.Right + Application.GetRealWidth (10),
                                Text = lightDimming.CurrentBrightness + "%",
                                TextAlignment = TextAlignment.CenterLeft,
                                TextColor = SkinStyle.Current.TextColor1
                            };
                            MianSeekBarView.AddChidren (btnMaxBrightness);
 
                            byte switchLighting = 0;
                            if (lightDimming.CurrentBrightness > 0) {
                                btnSwitch.TextID = R.MyInternationalizationString.ON;
                                switchLighting = 0;
                                btnSwitch.IsSelected = true;
                            } else {
                                btnSwitch.TextID = R.MyInternationalizationString.OFF;
                                switchLighting = 100;
                                btnSwitch.IsSelected = false;
                            }
                            btnSwitch.MouseUpEventHandler += (sender, e) => {
                                if (lightDimming.CurrentBrightness > 0) {
                                    switchLighting = 0;
                                    btnMaxBrightness.Text = switchLighting + "%";
                                    btnSwitch.TextID = R.MyInternationalizationString.OFF;
                                } else {
                                    switchLighting = 100;
                                    btnSwitch.TextID = R.MyInternationalizationString.ON;
                                    btnMaxBrightness.Text = switchLighting + "%";
                                }
 
                                Control.ControlBytesSend (Command.SetSingleLight, lightDimming.SubnetID, lightDimming.DeviceID, new byte [] { lightDimming.LoopID, switchLighting, lightDimming.DelayTimeHeight, lightDimming.DelayTimeLow });
                                lightDimming.CurrentBrightness = switchLighting;
                                IO.FileUtils.SaveEquipmentMessage (lightDimming, lightDimming.LoopID.ToString ());
                                btnSwitch.IsSelected = !btnSwitch.IsSelected;
                                horizontalSeekBar.Progress = switchLighting;
                            };
 
                            horizontalSeekBar.MouseUpEventHandler += (sender, e) => {
                                Control.ControlBytesSend (Command.SetSingleLight, lightDimming.SubnetID,
                                                          lightDimming.DeviceID, new byte [] { lightDimming.LoopID, (byte)horizontalSeekBar.Progress, lightDimming.DelayTimeHeight, lightDimming.DelayTimeLow });
                                if (horizontalSeekBar.Progress == 0) {
                                    btnSwitch.IsSelected = false;
                                    btnSwitch.Text = Language.StringByID (R.MyInternationalizationString.OFF);
                                } else {
                                    btnSwitch.IsSelected = true;
                                    btnSwitch.Text = Language.StringByID (R.MyInternationalizationString.ON);
                                }
                                btnMaxBrightness.Text = horizontalSeekBar.Progress + "%";
                            };
 
                            btnDimming.MouseUpEventHandler += (sender, e) => {
                                btnDimming.IsSelected = !btnDimming.IsSelected;
                                if (btnDimming.IsSelected) {
                                    if (UserConfig.Instance.UnEnableDimmingLight.Contains (lightDimming.CommonLoopID)) {
                                        UserConfig.Instance.UnEnableDimmingLight.Remove (lightDimming.CommonLoopID);
                                    }
                                } else {
                                    UserConfig.Instance.UnEnableDimmingLight.Add (lightDimming.CommonLoopID);
                                }
                                UserConfig.Instance.SaveUserConfig ();
                                IO.FileUtils.SaveEquipmentMessage (lightDimming, lightDimming.LoopID.ToString ());
                                if (btnDimming.IsSelected) {
                                    MianSeekBarView.Height = Application.GetRealHeight (80);
                                } else
                                    MianSeekBarView.Height = Application.GetRealHeight (0);
                            };
                            if (!btnDimming.IsSelected) {
                                MianSeekBarView.Height = 0;
                            }
                        });
                    }
 
                } catch { } finally {
                    Application.RunOnMainThread (() => {
                        MainPage.Loading.Hide ();
                    });
                }
 
                #endregion
            });
 
        }
    }
 
 
    public class SystemLightDALI : FrameLayout
    {
        public void SystemLightDimmingShow (LightDALI lightDimming, Common common)
        {
            MainPage.Loading.Start (Language.StringByID(R.MyInternationalizationString.load));
            System.Threading.Tasks.Task.Run (() => {
                try {
                    var lightDimmingBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, new byte [] { lightDimming.BigClass, lightDimming.MinClass, lightDimming.LoopID });
                    if (lightDimmingBytes == null) {
                        lightDimmingBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, new byte [] { lightDimming.BigClass, lightDimming.MinClass, lightDimming.LoopID });
                        lightDimmingBytes [0] = lightDimming.BigClass;
                        lightDimmingBytes [1] = lightDimming.MinClass;
                        lightDimmingBytes [2] = lightDimming.LoopID;
                    }
                    Application.RunOnMainThread (() => {
                        #region  top
                        RowLayout topTitleView = new RowLayout () {
                            Height = Application.GetRealHeight (100),
                            BackgroundColor = SkinStyle.Current.MainColor
                        };
 
                        AddChidren (topTitleView);
                        Button backButton = new Button () {
                            X = Application.GetRealWidth (0),
                            Height = Application.GetRealHeight (90),
                            Width = Application.GetRealWidth (85),
                            UnSelectedImagePath = "Item/Back.png",
                            SelectedImagePath = "Item/BackSelected.png",
                            Gravity = Gravity.CenterVertical,
                        };
                        backButton.MouseUpEventHandler += (sender, e) => {
                            (Parent as PageLayout).PageIndex -= 1;
                            //SystemEquipmentBase.RefreshView (common);
                            //Animate = Animate.RightToLeft;
                        };
                        topTitleView.AddChidren (backButton);
 
                        EditText textButton = new EditText () {
                            X = Application.GetRealWidth (30) + backButton.Right,
                            Height = Application.GetRealHeight (50),
                            Width = Application.GetRealWidth (400),
                            Text = lightDimming.Name,
                            TextAlignment = TextAlignment.CenterLeft,
                            Gravity = Gravity.CenterVertical,
                            BackgroundColor = SkinStyle.Current.Transparent,
                            SelectedBackgroundColor = SkinStyle.Current.SysEditBox,
                            Enable = false,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        topTitleView.AddChidren (textButton);
 
                        Button editor = new Button () {
                            X = Application.GetRealWidth (520),
                            Height = Application.GetRealHeight (90),
                            Width = Application.GetRealWidth (70),
                            UnSelectedImagePath = "Item/Editor.png",
                            SelectedImagePath = "Item/EditorSelected.png",
                            Gravity = Gravity.CenterVertical,
                        };
                        topTitleView.AddChidren (editor);
                        EventHandler<MouseEventArgs> eHandler = new EventHandler<MouseEventArgs> ((sender, e) => {
                            if (editor.IsSelected) {
                                MainPage.Loading.Start ();
                                byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (textButton.Text.Trim ());
                                textButton.IsSelected = editor.IsSelected = textButton.Enable = false;
                                System.Threading.Tasks.Task.Run (() => {
                                    byte [] updateBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, new byte [] {
                                                                                             lightDimming.BigClass,lightDimming.MinClass,lightDimming.LoopID
                                                                                        });
                                    if (updateBytes == null) {
                                        Application.RunOnMainThread (() => {
                                            MainPage.Loading.Hide ();
                                            new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                        });
                                        return;
                                    }
                                    byte [] uBytes = new byte [20];
                                    Array.Copy (remakeBytes, 0, uBytes, 0, remakeBytes.Length < 20 ? remakeBytes.Length : 20);
                                    Array.Copy (uBytes, 0, updateBytes, 3, 20 < uBytes.Length ? 20 : uBytes.Length);
                                    var reBytes = Control.ControlBytesSendHasReturn (Command.SetDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, updateBytes);
                                    if (reBytes != null) {
                                        Application.RunOnMainThread (() => {
                                            lightDimming.Name = textButton.Text.Trim ();
                                            IO.FileUtils.SaveEquipmentMessage (lightDimming, lightDimming.LoopID.ToString ());
                                            MainPage.Loading.Hide ();
                                        });
                                    } else {
                                        Application.RunOnMainThread (() => {
                                            new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipEquipmentNotOnline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                            MainPage.Loading.Hide ();
                                        });
                                    }
                                });
                            } else {
                                textButton.Enable = textButton.IsSelected = editor.IsSelected = true;
                            }
                        });
                        editor.MouseUpEventHandler += eHandler;
                        #endregion
 
                        #region MyRegion
                        FrameLayout frameLayoutBody = new FrameLayout () {
                            Y = Application.GetRealHeight (100),
                            Height = Application.GetRealHeight (700),
                        };
                        AddChidren (frameLayoutBody);
 
                        Button btnMaximum = new Button () {
                            Width = Application.GetRealHeight (150),
                            Height = Application.GetRealHeight (45),
                            X = backButton.Right,
                            Y = Application.GetRealHeight (60),
                            TextID = R.MyInternationalizationString.MaximumOutput,
                            TextAlignment = TextAlignment.CenterLeft,
                            Enable = false,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        frameLayoutBody.AddChidren (btnMaximum);
                        EditText etMaxout = new EditText () {
                            X = btnMaximum.Right,
                            Y = btnMaximum.Y,
                            Width = Application.GetRealWidth (300),
                            Height = btnMaximum.Height,
                            Text = lightDimming.MaxLevel.ToString (),
                            TextAlignment = TextAlignment.CenterLeft,
                            BorderColor = SkinStyle.Current.BorderColor,
                            BorderWidth = 1,
                            Radius = 5,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        frameLayoutBody.AddChidren (etMaxout);
                        //---Min
                        Button btnMinimum = new Button () {
                            Width = Application.GetRealHeight (150),
                            Height = Application.GetRealHeight (45),
                            X = backButton.Right,
                            Y = btnMaximum.Bottom + Application.GetRealHeight (20),
                            TextID = R.MyInternationalizationString.MinimumOutput,
                            TextAlignment = TextAlignment.CenterLeft,
                            Enable = false,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        frameLayoutBody.AddChidren (btnMinimum);
                        EditText etMinout = new EditText () {
                            X = btnMinimum.Right,
                            Y = btnMinimum.Y,
                            Width = Application.GetRealWidth (300),
                            Height = btnMaximum.Height,
                            Text = lightDimming.Minimum.ToString (),
                            TextAlignment = TextAlignment.CenterLeft,
                            BorderColor = SkinStyle.Current.BorderColor,
                            BorderWidth = 1,
                            Radius = 5,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        frameLayoutBody.AddChidren (etMinout);
 
                        var lblDelayTime = new Button () {
                            X = backButton.Right,
                            Y = etMinout.Bottom + Application.GetRealHeight (20),
                            Width = Application.GetRealWidth (200),
                            Height = btnMaximum.Height,
                            TextID = R.MyInternationalizationString.DelayTime,
                            TextAlignment = TextAlignment.CenterLeft,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        //frameLayoutBody.AddChidren (lblDelayTime);
                        var etDelayTime = new EditText () {
                            X = lblDelayTime.Right + Application.GetRealWidth (10),
                            Y = etMinout.Bottom + Application.GetRealHeight (20),
                            Width = Application.GetRealWidth (240),
                            Height = lblDelayTime.Height,
                            TextAlignment = TextAlignment.CenterLeft,
                            Text = " " + (lightDimming.DelayTimeHeight * 256 + lightDimming.DelayTimeLow),
                            BackgroundColor = SkinStyle.Current.SubtitleView,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        //frameLayoutBody.AddChidren (etDelayTime);
 
                        Button btnSave = new Button () {
                            Width = Application.GetRealWidth (150),
                            Height = Application.GetRealHeight (50),
                            X = (Application.CurrentWidth - Application.GetRealWidth (150)) / 2,
                            Y = etMinout.Bottom + Application.GetRealHeight (20),
                            BackgroundColor = SkinStyle.Current.ButtonColor,
                            SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
                            BorderWidth = 1,
                            Radius = 5,
                            BorderColor = SkinStyle.Current.Transparent,
                            TextID = R.MyInternationalizationString.SAVE,
                            TextAlignment = TextAlignment.Center,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        frameLayoutBody.AddChidren (btnSave);
                        btnSave.MouseUpEventHandler += (sender, e) => {
 
                            int MByte = 0;
                            int MiByte = 0;
                            if (int.TryParse (etMaxout.Text.Trim (), out MByte)) {
                                lightDimming.MaxLevel = (byte)MByte;
                            }
                            if (int.TryParse (etMinout.Text.Trim (), out MiByte)) {
                                lightDimming.Minimum = (byte)MiByte;
                            }
 
                            System.Threading.Tasks.Task.Run (() => {
                                try {
                                    if (lightDimming.MaxLevel < lightDimming.Minimum || lightDimming.MaxLevel > 100 || lightDimming.MaxLevel < 0 || lightDimming.Minimum > 100 || lightDimming.Minimum < 0) {
                                        System.Threading.Tasks.Task.Run (() => {
                                            new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseEnterTheCorrectData),
                                                Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                        });
                                    }
                                    lightDimmingBytes [23] = lightDimming.Minimum;
                                    lightDimmingBytes [24] = lightDimming.MaxLevel;
 
                                } catch {
                                    System.Threading.Tasks.Task.Run (() => {
                                        new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseEnterTheCorrectData),
                                            Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                    });
                                }
                                byte [] usefulBytes = Control.ControlBytesSendHasReturn (Command.SetDeviceLoopInfo, lightDimming.SubnetID, lightDimming.DeviceID, lightDimmingBytes);
                                if (usefulBytes == null) {
                                    Application.RunOnMainThread (() => {
                                        new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.ModifythefailurePleasechecktheequipmentisonline), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                    });
                                    return;
                                } else {
                                    IO.FileUtils.SaveEquipmentMessage (lightDimming, lightDimming.LoopID.ToString ());
                                    Application.RunOnMainThread (() => {
                                        new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.ThePerationWasSuccessful), Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                                    });
                                }
                            });
                        };
 
                        Button btnDimmingText = new Button () {
                            X = backButton.Right,
                            Y = btnSave.Bottom + Application.GetRealHeight (100),
                            Width = Application.GetRealWidth (130),
                            Height = Application.GetRealHeight (60),
                            TextID = R.MyInternationalizationString.DimmingFunction,
                            TextAlignment = TextAlignment.CenterLeft,
                            TextColor = SkinStyle.Current.TextColor1,
                        };
 
                        frameLayoutBody.AddChidren (btnDimmingText);
 
                        Button btnDimming = new Button () {
                            X = btnDimmingText.Right,
                            Y = btnSave.Bottom + Application.GetRealHeight (100),
                            Width = Application.GetRealWidth (60),
                            Height = Application.GetRealHeight (59),
                            SelectedImagePath = "Light/CheckOn.png",
                            UnSelectedImagePath = "Light/Check.png",
                        };
                        frameLayoutBody.AddChidren (btnDimming);
                        btnDimming.IsSelected = lightDimming.DimmingFunction;
 
                        Button btnSwitch = new Button () {
                            Y = btnDimming.Y,
                            X = btnDimming.Right + Application.GetRealWidth (70),
                            Width = Application.GetRealWidth (200),
                            Height = Application.GetRealHeight (60),
                            BackgroundColor = SkinStyle.Current.ButtonColor,
                            SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
                            BorderWidth = 1,
                            Radius = 5,
                            BorderColor = SkinStyle.Current.Transparent,
                            TextID = R.MyInternationalizationString.ON,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        frameLayoutBody.AddChidren (btnSwitch);
 
                        FrameLayout MianSeekBarView = new FrameLayout () {
                            Width = Application.GetRealWidth (640),
                            Height = Application.GetRealHeight (80),
                            Y = btnDimming.Bottom + Application.GetRealHeight (20),
                        };
                        frameLayoutBody.AddChidren (MianSeekBarView);
                        var btnMinBrightness = new Button () {
                            Width = Application.GetRealWidth (100),
                            Height = Application.GetRealHeight (80),
                            Text = "0%",
                            TextAlignment = TextAlignment.CenterRight,
                        };
                        MianSeekBarView.AddChidren (btnMinBrightness);
 
                        var tempSeekBarFrame = new FrameLayout () {
                            Width = Application.GetRealWidth (640 - 200),
                            Height = Application.GetRealHeight (80),
                            X = btnMinBrightness.Right,
                        };
                        MianSeekBarView.AddChidren (tempSeekBarFrame);
                        var horizontalSeekBar = new HorizontalSeekBar () {
                            ThumbColor = SkinStyle.Current.ThumbColor
                        };
                        tempSeekBarFrame.AddChidren (horizontalSeekBar);
 
                        Button btnMaxBrightness = new Button () {
                            Width = Application.GetRealWidth (100),
                            Height = Application.GetRealHeight (80),
                            X = tempSeekBarFrame.Right + Application.GetRealWidth (10),
                            Text = lightDimming.CurrentBrightness + "%",
                            TextAlignment = TextAlignment.CenterLeft,
                            TextColor = SkinStyle.Current.TextColor1
                        };
                        MianSeekBarView.AddChidren (btnMaxBrightness);
 
                        byte switchLighting = 0;
                        if (lightDimming.CurrentBrightness > 0) {
                            btnSwitch.TextID = R.MyInternationalizationString.ON;
                            switchLighting = 0;
                            btnSwitch.IsSelected = true;
                        } else {
                            btnSwitch.TextID = R.MyInternationalizationString.OFF;
                            switchLighting = 100;
                            btnSwitch.IsSelected = false;
                        }
                        btnSwitch.MouseUpEventHandler += (sender, e) => {
                            if (lightDimming.CurrentBrightness > 0) {
                                switchLighting = 0;
                                btnMaxBrightness.Text = switchLighting + "%";
                                btnSwitch.TextID = R.MyInternationalizationString.OFF;
                            } else {
                                switchLighting = 100;
                                btnSwitch.TextID = R.MyInternationalizationString.ON;
                                btnMaxBrightness.Text = switchLighting + "%";
                            }
 
                            Control.ControlBytesSend (Command.SetSingleLight, lightDimming.SubnetID, lightDimming.DeviceID, new byte [] { lightDimming.LoopID, switchLighting, lightDimming.DelayTimeHeight, lightDimming.DelayTimeLow });
                            lightDimming.CurrentBrightness = switchLighting;
                            IO.FileUtils.SaveEquipmentMessage (lightDimming, lightDimming.LoopID.ToString ());
                            btnSwitch.IsSelected = !btnSwitch.IsSelected;
                            horizontalSeekBar.Progress = switchLighting;
                        };
 
                        horizontalSeekBar.MouseUpEventHandler += (sender, e) => {
                            Control.ControlBytesSend (Command.SetSingleLight, lightDimming.SubnetID,
                                                      lightDimming.DeviceID, new byte [] { lightDimming.LoopID, (byte)horizontalSeekBar.Progress, lightDimming.DelayTimeHeight, lightDimming.DelayTimeLow });
                            if (horizontalSeekBar.Progress == 0) {
                                btnSwitch.IsSelected = false;
                                btnSwitch.Text = Language.StringByID (R.MyInternationalizationString.OFF);
                            } else {
                                btnSwitch.IsSelected = true;
                                btnSwitch.Text = Language.StringByID (R.MyInternationalizationString.ON);
                            }
                            btnMaxBrightness.Text = horizontalSeekBar.Progress + "%";
                        };
 
                        btnDimming.MouseUpEventHandler += (sender, e) => {
                            btnDimming.IsSelected = !btnDimming.IsSelected;
                            if (btnDimming.IsSelected) {
                                if (UserConfig.Instance.UnEnableDimmingLight.Contains (lightDimming.CommonLoopID)) {
                                    UserConfig.Instance.UnEnableDimmingLight.Remove (lightDimming.CommonLoopID);
                                }
                            } else {
                                UserConfig.Instance.UnEnableDimmingLight.Add (lightDimming.CommonLoopID);
                            }
                            UserConfig.Instance.SaveUserConfig ();
                            IO.FileUtils.SaveEquipmentMessage (lightDimming, lightDimming.LoopID.ToString ());
                            if (btnDimming.IsSelected) {
                                MianSeekBarView.Height = Application.GetRealHeight (80);
                            } else
                                MianSeekBarView.Height = Application.GetRealHeight (0);
                        };
                        if (!btnDimming.IsSelected) {
                            MianSeekBarView.Height = 0;
                        }
                    });
                } catch { } finally {
                    Application.RunOnMainThread (() => {
                        MainPage.Loading.Hide ();
                    });
                }
 
                #endregion
            });
 
        }
    }
}