using System; using System.Collections.Generic; using Newtonsoft.Json.Linq; using Shared; using Shared.Common; using Shared.Phone; using Shared.R; using ZigBee.Device; namespace Shared.Phone.Device.Logic { public class AddScenePage : FrameLayout { public AddScenePage() { Tag = "Logic"; } Button roombjButton = new Button(); Button roomTextButton = new Button(); Button clickbutton = new Button(); HorizontalScrolViewLayout roomhorizontalScrol; VerticalScrolViewLayout middle; public string clickTag = "no"; public SceneUI tempScene = null; Dictionary actionsInfo = new Dictionary(); public void Show() { UserView.HomePage.Instance.ScrollEnabled = false; this.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; #region 最上面的布局代码 var topRowLayout = new RowLayout { BackgroundColor = ZigbeeColor.Current.LogicTopBackgroundColor, Height = Application.GetRealHeight(184), LineColor = ZigbeeColor.Current.LogicRowLayoutTopLineColor, }; this.AddChidren(topRowLayout); var titleName = new Button { TextSize = 16, TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextAlignment = TextAlignment.CenterLeft, X = Application.GetRealWidth(160), Width = Application.GetRealWidth(600), Height = Application.GetRealHeight(69), Y = Application.GetRealHeight(92), TextID = MyInternationalizationString.addscene, }; topRowLayout.AddChidren(titleName); var clickBtn = new Button { Width = Application.GetRealWidth(81 + 51), Height = Application.GetRealHeight(58 + 40), Y = Application.GetRealHeight(98 - 40), }; topRowLayout.AddChidren(clickBtn); clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); UserView.HomePage.Instance.ScrollEnabled = true; }; var back = new Button { Width = Application.GetRealWidth(30), Height = Application.GetRealHeight(51), X = Application.GetRealWidth(81), Y = Application.GetRealHeight(98), //Gravity = Gravity.CenterVertical; UnSelectedImagePath = "ZigeeLogic/back.png", }; topRowLayout.AddChidren(back); back.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); UserView.HomePage.Instance.ScrollEnabled = true; }; var foolrname = new Button { TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextAlignment = TextAlignment.CenterRight, X = Application.GetRealWidth(1080 - 400 - 120), Width = Application.GetRealWidth(400), Height = Application.GetRealHeight(69), Y = Application.GetRealHeight(92), //TextID = MyInternationalizationString.customroom, Text = Config.Instance.Home.GetCurrentFloorName, }; topRowLayout.AddChidren(foolrname); var dropdown = new Button { TextColor = ZigbeeColor.Current.LogicTextBlackColor, TextAlignment = TextAlignment.CenterRight, X = foolrname.Right, Width = Application.GetRealWidth(72), Height = Application.GetRealHeight(72), Y = Application.GetRealHeight(92), UnSelectedImagePath = "ZigeeLogic/drop-down.png", }; topRowLayout.AddChidren(dropdown); #endregion ///没有房间直接返回去; if (Common.Room.Lists.Count == 0) { return; } ///房间滑动控件 roomhorizontalScrol = new HorizontalScrolViewLayout() { Width = Application.GetRealWidth(1080 - 58), Height = Application.GetRealHeight(200), Y = topRowLayout.Bottom, X = Application.GetRealWidth(58), }; this.AddChidren(roomhorizontalScrol); middle = new VerticalScrolViewLayout(); middle.Y = roomhorizontalScrol.Bottom; middle.Height = Application.GetRealHeight(1920 - 260 - 200 - 184); middle.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor; this.AddChidren(middle); var saveframeLayout = new FrameLayout { Y = middle.Bottom, Height = Application.GetRealHeight(260), BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; this.AddChidren(saveframeLayout); var btnsave = new Button { X = Application.GetRealWidth(85), Height = Application.GetRealHeight(130), Width = Application.GetRealWidth(910), Radius = (uint)Application.GetRealHeight(60), BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor, TextID = MyInternationalizationString.Save, TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor, }; saveframeLayout.AddChidren(btnsave); btnsave.MouseUpEventHandler += (sender2, e2) => { if (clickTag == "no" || tempScene == null) { var alert = new Alert(Language.StringByID(MyInternationalizationString.Prompt), Language.StringByID(MyInternationalizationString.selectdevicestatuscondition), Language.StringByID(MyInternationalizationString.complete)); alert.Show(); return; } if (actionsInfo.ContainsKey("LinkType")) { actionsInfo.Remove("LinkType"); } actionsInfo.Add("LinkType", 2); LogicIfon.AddSceneactions(tempScene, actionsInfo); var logicCommunalPage = new LogicCommunalPage(); UserView.HomePage.Instance.AddChidren(logicCommunalPage); UserView.HomePage.Instance.PageIndex += 1; logicCommunalPage.Show(() => { }); }; ///楼层点击事件 EventHandler foorlclick = (sender, e) => { var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor }; this.AddChidren(flMain); flMain.MouseUpEventHandler += (sender2, e2) => { flMain.RemoveFromParent(); }; var foolrbjicon = new FrameLayout { Width = Application.GetRealWidth(450), Height = Application.GetRealHeight(780), X = Application.GetRealWidth(1080 - 468 - 35), Y = Application.GetRealHeight(184), BackgroundImagePath = "Item/SelectFloor_Right.png", }; flMain.AddChidren(foolrbjicon); var btnfoolrtext = new Button { Width = Application.GetRealWidth(450), Height = Application.GetRealHeight(150), TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, X = Application.GetRealWidth(80), TextID = MyInternationalizationString.selecfoolr, }; foolrbjicon.AddChidren(btnfoolrtext); var foolrbj = new VerticalScrolViewLayout { Width = Application.GetRealWidth(450), Height = foolrbjicon.Height - btnfoolrtext.Height, X = Application.GetRealWidth(80), Y = btnfoolrtext.Bottom, }; foolrbjicon.AddChidren(foolrbj); foreach (var foolr in Config.Instance.Home.FloorDics) { var foolrRowLayout = new RowLayout { Height = Application.GetRealHeight(150), LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor, }; foolrbj.AddChidren(foolrRowLayout); var btnfoolricon = new Button { Width = Application.GetRealWidth(81), Height = Application.GetRealHeight(81), UnSelectedImagePath = "Floor/Floor.png", Gravity = Gravity.CenterVertical, }; foolrRowLayout.AddChidren(btnfoolricon); var btnfoolrname = new Button { Width = Application.GetRealWidth(250), Height = Application.GetRealHeight(150), Text = foolr.Value, TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicBtnCancelColor, Tag = foolr.Key, X = btnfoolricon.Right + Application.GetRealWidth(12), }; foolrRowLayout.AddChidren(btnfoolrname); if (foolrname.Text == foolr.Value) { btnfoolricon.UnSelectedImagePath = "Floor/FloorSelected.png"; btnfoolrname.TextColor = ZigbeeColor.Current.LogicTextBlackColor; } EventHandler foolrnameclick = (sender13, e13) => { roomhorizontalScrol.RemoveAll(); foolrname.Text = btnfoolrname.Text; middle.RemoveAll(); flMain.RemoveFromParent(); var list = Send.GetRoomList(btnfoolrname.Tag.ToString()); AllRoomView(list); }; foolrRowLayout.MouseUpEventHandler += foolrnameclick; btnfoolrname.MouseUpEventHandler += foolrnameclick; } }; foolrname.MouseUpEventHandler += foorlclick; dropdown.MouseUpEventHandler += foorlclick; ///第一次进来 var roomlists = new List(); roomlists.Clear(); if (Config.Instance.Home.FloorDics.Count < 2) { foolrname.Visible = false; dropdown.Visible = false; if (Config.Instance.Home.FloorDics.Count == 0) { roomlists.AddRange(Common.Room.Lists); } else { roomlists = Send.GetRoomList(Config.Instance.Home.CurrentFloorId); } } else { roomlists = Send.GetRoomList(Config.Instance.Home.CurrentFloorId); } ///第一次进来 AllRoomView(roomlists); } /// /// 显示所有房间的方法 /// /// void AllRoomView(List RoomList ) { for (int i = 0; i < RoomList.Count; i++) { var room = RoomList[i]; var fra = new FrameLayout { Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(255), }; roomhorizontalScrol.AddChidren(fra); var roombjBtn = new Button { Height = Application.GetRealHeight(158), Width = Application.GetRealWidth(255), UnSelectedImagePath = "ZigeeLogic/iconBackgroundColor.png", SelectedImagePath = "ZigeeLogic/iconSelectedBackgroundColor.png", Y = Application.GetRealHeight(21), }; fra.AddChidren(roombjBtn); var roomnameBtn = new Button { Height = Application.GetRealHeight(152 - 26 - 20), Width = Application.GetRealWidth(255 - 20 - 50), Text = room.Name, TextColor = ZigbeeColor.Current.LogicBtnCancelColor, SelectedTextColor = ZigbeeColor.Current.LogicBlankBackgroundColor, Y = Application.GetRealHeight(21 + 13 + 10), X = Application.GetRealWidth(10 + 25), }; fra.AddChidren(roomnameBtn); if (i == 0) { roombjButton.IsSelected = false; roombjButton = roombjBtn; roombjBtn.IsSelected = true; roomTextButton.IsSelected = false; roomTextButton = roomnameBtn; roomnameBtn.IsSelected = true; SceneView(room.SceneUIList); } EventHandler roomclick = (sender, e) => { roombjButton.IsSelected = false; roombjButton = roombjBtn; roombjBtn.IsSelected = true; roomTextButton.IsSelected = false; roomTextButton = roomnameBtn; roomnameBtn.IsSelected = true; SceneView(room.SceneUIList); }; roomnameBtn.MouseUpEventHandler += roomclick; roombjBtn.MouseUpEventHandler += roomclick; } } /// /// 显示所有的场景的方法 /// /// void SceneView(Listscenelist) { middle.RemoveAll(); foreach (var scene in scenelist) { var sceneFramelayout = new FrameLayout { Height = Application.GetRealHeight(160), BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor, }; middle.AddChidren(sceneFramelayout); var sceneIconBtn = new Button { Width = Application.GetRealWidth(81), Height = Application.GetRealHeight(81), X = Application.GetRealWidth(58), Y = Application.GetRealHeight(55), UnSelectedImagePath = "ZigeeLogic/scene.png", }; sceneFramelayout.AddChidren(sceneIconBtn); var sceneRow = new RowLayout { Y = Application.GetRealHeight(30), Width = Application.GetRealWidth(850), Height = Application.GetRealHeight(130), X = Application.GetRealWidth(176 + 10), LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor, }; sceneFramelayout.AddChidren(sceneRow); var scenename = new Button { Text = scene.Name, TextAlignment = TextAlignment.CenterLeft, TextColor = ZigbeeColor.Current.LogicTextBlackColor, SelectedTextColor = ZigbeeColor.Current.LogicAddColor, }; sceneRow.AddChidren(scenename); var selectedBtn = new Button { Width = Application.GetRealWidth(58), Height = Application.GetRealHeight(58), X = Application.GetRealWidth(789), UnSelectedImagePath = "ZigeeLogic/selected.png", Visible = false, Gravity = Gravity.CenterVertical, }; sceneRow.AddChidren(selectedBtn); EventHandler sceneclick = (sender, e) => { tempScene = scene; clickTag = "yes"; clickbutton.Visible = false; clickbutton = selectedBtn; selectedBtn.Visible = true; if (actionsInfo.ContainsKey("DeviceAddr")) { actionsInfo.Remove("DeviceAddr"); } actionsInfo.Add("DeviceAddr", scene.Id); }; sceneFramelayout.MouseUpEventHandler += sceneclick; sceneIconBtn.MouseUpEventHandler += sceneclick; sceneRow.MouseUpEventHandler += sceneclick; scenename.MouseUpEventHandler += sceneclick; selectedBtn.MouseUpEventHandler += sceneclick; } } } }