From 627093aca723d4bfb971b97c828e8b3a22dbda78 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 17 七月 2020 17:26:19 +0800
Subject: [PATCH] 2020-07-17-1
---
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs | 176 ++++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 114 insertions(+), 62 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
index d907473..601e1bd 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Controls/RowLayoutControls/DeviceFunctionTypeRowControl.cs
@@ -13,18 +13,34 @@
#region 鈻� 鍙橀噺澹版槑___________________________
/// <summary>
- /// 鍒ゆ柇璇ユ帶浠惰兘鍚︽樉绀�(鏈�濂界‘淇濊澶囧璞′笉涓簄ull)
+ /// 缁撴潫閫夋嫨鐨勪簨浠� value:绱㈠紩(浠�0寮�濮�) 鏂囨湰淇℃伅璇风敤Text鑾峰彇
+ /// </summary>
+ public Action<int> FinishSelectEvent = null;
+ /// <summary>
+ /// 鍒ゆ柇璇ユ帶浠惰兘鍚︽樉绀�
/// </summary>
public bool CanShowRow
{
get { return this.CheckCanShowRow(); }
+ }
+
+ private bool m_SetCanSelect = true;
+ /// <summary>
+ /// 寮哄埗璁剧疆鑳藉惁杩涜閫夋嫨(鍙缁х數鍣ㄥ拰绌烘皵寮�鍏虫湁鏁�,涓埆鐣岄潰闇�瑕佽繖绉嶆搷浣�)
+ /// </summary>
+ public bool SetCanSelect
+ {
+ set
+ {
+ m_SetCanSelect = value;
+ }
}
/// <summary>
/// 璁惧瀵硅薄
/// </summary>
private CommonDevice device = null;
/// <summary>
- /// 褰撳墠閫夋嫨鐨勫姛鑳界被鍨嬬储寮�
+ /// 褰撳墠閫夋嫨鐨勫姛鑳界被鍨嬬储寮� -1:杩樻病鏈夎缃繃 0:涓嶆寚瀹� 1:寮�鍏� 2:鐏厜 3:鎻掑骇
/// </summary>
private int nowSelectNo = -1;
@@ -33,10 +49,10 @@
#region 鈻� 鍒濆鍖朹____________________________
/// <summary>
- /// 璁惧鍔熻兘绫诲瀷鐨勮嚜瀹氫箟琛屾帶浠�(姝ゆ柟娉曢�夋嫨涔嬪悗,鏃犳潯浠剁洿鎺ュ彉鏇寸被鍨�)
+ /// 璁惧鍔熻兘绫诲瀷鐨勮嚜瀹氫箟琛屾帶浠�(閫夋嫨鍔熻兘涔嬪悗,鏃犳潯浠剁洿鎺ュ彉鏇寸被鍨�)
/// </summary>
/// <param name="i_device">璁惧鐨勫璞�</param>
- /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(鐪熷疄鍊�,鏈変簺鐣岄潰闇�瑕佽繖绉嶇壒娈婃搷浣�)</param>
+ /// <param name="i_ChidrenYaxis">瀛愭帶浠禮杞村亸绉婚噺(銆愬垪琛ㄦ帶浠剁殑rowSpace/2銆戝嵆鍙�,涓嶆噦榛樿涓�0鍗冲彲)</param>
public DeviceFunctionTypeRowControl(CommonDevice i_device, int i_ChidrenYaxis = 0) : base("", "", i_ChidrenYaxis)
{
this.device = i_device;
@@ -53,25 +69,23 @@
//鍒濆鍖栧簳灞傛暟鎹�
base.InitControl();
- if (this.device == null)
- {
- //姝ゆ帶浠堕噰鐢ㄧ殑鏄彟澶栦竴绉嶅垵濮嬪寲鏂瑰紡
- return;
- }
-
//绌烘皵寮�鍏冲拰缁х數鍣ㄥ彲浠ラ�夋嫨鍔熻兘绫诲瀷
if (this.device.Type == DeviceType.AirSwitch
|| this.device.Type == DeviceType.OnOffOutput)
{
- this.UseClickStatu = true;
- //鍙崇澶�
- this.AddRightArrow();
-
- this.ButtonClickEvent += (sender, e) =>
+ //娌¤寮哄埗骞叉秹鐨勮瘽
+ if (m_SetCanSelect == true)
{
- //鏄剧ず閫夋嫨璁惧鍔熻兘绫诲瀷鐨勭晫闈�
- this.ShowSelectDeviceFunctionListForm();
- };
+ this.UseClickStatu = true;
+ //鍙崇澶�
+ this.AddRightArrow();
+
+ this.ButtonClickEvent += (sender, e) =>
+ {
+ //鏄剧ず閫夋嫨璁惧鍔熻兘绫诲瀷鐨勭晫闈�
+ this.ShowSelectDeviceFunctionListForm();
+ };
+ }
}
}
@@ -94,15 +108,26 @@
var form = new BottomItemSelectForm();
form.CancelCallEvent = true;//鍏佽鍙栨秷
- form.AddForm(title, listText, nowSelectNo);
+ form.AddForm(title, listText, nowSelectNo - 1);
form.FinishSelectEvent += (selectNo) =>
{
+ if (selectNo == nowSelectNo - 1)
+ {
+ //閫夋嫨鐨勬槸鐩稿悓鐨�
+ return;
+ }
//-1:閫夋嫨鍙栨秷
this.Text = selectNo == -1 ? string.Empty : listText[selectNo];
- nowSelectNo = selectNo;
+ nowSelectNo = selectNo + 1;
//璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
this.RefreshDfunctionType();
+
+ //璁惧鏀瑰彉鍔熻兘绫诲瀷鐨勮瘽,涓婚〉闇�瑕侀噸鏂板埛鏂�
+ UserView.UserPage.Instance.RefreshForm = true;
+
+ //璋冪敤鍥炶皟鍑芥暟
+ this.FinishSelectEvent?.Invoke(nowSelectNo);
};
}
#endregion
@@ -117,59 +142,69 @@
//鏍囬锛氬姛鑳界被鍨�
this.btnCaption.Text = Language.StringByID(R.MyInternationalizationString.uFunctionType);
- var myFunType = DeviceFunctionType.A鏈畾涔�;
- if (this.device != null)
- {
- myFunType = this.device.DfunctionType;
- }
-
+ var myFunType = this.device.DfunctionType;
//鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
string strType = string.Empty;
- if (myFunType == DeviceFunctionType.A鐏厜)
+
+ if (this.device.DfunctionType == DeviceFunctionType.A涓嶆寚瀹�)
{
- strType = Language.StringByID(R.MyInternationalizationString.uLight);
- nowSelectNo = 1;
+ nowSelectNo = 0;
}
else if (this.device.DfunctionType == DeviceFunctionType.A寮�鍏�)
{
strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
- nowSelectNo = 0;
+ nowSelectNo = 1;
+ }
+ else if (myFunType == DeviceFunctionType.A鐏厜)
+ {
+ strType = Language.StringByID(R.MyInternationalizationString.uLight);
+ nowSelectNo = 2;
}
else if (this.device.DfunctionType == DeviceFunctionType.A鎻掑骇)
{
strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
- nowSelectNo = 2;
+ nowSelectNo = 3;
}
- //濡傛灉璁惧涓嶄负null
- if (this.device != null)
+ if (this.device.Type == DeviceType.ColorDimmableLight
+ || this.device.Type == DeviceType.ColorTemperatureLight
+ || this.device.Type == DeviceType.DimmableLight)
{
- if (this.device.Type == DeviceType.ColorDimmableLight
- || this.device.Type == DeviceType.DimmableLight)
- {
- //鐏厜绫诲浐瀹氫负 鐏厜
- strType = Language.StringByID(R.MyInternationalizationString.uLight);
- nowSelectNo = 1;
- }
- else if (this.device.Type == DeviceType.WindowCoveringDevice)
- {
- //绐楀笜鍥哄畾涓� 閬槼
- strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId100);
- nowSelectNo = -1;
- }
- else if (this.device.Type == DeviceType.Thermostat)
- {
- //绌鸿皟鍥哄畾涓� 绌鸿皟
- strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId3600);
- nowSelectNo = -1;
- }
- else if (this.device.Type == DeviceType.DoorLock)
- {
- //闂ㄩ攣鍥哄畾涓� 闂ㄩ攣
- strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2800);
- nowSelectNo = -1;
- }
+ //鐏厜绫诲浐瀹氫负 鐏厜
+ strType = Language.StringByID(R.MyInternationalizationString.uLight);
+ nowSelectNo = 2;
}
+ else if (this.device.Type == DeviceType.WindowCoveringDevice)
+ {
+ //绐楀笜鍥哄畾涓� 閬槼
+ strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId100);
+ nowSelectNo = -1;
+ }
+ else if (this.device.Type == DeviceType.Thermostat)
+ {
+ //绌鸿皟鍥哄畾涓� 绌鸿皟
+ strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId3600);
+ nowSelectNo = -1;
+ }
+ else if (this.device.Type == DeviceType.DoorLock)
+ {
+ //闂ㄩ攣鍥哄畾涓� 闂ㄩ攣
+ strType = Language.StringByID(R.MyInternationalizationString.uDeviceBelongId2800);
+ nowSelectNo = -1;
+ }
+ else if (this.device.Type == DeviceType.FreshAir)
+ {
+ //鏂伴鍥哄畾涓� 鏂伴
+ strType = Language.StringByID(R.MyInternationalizationString.FreshAir);
+ nowSelectNo = -1;
+ }
+ else if (this.device.Type == DeviceType.PMSensor)
+ {
+ //PM2.5浼犳劅鍣ㄥ浐瀹氫负 绌烘皵璐ㄩ噺
+ strType = Language.StringByID(R.MyInternationalizationString.AirQuality);
+ nowSelectNo = -1;
+ }
+
//鏄剧ず鏂囨湰
this.txtView.Text = strType;
}
@@ -192,11 +227,28 @@
|| this.device.Type == DeviceType.DoorLock//闂ㄩ攣
|| this.device.Type == DeviceType.OnOffOutput//缁х數鍣�
|| this.device.Type == DeviceType.Thermostat//绌鸿皟
+ || this.device.Type == DeviceType.FreshAir//鏂伴
+ || this.device.Type == DeviceType.PMSensor //PM2.5
+ || this.device.Type == DeviceType.ColorTemperatureLight //鑹叉俯鐏�
|| this.device.Type == DeviceType.WindowCoveringDevice)//绐楀笜
{
return true;
}
return false;
+ }
+
+ #endregion
+
+ #region 鈻� 鎺т欢鎽ф瘉___________________________
+
+ /// <summary>
+ /// 鎺т欢鎽ф瘉
+ /// </summary>
+ public override void RemoveFromParent()
+ {
+ this.FinishSelectEvent = null;
+
+ base.RemoveFromParent();
}
#endregion
@@ -208,7 +260,7 @@
/// </summary>
private void RefreshDfunctionType()
{
- if (this.nowSelectNo == 0)
+ if (this.nowSelectNo == 1)
{
this.device.DfunctionType = DeviceFunctionType.A寮�鍏�;
if (this.device.IsCustomizeImage == false)
@@ -217,7 +269,7 @@
this.device.IconPath = "Device/Switch.png";
}
}
- else if (this.nowSelectNo == 1)
+ else if (this.nowSelectNo == 2)
{
this.device.DfunctionType = DeviceFunctionType.A鐏厜;
if (this.device.IsCustomizeImage == false)
@@ -226,7 +278,7 @@
this.device.IconPath = "Device/Light.png";
}
}
- else if (this.nowSelectNo == 2)
+ else if (this.nowSelectNo == 3)
{
this.device.DfunctionType = DeviceFunctionType.A鎻掑骇;
if (this.device.IsCustomizeImage == false)
@@ -237,7 +289,7 @@
}
else
{
- this.device.DfunctionType = DeviceFunctionType.A鏈畾涔�;
+ this.device.DfunctionType = DeviceFunctionType.A涓嶆寚瀹�;
if (this.device.IsCustomizeImage == false)
{
//閲嶆柊璁剧疆鍥剧墖
--
Gitblit v1.8.0