using System;
|
using System.Collections.Generic;
|
using System.Text;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter
|
{
|
/// <summary>
|
/// 做成一个设备选择的行控件
|
/// </summary>
|
public class DeviceSelectControl : FrameRowControl
|
{
|
#region ■ 变量声明___________________________
|
|
/// <summary>
|
/// 设备对象
|
/// </summary>
|
public CommonDevice device
|
{
|
get { return Common.LocalDevice.Current.GetDevice(MainKeys); }
|
}
|
/// <summary>
|
/// 房间控件
|
/// </summary>
|
private NormalViewControl btnRoom = null;
|
/// <summary>
|
/// 设备控件
|
/// </summary>
|
private NormalViewControl btnDevie = null;
|
/// <summary>
|
/// 选择控件
|
/// </summary>
|
private MostRightIconControl btnSelect = null;
|
|
/// <summary>
|
/// 选择的状态是否能够取消
|
/// </summary>
|
public bool SelectCancel = true;
|
/// <summary>
|
/// 状态
|
/// </summary>
|
private StatuMode Statu = StatuMode.UN_SELECT;
|
/// <summary>
|
/// 是否处于选择状态
|
/// </summary>
|
public bool IsSelected
|
{
|
get { return Statu == StatuMode.SELECT; }
|
set
|
{
|
if (value == false)
|
{
|
if (SelectCancel == true)
|
{
|
this.SetUnselectStatu();
|
}
|
}
|
else
|
{
|
this.SetSelectStatu();
|
}
|
}
|
}
|
|
#endregion
|
|
#region ■ 初始化_____________________________
|
|
/// <summary>
|
/// 做成一个显示设备回路+房间的RowLayout
|
/// </summary>
|
/// <param name="i_device">设备对象</param>
|
/// <param name="i_ChidrenYaxis">子控件Y轴偏移量(真实值,有些界面需要这种特殊操作)</param>
|
public DeviceSelectControl(CommonDevice i_device, int i_ChidrenYaxis = 0) : base(i_ChidrenYaxis)
|
{
|
this.MainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(i_device);
|
this.ButtonClickEvent += (sender, e) =>
|
{
|
this.IsSelected = Statu == StatuMode.SELECT ? false : true;
|
};
|
}
|
|
/// <summary>
|
/// 初始化内部控件
|
/// </summary>
|
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/Tick.png";
|
}
|
|
#endregion
|
|
#region ■ 选择状态___________________________
|
|
/// <summary>
|
/// 设定选择状态
|
/// </summary>
|
private void SetSelectStatu()
|
{
|
if (Statu == StatuMode.SELECT)
|
{
|
return;
|
}
|
btnSelect.Visible = true;
|
//状态变更
|
Statu = StatuMode.SELECT;
|
}
|
|
/// <summary>
|
/// 设置非选择状态
|
/// </summary>
|
private void SetUnselectStatu()
|
{
|
if (Statu == StatuMode.UN_SELECT)
|
{
|
return;
|
}
|
btnSelect.Visible = false;
|
//状态变更
|
Statu = StatuMode.UN_SELECT;
|
}
|
#endregion
|
|
#region ■ 一般方法___________________________
|
|
/// <summary>
|
/// 移除房间控件
|
/// </summary>
|
public void RemoveRoomControl()
|
{
|
//移除事件
|
this.ChangedChidrenBindMode(btnRoom, ChidrenBindMode.NotBind);
|
this.btnRoom.RemoveFromParent();
|
this.btnDevie.Gravity = Gravity.CenterVertical;
|
if (chidrenYaxis != 0)
|
{
|
this.btnDevie.Y += chidrenYaxis;
|
}
|
}
|
|
#endregion
|
}
|
}
|