| | |
| | | using System;
|
| | | using System.Collections.Generic; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.CSS; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.UI |
| | |
| | | /// </summary> |
| | | Button btnPm25Values; |
| | | /// <summary> |
| | | /// 切换显示功能类型区域 |
| | | /// </summary> |
| | | FrameLayout changeView; |
| | | /// <summary> |
| | | /// 切换显示设备功能按钮 |
| | | /// </summary> |
| | | Button btnChangeFunction; |
| | | /// <summary> |
| | | /// 切换显示场景功能按钮 |
| | | /// </summary> |
| | | Button btnChangeScene; |
| | | /// <summary> |
| | | /// 功能显示区域 |
| | | /// </summary> |
| | | PageLayout contentView; |
| | | /// <summary> |
| | | /// 设备功能控制区域 |
| | | /// </summary> |
| | | VerticalScrolViewLayout deviceFunctionView; |
| | | /// <summary> |
| | | /// 场景功能控制区域 |
| | | /// </summary> |
| | | VerticalScrolViewLayout sceneFunctionView; |
| | | /// <summary> |
| | | /// 灯光区域集合 |
| | | /// </summary> |
| | | static Dictionary<string, FrameLayout> LightViews; |
| | |
| | | static Dictionary<string, FrameLayout> CurtainViews; |
| | | #endregion |
| | | |
| | | #region 区域变量 |
| | | /// <summary> |
| | | /// 当前显示对控制类型是否是设备功能控制 |
| | | /// </summary> |
| | | bool CurShowTypeIsFunction = true; |
| | | #endregion |
| | | |
| | | public HomePage() |
| | | { |
| | | bodyView = this; |
| | | bodyView.BackgroundColor = CSS.CSS_Color.BackgroundColor; |
| | | bodyView.BackgroundColor = CSS_Color.BackgroundColor; |
| | | } |
| | | |
| | | public void LoadPage() |
| | |
| | | bodyView.AddChidren(topView); |
| | | |
| | | Button btnTop; |
| | | btnTop = new Button() { |
| | | BackgroundColor = 0x33000000, |
| | | btnTop = new Button() |
| | | { |
| | | BackgroundColor = CSS_Color.DialogTransparentColor2, |
| | | }; |
| | | topView.AddChidren(btnTop); |
| | | |
| | |
| | | |
| | | |
| | | #region 功能场景切换 |
| | | |
| | | |
| | | FrameLayout changeView; |
| | | changeView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(20) + topView.Bottom, |
| | |
| | | }; |
| | | bodyView.AddChidren(changeView); |
| | | |
| | | Button btnChangeFunction; |
| | | btnChangeFunction = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(114), |
| | | TextID = StringId.Functions, |
| | | SelectedTextColor = CSS.CSS_Color.MainColor, |
| | | TextColor = CSS.CSS_Color.PromptingColor1, |
| | | //TextSize = CSS.CSS_FontSize.TextFontSize, |
| | | TextSize = CSS.CSS_FontSize.HeadlineFontSize, |
| | | TextAlignment = TextAlignment.Center, |
| | | IsSelected = true, |
| | |
| | | }; |
| | | changeView.AddChidren(btnLine); |
| | | |
| | | Button btnChangeScene; |
| | | btnChangeScene = new Button() |
| | | { |
| | | X = btnLine.Right, |
| | |
| | | SelectedTextColor = CSS.CSS_Color.MainColor, |
| | | TextColor = CSS.CSS_Color.PromptingColor1, |
| | | TextSize = CSS.CSS_FontSize.TextFontSize, |
| | | //TextSize = CSS.CSS_FontSize.HeadlineFontSize, |
| | | TextAlignment = TextAlignment.Center, |
| | | }; |
| | | changeView.AddChidren(btnChangeScene); |
| | | |
| | | #endregion |
| | | |
| | | |
| | | #region ContextView |
| | | VerticalScrolViewLayout contextView; |
| | | contextView = new VerticalScrolViewLayout() |
| | | contentView = new PageLayout() |
| | | { |
| | | Y = changeView.Bottom + Application.GetRealHeight(10), |
| | | Height = Application.GetRealHeight(310 + 30), //20为超出部分 |
| | | |
| | | }; |
| | | bodyView.AddChidren(contextView); |
| | | bodyView.AddChidren(contentView); |
| | | |
| | | LightViews = new Dictionary<string, FrameLayout>(); |
| | | AcViews = new Dictionary<string, FrameLayout>(); |
| | | CurtainViews = new Dictionary<string, FrameLayout>(); |
| | | |
| | | deviceFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(deviceFunctionView); |
| | | LoadDeviceFunctionControlZone(); |
| | | sceneFunctionView = new VerticalScrolViewLayout(); |
| | | contentView.AddChidren(sceneFunctionView); |
| | | LoadSceneFunctionControlZone(); |
| | | contentView.PageIndex = 0; |
| | | |
| | | #endregion |
| | | |
| | | LoadEvent_ChangeShowedFunctionType(); |
| | | //刷新功能状态 |
| | | DB_ResidenceData.residenceData.RefreshResidenceFunctionStatus(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载设备功能显示区域 |
| | | /// </summary> |
| | | void LoadDeviceFunctionControlZone() |
| | | { |
| | | #region ContextView |
| | | deviceFunctionView.RemoveAll(); |
| | | LightViews.Clear(); |
| | | AcViews.Clear(); |
| | | CurtainViews.Clear(); |
| | | var rowView = new FrameLayout(); |
| | | try |
| | | { |
| | | int index = 0; |
| | | foreach (var function in DB_ResidenceData.residenceData.functions.functions) |
| | | foreach (var function in DB_ResidenceData.residenceData.functionList.GetAllDeviceFunctionList()) |
| | | { |
| | | if (!function.collection) |
| | | continue; |
| | | if (function.roomIdList.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示 |
| | | { |
| | | function.collection = false; |
| | | continue; |
| | | } |
| | | if (index % 2 == 0) |
| | | { |
| | | rowView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealWidth(140), |
| | | }; |
| | | contextView.AddChidren(rowView); |
| | | deviceFunctionView.AddChidren(rowView); |
| | | } |
| | | var functionView_X = Application.GetRealWidth((182 + 7) * (index % 2)); |
| | | if (index % 2 == 0) |
| | | { |
| | | functionView_X += 7; |
| | | functionView_X += Application.GetRealWidth(7); |
| | | } |
| | | var functionView = new FrameLayout() |
| | | { |
| | | X = functionView_X, |
| | | Width = Application.GetRealWidth(182), |
| | | Height = Application.GetRealWidth(140), |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | Tag = function.sid |
| | | }; |
| | | rowView.AddChidren(functionView); |
| | |
| | | AcViews.Add(function.sid, functionView); |
| | | #endregion |
| | | break; |
| | | |
| | | } |
| | | LoadControlView(functionView, function); |
| | | LoadDeviceFunctionDiv(functionView, function); |
| | | index++; |
| | | } |
| | | } |
| | |
| | | { |
| | | MainPage.Log("homepage erorr : " + ex.Message); |
| | | } |
| | | contextView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); |
| | | deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); |
| | | #endregion |
| | | |
| | | |
| | | DB_ResidenceData.residenceData.RefreshResidenceFunctionStatus(); |
| | | } |
| | | /// <summary> |
| | | /// 加载场景功能显示区域 |
| | | /// </summary> |
| | | void LoadSceneFunctionControlZone() |
| | | { |
| | | sceneFunctionView.RemoveAll(); |
| | | var rowView = new FrameLayout(); |
| | | try |
| | | { |
| | | int index = 0; |
| | | foreach (var function in DB_ResidenceData.residenceData.functionList.scenes) |
| | | { |
| | | if (!function.collection) |
| | | continue; |
| | | if (function.roomIdList.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示 |
| | | { |
| | | function.collection = false; |
| | | continue; |
| | | } |
| | | if (index % 2 == 0) |
| | | { |
| | | sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) }); |
| | | rowView = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealWidth(122), |
| | | }; |
| | | sceneFunctionView.AddChidren(rowView); |
| | | sceneFunctionView.AddChidren(new Button() { Height = Application.GetRealHeight(7) }); |
| | | } |
| | | var functionView_X = Application.GetRealWidth((16 + 164) * (index % 2) +16); |
| | | |
| | | var functionView = new FrameLayout() |
| | | { |
| | | X = functionView_X, |
| | | Width = Application.GetRealWidth(164), |
| | | Height = Application.GetRealWidth(122), |
| | | Tag = function.sid, |
| | | BackgroundImagePath = (function as Scene).ImagePath, |
| | | }; |
| | | rowView.AddChidren(functionView); |
| | | //functionView.Radius = (uint)Application.GetRealWidth(12); |
| | | //functionView.BorderColor = CSS_Color.BackgroundColor; |
| | | //functionView.BorderWidth = 1; |
| | | |
| | | |
| | | LoadSceneFunctionDiv(functionView, function); |
| | | index++; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log("homepage erorr : " + ex.Message); |
| | | } |
| | | sceneFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) }); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载控制卡片 |
| | | /// </summary> |
| | | void LoadControlView(FrameLayout view,Function function) |
| | | void LoadDeviceFunctionDiv(FrameLayout view, Function function) |
| | | { |
| | | try |
| | | { |
| | |
| | | TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | SelectedTextColor = CSS.CSS_Color.MainBackgroundColor, |
| | | Text = function.GetRoomListName() |
| | | }; |
| | | view.AddChidren(btnZone); |
| | | |
| | | foreach (var roomId in function.roomIdList) |
| | | { |
| | | var room = DB_ResidenceData.residenceData.rooms.Find((obj) => obj.sid == roomId); |
| | | if (room != null) |
| | | { |
| | | btnZone.Text = room.floor + " " + room.name; |
| | | } |
| | | else |
| | | { |
| | | btnZone.Text = ""; |
| | | } |
| | | } |
| | | |
| | | Button btnState; |
| | | btnState = new Button() |
| | |
| | | UnSelectedImagePath = "Collection/CollectionIcon.png", |
| | | }; |
| | | view.AddChidren(btnCollection); |
| | | btnCollection.MouseUpEventHandler += (sender, e) => { |
| | | //btnCollection.IsSelected = !btnCollection.IsSelected; |
| | | }; |
| | | |
| | | Button btnSwitch; |
| | | btnSwitch = new Button() |
| | |
| | | #region 灯光 Light |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightIcon.png"; |
| | | btnIcon.SelectedImagePath = "FunctionIcon/Light/LightOnIcon.png"; |
| | | LoadSwitchEvent(function, btnSwitch, view); |
| | | LoadRelaySwitchEvent(function, btnSwitch, view); |
| | | //btnCollection.IsSelected = btnIcon.IsSelected = btnName.IsSelected = btnZone.IsSelected = btnSwitch.IsSelected = (function as Light).state == 1; |
| | | UpdataLightView(function as Light); |
| | | //btnSwitch.MouseUpEventHandler += (sender, e) => |
| | |
| | | #endregion |
| | | break; |
| | | } |
| | | }catch(Exception ex) |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log("homepage LoadControlView error : " + ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 加载控制卡片 |
| | | /// </summary> |
| | | void LoadSceneFunctionDiv(FrameLayout view, Function function) |
| | | { |
| | | try |
| | | { |
| | | Button btnCoverd = new Button() |
| | | { |
| | | UnSelectedImagePath = "Collection/SceneCovered.png", |
| | | SelectedImagePath = "Collection/SceneCoveredOn.png", |
| | | //Width = Application.GetRealWidth(165), |
| | | }; |
| | | view.AddChidren(btnCoverd); |
| | | btnCoverd.MouseDownEventHandler = (sender, e) => { |
| | | btnCoverd.IsSelected = true; |
| | | }; |
| | | btnCoverd.MouseUpEventHandler = (sender, e) => { |
| | | new System.Threading.Thread(() => { |
| | | System.Threading.Thread.Sleep(200); |
| | | Application.RunOnMainThread(() => { |
| | | btnCoverd.IsSelected = false; |
| | | }); |
| | | }) { IsBackground = true }.Start(); |
| | | }; |
| | | |
| | | Button btnDelayIcon; |
| | | btnDelayIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | | Y = Application.GetRealWidth(12), |
| | | Height = Application.GetRealWidth(24), |
| | | Width = Application.GetRealWidth(24), |
| | | UnSelectedImagePath = "FunctionIcon/Scene/DelayIcon.png" |
| | | }; |
| | | view.AddChidren(btnDelayIcon); |
| | | |
| | | Button btnName; |
| | | btnName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | | Y = Application.GetRealWidth(68), |
| | | Width = Application.GetRealWidth(150), |
| | | Height = Application.GetRealHeight(24), |
| | | Text = function.name, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextColor = CSS_Color.MainBackgroundColor, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | }; |
| | | view.AddChidren(btnName); |
| | | |
| | | Button btnZone; |
| | | btnZone = new Button() |
| | | { |
| | | X = Application.GetRealWidth(12), |
| | | Y = btnName.Bottom, |
| | | Height = Application.GetRealWidth(18), |
| | | Width = Application.GetRealWidth(113), |
| | | TextColor = CSS.CSS_Color.MainBackgroundColor, |
| | | TextSize = CSS.CSS_FontSize.PromptFontSize_SecondaryLevel, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | SelectedTextColor = CSS.CSS_Color.MainBackgroundColor, |
| | | Text = function.GetRoomListName(), |
| | | }; |
| | | view.AddChidren(btnZone); |
| | | |
| | | Button btnCollection; |
| | | btnCollection = new Button() |
| | | { |
| | | X = Application.GetRealWidth(116), |
| | | Y = Application.GetRealWidth(8), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | SelectedImagePath = "Collection/CollectionWhiteIcon.png", |
| | | UnSelectedImagePath = "Collection/CollectionIcon.png", |
| | | }; |
| | | view.AddChidren(btnCollection); |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log("homepage LoadControlView error : " + ex.Message); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |