From 611786df5108dca0bdcff03834cc285cba4b8e61 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 13 十月 2020 16:48:43 +0800
Subject: [PATCH] 2020-10-13-1
---
HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs | 298 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 297 insertions(+), 1 deletions(-)
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
index de4cba5..1b0f8e9 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
@@ -1,18 +1,314 @@
锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+
namespace HDL_ON.UI
{
public partial class ClassificationPage
{
/// <summary>
+ /// 鏇存柊鐣岄潰淇℃伅
+ /// </summary>
+ /// <param name="function"></param>
+ public static void UpdataInfo(Function function)
+ {
+ Application.RunOnMainThread(() => {
+ if (bodyView == null)
+ return;
+ UpdataFunctionOnCount(function.functionCategory,function.functionType);
+ UpdataCloseAllButton(function);
+ });
+ }
+
+ /// <summary>
+ /// 鏇存柊鍔熻兘鎵撳紑鏁伴噺
+ /// </summary>
+ /// <param name="functionCategory"></param>
+ static void UpdataFunctionOnCount(FunctionCategory functionCategory, FunctionType functionType)
+ {
+ try
+ {
+ for (int i = 0; i < bodyView.functionsPageView.ChildrenCount; i++)
+ {
+ if (bodyView.functionsPageView.GetChildren(i).GetType() == typeof(FrameLayout))
+ {
+ var view1 = bodyView.functionsPageView.GetChildren(i) as FrameLayout;
+ for (int j = 0; j < view1.ChildrenCount; j++)
+ {
+ if (view1.GetChildren(j).GetType() == typeof(FrameLayout))
+ {
+ var view2 = view1.GetChildren(j) as FrameLayout;
+ for (var k = 0; k < view2.ChildrenCount; k++)
+ {
+ if (view2.GetChildren(k).GetType() == typeof(FrameLayout))
+ {
+ var view3 = view2.GetChildren(j) as FrameLayout;
+ for (var o = 0; o < view3.ChildrenCount; o++)
+ {
+ if (view3.GetChildren(o).GetType() == typeof(Button))
+ {
+ var btn = view3.GetChildren(o) as Button;
+ if (btn.Tag != null && btn.Tag.ToString() == functionCategory + "_onCount")
+ {
+ string btnText = "0/0";
+ switch (functionCategory)
+ {
+ case FunctionCategory.Thermostat:
+ switch (functionType)
+ {
+ case FunctionType.FloorHeating:
+ btnText = DB_ResidenceData.residenceData.functionList.floorHeatings.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.floorHeatings.Count;
+ break;
+ case FunctionType.AC:
+ btnText = DB_ResidenceData.residenceData.functionList.aCs.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.aCs.Count;
+ break;
+ }
+ break;
+ case FunctionCategory.Curtain:
+ btnText = DB_ResidenceData.residenceData.functionList.curtains.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.curtains.Count;
+ break;
+ case FunctionCategory.Light:
+ btnText = DB_ResidenceData.residenceData.functionList.lights.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.lights.Count;
+ break;
+ case FunctionCategory.Electrical:
+ btnText = DB_ResidenceData.residenceData.functionList.electricals.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.electricals.Count;
+ break;
+ }
+ btn.Text = btnText;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message}");
+ }
+ }
+ /// <summary>
+ /// 鏇存柊鍏ㄥ叧鍔熻兘鐘舵��
+ /// </summary>
+ static void UpdataCloseAllButton(Function function)
+ {
+ for (int i = 0; i < bodyView.roomListView.ChildrenCount; i++)
+ {
+ if (bodyView.roomListView.GetChildren(i).GetType() == typeof(FrameLayout))
+ {
+ var view1 = bodyView.roomListView.GetChildren(i) as FrameLayout;
+ if (!function.roomIdList.Contains(view1.Tag.ToString()))
+ continue;
+ for (int j = 0; j < view1.ChildrenCount; j++)
+ {
+ if (view1.GetChildren(j).GetType() == typeof(Button))
+ {
+ var btn = view1.GetChildren(j) as Button;
+ if (btn.Tag != null && btn.Tag.ToString() == "AllClose")
+ {
+ if (function.on_off == "on")
+ {
+ btn.Visible = true;
+ }
+ else
+ {
+ foreach (var rId in function.roomIdList)
+ {
+ var r = DB_ResidenceData.residenceData.rooms.Find(s => s.sid == rId);
+ var ssd = r.functions.FindAll((obj) => obj.on_off == "on" && obj.functionCategory != FunctionCategory.Scene);
+ var sss = ssd.Count;
+ if (sss == 0)
+ {
+ btn.Visible = false;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鍔犺浇鍏抽棴鎴块棿鎵�鏈夊姛鑳戒簨浠�
+ /// </summary>
+ void LoadEvent_CloseAllFunction(Button btn, Room room)
+ {
+ try
+ {
+ btn.MouseUpEventHandler = (sender, e) =>
+ {
+ Action action = () =>
+ {
+ foreach (var f in room.functions)
+ {
+ if (f.functionCategory == FunctionCategory.Scene)
+ {
+ continue;
+ }
+ f.on_off = "off";
+ Control.Send(CommandType_A.write, f);
+ }
+ btn.Visible = false;
+ };
+ new PublicAssmebly().TipMsg(StringId.Tip, StringId.TipCloseAllFunctionInRoom, action);
+ };
+ foreach (var f in room.functions)
+ {
+ if (f.functionCategory == FunctionCategory.Scene)
+ {
+ continue;
+ }
+ if (f.on_off == "on")
+ {
+ btn.Visible = true;
+ break;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"load close all function : {ex.Message}");
+ }
+ }
+
+ /// <summary>
/// 鍔犺浇浜嬩欢鍒楄〃
/// </summary>
void LoadEventList()
{
-
+ LoadEvent_ShowedChange();
}
#region 椤堕儴瀵艰埅鏍忎簨浠�
+ /// <summary>
+ /// 鏄剧ず鐣岄潰鍒囨崲
+ /// </summary>
+ void LoadEvent_ShowedChange()
+ {
+ contentPageView.PageChange = (sender, e) =>
+ {
+ if(contentPageView.PageIndex == 0)
+ {
+ btnRoomTilte.IsSelected = true;
+ btnRoomTilte.TextSize = CSS_FontSize.HeadlineFontSize;
+ btnRoomTilte.IsBold = true;
+ btnFuncTitle.IsSelected = false;
+ btnFuncTitle.TextSize = CSS_FontSize.TextFontSize;
+ btnFuncTitle.IsBold = false;
+ }
+ else
+ {
+ btnFuncTitle.IsSelected = true;
+ btnFuncTitle.TextSize = CSS_FontSize.HeadlineFontSize;
+ btnFuncTitle.IsBold = true;
+ btnRoomTilte.IsSelected = false;
+ btnRoomTilte.TextSize = CSS_FontSize.TextFontSize;
+ btnRoomTilte.IsBold = false;
+ }
+ };
+ btnRoomTilte.MouseUpEventHandler = (sender, e) =>
+ {
+ if (btnRoomTilte.IsSelected)
+ {
+ return;
+ }
+ btnRoomTilte.IsSelected = true;
+ btnRoomTilte.TextSize = CSS_FontSize.HeadlineFontSize;
+ btnFuncTitle.IsSelected = false;
+ btnFuncTitle.TextSize = CSS_FontSize.TextFontSize;
+
+ contentPageView.PageIndex = 0;
+ };
+ btnFuncTitle.MouseUpEventHandler = (sender, e) => {
+ if (btnFuncTitle.IsSelected)
+ {
+ return;
+ }
+ btnFuncTitle.IsSelected = true;
+ btnFuncTitle.TextSize = CSS_FontSize.HeadlineFontSize;
+ btnRoomTilte.IsSelected = false;
+ btnRoomTilte.TextSize = CSS_FontSize.TextFontSize;
+ contentPageView.PageIndex = 1;
+ };
+ }
#endregion
+
+ /// <summary>
+ /// 鍏抽棴鎵撳紑鍏ㄩ儴閫変腑绫诲瀷鍔熻兘
+ /// </summary>
+ void LoadEvent_SwitchFunction(Button btn, ShowFunction functionCategory)
+ {
+ btn.MouseUpEventHandler = (sender, e) => {
+ btn.IsSelected = !btn.IsSelected;
+ switch(functionCategory)
+ {
+ case ShowFunction.AC:
+ foreach(var f in DB_ResidenceData.residenceData.functionList.aCs)
+ {
+ f.on_off = btn.IsSelected ? "on" : "off";
+ Control.Send(CommandType_A.write, f);
+ }
+ break;
+ case ShowFunction.Curtain:
+
+ break;
+ case ShowFunction.Light:
+ foreach (var f in DB_ResidenceData.residenceData.functionList.lights)
+ {
+ f.on_off = btn.IsSelected ? "on" : "off";
+ Control.Send(CommandType_A.write, f);
+ }
+ break;
+ }
+
+ };
+ }
+
+
+ /// <summary>
+ /// 绐楀笜鍏ㄥ紑鍏ㄥ叧
+ /// </summary>
+ void LoadEvent_CurtainSwitch(Button btnClose, Button btnOpen)
+ {
+ btnOpen.MouseUpEventHandler = (sender, e) =>
+ {
+ if (btnOpen.IsSelected)
+ {
+ return;
+ }
+ btnOpen.IsSelected = true;
+ btnClose.IsSelected = false;
+ foreach (var f in DB_ResidenceData.residenceData.functionList.curtains)
+ {
+ f.on_off = "on";
+ Control.Send(CommandType_A.write, f);
+ }
+ };
+
+ btnClose.MouseUpEventHandler = (sender, e) =>
+ {
+ if (btnClose.IsSelected)
+ {
+ return;
+ }
+ btnClose.IsSelected = true;
+ btnOpen.IsSelected = false;
+ foreach (var f in DB_ResidenceData.residenceData.functionList.curtains)
+ {
+ f.on_off = "off";
+ Control.Send(CommandType_A.write, f);
+ }
+ };
+
+
+ }
}
}
--
Gitblit v1.8.0