using System; using System.Collections.Generic; using Shared.Common; namespace Shared.Phone.Device.Category { public class SelectFloor : FrameLayout { public Action FloorAction; public bool changeFloor; /// /// Init /// public void Init(int x,int y,CommonForm.Direction direction=CommonForm.Direction.Left) { var dialog = new FrameLayout() { BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor }; AddChidren(dialog); dialog.MouseUpEventHandler += (sender, e) => { RemoveFromParent(); }; var bg = new Button { X = Application.GetRealWidth(x), Y = Application.GetRealHeight(y), Width = Application.GetMinRealAverage(449), Height = Application.GetMinRealAverage(783), UnSelectedImagePath="Item/SelectFloor_Left.png" }; dialog.AddChidren(bg); if (direction == CommonForm.Direction.Right) { bg.UnSelectedImagePath = "Item/SelectFloor_Right.png"; } var backgroundFL = new FrameLayout { X = Application.GetRealWidth(x+10), Y = Application.GetRealHeight(y+23), Width = Application.GetMinRealAverage(449-20), Height = Application.GetMinRealAverage(783-23-10), BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor, }; dialog.AddChidren(backgroundFL); var tip = new Button { X = Application.GetRealWidth(80), Width = Application.GetRealWidth(350), Height = Application.GetRealHeight(150), TextColor = ZigbeeColor.Current.GXCTextBlackColor, TextAlignment = TextAlignment.CenterLeft, TextID = R.MyInternationalizationString.SelectFloor, TextSize=16, IsBold=true }; backgroundFL.AddChidren(tip); var floorLayout = new VerticalScrolViewLayout { Y = tip.Bottom, Width = Application.GetMinRealAverage(449), Height = Application.GetMinRealAverage(600) }; backgroundFL.AddChidren(floorLayout); if (Config.Instance.Home.FloorDics.Count > 0) { foreach (var floor in Config.Instance.Home.FloorDics) { AddFloor(floorLayout, floor); } } } /// /// AddFloor /// /// private void AddFloor(VerticalScrolViewLayout verticalScrolView, KeyValuePair floor) { var frow = new CommonForm.LeftIconButtonRow(449, 150); frow.Tag = floor.Key; frow.Init("Floor/Floor.png", "Floor/FloorSelected.png", floor.Value); verticalScrolView.AddChidren(frow); if (Config.Instance.Home.CurrentFloorId == floor.Key) { frow.IsSelected = true; } frow.ClickBtn.MouseUpEventHandler += SelectFloor_MouseUpEvent; } /// /// SelectFloor_MouseUpEvent /// /// /// private void SelectFloor_MouseUpEvent(object sender,MouseEventArgs mouseEventArgs) { ((sender as Button).Parent as CommonForm.LeftIconButtonRow).IsSelected = true; if(changeFloor) { Config.Instance.Home.CurrentFloorId = (sender as Button).Tag.ToString(); Config.Instance.Home.Save(); Common.Room.RefreshRoomListView(); } FloorAction?.Invoke((sender as Button).Tag.ToString()); RemoveFromParent(); } } }