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.DoorLockLogic
|
{
|
public class LockAddScene:FrameLayout
|
{
|
public LockAddScene()
|
{
|
Tag = "LockLogic";
|
}
|
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<string, object> actionsInfo = new Dictionary<string, object>();
|
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 lockLogicCommunalPage = new LockLogicCommunalPage();
|
UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
lockLogicCommunalPage.Show(() => { });
|
|
};
|
|
///楼层点击事件
|
EventHandler<MouseEventArgs> 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<MouseEventArgs> 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<Common.Room>();
|
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);
|
|
}
|
/// <summary>
|
/// 显示所有房间的方法
|
/// </summary>
|
/// <param name="RoomList"></param>
|
void AllRoomView(List<Common.Room> 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<MouseEventArgs> roomclick = (sender, e) =>
|
{
|
|
clickTag = "no";
|
tempScene = null;
|
clickbutton = null;
|
clickbutton = new Button();
|
|
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;
|
|
}
|
}
|
/// <summary>
|
/// 显示所有的场景的方法
|
/// </summary>
|
/// <param name="scenelist"></param>
|
void SceneView(List<SceneUI> scenelist)
|
{
|
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<MouseEventArgs> 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;
|
|
}
|
|
}
|
|
|
|
}
|
}
|