From 404cdc88627f942df7944af04ee05b9d527752d6 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期一, 30 九月 2019 13:22:40 +0800
Subject: [PATCH] 合并了徐梅的按键面板绑定
---
ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs | 249 +++++++++++++++++++++++++++++++------------------
1 files changed, 157 insertions(+), 92 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs
index 4b84955..6f72ba9 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AddDeviceAlarmTargetListForm.cs
@@ -8,12 +8,14 @@
/// <summary>
/// 娣诲姞鎶ヨ鐩爣鎸囧畾璁惧绫诲瀷鐨勮澶囧垪琛�
/// </summary>
- public class AddDeviceAlarmTargetListForm : UserCenterCommonForm
+ public class AddDeviceAlarmTargetListForm : EditorCommonForm
{
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
/// <summary>
/// 鍒楄〃鎺т欢
/// </summary>
- private VerticalScrolViewLayout listView = null;
+ private VerticalListControl listView = null;
/// <summary>
/// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
/// </summary>
@@ -23,13 +25,13 @@
/// </summary>
private List<uDeviceInfo> listAllDevice = null;
/// <summary>
- /// 鐜板瓨鐨勬姤璀︾洰鏍�
- /// </summary>
- private Dictionary<string, Safeguard.CatActionResponseObj> dicAlarmDevice = null;
- /// <summary>
/// 闇�瑕佹坊鍔犵殑鎶ヨ璁惧
/// </summary>
private Dictionary<string, TaskInfoData> dicSaveDevice = new Dictionary<string, TaskInfoData>();
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
/// <summary>
/// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
@@ -45,15 +47,6 @@
//璁剧疆澶撮儴淇℃伅
base.SetTitleText(i_deviceText);
- //瀹屾垚
- var btnfinish = new TopLayoutFinshView();
- topFrameLayout.AddChidren(btnfinish);
- btnfinish.MouseUpEventHandler += (sender, e) =>
- {
- //淇濆瓨閫夋嫨鐨勮澶�
- this.DoSaveSelectDeviceAsync();
- };
-
//鍒濆鍖栦腑閮ㄤ俊鎭�
this.InitMiddleFrame(i_deviceText);
}
@@ -64,16 +57,37 @@
/// <param name="titleText">鍒楄〃澶撮儴鍚嶇О</param>
private void InitMiddleFrame(string titleText)
{
- //XXX鍒楄〃
- var btnTitle = new TitleViewControl();
- btnTitle.TextColor = UserCenterColor.Current.TextGrayColor;
- btnTitle.Y = Application.GetRealHeight(60);
- btnTitle.Text = titleText + Language.StringByID(R.MyInternationalizationString.uList);
- bodyFrameLayout.AddChidren(btnTitle);
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
- this.listView = new VerticalScrolViewLayout();
- this.listView.Y = btnTitle.Bottom;
- this.listView.Height = bodyFrameLayout.Height - btnTitle.Bottom;
+ //瀹屾垚
+ var btnfinish = new BottomClickButton();
+ btnfinish.TextID = R.MyInternationalizationString.uFinish;
+ bodyFrameLayout.AddChidren(btnfinish);
+ btnfinish.ButtonClickEvent += (sender, e) =>
+ {
+ //淇濆瓨閫夋嫨鐨勮澶�
+ this.DoSaveSelectDeviceAsync();
+ };
+
+ //XXX鍒楄〃
+ var frameTemp = new FrameLayout();
+ frameTemp.Height = Application.GetRealHeight(60 + 52);
+ frameTemp.BackgroundColor = UserCenterColor.Current.White;
+ bodyFrameLayout.AddChidren(frameTemp);
+
+ var btnTitle = new NormalViewControl(850, 60, true);
+ btnTitle.X = ControlCommonResourse.XXLeft;
+ btnTitle.Y = Application.GetRealHeight(52);
+ btnTitle.TextColor = UserCenterColor.Current.TextColor2;
+ btnTitle.Text = titleText + Language.StringByID(R.MyInternationalizationString.uList);
+ btnTitle.TextSize = 15;
+ frameTemp.AddChidren(btnTitle);
+
+ this.listView = new VerticalListControl(29);
+ listView.Y = frameTemp.Bottom;
+ listView.BackgroundColor = UserCenterColor.Current.White;
+ listView.Height = btnfinish.Y - ControlCommonResourse.BottomButtonAndListViewSpace - frameTemp.Bottom;
bodyFrameLayout.AddChidren(this.listView);
//璁剧疆涓儴淇℃伅
@@ -87,95 +101,142 @@
{
new System.Threading.Thread(() =>
{
- //鑾峰彇鐜板瓨鐨勬姤璀﹁澶�
- var listData = Common.LocalSafeguard.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID);
- dicAlarmDevice = new Dictionary<string, Safeguard.CatActionResponseObj>();
- foreach (var data in listData)
+ if (this.Parent == null)
{
- if (data.Type == 1)
- {
- //涓嶉渶瑕佸満鏅�
- continue;
- }
- string mainkeys = Common.LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint);
- dicAlarmDevice[mainkeys] = data;
+ return;
}
-
- foreach (var deviceInfo in listAllDevice)
+ Application.RunOnMainThread(() =>
{
- //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
- if (Common.LocalSafeguard.Current.IsAlarmDeviceExist(this.zoonID, deviceInfo.Device) == true)
+ int count = listAllDevice.Count - 1;
+ for (int i = 0; i < listAllDevice.Count; i++)
{
- continue;
- }
- Application.RunOnMainThread(() =>
- {
+ //濡傛灉閭d釜璁惧宸茬粡娣诲姞浜嗭紝鍒欎笉鍐嶆樉绀�
+ if (HdlSafeguardLogic.Current.IsAlarmDeviceExist(this.zoonID, listAllDevice[i].Device) == true)
+ {
+ continue;
+ }
//娣诲姞琛岀洰鏍�
- this.AddRowLayout(deviceInfo);
- });
- }
+ this.AddRowLayout(listAllDevice[i], i != count);
+ }
+ if (listView.ChildrenCount > 0)
+ {
+ int realHeight = (listView.GetChildren(listView.ChildrenCount - 1).Height) * listView.ChildrenCount + Application.GetRealHeight(23);
+ if (realHeight < listView.Height)
+ {
+ //璋冩暣鐪熷疄楂樺害
+ listView.Height = realHeight;
+ }
+ }
+ });
})
{ IsBackground = true }.Start();
}
+
+ #endregion
+
+ #region 鈻� 娣诲姞琛岀洰鏍嘷________________________
/// <summary>
/// 娣诲姞琛岀洰鏍�
/// </summary>
/// <param name="deviceInfo"></param>
- private void AddRowLayout(uDeviceInfo deviceInfo)
+ /// <param name="addLine"></param>
+ private void AddRowLayout(uDeviceInfo deviceInfo, bool addLine)
{
- var row = new DeviceRoomViewRow(this.listView, deviceInfo.Device, deviceInfo.listRoomName);
+ var row = new DeviceRoomControl(deviceInfo.Device, listView.rowSpace / 2);
+ listView.AddChidren(row);
+ row.InitControl();
//娣诲姞鍚戝彸鐨勫浘鏍�
- row.AddRightIconControl();
+ row.frameTable.AddRightArrow();
+ //搴曠嚎
+ if (addLine == true)
+ {
+ row.frameTable.AddBottomLine();
+ }
//鐘舵�佹樉绀�
- var btnStatu = new RowSecondRightTextView();
- row.AddChidren(btnStatu);
-
+ var btnStatu = row.frameTable.AddMostRightView("", 400);
string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(deviceInfo.Device);
- List<Safeguard.TaskListInfo> listTaskinfo = null;
- if (this.dicAlarmDevice.ContainsKey(mainKeys) == true)
+
+ row.frameTable.ButtonClickEvent += (sender, e) =>
{
- //鏄剧ず鐜板瓨鐨勭姸鎬佹枃鏈�
- listTaskinfo = this.dicAlarmDevice[mainKeys].TaskList;
- btnStatu.Text = SafeguardLogic.GetLightAlarmStatuText(listTaskinfo);
- btnStatu.TextColor = UserCenterColor.Current.Green;
+ List<Safeguard.TaskListInfo> listTaskinfo = null;
+ if (dicSaveDevice.ContainsKey(mainKeys) == true)
+ {
+ //鍙栫紦瀛樹腑杩樻湭淇濆瓨鐨勬暟鎹�
+ listTaskinfo = dicSaveDevice[mainKeys].listInfos;
+ }
+
+ if (deviceInfo.Device.Type == DeviceType.DimmableLight//璋冨厜鍣�
+ || deviceInfo.Device.Type == DeviceType.ColorDimmableLight)//褰╃伅
+ {
+ var form = new LightAlarmSettionForm();
+ form.AddForm(deviceInfo.Device, listTaskinfo);
+ form.ActionFormClose += (statuText, listInfo) =>
+ {
+ btnStatu.Text = statuText;
+ //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+ this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
+ };
+ }
+ else if (deviceInfo.Device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
+ {
+ var form = new CurtainAlarmSettionForm();
+ form.AddForm(deviceInfo.Device, listTaskinfo);
+ form.ActionFormClose += (statuText, listInfo) =>
+ {
+ btnStatu.Text = statuText;
+ //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+ this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
+ };
+ }
+ else
+ {
+ //鍏朵粬鐩存帴褰掍负寮�鍏崇被
+ var form = new SwitchAlarmSettionForm();
+ form.AddForm(deviceInfo.Device, listTaskinfo);
+ form.ActionFormClose += (statuText, listInfo) =>
+ {
+ btnStatu.Text = statuText;
+ //灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+ this.AddAlarmSettionDataToMemory(deviceInfo, listInfo);
+ };
+ }
+ };
+ }
+
+ /// <summary>
+ /// 灏嗘柊鐨勬姤璀︾洰鏍囨坊鍔犲叆缂撳瓨
+ /// </summary>
+ /// <param name="deviceInfo"></param>
+ /// <param name="listInfo"></param>
+ private void AddAlarmSettionDataToMemory(uDeviceInfo deviceInfo, List<Safeguard.TaskListInfo> listInfo)
+ {
+ string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(deviceInfo.Device);
+ if (listInfo == null || listInfo.Count == 0)
+ {
+ //鎸囧畾涓烘棤鍔ㄤ綔妯″紡
+ if (this.dicSaveDevice.ContainsKey(mainKeys) == true)
+ {
+ this.dicSaveDevice.Remove(mainKeys);
+ }
}
else
{
- //鏃犲姩浣�
- btnStatu.TextID = R.MyInternationalizationString.uNotAction;
- }
- row.MouseUpEvent += (sender, e) =>
- {
- var form = new LightAlarmSettionForm();
- this.AddForm(form, deviceInfo.Device, listTaskinfo);
- form.formCloseEvent += (statuText, listInfo) =>
- {
- btnStatu.Text = statuText;
- if (listInfo == null)
- {
- //鎸囧畾涓烘棤鍔ㄤ綔妯″紡
- if (this.dicSaveDevice.ContainsKey(mainKeys) == true)
- {
- this.dicSaveDevice.Remove(mainKeys);
- }
- btnStatu.TextColor = UserCenterColor.Current.TextColor;
- }
- else
- {
- //纭娣诲姞鍔ㄤ綔
- var data = new TaskInfoData();
- this.dicSaveDevice[mainKeys] = data;
- data.MacAddress = deviceInfo.Device.DeviceAddr;
- data.Epoint = deviceInfo.Device.DeviceEpoint;
- data.listInfos = listInfo;
+ //纭娣诲姞鍔ㄤ綔
+ var data = new TaskInfoData();
+ this.dicSaveDevice[mainKeys] = data;
+ data.MacAddress = deviceInfo.Device.DeviceAddr;
+ data.Epoint = deviceInfo.Device.DeviceEpoint;
+ data.listInfos.AddRange(listInfo);
- btnStatu.TextColor = UserCenterColor.Current.Green;
- }
- };
- };
+ listInfo = null;
+ }
}
+
+ #endregion
+
+ #region 鈻� 淇濆瓨閫夋嫨鐨勮澶嘷______________________
/// <summary>
/// 淇濆瓨閫夋嫨鐨勮澶�
@@ -205,7 +266,7 @@
this.ShowProgressBar();
//娣诲姞鎶ヨ鐩爣鍒板畨闃�
- bool success = await Common.LocalSafeguard.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
+ bool success = await HdlSafeguardLogic.Current.AddAlarmTagetToSafety(this.zoonID, listAction);
//鍏抽棴杩涘害鏉�
this.CloseProgressBar();
@@ -213,13 +274,15 @@
{
Application.RunOnMainThread(() =>
{
- //鍒锋柊涓�瑙堢敾闈�
- this.LoadFormMethodByName("AlarmTargetSettionForm", "SetMiddleInfo");
//鍏抽棴鑷韩
this.CloseForm();
});
}
}
+
+ #endregion
+
+ #region 鈻� 缁撴瀯浣揰______________________________
/// <summary>
/// 鎶ヨ鐩爣鏁版嵁
@@ -239,5 +302,7 @@
/// </summary>
public List<Safeguard.TaskListInfo> listInfos = new List<Safeguard.TaskListInfo>();
}
+
+ #endregion
}
}
--
Gitblit v1.8.0