using System;
using System.Collections.Generic;
using Shared.Common;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.DeviceBind
{
public class BindCommonLayout : FrameLayout
{
public BindCommonLayout()
{
}
#region ◆ 变量申明__________________________
///
/// 楼层回调
///
public Action FloorAction = null;
///
/// 选中的楼层回调[
///
public Action ChooseFloorAction = null;
public FrameLayout topFrameLayout = new FrameLayout { Height = Application.GetRealHeight(184), BackgroundColor = ZigbeeColor.Current.XMTopFrameLayout };
public FrameLayout midFrameLayout = new FrameLayout { Height = Application.GetRealHeight(1925 - 184), BackgroundColor = ZigbeeColor.Current.XMMidFrameLayout };
public FrameLayout bottomRadiusFrameLayout = new FrameLayout()
{
Height = Application.GetRealHeight(100),
Y = Application.GetRealHeight(930),
Radius = 17,
BackgroundColor = ZigbeeColor.Current.XMWhite,
};
public FrameLayout titleFrameLayout = new FrameLayout
{
Y = Application.GetRealHeight(92),
X = Application.GetRealWidth(161),
Width = Application.GetRealWidth(1080 - 161),//919
Height = Application.GetRealHeight(69),
};
public Button btnTitle = new Button
{
TextAlignment = TextAlignment.CenterLeft,
TextColor = Shared.Common.ZigbeeColor.Current.XMTopTitleText,
Width = Application.GetRealWidth(1080 - 161),//919
Height = Application.GetRealWidth(69),
TextSize = 17,
IsBold = true,
//X = Application.GetRealWidth(161 - 116),
};
///
/// 标题返回布局
///
public FrameLayout btnBackFrameLayout = new FrameLayout
{
Width = Application.GetRealWidth(58 * 2),//116
};
///
/// 标题返回按键
///
public Button btnBack = new Button
{
Height = Application.GetRealHeight(51),
Width = Application.GetRealWidth(30),
X = Application.GetRealWidth(58),
Y = Application.GetRealHeight(98),
UnSelectedImagePath = "DoorLock/Left.png",
};
///
/// 标题下线
///
public Button btnTitleLine = new Button
{
Y = Application.GetRealHeight(181),
Height = 1,
BackgroundColor = Shared.Common.ZigbeeColor.Current.XMTitleLine,
};
#endregion
///
/// 顶部布局
///
///
public void TopFrameLayout(FrameLayout frameLayout, string titleText)
{
this.AddChidren(topFrameLayout);
topFrameLayout.AddChidren(btnBackFrameLayout);
topFrameLayout.AddChidren(titleFrameLayout);
topFrameLayout.AddChidren(btnTitleLine);
btnBackFrameLayout.AddChidren(btnBack);
titleFrameLayout.AddChidren(btnTitle);
btnTitle.Text = titleText;
}
///
/// 门锁中部布局
///
///
public void MidFrameLayout(FrameLayout frameLayout)
{
//midFrameLayout.BackgroundColor = Shared.Common.ZigbeeColor.Current.GXCBackgroundColor;
midFrameLayout.Y = topFrameLayout.Bottom;
this.AddChidren(midFrameLayout);
}
///
/// 门锁底部布局
///
///
public void BottomFrameLayout(FrameLayout frameLayout)
{
var bottomFrameLayout1 = new FrameLayout()
{
Height = Application.GetRealHeight(806 - 50),
Y = Application.GetRealHeight(930 + 48),
BackgroundColor = ZigbeeColor.Current.XMWhite,
};
this.midFrameLayout.AddChidren(bottomFrameLayout1);
}
///
/// 添加楼层UI
///
public void BindDownFrameLayout(FrameLayout frameLayout, Panel curControlDev, Dictionary dicFloorList, ref Button btnFloorText)
{
var btnAddFrameLayout = new FrameLayout
{
X = Application.GetRealWidth(619),
};
this.titleFrameLayout.AddChidren(btnAddFrameLayout);
btnFloorText = new Button
{
Width = Application.GetRealWidth(300 - 69 - 58),
Text = Language.StringByID(R.MyInternationalizationString.FirstFloor),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextSize = 14,
IsBold = true,
TextAlignment = TextAlignment.CenterRight,
};
btnAddFrameLayout.AddChidren(btnFloorText);
var btnBindDownFrameLayout = new FrameLayout
{
Width = Application.GetMinReal(69 + 58),
X = Application.GetRealWidth(300 - 69 - 58),
};
btnAddFrameLayout.AddChidren(btnBindDownFrameLayout);
var btnBindDown = new Button
{
Height = Application.GetMinReal(69),
Width = Application.GetMinReal(69),
UnSelectedImagePath = "BindPic/BindDown.png",
Gravity = Gravity.CenterVertical,
};
btnBindDownFrameLayout.AddChidren(btnBindDown);
EventHandler eHandlerBindDown = (sender, e) =>
{
if (dicFloorList == null)
{
dicFloorList = new Dictionary();
}
SideslipFramelayout(curControlDev, dicFloorList);
};
btnBindDown.MouseDownEventHandler += eHandlerBindDown;
btnBindDownFrameLayout.MouseDownEventHandler += eHandlerBindDown;
if (Common.Config.Instance.Home.FloorDics.Count == 0)
{
btnAddFrameLayout.Width = 0;
}
else
{
btnAddFrameLayout.Width = Application.GetRealWidth(300);
}
}
///
/// 楼层选择的侧边栏
///
void SideslipFramelayout(Panel curControlDev, Dictionary dicFloorList)
{
var dialog = new Dialog
{
};
dialog.Show();
var flMain = new FrameLayout { BackgroundColor = 0x00000000 };
dialog.AddChidren(flMain);
flMain.MouseUpEventHandler += (sender11, e11) =>
{
dialog.Close();
};
var sidelipFrameLayout = new FrameLayout()
{
Width = Application.GetMinReal(449),
Y = Application.GetRealHeight(161),
X = Application.GetRealWidth(596),
BackgroundImagePath = "DoorLock/SideslipPic.png",
};
flMain.AddChidren(sidelipFrameLayout);
var btnSelectFloor = new Button()
{
Width = Application.GetRealWidth(200),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(81),
Y = Application.GetRealHeight(81),
TextColor = Shared.Common.ZigbeeColor.Current.XMBlack,
TextSize = 14,
IsBold = true,
TextAlignment = TextAlignment.CenterLeft,
TextID = R.MyInternationalizationString.SelectFloor,
};
sidelipFrameLayout.AddChidren(btnSelectFloor);
var sidelipVerticalScrolViewLayout = new VerticalScrolViewLayout()
{
Y = btnSelectFloor.Bottom + Application.GetRealHeight(45),
Height = Application.GetRealHeight(600),
};
sidelipFrameLayout.AddChidren(sidelipVerticalScrolViewLayout);
Button oldbutton = null;
Button oldbuttonText = null;
int count = 0;
foreach (var floorId in dicFloorList.Keys)
{
var rowFrameLayout = new RowLayout()
{
Height = Application.GetRealHeight(152),
LineColor = Shared.Common.ZigbeeColor.Current.XMRowLine,
X = Application.GetRealWidth(81),
};
sidelipVerticalScrolViewLayout.AddChidren(rowFrameLayout);
var btnAllMethod = new Button()
{
Width = Application.GetMinReal(81),
Height = Application.GetMinReal(81),
UnSelectedImagePath = "Floor/Floor.png",
SelectedImagePath = "Floor/FloorSelected.png",
Gravity = Gravity.CenterVertical,
};
rowFrameLayout.AddChidren(btnAllMethod);
var btnMethodText = new Button()
{
Width = Application.GetRealWidth(311),
Height = Application.GetRealHeight(58),
X = Application.GetRealWidth(92),
Gravity = Gravity.CenterVertical,
TextColor = Shared.Common.ZigbeeColor.Current.XMGray3,
TextSize = 14,
TextAlignment = TextAlignment.CenterLeft,
Text = dicFloorList[floorId],
};
rowFrameLayout.AddChidren(btnMethodText);
if (curControlDev.currentSelectFloorId == floorId)
{
btnAllMethod.IsSelected = true;
btnAllMethod.IsBold = true;
btnMethodText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
}
EventHandler hander = (sender, e) =>
{
if (curControlDev.currentSelectFloorId == floorId)
{
return;
}
curControlDev.currentSelectFloorId = floorId;
if (!btnMethodText.IsSelected)
{
if (oldbutton != null)
{
oldbutton.IsSelected = false;
}
if (oldbuttonText != null)
{
oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMGray3;
}
oldbutton = btnMethodText;
oldbuttonText = btnMethodText;
btnMethodText.IsSelected = true;
oldbuttonText.TextColor = Shared.Common.ZigbeeColor.Current.XMBlack;
oldbuttonText.IsBold = true;
}
int index = 0;
dialog.Close();
ChooseFloorAction?.Invoke(floorId, btnMethodText);
};
btnAllMethod.MouseUpEventHandler += hander;
rowFrameLayout.MouseUpEventHandler += hander;
btnMethodText.MouseUpEventHandler += hander;
count++;
}
if (count == 0)
{
sidelipFrameLayout.Height = 0;
}
else if (count <= 4 && count > 0)
{
sidelipFrameLayout.Height = Application.GetRealHeight(180) + count * Application.GetRealHeight(150);
}
else
{
sidelipFrameLayout.Height = Application.GetMinReal(780);
}
}
}
}