using System;
using System.Collections.Generic;
using HDL_ON.Common;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public class CombinedDimmingListPage : FrameLayout
{
FrameLayout bodyView;
VerticalScrolViewLayout contentView;
public CombinedDimmingListPage()
{
bodyView = this;
}
public void LoadPage()
{
new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView_AddIcon("CombinedDimming",
(s,c)=>{
try
{
var page = new AddGroupControlPage(null,
(newGC)=> {
ReadGroupControlList();
});
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
catch { }
});
contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(667 - 64),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(contentView);
ReadGroupControlList();
#region
contentView.AddChidren(new Button() { Height = Application.GetRealHeight(8) });
#endregion
}
///
/// 读取组控数据
///
private void ReadGroupControlList()
{
new System.Threading.Thread(() => {
var pack = ApiUtlis.Ins.HttpRequest.GetGroupControlList();
if (pack != null)
{
if (pack.Code == StateCode.SUCCESS)
{
try
{
var groupControlList = Newtonsoft.Json.JsonConvert.DeserializeObject>(pack.Data.ToString());
Application.RunOnMainThread(() =>
{
LoadGroupControlView(groupControlList);
});
}
catch (Exception ex)
{
MainPage.Log($"读取组控列表失败:{ex.Message}");
}
}
else
{
IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
}
}
})
{ IsBackground = true }.Start();
}
private void LoadGroupControlView(List list)
{
#if DEBUG
if (list.Count == 0)
{
list.Add(new GroupControl()
{
name = "组合调光1",
roomIds = new List { Room.CurrentSpatial.RoomList[0].roomId },
sid = "00000000000000001",
type = "light",
});
list.Add(new GroupControl()
{
name = "组合调光2",
roomIds = new List { Room.CurrentSpatial.RoomList[0].roomId },
sid = "00000000000000002",
type = "light",
});
}
#endif
if (list.Count == 0)
{
}
else
{
contentView.RemoveAll();
foreach (var groupControl in list)
{
var functionRow = new RowLayout()
{
Height = Application.GetRealHeight(65),
BackgroundColor = CSS_Color.MainBackgroundColor,
LineColor = 0x00000000
};
contentView.AddChidren(functionRow);
var btnRight = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/Right.png",
};
functionRow.AddChidren(btnRight);
var btnFunctionName = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealHeight(10),
Width = Application.GetRealWidth(308),
Height = Application.GetRealHeight(24),
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.SubheadingFontSize,
TextColor = CSS_Color.FirstLevelTitleColor,
Text = groupControl.name,
};
functionRow.AddChidren(btnFunctionName);
var btnFunctionLocationInfo = new Button()
{
X = Application.GetRealWidth(16),
Y = btnFunctionName.Bottom,
Width = Application.GetRealWidth(308),
Height = Application.GetRealHeight(21),
TextAlignment = TextAlignment.CenterLeft,
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
TextColor = CSS_Color.PromptingColor1,
Text = groupControl.GetRoomListName(),
};
functionRow.AddChidren(btnFunctionLocationInfo);
functionRow.AddChidren(
new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(1),
Width = Application.GetRealWidth(343),
BackgroundColor = CSS_Color.DividingLineColor,
});
EventHandler eventHandler = (sender, e) => {
var page = new AddGroupControlPage(groupControl,
(newGC) => {
try
{
Application.RunOnMainThread(() =>
{
groupControl.roomIds = newGC.uids;
btnFunctionLocationInfo.Text = newGC.GetUidListName();
});
}catch(Exception ex)
{
MainPage.Log($"刷新群控房间信息异常:{ex.Message}");
}
});
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
functionRow.MouseUpEventHandler = eventHandler;
btnRight.MouseUpEventHandler = eventHandler;
btnFunctionName.MouseUpEventHandler = eventHandler;
btnFunctionLocationInfo.MouseUpEventHandler = eventHandler;
var btnDelGroupControl = new Button()
{
TextColor = CSS_Color.MainBackgroundColor,
BackgroundColor = CSS_Color.WarningColor,
TextID = StringId.Del,
TextAlignment = TextAlignment.Center,
};
functionRow.AddRightView(btnDelGroupControl);
btnDelGroupControl.MouseUpEventHandler = (sender1, e1) => {
var waitPage = new Loading();
this.AddChidren(waitPage);
waitPage.Start("");
new System.Threading.Thread(() =>
{
try
{
var pack = ApiUtlis.Ins.HttpRequest.DelGroupControl(groupControl.userDeviceGroupControlId);
if (pack != null)
{
Application.RunOnMainThread(() =>
{
try
{
if (pack.Code == StateCode.SUCCESS)
{
list.Remove(groupControl);
LoadGroupControlView(list);
}
else
{
IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
}
}catch(Exception ex)
{
MainPage.Log($"刷新组控数据异常:{ex.Message}");
}
});
}
}catch(Exception ex)
{
MainPage.Log($"删除组控异常:{ex.Message}");
}
finally
{
Application.RunOnMainThread(() => {
if (waitPage != null)
{
waitPage.Hide();
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true }.Start();
};
}
}
}
}
}