HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2019-10-10 2ed75b8b337048e5d75e6d9ec8307633134f02fd
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
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Shared.Phone.UserCenter.Residence
{
    /// <summary>
    /// 添加新房间的界面
    /// </summary>
    public class AddNewRoomForm : EditorCommonForm
    {
        #region ■ 变量声明___________________________
 
        /// <summary>
        /// 列表控件
        /// </summary>
        private VerticalListControl listview = null;
        /// <summary>
        /// 楼层主键
        /// </summary>
        private string floorKeys = string.Empty;
        /// <summary>
        /// 新房间对象
        /// </summary>
        private Common.Room newRoom = null;
 
        #endregion
 
        #region ■ 初始化_____________________________
 
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        /// <param name="i_floorKeys">楼层主键</param>
        public void ShowForm(string i_floorKeys)
        {
            this.floorKeys = i_floorKeys;
            //设置头部信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uCreatRoom));
 
            //初始化中部信息
            this.InitMiddleFrame();
        }
 
        /// <summary>
        /// 初始化中部信息
        /// </summary>
        private void InitMiddleFrame()
        {
            //清空bodyFrame
            this.ClearBodyFrame();
 
            var btnPic = new PicViewControl(887, 444);
            btnPic.Y = Application.GetRealHeight(60);
            btnPic.Gravity = Gravity.CenterHorizontal;
            btnPic.UnSelectedImagePath = "Room/r0.png";
            bodyFrameLayout.AddChidren(btnPic);
 
            this.newRoom = new Common.Room();
            newRoom.FloorId = this.floorKeys;
            newRoom.BackgroundImage = btnPic.UnSelectedImagePath;
 
            //初始化桌布
            var tableContr = new InformationEditorControl();
            this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uInfoEditor), 562, 1175);
 
            //添加全部菜单
            this.AddAllMenuRow(tableContr);
        }
 
        #endregion
 
        #region ■ 添加菜单___________________________
 
        /// <summary>
        /// 添加全部菜单
        /// </summary>
        private void AddAllMenuRow(InformationEditorControl tableContr)
        {
            //【房间名称】
            var txtRoomName = new FrameCaptionInputControl(Language.StringByID(R.MyInternationalizationString.uRoomName), string.Empty, this.listview.rowSpace / 2);
            txtRoomName.txtInput.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputRoomName);
            listview.AddChidren(txtRoomName);
            txtRoomName.InitControl();
            //底线
            txtRoomName.AddBottomLine();
 
            //【所属楼层】
            var btnBelone = new FrameCaptionViewControl(Language.StringByID(R.MyInternationalizationString.uBelongeFloor), Common.Config.Instance.Home.FloorDics[this.floorKeys], this.listview.rowSpace / 2);
            listview.AddChidren(btnBelone);
            btnBelone.InitControl();
            //右箭头
            btnBelone.AddRightArrow();
            //底线
            btnBelone.AddBottomLine();
            btnBelone.ButtonClickEvent += (sender, e) =>
            {
                //楼层选择
                this.ShowSelectFloor(btnBelone);
            };
 
            //【温度】
            var rowTemperature = new FrameRowControl(this.listview.rowSpace / 2);
            listview.AddChidren(rowTemperature);
            rowTemperature.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uTemperature), 600);
            //右箭头
            rowTemperature.AddRightArrow();
            var btnTemper = rowTemperature.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 300);
            //底线
            rowTemperature.AddBottomLine();
            rowTemperature.ButtonClickEvent += (sender, e) =>
            {
            };
 
            //【湿度】
            var rowHumidity = new FrameRowControl(this.listview.rowSpace / 2);
            listview.AddChidren(rowHumidity);
            rowHumidity.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uHumidity), 600);
            //右箭头
            rowHumidity.AddRightArrow();
            var btnHumi = rowHumidity.AddMostRightView(Language.StringByID(R.MyInternationalizationString.uNothing), 300);
            //底线
            rowHumidity.AddBottomLine();
            rowHumidity.ButtonClickEvent += (sender, e) =>
            {
            };
 
            //初始化桌布完成
            tableContr.FinishInitControl(bodyFrameLayout, this.listview);
            tableContr = null;
            //保存
            var btnFinish = new BottomClickButton();
            btnFinish.TextID = R.MyInternationalizationString.uSave;
            bodyFrameLayout.AddChidren(btnFinish);
            btnFinish.ButtonClickEvent += (sender, e) =>
            {
                this.newRoom.Name = txtRoomName.Text;
                //检测能否保存房间
                if (this.CheckCanSaveRoom() == false)
                {
                    return;
                }
                var result = newRoom.AddRoom(newRoom);
                if (result == false)
                {
                    //提示用户添加失败
                    this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.FAIL));
                }
                else
                {
                    this.CloseForm();
                }
            };
        }
 
        #endregion
 
        #region ■ 楼层选择___________________________
 
        /// <summary>
        /// 楼层选择
        /// </summary>
        /// <param name="control"></param>
        private void ShowSelectFloor(FrameCaptionViewControl control)
        {
            var dicFloor = Common.Room.CurrentRoom.GetFloorSortList();
 
            var listKeys = new List<string>();
            var listName = new List<string>();
            int index = 0;
            foreach (string keys in dicFloor.Keys)
            {
                listKeys.Add(keys);
                listName.Add(dicFloor[keys]);
                if (keys == this.floorKeys)
                {
                    index = listKeys.Count - 1;
                }
            }
            PickerView.Show(listName, (value) =>
             {
                 control.txtView.Text = listName[value];
                 //主键修改
                 this.floorKeys = listKeys[value];
             },
            index,
            Language.StringByID(R.MyInternationalizationString.uBelongeFloor),
            Language.StringByID(R.MyInternationalizationString.uFinish),
            Language.StringByID(R.MyInternationalizationString.uCancel));
        }
 
        #endregion
 
        #region ■ 一般方法___________________________
 
        /// <summary>
        /// 检测能否保存房间
        /// </summary>
        /// <returns></returns>
        private bool CheckCanSaveRoom()
        {
            if (this.newRoom.Name == string.Empty)
            {
                //请输入房间名称
                this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.uPleaseInputRoomName));
                return false;
            }
            if (Shared.Common.Room.Lists.Find((obj) => obj.Name == this.newRoom.Name) != null)
            {
                this.ShowMassage(ShowMsgType.Error, Language.StringByID(R.MyInternationalizationString.HadSameRoom));
                return false;
            }
            if (newRoom.BackgroundImageType == 1 || newRoom.BackgroundImageType == 2)
            {
                this.newRoom.MoveBackGroundIamageFileToDirectory(newRoom.BackgroundImage, newRoom.BackgroundImage);
                this.newRoom.BackgroundImage = $"{Common.Config.Instance.Guid}/{Common.Config.Instance.HomeId}/{newRoom.BackgroundImage}";
            }
            newRoom.FloorId = this.floorKeys;
 
            return true;
        }
 
        #endregion
    }
}