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();
|
/// <summary>
|
/// 判断字符
|
/// </summary>
|
public string IfType;
|
/// <summary>
|
/// 房间滑动的控件
|
/// </summary>
|
public HorizontalScrolViewLayout roomhorizontalScrol = new HorizontalScrolViewLayout
|
{
|
Width = Application.GetRealWidth(1080 - 58),
|
Height = Application.GetRealHeight(200),
|
X = Application.GetRealWidth(58),
|
Y = Application.GetRealHeight(184),
|
};
|
/// <summary>
|
/// 设备类型滑动的控件
|
/// </summary>
|
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),
|
|
};
|
/// <summary>
|
/// 显示设备列表的控件
|
/// </summary>
|
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<MouseEventArgs> 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);
|
}
|
/// <summary>
|
/// 加载所有房间的视图方法
|
/// </summary>
|
void AllRoomView(List<Common.Room> roomlist, List<DeviceType> 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<MouseEventArgs> 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;
|
|
}
|
}
|
/// <summary>
|
/// 加载该区域所有设备视图方法
|
/// </summary>0
|
/// <param name="devicelist">Devicelist.</param>
|
void AllDeviceTypeView(List<CommonDevice> 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<MouseEventArgs> 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<DeviceType>(), devicelist);
|
|
|
}
|
/// <summary>
|
/// 加载该类型设备视图方法
|
/// </summary>
|
/// <param name="deviceTypelist">Device typelist.</param>
|
/// <param name="devicelist">设备列表</param>
|
void ConditionDeviceView(List<DeviceType> deviceTypelist, List<CommonDevice> 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<MouseEventArgs> 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;
|
}
|
}
|
|
}
|
}
|