| | |
| | | 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 |
| | |
| | | Action actionRefresh; |
| | | #endregion |
| | | |
| | | public FunctionBaseInfoSetPage(Function func,Action action) |
| | | public FunctionBaseInfoSetPage(Function func, Action action) |
| | | { |
| | | bodyView = this; |
| | | function = func; |
| | |
| | | /// <summary> |
| | | /// 加载界面 |
| | | /// </summary> |
| | | public void LoadPage() |
| | | 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() |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(50), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | bodyView.AddChidren(nameView); |
| | | contentView.AddChidren(nameView); |
| | | |
| | | var btnNameText = new Button() |
| | | { |
| | |
| | | |
| | | btnFunctionName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(186), |
| | | Width = Application.GetRealWidth(137), |
| | | X = Application.GetRealWidth(86), |
| | | Width = Application.GetRealWidth(237), |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | |
| | | }); |
| | | |
| | | #endregion |
| | | |
| | | #region 位置管理 |
| | | var locationMagtView = new FrameLayout() |
| | | if (locationSetting) |
| | | { |
| | | Y = nameView.Bottom, |
| | | Height = Application.GetRealHeight(55), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | bodyView.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(186), |
| | | Width = Application.GetRealWidth(137), |
| | | 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() |
| | | #region 位置管理 |
| | | var locationMagtView = new FrameLayout() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(54), |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealHeight(1) |
| | | }); |
| | | #endregion |
| | | 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() |
| | | //{ |
| | | // Y = locationMagtView.Bottom, |
| | | // Height = Application.GetRealHeight(55), |
| | | // BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | //}; |
| | | //bodyView.AddChidren(sharedView); |
| | | //contentView.AddChidren(sharedView); |
| | | |
| | | //var btnSharedText = new Button() |
| | | //{ |
| | |
| | | // }); |
| | | #endregion |
| | | |
| | | #if stage2 |
| | | #region 添加到桌面 |
| | | var addToDesktopView = new FrameLayout() |
| | | { |
| | | Y = locationMagtView.Bottom, |
| | | Height = Application.GetRealHeight(55), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | | bodyView.AddChidren(addToDesktopView); |
| | | contentView.AddChidren(addToDesktopView); |
| | | |
| | | var btnAddToDesktopText = new Button() |
| | | { |
| | |
| | | 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<JObject>(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(); |
| | | } |