using System;
using Shared.Common;
using Shared.R;
using Shared;
using ZigBee.Device;
using System.Collections.Generic;
namespace Shared.Phone.Device.Logic
{
public class RoomAndDeviceView : FrameLayout
{
public RoomAndDeviceView()
{
Tag = "Logic";
}
Button roombjButton = new Button();
Button roomTextButton = new Button();
Button devicetypeButton = new Button();
FrameLayout clickframeLayout = new FrameLayout();
Button clickbutton = new Button();
Button clicktextcolcrbutton = new Button();
///
/// 判断字符
///
public string IfType;
///
/// 房间滑动的控件
///
public HorizontalScrolViewLayout roomhorizontalScrol = new HorizontalScrolViewLayout
{
Width = Application.GetRealWidth(1080 - 58),
Height = Application.GetRealHeight(200),
X = Application.GetRealWidth(58),
Y = Application.GetRealHeight(184),
};
///
/// 设备类型滑动的控件
///
public HorizontalScrolViewLayout devicetypehorizontalScrol = new HorizontalScrolViewLayout
{
Width = Application.GetRealWidth(1080 - 58),
Height = Application.GetRealHeight(280),
Y = Application.GetRealHeight(184 + 200),
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
X = Application.GetRealWidth(58),
// Radius = (uint)Application.GetRealHeight(50),
};
///
/// 显示设备列表的控件
///
public VerticalScrolViewLayout middle = new VerticalScrolViewLayout
{
X = Application.GetRealWidth(58),
Y = Application.GetRealHeight(184 + 200 + 280 + 40),
Height = Application.GetRealHeight(Method.H - 40 - 184 - 280 - 200),
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
};
public void Show(string Name)
{
#region 上面的布局代码
UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑
this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
TopView view = new TopView();
this.AddChidren(view.TopRowView(true));
view.toptitleNameBtn.Text = Name;
view.clickBtn.MouseDownEventHandler += (sender, e) =>
{
UserView.HomePage.Instance.ScrollEnabled = true;//恢复左滑
RemoveFromParent();
};
view.foolrnameBtn.Text = Config.Instance.Home.GetCurrentFloorName;
if (Config.Instance.Home.FloorDics.Count < 2)
{
///没有楼层或者只有一个楼层,默认不显示图标和文本;
view.foolrnameBtn.Visible = false;
view.dropdownBtn.Visible = false;
view.foolrclickBtn.Visible = false;
}
if (Config.Instance.Home.FloorDics.Count == 0)
{
Config.Instance.Home.CurrentFloorId = "";
}
#endregion
///房间列表
var roomlists = Method.GetRoomList(IfType, Config.Instance.Home.CurrentFloorId);
if (roomlists.Count == 0)
{
//返回没有房间隐藏下面整块;
devicetypehorizontalScrol.Height = 0;
middle.Height = 0;
}
/// 设备类型列表
var deviceTypeList = Method.GetDevice(IfType);
this.AddChidren(roomhorizontalScrol);
this.AddChidren(devicetypehorizontalScrol);
this.AddChidren(middle);
devicetypehorizontalScrol.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerBottomLeft);
middle.SetCornerWithSameRadius(Application.GetRealHeight(50), HDLUtils.RectCornerTopLeft);
///楼层点击事件
view.foolrclickBtn.MouseUpEventHandler += (sender, e) =>
{
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
this.AddChidren(flMain);
flMain.MouseUpEventHandler += (sender2, e2) =>
{
flMain.RemoveFromParent();
};
var foolrbjicon = new FrameLayout
{
Width = Application.GetRealWidth(450),
Height = Application.GetRealHeight(780),
X = Application.GetRealWidth(1080 - 468 - 35),
Y = Application.GetRealHeight(184),
BackgroundImagePath = "Item/SelectFloor_Right.png",
};
flMain.AddChidren(foolrbjicon);
var btnfoolrtext = new Button
{
Width = Application.GetRealWidth(450),
Height = Application.GetRealHeight(150),
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
X = Application.GetRealWidth(80),
TextID = MyInternationalizationString.selecfoolr,
TextSize = 14,
};
foolrbjicon.AddChidren(btnfoolrtext);
var foolrbj = new VerticalScrolViewLayout
{
Width = Application.GetRealWidth(450),
Height = foolrbjicon.Height - btnfoolrtext.Height,
X = Application.GetRealWidth(80),
Y = btnfoolrtext.Bottom,
};
foolrbjicon.AddChidren(foolrbj);
foreach (var foolr in Config.Instance.Home.FloorDics)
{
var foolrRowLayout = new RowLayout
{
Height = Application.GetRealHeight(150),
LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
foolrbj.AddChidren(foolrRowLayout);
var btnfoolricon = new Button
{
Width = Application.GetMinRealAverage(81),
Height = Application.GetMinRealAverage(81),
UnSelectedImagePath = "Floor/Floor.png",
Gravity = Gravity.CenterVertical,
};
foolrRowLayout.AddChidren(btnfoolricon);
var btnfoolrname = new Button
{
Width = Application.GetRealWidth(250),
Height = Application.GetRealHeight(150),
Text = foolr.Value,
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
Tag = foolr.Key,
X = btnfoolricon.Right + Application.GetRealWidth(12),
TextSize = 14,
};
foolrRowLayout.AddChidren(btnfoolrname);
if (view.foolrnameBtn.Text == foolr.Value)
{
btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png";
btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
}
EventHandler foolrnameclick = (sender13, e13) =>
{
roomhorizontalScrol.RemoveAll();
devicetypehorizontalScrol.RemoveAll();
middle.RemoveAll();
view.foolrnameBtn.Text = btnfoolrname.Text;
flMain.RemoveFromParent();
var list = Method.GetRoomList(IfType, btnfoolrname.Tag.ToString());
if (list.Count == 0)
{
devicetypehorizontalScrol.Height = 0;
middle.Height = 0;
}
else
{
devicetypehorizontalScrol.Height = Application.GetRealHeight(280);
middle.Height = Application.GetRealHeight(1920 - 40 - 184 - 280 - 200);
}
AllRoomView(list, deviceTypeList);
};
foolrRowLayout.MouseUpEventHandler += foolrnameclick;
btnfoolrname.MouseUpEventHandler += foolrnameclick;
}
};
AllRoomView(roomlists, deviceTypeList);
}
///
/// 加载所有房间的视图方法
///
void AllRoomView(List roomlist, List deviceTypeList)
{
for (int i = 0; i < roomlist.Count; i++)
{
var room = roomlist[i];
var fra = new FrameLayout
{
Height = Application.GetRealHeight(200),
Width = Application.GetRealWidth(255),
};
roomhorizontalScrol.AddChidren(fra);
var roombjBtn = new Button
{
Height = Application.GetRealHeight(158),
Width = Application.GetRealWidth(255),
UnSelectedImagePath = "ZigeeLogic/iconBackgroundColor.png",
SelectedImagePath = "ZigeeLogic/iconSelectedBackgroundColor.png",
Y = Application.GetRealHeight(21),
};
fra.AddChidren(roombjBtn);
var roomnameBtn = new Button
{
Height = Application.GetRealHeight(152 - 26 - 20),
Width = Application.GetRealWidth(255 - 20 - 50),
Text = room.Name,
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
SelectedTextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
Y = Application.GetRealHeight(21 + 13 + 10),
X = Application.GetRealWidth(10 + 25),
};
fra.AddChidren(roomnameBtn);
if (i == 0)//默认选中第一个房间
{
roombjButton.IsSelected = false;
roombjButton = roombjBtn;
roombjBtn.IsSelected = true;
roomTextButton.IsSelected = false;
roomTextButton = roomnameBtn;
roomnameBtn.IsSelected = true;
roombjBtn.IsSelected = true;
roomnameBtn.IsSelected = true;
var list = Method.GetDeviceUIList(room, deviceTypeList);
AllDeviceTypeView(list);
}
EventHandler roomclick = (sender, e) =>
{
roombjButton.IsSelected = false;
roombjButton = roombjBtn;
roombjBtn.IsSelected = true;
roomTextButton.IsSelected = false;
roomTextButton = roomnameBtn;
roomnameBtn.IsSelected = true;
var list = Method.GetDeviceUIList(room, deviceTypeList);
AllDeviceTypeView(list);
};
roomnameBtn.MouseUpEventHandler += roomclick;
roombjBtn.MouseUpEventHandler += roomclick;
}
}
///
/// 加载该区域所有设备视图方法
/// 0
/// Devicelist.
void AllDeviceTypeView(List devicelist)
{
var devicetypelist = Method.GetDeviceTypeList(devicelist);
devicetypehorizontalScrol.RemoveAll();
for (int i = 0; i < devicetypelist.Count; i++)
{
var devicetype = devicetypelist[i];
var spaceRowLayout = new FrameLayout();
devicetypehorizontalScrol.AddChidren(spaceRowLayout);
if (i == 0)
{
spaceRowLayout.Width = Application.GetRealWidth(37);
}
else
{
spaceRowLayout.Width = Application.GetRealWidth(80);
}
var deviceRowLayout = new FrameLayout
{
Width = Application.GetRealWidth(156 + 20),
Height = Application.GetRealHeight(280 - 30),
Y = Application.GetRealHeight(30),
};
devicetypehorizontalScrol.AddChidren(deviceRowLayout);
var backgroundColor = new Button
{
Width = Application.GetMinRealAverage(156),
Height = Application.GetMinRealAverage(180),
X = Application.GetRealWidth(10),
UnSelectedImagePath = "ZigeeLogic/deviceunselectedbackgroundcolor.png",
SelectedImagePath = "ZigeeLogic/deviceselectedbackgroundcolor.png",
};
deviceRowLayout.AddChidren(backgroundColor);
var devicetypeicon = new Button
{
Width = Application.GetMinRealAverage(84),
Height = Application.GetMinRealAverage(84),
X = Application.GetRealWidth(46),
Y = Application.GetRealHeight(30),
UnSelectedImagePath =Method.GetDeviceTypeIcon(devicetype),
};
deviceRowLayout.AddChidren(devicetypeicon);
var devicetypename = new Button
{
Width = Application.GetRealWidth(176),
Height = Application.GetRealHeight(40),
Text = devicetype,
TextAlignment = TextAlignment.Center,
Y = backgroundColor.Bottom,
TextColor = ZigbeeColor.Current.LogicAddColor,
TextSize = 10,
};
deviceRowLayout.AddChidren(devicetypename);
//if (i == 0)//默认选中第一个设备类型
//{
// devicetypeButton.IsSelected = false;
// devicetypeButton = backgroundColor;
// backgroundColor.IsSelected = true;
// var list = Method.GetDeviceType(devicetypename.Text);
// ConditionDeviceView(list, devicelist);
//}
EventHandler devicetypeclick = (sender13, e13) =>
{
devicetypeButton.IsSelected = false;
devicetypeButton = backgroundColor;
backgroundColor.IsSelected = true;
var list = Method.GetDeviceType(devicetypename.Text);
ConditionDeviceView(list, devicelist);
};
deviceRowLayout.MouseUpEventHandler += devicetypeclick;
devicetypename.MouseUpEventHandler += devicetypeclick;
devicetypeicon.MouseUpEventHandler += devicetypeclick;
backgroundColor.MouseUpEventHandler += devicetypeclick;
}
///显示房间所有设备
ConditionDeviceView(new List(), devicelist);
}
///
/// 加载该类型设备视图方法
///
/// Device typelist.
/// 设备列表
void ConditionDeviceView(List deviceTypelist, List devicelist)
{
middle.RemoveAll();
foreach (var common in devicelist)
{
if (deviceTypelist.Count != 0 && !deviceTypelist.Contains(common.Type))
{
continue;
}
if (IfType == "condition_mould")
{
if (common.IasDeviceType != 13)
{//自动化模板只支持红外传感器
continue;
}
}
var deviceFramelayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
};
middle.AddChidren(deviceFramelayout);
var bjFramelayout = new FrameLayout
{
Width = Application.GetMinRealAverage(112),
Height = Application.GetMinRealAverage(112),
X = Application.GetRealWidth(58),
Y = Application.GetRealHeight(30 + 9),
Radius = (uint)Application.GetMinRealAverage(56),
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
deviceFramelayout.AddChidren(bjFramelayout);
var deviceIconBtn = new Button
{
Width = Application.GetMinRealAverage(82),
Height = Application.GetMinRealAverage(82),
Gravity = Gravity.Center,
};
bjFramelayout.AddChidren(deviceIconBtn);
Method.GetDeviceIcon(common, deviceIconBtn);
var deviceRow = new RowLayout
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(850),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(176 + 25),
//LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
deviceFramelayout.AddChidren(deviceRow);
var devicename = new Button
{
Text = LocalDevice.Current.GetDeviceEpointName(common),
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
SelectedTextColor = ZigbeeColor.Current.LogicAddColor,
TextSize = 14,
};
deviceRow.AddChidren(devicename);
var lineBtn = new Button
{
Y = deviceFramelayout.Height-1,
Height = 1,
Width = Application.GetRealWidth(850),
X = Application.GetRealWidth(176 + 25),
BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
deviceFramelayout.AddChidren(lineBtn);
EventHandler devicclick = (sen, e) =>
{
clickbutton.IsSelected = false;
clickbutton = deviceIconBtn;
deviceIconBtn.IsSelected = true;
clickframeLayout.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
clickframeLayout = bjFramelayout;
bjFramelayout.BackgroundColor = ZigbeeColor.Current.LogicIconBackgroundColor;
clicktextcolcrbutton.IsSelected = false;
clicktextcolcrbutton = devicename;
devicename.IsSelected = true;
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
this.AddChidren(flMain);
CurrentDeviceState.CurrentDeviceView(flMain, common, false, IfType,0);
};
deviceFramelayout.MouseUpEventHandler += devicclick;
bjFramelayout.MouseUpEventHandler += devicclick;
deviceIconBtn.MouseUpEventHandler += devicclick;
deviceRow.MouseUpEventHandler += devicclick;
devicename.MouseUpEventHandler += devicclick;
}
}
}
}