using System;
|
using System.Collections.Generic;
|
using Shared.Common;
|
|
namespace Shared.Phone.Category
|
{
|
public class SelectFloorForm : UserCenter.FrameLayoutBase
|
{
|
|
public Action<string> FloorAction;
|
/// <summary>
|
/// 是否切换为当前楼层
|
/// </summary>
|
public bool changeFloor = true;
|
/// <summary>
|
/// 当前传过来的floorid
|
/// </summary>
|
public string CurFloorId = string.Empty;
|
|
Dialog dialogBackground;
|
|
/// <summary>
|
/// Init
|
/// </summary>
|
public void Init(int x, int y, Device.CommonForm.Direction direction = Device.CommonForm.Direction.Left)
|
{
|
dialogBackground = new Dialog
|
{
|
BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
|
};
|
dialogBackground.Show();
|
var dialog = new FrameLayout()
|
{
|
};
|
dialogBackground.AddChidren(dialog);
|
|
dialog.MouseUpEventHandler += (sender, e) =>
|
{
|
RemoveView();
|
};
|
|
var bg = new Button
|
{
|
X = Application.GetRealWidth(x),
|
Y = Application.GetRealHeight(y),
|
Width = this.GetPictrueRealSize(449),
|
Height = this.GetPictrueRealSize(773),
|
UnSelectedImagePath = "Floor/SelectFloor_Left_4.png"
|
};
|
dialog.AddChidren(bg);
|
|
var backgroundFL = new FrameLayout
|
{
|
X = Application.GetRealWidth(x),
|
Y = Application.GetRealHeight(y + 23),
|
Width = this.GetPictrueRealSize(449),
|
Height = this.GetPictrueRealSize(773 - 23)
|
};
|
dialog.AddChidren(backgroundFL);
|
|
var tip = new Button
|
{
|
X = Application.GetRealWidth(80),
|
Width = this.GetPictrueRealSize(350),
|
Height = this.GetPictrueRealSize(150),
|
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextID = R.MyInternationalizationString.SelectFloor,
|
TextSize = 14,
|
IsBold = true
|
};
|
backgroundFL.AddChidren(tip);
|
|
var floorLayout = new VerticalScrolViewLayout
|
{
|
Y = tip.Bottom,
|
Width = this.GetPictrueRealSize(449),
|
Height = this.GetPictrueRealSize(600),
|
VerticalScrollBarEnabled = false
|
};
|
backgroundFL.AddChidren(floorLayout);
|
|
var floorCount = Config.Instance.Home.FloorDics.Count;
|
|
if (floorCount > 0)
|
{
|
string directStr = string.Empty;
|
if (direction == Device.CommonForm.Direction.Right)
|
{
|
directStr = "Right";
|
}
|
else
|
{
|
directStr = "Left";
|
}
|
|
if (floorCount > 5)
|
{
|
bg.UnSelectedImagePath = $"Floor/SelectFloor_{directStr}_5.png";
|
bg.Height = this.GetPictrueRealSize(150*6+23);
|
backgroundFL.Height = this.GetPictrueRealSize(150 * 6);
|
floorLayout.Height = this.GetPictrueRealSize(150 * 5);
|
}
|
else
|
{
|
bg.UnSelectedImagePath = $"Floor/SelectFloor_{directStr}_{floorCount}.png";
|
bg.Height = this.GetPictrueRealSize(150 * (floorCount + 1)+23);
|
backgroundFL.Height = this.GetPictrueRealSize(150 * (floorCount + 1));
|
floorLayout.Height = this.GetPictrueRealSize(150 * floorCount);
|
}
|
|
foreach (var floor in Config.Instance.Home.FloorDics)
|
{
|
AddFloor(floorLayout, floor);
|
}
|
}
|
}
|
|
/// <summary>
|
/// AddFloor
|
/// </summary>
|
/// <param name="verticalScrolView"></param>
|
private void AddFloor(VerticalScrolViewLayout verticalScrolView, KeyValuePair<string, string> floor,bool isLast=false)
|
{
|
var frow = new Device.CommonForm.LeftIconButtonRow(449, 150);
|
frow.Width = this.GetPictrueRealSize(449);
|
frow.Height = this.GetPictrueRealSize(150);
|
frow.Tag = floor.Key;
|
frow.Init("Floor/Floor.png", "Floor/FloorSelected.png", floor.Value);
|
verticalScrolView.AddChidren(frow);
|
|
if (string.IsNullOrEmpty(CurFloorId))
|
{
|
if (Config.Instance.Home.CurrentFloorId == floor.Key)
|
{
|
frow.IsSelected = true;
|
}
|
}
|
else
|
{
|
if (CurFloorId == floor.Key)
|
{
|
frow.IsSelected = true;
|
}
|
}
|
|
frow.ButtonClickEvent += SelectFloor_MouseUpEvent;
|
}
|
|
/// <summary>
|
/// SelectFloor_MouseUpEvent
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="mouseEventArgs"></param>
|
private void SelectFloor_MouseUpEvent(object sender, MouseEventArgs mouseEventArgs)
|
{
|
(sender as Device.CommonForm.LeftIconButtonRow).IsSelected = true;
|
if (changeFloor)
|
{
|
Config.Instance.Home.CurrentFloorId = (sender as Device.CommonForm.LeftIconButtonRow).Tag.ToString();
|
Config.Instance.Home.Save(false);
|
UserCenter.HdlRoomLogic.Current.RefreshRoomListView();
|
}
|
RemoveView();
|
FloorAction?.Invoke((sender as Device.CommonForm.LeftIconButtonRow).Tag.ToString());
|
|
}
|
|
/// <summary>
|
/// RemoveView
|
/// </summary>
|
private void RemoveView()
|
{
|
dialogBackground.Close();
|
RemoveFromParent();
|
}
|
}
|
|
}
|