using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
using Shared.Phone.UserCenter.SmartSound.Forms;
|
using ZigBee.Device;
|
|
namespace Shared.Phone.UserCenter.SmartSound
|
{
|
|
public class SmartSoundControlForm : EditorCommonForm
|
{
|
|
/// <summary>
|
/// 列表控件
|
/// </summary>
|
private VerticalListControl listView = null;
|
private FrameLayout contentLayout = null;
|
public int CurrentIndex = 0;
|
private MostRightIconControl btnAddDeviceIcon = null;
|
|
public SmartSoundControlForm()
|
{
|
}
|
|
/// <summary>
|
/// 画面显示(底层会固定调用此方法,借以完成画面创建)
|
/// </summary>
|
public void ShowForm()
|
{
|
|
//设置标题信息
|
base.SetTitleText("语音控制");
|
|
//右上添加按钮
|
if (btnAddDeviceIcon == null)
|
{
|
btnAddDeviceIcon = new MostRightIconControl(69, 69);
|
btnAddDeviceIcon.UnSelectedImagePath = "Item/Add.png";
|
topFrameLayout.AddChidren(btnAddDeviceIcon);
|
btnAddDeviceIcon.InitControl();
|
btnAddDeviceIcon.ButtonClickEvent += (sender, e) =>
|
{
|
var smartSoundDataAdd = new SmartSoundControlContentForm();
|
smartSoundDataAdd.AddForm();
|
};
|
}
|
|
//初始化中部控件
|
this.InitMiddleFrame();
|
|
}
|
|
|
private void InitMiddleFrame()
|
{
|
|
if (SmartSound.CurretnData == null || SmartSound.CurretnData.Count < 1)
|
return;
|
|
// 添加数据
|
if (contentLayout != null)
|
{
|
contentLayout.RemoveAll();
|
contentLayout = null;
|
}
|
|
contentLayout = new FrameLayout();
|
this.bodyFrameLayout.AddChidren(contentLayout);
|
contentLayout.RemoveAll();
|
|
var pullLayout = new MyPullControl(this, SmartSound.CurretnData);
|
contentLayout.AddChidren(pullLayout);
|
pullLayout.InitControl();
|
|
LoadAllRoomListView();
|
|
}
|
|
private void LoadAllRoomListView()
|
{
|
try
|
{
|
|
if (SmartSound.CurretnData == null || SmartSound.CurretnData.Count < 1)
|
return;
|
|
// 加载当前楼层的所有房间 ListView
|
if (listView == null)
|
{
|
|
listView = new VerticalListControl();
|
contentLayout.AddChidren(listView);
|
listView.Y = Application.GetRealHeight(173);
|
listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(173);
|
|
}
|
else if (listView.Parent == null)
|
{
|
listView = new VerticalListControl();
|
contentLayout.AddChidren(listView);
|
listView.Y = Application.GetRealHeight(173);
|
listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(173);
|
}
|
|
listView.RemoveAll();
|
|
SmartSound.Layer layer = SmartSound.CurretnData[CurrentIndex];
|
|
foreach (SmartSound.Room room in layer.RoomList)
|
{
|
var roomRowLayout = new RoomRowLayout(this, room);
|
listView.AddChidren(roomRowLayout);
|
roomRowLayout.InitControl();
|
|
roomRowLayout.btnDelect.ButtonClickEvent += (sender, e) =>
|
{
|
|
try
|
{
|
var delBtn = sender as NormalViewControl;
|
var tag = (SmartSound.Room)delBtn.GetTagByKey("obj");
|
|
if (SmartSound.CurretnData == null)
|
return;
|
|
for (int i = 0; i < SmartSound.CurretnData.Count; i++)
|
{
|
SmartSound.Layer _layer = SmartSound.CurretnData[i];
|
|
for (int j = 0; j < _layer.RoomList.Count; j++)
|
{
|
SmartSound.Room _room = _layer.RoomList[j];
|
|
if (_room.RoomID == tag.RoomID)
|
{
|
_layer.RoomList.Remove(_room);
|
this.LoadAllRoomListView();
|
}
|
}
|
}
|
}
|
catch(Exception ex)
|
{
|
string error = ex.Message;
|
}
|
};
|
}
|
|
}
|
catch(Exception e)
|
{
|
string error = e.Message;
|
}
|
}
|
|
public override int FormActionAgainEvent()
|
{
|
ShowForm();
|
return base.FormActionAgainEvent();
|
}
|
|
#region ■ 自定义楼层选择控件_____________________
|
|
/// <summary>
|
/// 房间列表行
|
/// </summary>
|
private class MyPullControl : FrameRowControl
|
{
|
|
private SmartSoundControlForm smartSoundControlData = null;
|
private List<SmartSound.Layer> Layers = null;
|
/// <summary>
|
/// 房间列表
|
/// </summary>
|
private NormalViewControl btnName = null;
|
|
/// <summary>
|
/// 房间列表行
|
/// </summary>
|
public MyPullControl(SmartSoundControlForm _SmartSoundDataAdd, List<SmartSound.Layer> _layers)
|
{
|
this.smartSoundControlData = _SmartSoundDataAdd;
|
this.Layers = _layers;
|
this.UseClickStatu = false;
|
this.BackgroundColor = UserCenterColor.Current.White;
|
this.Height = Application.GetRealHeight(173);
|
}
|
|
/// <summary>
|
/// 初始化控件
|
/// </summary>
|
public void InitControl()
|
{
|
try
|
{
|
//显示文本
|
btnName = this.AddLeftCaption(string.Empty, 700);
|
btnName.Height = Application.GetRealHeight(60);
|
btnName.TextSize = 17;
|
btnName.Y = Application.GetRealHeight(57);
|
btnName.Text = "房间列表";
|
|
var right_icon = this.AddRightArrow();
|
right_icon.SelectedImagePath = "SmartSound/PullDown.png";
|
right_icon.UnSelectedImagePath = "SmartSound/PullDown.png";
|
right_icon.ButtonClickEvent += (sender, e) =>
|
{
|
ShowPullList();
|
};
|
|
var layout = this.AddMostRightView(Layers[smartSoundControlData.CurrentIndex].LayerName, 300, false);
|
layout.Name = "pullLayout";
|
layout.ButtonClickEvent += (sender, e) =>
|
{
|
ShowPullList();
|
};
|
}
|
catch(Exception e)
|
{
|
string error = e.Message;
|
}
|
}
|
|
private void ShowPullList()
|
{
|
//房间列表行{房间列表 textView,楼层下拉窗}
|
//显示房间{带选择框的;当选中了房间后需要在底部弹出确认按钮,点击确认跳转到新的界面}
|
var pull_frame = new TopRightMenuControl(Layers.Count, 2);
|
pull_frame.Y = this.Height;
|
|
for (int i = 0; i < Layers.Count; i++)
|
{
|
//创建楼层
|
pull_frame.AddRowMenu(Layers[i].LayerName, "Item/CreatFloor.png", "Item/CreatFloorSelected.png", () =>
|
{
|
smartSoundControlData.CurrentIndex = i;
|
smartSoundControlData.LoadAllRoomListView();
|
});
|
}
|
}
|
}
|
#endregion
|
|
#region ■ 自定义智能音箱控件_____________________
|
|
/// <summary>
|
/// 语音控制房间行
|
/// </summary>
|
private class RoomRowLayout : RowLayoutControl
|
{
|
|
/// <summary>
|
/// 房间名字
|
/// </summary>
|
private NormalViewControl btnName = null;
|
|
/// <summary>
|
/// 删除按钮
|
/// </summary>
|
public NormalViewControl btnDelect = null;
|
|
private SmartSoundControlForm smartSoundControlForm;
|
private SmartSound.Room room;
|
|
/// <summary>
|
/// 自定音箱关控件
|
/// </summary>
|
public RoomRowLayout(SmartSoundControlForm _smartSoundControlForm, SmartSound.Room _room)
|
{
|
this.smartSoundControlForm = _smartSoundControlForm;
|
this.room = _room;
|
this.BackgroundColor = UserCenterColor.Current.White;
|
this.Height = Application.GetRealHeight(173);
|
|
}
|
|
/// <summary>
|
/// 初始化内部控件
|
/// </summary>
|
public void InitControl()
|
{
|
//设备
|
frameTable.AddLeftCaption(this.room.RoomName, 800);
|
frameTable.AddRightArrow();
|
//底线
|
frameTable.AddBottomLine();
|
|
btnDelect = base.AddDeleteControl();
|
btnDelect.Text = "删除";
|
btnDelect.AddTag("obj", room);
|
|
}
|
#endregion
|
}
|
}
|
}
|