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/AlarmTargetSettionForm.cs | 325 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 241 insertions(+), 84 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs
index a9d9944..ec32d7c 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Safety/AlarmTargetSettionForm.cs
@@ -8,8 +8,10 @@
/// <summary>
/// 鎶ヨ鐩爣璁剧疆鐢婚潰
/// </summary>
- public class AlarmTargetSettionForm : UserCenterCommonForm
+ public class AlarmTargetSettionForm : EditorCommonForm
{
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
/// <summary>
/// 闃插尯ID(杩欎釜涓滆タ浼间箮鏄敮涓�鐨�)
/// </summary>
@@ -17,11 +19,15 @@
/// <summary>
/// 鍒楄〃鎺т欢
/// </summary>
- private VerticalScrolViewLayout listView = null;
+ private VerticalListControl listView = null;
/// <summary>
- /// 鏍囬鎺т欢
+ /// 搴曢儴鐨勩�愭坊鍔犵洰鏍囥�戠殑琛�
/// </summary>
- private TitleViewControl btnTitle = null;
+ private FrameRowControl frameBottomAddRow = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
/// <summary>
/// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
@@ -32,18 +38,7 @@
this.zoonID = i_zoonID;
//璁剧疆澶撮儴淇℃伅
- base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion));
-
- //鍙充笂娣诲姞鎸夐挳
- var btnAddDeviceIcon = new TopLayoutMostRightView();
- btnAddDeviceIcon.UnSelectedImagePath = "Item/Add.png";
- btnAddDeviceIcon.SelectedImagePath = "Item/AddSelected.png";
- topFrameLayout.AddChidren(btnAddDeviceIcon);
- btnAddDeviceIcon.MouseUpEventHandler += (sender, e) =>
- {
- var form = new AddAlarmTargetTypeListForm();
- this.AddForm(form, this.zoonID);
- };
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAlarmTargetSettion));
//鍒濆鍖栦腑閮ㄤ俊鎭�
this.InitMiddleFrame();
@@ -54,44 +49,151 @@
/// </summary>
private void InitMiddleFrame()
{
- //褰撹闃插尯鎶ヨ鏃讹紝浠ヤ笅鐩爣灏嗕細鍝嶅簲
- btnTitle = new TitleViewControl();
- btnTitle.TextColor = UserCenterColor.Current.TextGrayColor;
- btnTitle.Visible = false;
- btnTitle.Y = Application.GetRealHeight(40);
- btnTitle.TextID = R.MyInternationalizationString.uTargetViewAlarmAfterZoonAlarm;
- bodyFrameLayout.AddChidren(btnTitle);
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
- this.listView = new VerticalScrolViewLayout();
- this.listView.Y = btnTitle.Bottom + Application.GetRealHeight(20);
- this.listView.Height = bodyFrameLayout.Height - btnTitle.Bottom - Application.GetRealHeight(20);
+ //鏍规嵁闃插尯ID鑾峰彇鏈湴鐨勬姤璀︾洰鏍囧垪琛�
+ var listData = HdlSafeguardLogic.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID);
+ if (listData.Count == 0)
+ {
+ //鐗规畩鐗规晥,濡傛灉娌℃湁鎶ヨ鐩爣鐨勮瘽,鍒欐樉绀虹殑鐣岄潰鏁堟灉闈炲父鐨勫ぇ
+ this.ShowNotAlarmTargetAppeal();
+ frameBottomAddRow = null;
+ return;
+ }
+
+ //褰撹闃插尯鎶ヨ鏃讹紝浠ヤ笅鐩爣灏嗕細鍝嶅簲
+ var frameBack = new FrameLayout();
+ frameBack.Height = Application.GetRealHeight(92);
+ frameBack.BackgroundColor = UserCenterColor.Current.White;
+ bodyFrameLayout.AddChidren(frameBack);
+
+ var btnTitle = new NormalViewControl(860, 49, true);
+ btnTitle.X = ControlCommonResourse.XXLeft;
+ btnTitle.Y = Application.GetRealHeight(35);
+ btnTitle.TextSize = 12;
+ btnTitle.TextColor = UserCenterColor.Current.TextGrayColor2;
+ btnTitle.TextID = R.MyInternationalizationString.uTargetViewAlarmAfterZoonAlarm;
+ frameBack.AddChidren(btnTitle);
+
+ int maxRowCount = listData.Count;
+ if (maxRowCount > 8)
+ {
+ //鐗规晥闂,瀹冨彧鑳芥樉绀�8涓�,瓒呰繃8涓彧鑳界敤婊戝姩
+ maxRowCount = 8;
+ }
+ this.listView = new VerticalListControl(29);
+ this.listView.Y = frameBack.Bottom;
+ this.listView.BackgroundColor = UserCenterColor.Current.White;
+ this.listView.Height = (ControlCommonResourse.ListViewRowHeight + Application.GetRealHeight(29)) * maxRowCount;
bodyFrameLayout.AddChidren(this.listView);
- //璁剧疆涓棿閮ㄥ垎淇℃伅
- this.SetMiddleInfo();
+ //娣诲姞搴曢儴 娣诲姞鎶ヨ鐩爣鐨勮彍鍗曡
+ this.AddBottomAlarmTargetMenu();
+
+ new System.Threading.Thread(() =>
+ {
+ //璁剧疆涓棿閮ㄥ垎淇℃伅
+ this.SetMiddleInfo(listData);
+ })
+ { IsBackground = true }.Start();
}
/// <summary>
/// 璁剧疆涓棿閮ㄥ垎淇℃伅
/// </summary>
- public void SetMiddleInfo()
+ public void SetMiddleInfo(List<Safeguard.CatActionResponseObj> listData)
{
- this.listView.RemoveAll();
-
- //鏍规嵁闃插尯ID鑾峰彇鏈湴鐨勬姤璀︾洰鏍囧垪琛�
- var listData = Common.LocalSafeguard.Current.GetLocalAlarmTargetInfoByZoneId(this.zoonID);
- if (listData.Count > 0)
+ if (this.Parent == null)
{
- btnTitle.Visible = true;
+ return;
}
- new System.Threading.Thread(() =>
+ //娣诲姞鎶ヨ鐩爣鐨勬槑缁嗚S
+ Application.RunOnMainThread(() =>
{
- //娣诲姞鎶ヨ鐩爣鐨勬槑缁嗚
- this.AddAlarmTargetList(listData);
- })
- { IsBackground = true }.Start();
+ foreach (var data in listData)
+ {
+ //鍦烘櫙
+ if (data.Type == 1)
+ {
+ this.AddSceneRow(data);
+ }
+ //璁惧
+ if (data.Type == 0)
+ {
+ CommonDevice device = Common.LocalDevice.Current.GetDevice(data.DeviceAddr, data.Epoint);
+ if (device != null)
+ {
+ this.AddDeviceRow(data, device);
+ }
+ }
+ }
+ });
}
+
+ #endregion
+
+ #region 鈻� 鎶ヨ鐩爣鑿滃崟琛宊____________________
+
+ /// <summary>
+ /// 鏄剧ず鏃犳姤璀︾洰鏍囩壒鏁�
+ /// </summary>
+ private void ShowNotAlarmTargetAppeal()
+ {
+ var frameTemp = new FrameRowControl();
+ frameTemp.Height = Application.GetRealHeight(173);
+ frameTemp.BackgroundColor = UserCenterColor.Current.White;
+ bodyFrameLayout.AddChidren(frameTemp);
+
+ //娣诲姞鐩爣
+ var btnText = frameTemp.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAddTarget), 400);
+ btnText.TextSize = 15;
+
+ //鍔犲彿
+ var btnAdd = frameTemp.AddMostRightEmptyIcon(58, 58);
+ btnAdd.UnSelectedImagePath = "Item/Add.png";
+
+ frameTemp.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new AddAlarmTargetTypeListForm();
+ form.AddForm(this.zoonID);
+ };
+ }
+
+ /// <summary>
+ /// 娣诲姞搴曢儴 娣诲姞鎶ヨ鐩爣鐨勮彍鍗曡
+ /// </summary>
+ private void AddBottomAlarmTargetMenu()
+ {
+ //娣诲姞鐩爣
+ frameBottomAddRow = new FrameRowControl();
+ frameBottomAddRow.Y = this.listView.Bottom;
+ frameBottomAddRow.Height = ControlCommonResourse.ListViewRowHeight + Application.GetRealHeight(29 + 29);
+ frameBottomAddRow.BackgroundColor = UserCenterColor.Current.White;
+ bodyFrameLayout.AddChidren(frameBottomAddRow);
+
+ var frameTemp = new FrameRowControl();
+ frameTemp.Gravity = Gravity.CenterVertical;
+ frameBottomAddRow.AddChidren(frameTemp);
+ var btnText = frameTemp.AddLeftCaption(Language.StringByID(R.MyInternationalizationString.uAddTarget), 400);
+ btnText.TextSize = 15;
+ //鍔犲彿
+ var btnAdd = frameTemp.AddMostRightEmptyIcon(58, 58);
+ btnAdd.UnSelectedImagePath = "Item/Add.png";
+ //搴曠嚎
+ frameTemp.AddBottomLine();
+
+ frameTemp.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new AddAlarmTargetTypeListForm();
+ form.AddForm(this.zoonID);
+ };
+ }
+
+ #endregion
+
+ #region 鈻� 鎶ヨ鐩爣鏄庣粏琛宊____________________
/// <summary>
/// 娣诲姞鎶ヨ鐩爣鐨勬槑缁嗚
@@ -105,7 +207,10 @@
{
Application.RunOnMainThread(() =>
{
- this.AddDeviceRow(data);
+ if (this.Parent != null)
+ {
+ this.AddSceneRow(data);
+ }
});
}
//璁惧
@@ -120,9 +225,55 @@
Application.RunOnMainThread(() =>
{
- this.AddSceneRow(data, device);
+ if (this.Parent != null)
+ {
+ this.AddDeviceRow(data, device);
+ }
});
}
+ }
+ }
+
+ /// <summary>
+ /// 娣诲姞璁惧琛�
+ /// </summary>
+ /// <param name="data"></param>
+ /// <param name="device"></param>
+ private void AddDeviceRow(Safeguard.CatActionResponseObj data, CommonDevice device)
+ {
+ //琛屾帶浠�
+ var row = new DeviceRoomControl(device, listView.rowSpace / 2);
+ listView.AddChidren(row);
+ row.InitControl();
+ row.frameTable.UseClickStatu = false;
+ //搴曠嚎
+ row.frameTable.AddBottomLine();
+
+ //鍒犻櫎鍥炬爣
+ var btnDelete = row.frameTable.AddMostRightEmptyIcon(58, 58);
+ btnDelete.UnSelectedImagePath = "Item/DeleteIcon1.png";
+ row.frameTable.ChangedChidrenBindMode(btnDelete, ChidrenBindMode.NotBind);
+ btnDelete.ButtonClickEvent += (sender, e) =>
+ {
+ //鍒犻櫎
+ string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
+ this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+ {
+ //鍒犻櫎鎶ヨ鐩爣
+ this.DeleteAlarmTarget(row, data);
+ });
+ };
+
+ //鐘舵�佹樉绀�
+ var btnStatu = row.frameTable.AddMostRightView("", 400);
+ if (data.TaskList.Count > 0)
+ {
+ btnStatu.Text = HdlSafeguardLogic.Current.GetLightAlarmStatuText(data.TaskList);
+ }
+ else
+ {
+ //鏃犲姩浣�
+ btnStatu.TextID = R.MyInternationalizationString.uNotAction;
}
}
@@ -130,60 +281,42 @@
/// 娣诲姞鍦烘櫙琛�
/// </summary>
/// <param name="data"></param>
- /// <param name="device"></param>
- private void AddSceneRow(Safeguard.CatActionResponseObj data, CommonDevice device)
+ private void AddSceneRow(Safeguard.CatActionResponseObj data)
{
//琛屾帶浠�
- var row = new DeviceRoomViewRow(this.listView, device);
- //鐘舵�佹樉绀�
- var btnStatu = new RowSecondRightTextView();
- row.AddChidren(btnStatu);
- if (data.TaskList.Count > 0)
- {
- btnStatu.Text = SafeguardLogic.GetLightAlarmStatuText(data.TaskList);
- btnStatu.TextColor = UserCenterColor.Current.Green;
- }
- else
- {
- //鏃犲姩浣�
- btnStatu.TextID = R.MyInternationalizationString.uNotAction;
- }
+ var row = new SceneRoomControl(data.ScenesId, data.ESName, listView.rowSpace / 2);
+ listView.AddChidren(row);
+ row.InitControl();
+ row.frameTable.UseClickStatu = false;
+ //搴曠嚎
+ row.frameTable.AddBottomLine();
- var btnDelete = new RowDeleteButton();
- row.AddRightView(btnDelete);
- btnDelete.MouseUpEventHandler += (sender, e) =>
+ //鍒犻櫎鍥炬爣
+ var btnDelete = row.frameTable.AddMostRightEmptyIcon(58, 58);
+ btnDelete.UnSelectedImagePath = "Item/DeleteIcon1.png";
+ row.frameTable.ChangedChidrenBindMode(btnDelete, ChidrenBindMode.NotBind);
+ btnDelete.ButtonClickEvent += (sender, e) =>
{
//鍒犻櫎
string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
- this.ShowConfirmMsg(msg, "DeleteAlarmTarget", row, data);
+ this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+ {
+ //鍒犻櫎鎶ヨ鐩爣
+ this.DeleteAlarmTarget(row, data);
+ });
};
}
- /// <summary>
- /// 娣诲姞璁惧琛�
- /// </summary>
- /// <param name="data"></param>
- private void AddDeviceRow(Safeguard.CatActionResponseObj data)
- {
- //琛屾帶浠�
- var row = new SceneRoomViewRow(this.listView, data.ScenesId, data.ESName);
+ #endregion
- var btnDelete = new RowDeleteButton();
- row.AddRightView(btnDelete);
- btnDelete.MouseUpEventHandler += (sender, e) =>
- {
- //鍒犻櫎
- string msg = Language.StringByID(R.MyInternationalizationString.uShowDoDeleteMsg);
- this.ShowConfirmMsg(msg, "DeleteAlarmTarget", row, data);
- };
- }
+ #region 鈻� 鍒犻櫎鎸囧畾鎶ヨ鐩爣___________________
/// <summary>
/// 鍒犻櫎鎸囧畾鎶ヨ鐩爣
/// </summary>
/// <param name="row"></param>
/// <param name="delObj"></param>
- public async void DeleteAlarmTarget(StatuRowLayout row, Safeguard.CatActionResponseObj delObj)
+ private async void DeleteAlarmTarget(RowLayoutControl row, Safeguard.CatActionResponseObj delObj)
{
//鍙傛暟
var Pra = new List<Safeguard.DelAlarmActionObj>();
@@ -198,7 +331,7 @@
this.ShowProgressBar();
//鎵ц鍒犻櫎
- bool result = await Common.LocalSafeguard.Current.DeleteAlarmTaget(this.zoonID, Pra);
+ bool result = await HdlSafeguardLogic.Current.DeleteAlarmTaget(this.zoonID, Pra);
//鍏抽棴杩涘害鏉�
this.CloseProgressBar();
@@ -211,12 +344,36 @@
Application.RunOnMainThread(() =>
{
//琛岀Щ闄�
- row.RemoveFromParent();
- if (listView.ChildrenCount == 0)
+ row?.RemoveFromParent();
+ if (listView != null && listView.ChildrenCount == 0)
{
- btnTitle.Visible = false;
+ //閲嶆柊鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ return;
+ }
+ var realHeight = listView.ChildrenCount * listView.GetChildren(listView.ChildrenCount - 1).Height;
+ if (realHeight < listView.Height)
+ {
+ //缂╁皬鎺т欢楂樺害
+ listView.Height = realHeight;
+ //绉诲姩琛屾帶浠�
+ frameBottomAddRow.Y = this.listView.Bottom;
}
});
}
+ #endregion
+
+ #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+ /// <summary>
+ /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+ /// </summary>
+ public override void FormActionAgainEvent()
+ {
+ //閲嶆柊鍒锋柊鐣岄潰
+ this.InitMiddleFrame();
+ }
+
+ #endregion
}
}
--
Gitblit v1.8.0