using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
namespace Shared.Phone.UserCenter
{
///
/// 做成一个设备选择的行控件
///
public class DeviceSelectControl : FrameRowControl
{
#region ■ 变量声明___________________________
///
/// 设备对象
///
public CommonDevice device
{
get { return Common.LocalDevice.Current.GetDevice(MainKeys); }
}
///
/// 房间控件
///
private NormalViewControl btnRoom = null;
///
/// 设备控件
///
private NormalViewControl btnDevie = null;
///
/// 选择控件
///
private MostRightIconControl btnSelect = null;
///
/// 选择的状态是否能够取消
///
public bool SelectCancel = true;
///
/// 状态
///
private StatuMode Statu = StatuMode.UN_SELECT;
///
/// 是否处于选择状态
///
public bool IsSelected
{
get { return Statu == StatuMode.SELECT; }
set
{
if (value == false)
{
if (SelectCancel == true)
{
this.SetUnselectStatu();
}
}
else
{
this.SetSelectStatu();
}
}
}
#endregion
#region ■ 初始化_____________________________
///
/// 做成一个显示设备回路+房间的RowLayout
///
/// 设备对象
/// 当点击此控件时,是否自动设置选择状态
/// 子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)
public DeviceSelectControl(CommonDevice i_device, bool autoSelect, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
{
this.MainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(i_device);
if (autoSelect == true)
{
this.ButtonClickEvent += (sender, e) =>
{
this.IsSelected = Statu == StatuMode.SELECT ? false : true;
};
}
}
///
/// 初始化内部控件
///
public void InitControl()
{
//图标
var btnIcon = this.AddLeftIcon();
Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
//设备
string eName = Common.LocalDevice.Current.GetDeviceEpointName(device);
btnDevie = this.AddLeftCaption(eName, 850, 60);
btnDevie.TextSize = 15;
//这个坐标有点特殊
btnDevie.Y = Application.GetRealHeight(12) + this.chidrenYaxis;
this.AddChidren(btnDevie, ChidrenBindMode.BindEventOnly);
//房间
string roomName = Common.Room.CurrentRoom.GetRoomNameByDevice(device);
btnRoom = this.AddLeftCaption(roomName, 850, 50, true);
//这个坐标有点特殊
btnRoom.Y = Application.GetRealHeight(72) + this.chidrenYaxis;
btnRoom.TextSize = 12;
btnRoom.TextColor = UserCenterColor.Current.TextGrayColor1;
this.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly);
btnSelect = this.AddMostRightEmptyIcon(58, 58);
btnSelect.Visible = false;
btnSelect.UnSelectedImagePath = "Item/ItemSelected.png";
}
#endregion
#region ■ 选择状态___________________________
///
/// 设定选择状态
///
private void SetSelectStatu()
{
if (Statu == StatuMode.SELECT)
{
return;
}
btnSelect.Visible = true;
//状态变更
Statu = StatuMode.SELECT;
}
///
/// 设置非选择状态
///
private void SetUnselectStatu()
{
if (Statu == StatuMode.UN_SELECT)
{
return;
}
btnSelect.Visible = false;
//状态变更
Statu = StatuMode.UN_SELECT;
}
#endregion
#region ■ 一般方法___________________________
///
/// 移除房间控件
///
public void RemoveRoomControl()
{
//移除事件
this.ChangedChidrenBindMode(btnRoom, ChidrenBindMode.NotBind);
this.btnRoom.RemoveFromParent();
this.btnDevie.Gravity = Gravity.CenterVertical;
if (chidrenYaxis != 0)
{
this.btnDevie.Y += chidrenYaxis;
}
}
#endregion
}
}