using 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.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count + "/" + DB_ResidenceData.functionList.floorHeatings.Count;
|
break;
|
case FunctionType.AC:
|
btnText = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count + "/" + DB_ResidenceData.functionList.aCs.Count;
|
break;
|
}
|
break;
|
case FunctionCategory.Curtain:
|
btnText = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count + "/" + DB_ResidenceData.functionList.curtains.Count;
|
break;
|
case FunctionCategory.Light:
|
btnText = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count + "/" + DB_ResidenceData.functionList.lights.Count;
|
break;
|
case FunctionCategory.Electrical:
|
btnText = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count + "/" + DB_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.trait_on_off.value.ToString() == "on")
|
{
|
btn.Visible = true;
|
}
|
else
|
{
|
foreach (var rId in function.roomIdList)
|
{
|
if(rId == null)
|
{
|
continue;
|
}
|
var r = DB_ResidenceData.rooms.Find(s => s.sid == rId);
|
if(r == null)
|
{
|
continue;
|
}
|
var ssd = r.GetRoomFunctions(false).FindAll((obj) => obj.trait_on_off.value.ToString() == "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.GetRoomFunctions(false))
|
{
|
if (f.functionCategory == FunctionCategory.Scene)
|
{
|
continue;
|
}
|
f.trait_on_off.value = "off";
|
//Control.Send(CommandType_A.write, f);
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add("on_off", f.trait_on_off.value.ToString());
|
Control.SendWriteCommand(f, d);
|
}
|
btn.Visible = false;
|
};
|
new PublicAssmebly().TipMsg(StringId.Tip, StringId.TipCloseAllFunctionInRoom, action);
|
};
|
foreach (var f in room.GetRoomFunctions(false))
|
{
|
if (f.functionCategory == FunctionCategory.Scene)
|
{
|
continue;
|
}
|
if (f.trait_on_off.value.ToString() == "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.functionList.aCs)
|
{
|
f.trait_on_off.value = btn.IsSelected ? "on" : "off";
|
//Control.Send(CommandType_A.write, f);
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add("on_off", f.trait_on_off.value.ToString());
|
Control.SendWriteCommand(f, d);
|
}
|
break;
|
case ShowFunction.Curtain:
|
|
break;
|
case ShowFunction.Light:
|
foreach (var f in DB_ResidenceData.functionList.lights)
|
{
|
f.trait_on_off.value = btn.IsSelected ? "on" : "off";
|
//Control.Send(CommandType_A.write, f);
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add("on_off", f.trait_on_off.value.ToString());
|
Control.SendWriteCommand(f, d);
|
}
|
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.functionList.curtains)
|
{
|
f.trait_on_off.value = "on";
|
//Control.Send(CommandType_A.write, f);
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add("on_off", f.trait_on_off.value.ToString());
|
Control.SendWriteCommand(f, d);
|
}
|
};
|
|
btnClose.MouseUpEventHandler = (sender, e) =>
|
{
|
if (btnClose.IsSelected)
|
{
|
return;
|
}
|
btnClose.IsSelected = true;
|
btnOpen.IsSelected = false;
|
foreach (var f in DB_ResidenceData.functionList.curtains)
|
{
|
f.trait_on_off.value = "off";
|
//Control.Send(CommandType_A.write, f);
|
System.Collections.Generic.Dictionary<string, string> d = new System.Collections.Generic.Dictionary<string, string>();
|
d.Add("on_off", f.trait_on_off.value.ToString());
|
Control.SendWriteCommand(f, d);
|
}
|
};
|
|
|
}
|
}
|
}
|