using System;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Newtonsoft.Json.Linq;
using Shared;
namespace HDL_ON.UI
{
public partial class FunctionBaseInfoSetPage : FrameLayout
{
#region 控件列表
FrameLayout bodyView;
///
/// 功能名称显示按钮
///
Button btnFunctionName;
///
/// 功能名称编辑按钮
///
Button btnEditName;
///
/// 位置信息显示按钮
///
Button btnLocationValues;
///
/// 位置信息跳转编辑按钮
///
Button btnLocationInfoRight;
#endregion
#region 局部变量
Function function;
///
/// 后退时,刷新之前界面的显示信息
///
Action actionRefresh;
#endregion
public FunctionBaseInfoSetPage(Function func, Action action)
{
bodyView = this;
function = func;
actionRefresh = action;
}
///
/// 加载界面
///
public void LoadPage(bool locationSetting = true)
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
new TopViewDiv(bodyView, Language.StringByID(StringId.Setting)).LoadTopView(actionRefresh);
var contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(600),
ScrollEnabled = false,
};
bodyView.AddChidren(contentView);
#region name view
var nameView = new FrameLayout()
{
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(nameView);
var btnNameText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.Name,
};
nameView.AddChidren(btnNameText);
btnFunctionName = new Button()
{
X = Application.GetRealWidth(86),
Width = Application.GetRealWidth(237),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = function.name,
};
nameView.AddChidren(btnFunctionName);
btnEditName = new Button()
{
X = Application.GetRealWidth(333),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(28),
Height = Application.GetMinRealAverage(28),
UnSelectedImagePath = "Public/Edit.png",
};
nameView.AddChidren(btnEditName);
nameView.AddChidren(
new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(49),
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
#endregion
if (locationSetting)
{
#region 位置管理
var locationMagtView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(locationMagtView);
var btnLocationMagtTitle = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.LocationManagement,
};
locationMagtView.AddChidren(btnLocationMagtTitle);
btnLocationValues = new Button()
{
X = Application.GetRealWidth(86),
Width = Application.GetRealWidth(237),
TextAlignment = TextAlignment.CenterRight,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.TextFontSize,
Text = function.GetRoomListName(),
};
locationMagtView.AddChidren(btnLocationValues);
btnLocationInfoRight = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
locationMagtView.AddChidren(btnLocationInfoRight);
locationMagtView.AddChidren(
new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(54),
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
#endregion
}
#region 共享
//var sharedView = new FrameLayout()
//{
// Height = Application.GetRealHeight(55),
// BackgroundColor = CSS_Color.MainBackgroundColor,
//};
//contentView.AddChidren(sharedView);
//var btnSharedText = new Button()
//{
// X = Application.GetRealWidth(16),
// Width = Application.GetRealWidth(160),
// TextAlignment = TextAlignment.CenterLeft,
// TextColor = CSS_Color.FirstLevelTitleColor,
// TextSize = CSS_FontSize.SubheadingFontSize,
// TextID = StringId.Shared,
//};
//sharedView.AddChidren(btnSharedText);
//var btnSharedRight = new Button()
//{
// X = Application.GetRealWidth(339),
// Gravity = Gravity.CenterVertical,
// Width = Application.GetMinRealAverage(16),
// Height = Application.GetMinRealAverage(16),
// UnSelectedImagePath = "Public/RightIcon.png",
//};
//sharedView.AddChidren(btnSharedRight);
//sharedView.AddChidren(
// new Button()
// {
// Gravity = Gravity.CenterHorizontal,
// Y = Application.GetRealHeight(54),
// BackgroundColor = CSS_Color.DividingLineColor,
// Width = Application.GetRealWidth(343),
// Height = Application.GetRealHeight(1)
// });
#endregion
#if stage2
#region 添加到桌面
var addToDesktopView = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(addToDesktopView);
var btnAddToDesktopText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.AddToDesktop,
};
addToDesktopView.AddChidren(btnAddToDesktopText);
var btnAddToDesktopRight = new Button()
{
X = Application.GetRealWidth(339),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/RightIcon.png",
};
addToDesktopView.AddChidren(btnAddToDesktopRight);
#endregion
#endif
if (function.spk == SPK.ElectricEnergy)
{
#region 能源数据
var energyView1 = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(energyView1);
var btnEnergyText1 = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.RealTimeEnergyConsumption,
};
energyView1.AddChidren(btnEnergyText1);
double realTimePower = 0;
double.TryParse(function.GetAttrState(FunctionAttributeKey.Power), out realTimePower);
realTimePower /= 1000;
var energyValue1 = new Button()
{
Width = Application.GetRealWidth(355),
TextAlignment = TextAlignment.CenterRight,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.PromptingColor1,
Text = realTimePower + "kW",
};
energyView1.AddChidren(energyValue1);
energyView1.AddChidren(
new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(54),
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
//-----------------
var energyView2 = new FrameLayout()
{
Height = Application.GetRealHeight(55),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
contentView.AddChidren(energyView2);
var btnEnergyText2 = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(160),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.EnergyConsumptionOfThisMonth,
};
energyView2.AddChidren(btnEnergyText2);
var btnEnergyValue2 = new Button()
{
Width = Application.GetRealWidth(355),
TextAlignment = TextAlignment.CenterRight,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.PromptingColor1,
Text = "--kW",
};
energyView2.AddChidren(btnEnergyValue2);
energyView2.AddChidren(
new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(54),
BackgroundColor = CSS_Color.DividingLineColor,
Width = Application.GetRealWidth(343),
Height = Application.GetRealHeight(1)
});
new System.Threading.Thread(() =>
{
var pm = new HttpServerRequest();
var data = pm.GetLastMonthHistory(function.deviceId, FunctionAttributeKey.TotalElectricity);
if (data != null)
{
if (data.Code == StateCode.SUCCESS)
{
var dataPack = Newtonsoft.Json.JsonConvert.DeserializeObject(data.Data.ToString());
if (dataPack != null)
{
try
{
var dataValue = dataPack.GetValue("monthDiff").ToString();
if (!string.IsNullOrEmpty(dataValue))
{
Application.RunOnMainThread(() =>
{
btnEnergyValue2.Text = dataValue + "kW‧h";
});
}
}
catch
{
}
}
}
}
})
{ IsBackground = true }.Start();
#endregion
}
LoadEventList();
}
}
}