using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
namespace Shared.Phone.UserCenter
|
{
|
/// <summary>
|
/// 做成一个设备选择的行控件
|
/// </summary>
|
public class DeviceSelectRow : StatuRowLayout
|
{
|
/// <summary>
|
/// 设备
|
/// </summary>
|
public ZigBee.Device.CommonDevice device = null;
|
/// <summary>
|
/// 选择的状态是否能够取消
|
/// </summary>
|
public bool SelectCancel = true;
|
/// <summary>
|
/// 图标控件
|
/// </summary>
|
private RowLeftIconView btnIcon = null;
|
/// <summary>
|
/// 设备控件
|
/// </summary>
|
private RowTopBlackView btnDevie = null;
|
/// <summary>
|
/// 房间控件
|
/// </summary>
|
private RowBottomGrayView btnRoom = null;
|
/// <summary>
|
/// 选择控件
|
/// </summary>
|
private MostRightEmptyView btnSelect = null;
|
/// <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();
|
}
|
}
|
}
|
|
/// <summary>
|
/// 做成一个设备选择的行控件
|
/// </summary>
|
/// <param name="listView">列表控件,可以为空</param>
|
/// <param name="i_device">设备对象</param>
|
public DeviceSelectRow(VerticalScrolViewLayout listView, ZigBee.Device.CommonDevice i_device)
|
{
|
this.device = i_device;
|
|
this.MouseUpEvent += (sender, e) =>
|
{
|
this.IsSelected = Statu == StatuMode.SELECT ? false : true;
|
};
|
if (listView != null)
|
{
|
listView.AddChidren(this);
|
//初始化内部控件
|
this.InitControl();
|
}
|
}
|
|
/// <summary>
|
/// 初始化内部控件
|
/// </summary>
|
public void InitControl()
|
{
|
//图标
|
btnIcon = new RowLeftIconView();
|
Common.LocalDevice.Current.SetDeviceIconToControl(btnIcon, device);
|
|
if (btnIcon.UnSelectedImagePath != null
|
&& btnIcon.UnSelectedImagePath.Contains(ZigBee.Device.DeviceType.OnOffSwitch.ToString()) == true)
|
{
|
//将控件适配为【点号】控件
|
btnIcon.ChangedControlInPointMode();
|
btnIcon.UnSelectedImagePath = "Device/OnOffSwitch.png";
|
btnIcon.SelectedImagePath = "Device/OnOffSwitchSelected.png";
|
}
|
this.AddChidren(btnIcon, ChidrenBindMode.BindEventOnly);
|
|
//设备
|
btnDevie = new RowTopBlackView();
|
btnDevie.Text = Common.LocalDevice.Current.GetDeviceEpointName(device);
|
this.AddChidren(btnDevie, ChidrenBindMode.BindEventOnly);
|
|
//房间
|
btnRoom = new RowBottomGrayView();
|
btnRoom.Text = Common.Room.CurrentRoom.GetRoomNameByDevice(device);
|
this.AddChidren(btnRoom, ChidrenBindMode.BindEventOnly);
|
|
//选择
|
btnSelect = new MostRightEmptyView();
|
btnSelect.Visible = false;
|
btnSelect.UnSelectedImagePath = "Item/TickSelected.png";
|
this.AddChidren(btnSelect, ChidrenBindMode.BindEventOnly);
|
}
|
|
/// <summary>
|
/// 移除房间控件
|
/// </summary>
|
public void RemoveRoomControl()
|
{
|
//移除事件
|
this.ChangedChidrenBindMode(btnRoom, ChidrenBindMode.NotBind);
|
this.btnRoom.RemoveFromParent();
|
this.btnDevie.Gravity = Gravity.CenterVertical;
|
}
|
|
/// <summary>
|
/// 设定选择状态
|
/// </summary>
|
public void SetSelectStatu()
|
{
|
if (Statu == StatuMode.SELECT)
|
{
|
return;
|
}
|
btnIcon.IsSelected = true;
|
btnDevie.TextColor = UserCenterColor.Current.SelectTextColor;
|
btnRoom.TextColor = UserCenterColor.Current.SelectTextColor;
|
btnSelect.Visible = true;
|
//状态变更
|
Statu = StatuMode.SELECT;
|
}
|
|
/// <summary>
|
/// 设置非选择状态
|
/// </summary>
|
public void SetUnselectStatu()
|
{
|
if (Statu == StatuMode.UN_SELECT)
|
{
|
return;
|
}
|
btnIcon.IsSelected = false;
|
btnDevie.TextColor = UserCenterColor.Current.TextColor;
|
btnRoom.TextColor = UserCenterColor.Current.TextGrayColor;
|
btnSelect.Visible = false;
|
//状态变更
|
Statu = StatuMode.UN_SELECT;
|
}
|
}
|
}
|