using System;
using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
using Shared;
using System.Collections.Generic;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
public class FunTpye
{
public FunTpye(string str)
{
if_Type = str;
}
///
/// 表示是(条件/目标)
///
private string if_Type;
Loading loading = new Loading();
///
/// 设备功能ui
///
/// 父控件
///
/// 支持功能类型个数<表示上面所占高度>
public void FunTypeView(FrameLayout viewLayout,int bottm,int funCount) {
viewLayout.AddChidren(loading);
LogicView.FunAllAreaView funAllAreaView = new LogicView.FunAllAreaView();
funAllAreaView.frameLayout.Y = bottm + Application.GetRealHeight(8);
viewLayout.AddChidren(funAllAreaView.FLayoutView());
VerticalScrolViewLayout vv = new VerticalScrolViewLayout
{
Y = funAllAreaView.frameLayout.Bottom,
Height = Application.GetRealHeight(667 - 64 - 50 * funCount - 8-50),
};
viewLayout.AddChidren(vv);
if (!MainView.IsGatewayType)
{
//如果是bus网关重置高度;
funAllAreaView.frameLayout.Y = Application.GetRealHeight(0);
vv.Y = funAllAreaView.frameLayout.Bottom;
}
//房间点击事件
EventHandler roomClick = (sender, e) =>
{
#region 区域弹框界面
FrameLayout fLayout = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
viewLayout.AddChidren(fLayout);
fLayout.MouseUpEventHandler += (sender1, e1) =>
{
fLayout.RemoveFromParent();
};
FrameLayout bghFrameLyout = new FrameLayout
{
X = Application.GetRealWidth(10),
Y = Application.GetRealHeight(103 + 50 * funCount + 8-64),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(21 + 44),
//BackgroundImagePath = "LogicIcon/bjicon.png",
};
fLayout.AddChidren(bghFrameLyout);
FrameLayout areaBgh = new FrameLayout
{
X = Application.GetRealWidth(8),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(144),
Height = Application.GetRealHeight(44),
};
VerticalScrolViewLayout vvBgh = new VerticalScrolViewLayout
{
X = Application.GetRealWidth(8),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(144),
Height = Application.GetRealHeight(44 * 5),
};
var roomList = LogicMethod.Current.GetGatewayRoomList(Language.StringByID(StringId.allAreas));
if (roomList.Count > 5)
{
bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * 5);
bghFrameLyout.AddChidren(vvBgh);
bghFrameLyout.BackgroundImagePath = "LogicIcon/bjicon5.png";
}
else
{
bghFrameLyout.AddChidren(areaBgh);
bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * roomList.Count);
areaBgh.Height = Application.GetRealHeight(44 * roomList.Count);
bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{roomList.Count}.png";
}
#endregion
for (int i = 0; i < roomList.Count; i++)
{
var room = roomList[i];
LogicView.AreaView areaView = new LogicView.AreaView();
if (roomList.Count > 5)
{
vvBgh.AddChidren(areaView.FLayoutView());
}
else
{
areaView.frameLayout.Y = Application.GetRealHeight(i * 44);
areaBgh.AddChidren(areaView.FLayoutView());
}
areaView.btnRoomName.Text = room.roomName;
areaView.btnClick.Tag = room;
areaView.btnClick.MouseUpEventHandler += (sender2, e2) =>
{
fLayout.RemoveFromParent();
funAllAreaView.btnText1.Text = (areaView.btnClick.Tag as Entity.Room).roomName;
///切换房间默认功能类型全部;
funAllAreaView.btnText2.Text = Language.StringByID(StringId.allFun);
//selectedRoom = (areaView.btnClick.Tag as Entity.Room);
UserInfo.Current.logicselectedRoom = (areaView.btnClick.Tag as Entity.Room);
///切换房间默认:全部功能
UserInfo.Current.logicselectedFunction = Language.StringByID(StringId.allFun);
///获取显示设备列表
var list = LogicMethod.Current.GetFunctionDeviceList(areaView.btnClick.Tag as Entity.Room, if_Type);
this.LoadingDeviceListView(vv, list);
};
if (roomList.Count - 1 == i)
{
///改变最后那条一个线的颜色,界面显示效果作用;
areaView.btnLine.BackgroundColor = CSS.CSS_Color.view;
}
}
};
funAllAreaView.btnText1.MouseUpEventHandler += roomClick;
funAllAreaView.btnIcon1.MouseUpEventHandler += roomClick;
//功能类型点击事件
EventHandler funClick = (sender3, e3) =>
{
//获取最终显示列表
var functionList = LogicMethod.Current.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_Type);
//获取设备列表的类型(例如:灯光类,窗帘类。。。)
var deviceTypeList = LogicMethod.Current.GetDeviceTypeList(functionList);
if (deviceTypeList.Count == 0)
{
//没有类型直接返回去;
return;
}
#region 区域弹框界面
FrameLayout fLayout = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
viewLayout.AddChidren(fLayout);
fLayout.MouseUpEventHandler += (sender1, e1) =>
{
fLayout.RemoveFromParent();
};
FrameLayout bghFrameLyout = new FrameLayout
{
X = Application.GetRealWidth(118),
Y = Application.GetRealHeight(103 + 50 * funCount + 8-64),
Width = Application.GetRealWidth(160),
Height = Application.GetRealHeight(21 + 44),
//BackgroundImagePath = "LogicIcon/bjicon5.png",
};
fLayout.AddChidren(bghFrameLyout);
FrameLayout areaBgh = new FrameLayout
{
X = Application.GetRealWidth(8),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(144),
Height = Application.GetRealHeight(44),
};
VerticalScrolViewLayout vvBgh = new VerticalScrolViewLayout
{
X = Application.GetRealWidth(8),
Y = Application.GetRealHeight(14),
Width = Application.GetRealWidth(144),
Height = Application.GetRealHeight(44 * 5),
};
if (deviceTypeList.Count > 5)
{
bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * 5);
bghFrameLyout.AddChidren(vvBgh);
bghFrameLyout.BackgroundImagePath = "LogicIcon/bjicon5.png";
}
else
{
bghFrameLyout.AddChidren(areaBgh);
bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * deviceTypeList.Count);
areaBgh.Height = Application.GetRealHeight(44 * deviceTypeList.Count);
bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{deviceTypeList.Count}.png";
}
#endregion
for (int i = 0; i < deviceTypeList.Count; i++)
{
var deviceTypeName = deviceTypeList[i];
LogicView.AreaView areaView = new LogicView.AreaView();
if (deviceTypeList.Count > 5)
{
vvBgh.AddChidren(areaView.FLayoutView());
}
else
{
areaView.frameLayout.Y = Application.GetRealHeight(i * 44);
areaBgh.AddChidren(areaView.FLayoutView());
}
areaView.btnRoomName.Text = deviceTypeName;
areaView.btnClick.Tag = deviceTypeName;
areaView.btnClick.MouseUpEventHandler += (sender, e2) =>
{
fLayout.RemoveFromParent();
string clickText = areaView.btnClick.Tag.ToString();
funAllAreaView.btnText2.Text = clickText;
UserInfo.Current.logicselectedFunction = clickText;
///获取设备单个大类spk列表(例如:灯光类,空调类...)
var typeFunctionList2 = LogicMethod.Current.GetDeviceTypeFunctionList(clickText);
///获取设备单个小类列表(例如:灯光1,灯光2...)
var lists2 = LogicMethod.Current.GetShowDeviceList(typeFunctionList2, functionList);
this.LoadingDeviceListView(vv, lists2);
};
if (deviceTypeList.Count - 1 == i)
{
///改变最后那条一个线的颜色,界面显示效果作用;
areaView.btnLine.BackgroundColor = CSS.CSS_Color.view;
}
}
};
funAllAreaView.btnText2.MouseUpEventHandler += funClick;
funAllAreaView.btnIcon2.MouseUpEventHandler += funClick;
///获取房间支持的设备列表
var deviceList = LogicMethod.Current.GetFunctionDeviceList(UserInfo.Current.logicselectedRoom, if_Type);
///获取设备单个大类spk列表(例如:灯光类,空调类...)
var typeFunctionList = LogicMethod.Current.GetDeviceTypeFunctionList(UserInfo.Current.logicselectedFunction);
///获取设备单个小类列表(例如:灯光1,灯光2...)
var lists = LogicMethod.Current.GetShowDeviceList(typeFunctionList, deviceList);
if (string.IsNullOrEmpty(UserInfo.Current.logicselectedRoom.roomName))
{
UserInfo.Current.logicselectedRoom.roomName = Language.StringByID(StringId.allAreas);
}
///房间名称
funAllAreaView.btnText1.Text = UserInfo.Current.logicselectedRoom.roomName;
if (string.IsNullOrEmpty(UserInfo.Current.logicselectedFunction))
{
UserInfo.Current.logicselectedFunction = Language.StringByID(StringId.allFun);
}
///设备大类名称<灯光类。。。。。>
funAllAreaView.btnText2.Text = UserInfo.Current.logicselectedFunction;
this.LoadingDeviceListView(vv, lists);
}
///
/// 显示设备的View
///
/// 上下滑动
///
private void LoadingDeviceListView(VerticalScrolViewLayout verticalScrolView, List deviceList)
{
loading.Start();
System.Threading.Tasks.Task.Run(() =>
{
Application.RunOnMainThread(() =>
{
loading.Hide();
verticalScrolView.RemoveAll();
foreach (var dev in deviceList)
{
LogicView.SelectTypeView funView = new LogicView.SelectTypeView();
funView.btnText.Visible = false;
funView.btnDeviceName.Visible = true;
funView.btnRoomName.Visible = true;
funView.btnLine.X = Application.GetRealWidth(16);
funView.btnLine.Width = Application.GetRealWidth(343);
verticalScrolView.AddChidren(funView.FLayoutView());
funView.btnIcon.UnSelectedImagePath = LogicMethod.Current.GetDeviceIconPath(dev);
funView.btnDeviceName.Text = dev.name;
funView.btnRoomName.Text = dev.GetRoomListName();
funView.btnClick.MouseUpEventHandler += (sen, e) =>
{
if (if_Type == LogicMethod.condition_if)
{
ConditionDeviceFunList conditionDeviceFunList = new ConditionDeviceFunList();
MainPage.BasePageView.AddChidren(conditionDeviceFunList);
conditionDeviceFunList.Show(dev, 0, false);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
else
{
TargetDeviceFunList targetDeviceFunList = new TargetDeviceFunList();
MainPage.BasePageView.AddChidren(targetDeviceFunList);
targetDeviceFunList.Show(dev, 0, false);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
};
}
});
});
}
}
}