using System;
|
using System.Collections.Generic;
|
|
namespace Shared.Phone.UserCenter.SmartSound.Forms
|
{
|
public class SmartSoundContentForDevice : EditorCommonForm
|
{
|
/// <summary>
|
/// 当前选中的房间
|
/// </summary>
|
private SmartSound.Room CurrentRoom = null;
|
|
private FrameLayout ContentLayout = null;
|
|
private VerticalListControl listView = null;
|
|
/// <summary>
|
/// 没有数据的时候,提示用
|
/// </summary>
|
private FrameLayout TipLayout = null;
|
|
private List<string> TabList = new List<string>()
|
{
|
Language.StringByID(R.MyInternationalizationString.uLight),
|
Language.StringByID(R.MyInternationalizationString.uDeviceBelongId100),
|
Language.StringByID(R.MyInternationalizationString.AC)
|
};
|
|
private int CurrentSelectIndex = 0;
|
|
private int imageWith = 683;
|
private int imageHeight = 392;
|
|
/// <summary>
|
/// 选择房间中的设备
|
/// </summary>
|
/// <param name="_room"> 当前房间</param>
|
public SmartSoundContentForDevice(SmartSound.Room _room)
|
{
|
this.CurrentRoom = _room;
|
}
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
public void ShowForm()
|
{
|
//设置标题信息
|
base.SetTitleText(CurrentRoom.RoomName);
|
//初始化中部控件
|
this.InitMiddleFrame();
|
}
|
|
private void InitMiddleFrame()
|
{
|
//1.场景、功能导航条
|
var switchContr = new SceneFunctionSwitchControl();
|
this.bodyFrameLayout.AddChidren(switchContr);
|
switchContr.Gravity = Gravity.CenterVertical;
|
switchContr.Width = Application.GetRealWidth(650);
|
switchContr.Y = Application.GetRealHeight(40);
|
|
ContentLayout = new FrameLayout();
|
this.bodyFrameLayout.AddChidren(ContentLayout);
|
ContentLayout.Height = this.bodyFrameLayout.Height - switchContr.Height - Application.GetRealHeight(40);
|
ContentLayout.Y = switchContr.Height + Application.GetRealHeight(40);
|
|
var listTitle = new List<string>();
|
listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence));
|
listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction));
|
|
//设置初始值
|
switchContr.SetDefultIndex(0);
|
|
//选择事件
|
switchContr.SelectTabEvent += (selectIndex) =>
|
{
|
//刷新bodyView
|
if (selectIndex == 0)
|
{
|
LoadSceneView();
|
}
|
else
|
{
|
LoadFunction();
|
}
|
};
|
|
//开始初始化
|
switchContr.InitControl(listTitle);
|
|
//添加确认按钮
|
BottomClickButton bottomClickButton = new BottomClickButton();
|
this.bodyFrameLayout.AddChidren(bottomClickButton);
|
bottomClickButton.Text = "确认";
|
bottomClickButton.ButtonClickEvent += (sender, e) =>
|
{
|
//保存数据
|
base.CloseForm();
|
};
|
}
|
|
/// <summary>
|
/// 加载场景界面
|
/// </summary>
|
private void LoadSceneView()
|
{
|
try
|
{
|
//3.设备列表 ListView
|
ContentLayout.RemoveAll();
|
|
var tipLayout = new FrameLayout();
|
ContentLayout.AddChidren(tipLayout);
|
tipLayout.Visible = false;
|
ShowNoFunctionTip(tipLayout);
|
|
listView = new VerticalListControl();
|
ContentLayout.AddChidren(listView);
|
listView.Y = Application.GetRealHeight(40);
|
listView.RemoveAll();
|
|
for (int i = 0; i < CurrentRoom.SceneList.Count; i++)
|
{
|
SmartSound.Scene scene = CurrentRoom.SceneList[i];
|
var roomRowLayout = new SceneRowLayout(this, scene);
|
listView.AddChidren(roomRowLayout);
|
roomRowLayout.InitControl();
|
}
|
|
if (listView.ChildrenCount == 0)
|
{
|
tipLayout.Visible = true;
|
}
|
else
|
{
|
tipLayout.Visible = false;
|
}
|
|
if (listView.ChildrenCount > 5)
|
{
|
TextView textView = new TextView();
|
textView.Height = Application.GetRealHeight(127 * 3);
|
listView.AddChidren(textView);
|
}
|
}
|
catch (Exception ex)
|
{
|
string eoor = ex.Message;
|
}
|
}
|
|
private void LoadFunction()
|
{
|
try
|
{
|
//2.功能类型选择(灯光、遮阳、空调)
|
//3.设备列表 ListView
|
this.ContentLayout.RemoveAll();
|
|
FrameLayout tab_layout = new FrameLayout();
|
ContentLayout.AddChidren(tab_layout);
|
tab_layout.Height = Application.GetRealHeight(170);
|
tab_layout.Y = 0;
|
|
//添加 ListView 提示
|
TipLayout = new FrameLayout();
|
ContentLayout.AddChidren(TipLayout);
|
TipLayout.Visible = false;
|
TipLayout.Y= tab_layout.Height;
|
ShowNoFunctionTip(TipLayout);
|
|
//添加 ListView
|
listView = new VerticalListControl();
|
ContentLayout.AddChidren(listView);
|
listView.Y= tab_layout.Height;
|
listView.Height=ContentLayout.Height- tab_layout.Height;
|
|
Buttons.Clear();
|
|
//添加功能项
|
for (int i = 0; i < TabList.Count; i++)
|
{
|
Button button = new Button();
|
tab_layout.AddChidren(button);
|
button.Width = Application.GetRealWidth(250);
|
button.Text = TabList[i];
|
button.X = HdlControlResourse.XXLeft/2 + i * button.Width;
|
button.AddTag("Index", i);
|
Buttons.Add(button);
|
|
button.MouseUpEventHandler += (sender, e) =>
|
{
|
Button btn = sender as Button;
|
CurrentSelectIndex = (int)btn.GetTagByKey("Index");
|
RefreshButtonState();
|
RefreshFunctionListView();
|
};
|
}
|
|
RefreshButtonState();
|
RefreshFunctionListView();
|
}
|
catch (Exception ex)
|
{
|
string error = ex.Message;
|
}
|
}
|
|
private void RefreshFunctionListView()
|
{
|
try
|
{
|
listView.RemoveAll();
|
|
switch (CurrentSelectIndex)
|
{
|
case 0: // 灯光
|
{
|
for (int i = 0; i < CurrentRoom.DeviceList.Count; i++)
|
{
|
SmartSound.Device device = CurrentRoom.DeviceList[i];
|
// 灯光
|
if (device.DeviceType == 1 || device.DeviceType == 2 || device.DeviceType == 3)
|
{
|
var deviceRowLayout = new DeviceRowLayout(this, device);
|
listView.AddChidren(deviceRowLayout);
|
deviceRowLayout.InitControl();
|
}
|
}
|
}
|
break;
|
case 1: // 窗帘
|
{
|
for (int i = 0; i < CurrentRoom.DeviceList.Count; i++)
|
{
|
SmartSound.Device device = CurrentRoom.DeviceList[i];
|
//
|
if (device.DeviceType == 4 || device.DeviceType == 5 || device.DeviceType == 6)
|
{
|
var deviceRowLayout = new DeviceRowLayout(this, device);
|
listView.AddChidren(deviceRowLayout);
|
deviceRowLayout.InitControl();
|
}
|
}
|
}
|
break;
|
case 2: // 空调
|
{
|
for (int i = 0; i < CurrentRoom.DeviceList.Count; i++)
|
{
|
SmartSound.Device device = CurrentRoom.DeviceList[i];
|
//
|
if (device.DeviceType == 7)
|
{
|
var deviceRowLayout = new DeviceRowLayout(this, device);
|
listView.AddChidren(deviceRowLayout);
|
deviceRowLayout.InitControl();
|
}
|
}
|
}
|
break;
|
}
|
|
if (listView.ChildrenCount > 5)
|
{
|
TextView textView = new TextView();
|
textView.Height = Application.GetRealHeight(127 * 3);
|
listView.AddChidren(textView);
|
}
|
|
if (listView.ChildrenCount == 0)
|
{
|
TipLayout.Visible = true;
|
}
|
else
|
{
|
TipLayout.Visible = false;
|
}
|
}
|
catch (Exception e)
|
{
|
string error = e.Message;
|
}
|
}
|
|
/// <summary>
|
/// 提示没有功能
|
/// </summary>
|
private void ShowNoFunctionTip(FrameLayout layout,string tip="没有数据哦")
|
{
|
var noFunction = new Button()
|
{
|
Y = Application.GetRealHeight(320),
|
Width = Application.GetMinRealAverage(757),
|
Height = Application.GetMinRealAverage(435),
|
UnSelectedImagePath = "Item/NoFunction.png",
|
Gravity = Gravity.CenterHorizontal
|
};
|
layout.AddChidren(noFunction);
|
|
var noFunctionTip = new Button()
|
{
|
Y = noFunction.Bottom + Application.GetRealHeight(32),
|
Height = Application.GetRealHeight(200),
|
Width = Application.GetRealWidth(700),
|
Gravity = Gravity.CenterHorizontal,
|
Text = tip,
|
TextColor = UserCenterColor.Current.TextGrayColor1,
|
TextAlignment = TextAlignment.Center,
|
IsMoreLines = true
|
};
|
layout.AddChidren(noFunctionTip);
|
}
|
|
//为了方便更新状态,存起来
|
private List<Button> Buttons = new List<Button>();
|
private void RefreshButtonState()
|
{
|
try
|
{
|
for (int i = 0; i < Buttons.Count; i++)
|
{
|
Button btn = Buttons[i];
|
if (i == CurrentSelectIndex)
|
{
|
btn.SelectedImagePath = "Item/RoomIconBackgroundSelected.png";
|
btn.UnSelectedImagePath = "Item/RoomIconBackgroundSelected.png";
|
btn.TextColor = UserCenterColor.Current.White;
|
}
|
else
|
{
|
btn.SelectedImagePath = "Item/RoomIconBackground.png";
|
btn.UnSelectedImagePath = "Item/RoomIconBackground.png";
|
btn.TextColor=UserCenterColor.Current.TextGrayColor1;
|
}
|
}
|
}
|
catch (Exception e)
|
{
|
string error = e.Message;
|
}
|
}
|
|
#region ■ 自定义场景选择控件_____________________
|
|
/// <summary>
|
/// 房间列表行
|
/// </summary>
|
private class SceneRowLayout : FrameRowControl
|
{
|
private SmartSoundContentForDevice smartSoundControlForDevice = null;
|
|
private SmartSound.Scene scene = null;
|
/// <summary>
|
/// 房间名称
|
/// </summary>
|
private NormalViewControl btnName = null;
|
|
private MostRightIconControl Right_icon = null;
|
|
|
/// <summary>
|
/// 房间列表行
|
/// </summary>
|
public SceneRowLayout(SmartSoundContentForDevice _smartSoundControlForDevice, SmartSound.Scene _scene)
|
{
|
this.smartSoundControlForDevice = _smartSoundControlForDevice;
|
this.scene = _scene;
|
this.UseClickStatu = false;
|
this.BackgroundColor = UserCenterColor.Current.White;
|
this.Height = Application.GetRealHeight(170);
|
}
|
|
/// <summary>
|
/// 初始化控件
|
/// </summary>
|
public void InitControl()
|
{
|
//显示文本
|
btnName = this.AddLeftCaption(string.Empty, 700);
|
btnName.Height = Application.GetRealHeight(60);
|
btnName.TextSize = 14;
|
btnName.Y = Application.GetRealHeight(57);
|
btnName.Text = scene.SceneName;
|
Right_icon = this.AddMostRightEmptyIcon(58, 58);
|
Right_icon.Gravity = Gravity.CenterVertical;
|
|
this.ButtonClickEvent += (sender, e) =>
|
{
|
scene.Checked = !scene.Checked;
|
RefreshRightIconState(scene.Checked);
|
};
|
|
RefreshRightIconState(scene.Checked);
|
AddBottomLine();
|
|
}
|
|
private void RefreshRightIconState(bool bol = false)
|
{
|
try
|
{
|
if (bol)
|
{
|
Right_icon.SelectedImagePath = "Item/ItemSelected.png";
|
Right_icon.UnSelectedImagePath = "Item/ItemSelected.png";
|
}
|
else
|
{
|
Right_icon.SelectedImagePath = "Item/ItemUnSelected.png";
|
Right_icon.UnSelectedImagePath = "Item/ItemUnSelected.png";
|
}
|
}
|
catch (Exception e)
|
{
|
string error = e.Message;
|
}
|
}
|
|
}
|
#endregion
|
|
#region ■ 自定灯光选择控件_____________________
|
|
/// <summary>
|
/// 房间列表行
|
/// </summary>
|
private class DeviceRowLayout : FrameRowControl
|
{
|
private SmartSoundContentForDevice smartSoundControlForDevice = null;
|
|
private SmartSound.Device device = null;
|
/// <summary>
|
/// 房间名称
|
/// </summary>
|
private NormalViewControl btnName = null;
|
|
private MostRightIconControl Right_icon = null;
|
|
|
/// <summary>
|
/// 房间列表行
|
/// </summary>
|
public DeviceRowLayout(SmartSoundContentForDevice _smartSoundControlForDevice, SmartSound.Device _device)
|
{
|
this.smartSoundControlForDevice = _smartSoundControlForDevice;
|
this.device = _device;
|
this.UseClickStatu = false;
|
this.BackgroundColor = UserCenterColor.Current.White;
|
this.Height = Application.GetRealHeight(170);
|
}
|
|
/// <summary>
|
/// 初始化控件
|
/// </summary>
|
public void InitControl()
|
{
|
//显示文本
|
btnName = this.AddLeftCaption(string.Empty, 700);
|
btnName.Height = Application.GetRealHeight(60);
|
btnName.TextSize = 14;
|
btnName.Y = Application.GetRealHeight(57);
|
btnName.Text = device.DeviceName;
|
Right_icon = this.AddMostRightEmptyIcon(58, 58);
|
Right_icon.Gravity = Gravity.CenterVertical;
|
|
this.ButtonClickEvent += (sender, e) =>
|
{
|
device.Checked = !device.Checked;
|
RefreshRightIconState(device.Checked);
|
};
|
|
RefreshRightIconState(device.Checked);
|
AddBottomLine();
|
|
}
|
|
private void RefreshRightIconState(bool bol = false)
|
{
|
try
|
{
|
if (bol)
|
{
|
Right_icon.SelectedImagePath = "Item/ItemSelected.png";
|
Right_icon.UnSelectedImagePath = "Item/ItemSelected.png";
|
}
|
else
|
{
|
Right_icon.SelectedImagePath = "Item/ItemUnSelected.png";
|
Right_icon.UnSelectedImagePath = "Item/ItemUnSelected.png";
|
}
|
}
|
catch (Exception e)
|
{
|
string error = e.Message;
|
}
|
}
|
}
|
#endregion
|
}
|
}
|