using System;
|
using Shared;
|
using Shared.Common;
|
using Shared.R;
|
|
namespace Shared.Phone.Device.Logic.DoorLockLogic
|
{
|
public class LockLogicList : FrameLayout
|
{
|
|
public LockLogicList()
|
{
|
Tag = "LockListView";
|
}
|
VerticalRefreshLayout middle;
|
public void Show()
|
{
|
|
#region 上面的布局代码
|
TopView view = new TopView();
|
this.AddChidren(view.TopRowView());
|
view.toptitleNameBtn.TextID = MyInternationalizationString.linkageevent;
|
view.clickBtn.MouseDownEventHandler += (sender, e) => { RemoveFromParent(); };
|
//加大点击热键
|
var addiocnclick = new Button
|
{
|
Width = Application.GetRealWidth(108+58),
|
Height = Application.GetRealHeight(72+20),
|
X = Application.GetRealWidth(1080 - 108 - 58),
|
Y = Application.GetRealHeight(184 - 72),
|
};
|
view.topRowLayout.AddChidren(addiocnclick);
|
|
var addiocn = new Button
|
{
|
Width = Application.GetMinRealAverage(72),
|
Height = Application.GetMinRealAverage(72),
|
X = Application.GetRealWidth(1080 - 108 - 58),
|
UnSelectedImagePath = "ZigeeLogic/lockadd.png",
|
Y = Application.GetRealHeight(184 - 72 - 20),
|
};
|
view.topRowLayout.AddChidren(addiocn);
|
|
EventHandler<MouseEventArgs> addclick = (sender, e) =>
|
{
|
//new一个新逻辑对象;
|
Common.Logic.CurrentLogic = new Common.Logic();
|
Common.Logic.CurrentLogic.IsEnable = 1;//默认为开
|
Common.Logic.CurrentLogic.LogicType = 1;//标记自动化类型
|
Common.Logic.CurrentLogic.Relationship = 1;
|
Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.linkageevent);
|
var lockLogicCommunalPage = new LockLogicCommunalPage();
|
UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
lockLogicCommunalPage.Show(() => { });
|
};
|
|
addiocnclick.MouseUpEventHandler += addclick;
|
addiocn.MouseUpEventHandler += addclick;
|
|
#endregion
|
middle = new VerticalRefreshLayout
|
{
|
Y = view.topRowLayout.Bottom,
|
Height = Application.GetRealHeight(Method.H - 184),
|
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
this.AddChidren(middle);
|
middle.BeginHeaderRefreshingAction += () =>
|
{
|
//重新刷新logic列表
|
Common.Logic.LockLogicList.Clear();
|
Read();
|
//关闭刷新View;
|
middle.EndHeaderRefreshing();
|
};
|
Read();
|
}
|
|
/// <summary>
|
/// 读取自动化数据
|
/// </summary>
|
public async void Read()
|
{
|
|
CommonPage.Loading.Start();
|
if (!BoolExist())
|
{
|
var Idlist = await Send.GetLogicId(1);
|
if (Idlist.Count != 0)
|
{
|
var listlogic = await Send.ReadList(Idlist.Count, 1);
|
//foreach可能集合已被修改,枚举操作可能不会执行,可能出现崩溃(建议for)。
|
for (int j = 0; j < listlogic.Count; j++)
|
{
|
var logic = listlogic[j];
|
if (logic.LogicType != 1)
|
{
|
continue;
|
}
|
Common.Logic.LockLogicList.Add(logic);
|
|
}
|
}
|
}
|
Automationview();
|
CommonPage.Loading.Hide();
|
}
|
/// <summary>
|
/// 加载自动化列表的界面
|
/// </summary>
|
public void Automationview()
|
{
|
middle.RemoveAll();
|
|
//if (Common.Logic.LockLogicList.Count == 0)
|
if (!BoolExist())
|
{
|
//就是为了显示引导添加图标;
|
var noFrameLayout = new FrameLayout
|
{
|
Height = Application.GetRealHeight(434 + 200 + 32 + 320),
|
//BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
};
|
middle.AddChidren(noFrameLayout);
|
|
|
var noIconBtn = new Button
|
{
|
Y = Application.GetRealHeight(320),
|
Width = Application.GetMinRealAverage(756),
|
Height = Application.GetMinRealAverage(434),
|
UnSelectedImagePath = "Item/NoFunction.png",
|
X = Application.GetRealWidth(162),
|
};
|
noFrameLayout.AddChidren(noIconBtn);
|
|
var noTextBtn = new Button()
|
{
|
Y = noIconBtn.Bottom,
|
Height = Application.GetRealHeight(200) + Application.GetRealHeight(32),
|
Width = Application.GetRealWidth(700),
|
//Gravity = Gravity.CenterHorizontal,
|
Text = Language.StringByID(MyInternationalizationString.tiplocktextnull).Replace("{\\r\\n}", "\r\n"),
|
TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
|
TextAlignment = TextAlignment.Center,
|
IsMoreLines = true,
|
X = Application.GetRealWidth(190),
|
};
|
noFrameLayout.AddChidren(noTextBtn);
|
|
}
|
for (int i = 0; i < Common.Logic.LockLogicList.Count; i++)
|
{
|
var logic = Common.Logic.LockLogicList[i];
|
if (!Exist(logic))
|
{
|
continue;
|
}
|
|
var logicRowlayout = new RowLayout
|
{
|
Width = Application.GetRealWidth(1080),
|
Height = Application.GetRealHeight(190),
|
LineColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
|
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
|
SubViewWidth = Application.GetRealWidth(184),//改变编辑控件宽度多少;
|
|
};
|
middle.AddChidren(logicRowlayout);
|
|
var logicnameBtn = new Button
|
{
|
Height = Application.GetRealHeight(190),
|
Width = Application.GetRealWidth(600),
|
Text = logic.LogicName,
|
X = Application.GetRealWidth(58),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
|
Gravity = Gravity.CenterVertical,
|
TextSize = 15,
|
};
|
logicRowlayout.AddChidren(logicnameBtn);
|
|
|
var logicswitchBtn = new Button
|
{
|
Width = Application.GetRealWidth(104),
|
Height = Application.GetRealHeight(63),
|
UnSelectedImagePath = "ZigeeLogic/logicclose.png",
|
SelectedImagePath = "ZigeeLogic/logicopen.png",
|
X = logicRowlayout.Width - Application.GetRealWidth(104 + 58),
|
Gravity = Gravity.CenterVertical,
|
};
|
logicRowlayout.AddChidren(logicswitchBtn);
|
|
logicswitchBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
logicswitchBtn.IsSelected = !logicswitchBtn.IsSelected;
|
if (logicswitchBtn.IsSelected)
|
{
|
//逻辑开
|
logic.IsEnable = 1;
|
}
|
else
|
{
|
//逻辑关
|
logic.IsEnable = 0;
|
}
|
Send.LogicControlSwitch(logic);
|
|
};
|
if (logic.IsEnable == 1)
|
{
|
logicswitchBtn.IsSelected = true;
|
}
|
else if (logic.IsEnable == 0)
|
{
|
logicswitchBtn.IsSelected = false;
|
}
|
///编辑
|
var edit = new Button
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
|
Text = Language.StringByID(MyInternationalizationString.edit),
|
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
|
};
|
logicRowlayout.AddRightView(edit);
|
edit.MouseUpEventHandler += (sender, e) =>
|
{
|
Common.Logic.CurrentLogic = logic;
|
var lockLogicCommunalPage = new LockLogicCommunalPage();
|
UserView.HomePage.Instance.AddChidren(lockLogicCommunalPage);
|
UserView.HomePage.Instance.PageIndex += 1;
|
lockLogicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(); });
|
|
};
|
|
///删除
|
var del = new Button
|
{
|
BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
|
Text = Language.StringByID(MyInternationalizationString.del),
|
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
|
};
|
logicRowlayout.AddRightView(del);
|
del.MouseUpEventHandler += (sender, e) =>
|
{
|
var alert = new ShowMsgControl(ShowMsgType.Confirm,
|
Language.StringByID(MyInternationalizationString.doyouwanttodelete),
|
Language.StringByID(MyInternationalizationString.confrim));
|
alert.Show();
|
alert.ConfirmClickEvent += () =>
|
{
|
Common.Logic.LockLogicList.Remove(logic);
|
Automationview();
|
Send.DelLogic(logic.LogicId);
|
};
|
|
};
|
}
|
|
}
|
|
|
/// <summary>
|
/// 查找该门锁是否存在自动化
|
/// </summary>
|
/// <returns></returns>
|
private bool BoolExist()
|
{
|
bool yes = false;
|
for (int i = 0; i < Common.Logic.LockLogicList.Count; i++)
|
{
|
var logic = Common.Logic.LockLogicList[i];
|
if (logic.LogicType != 1)
|
{
|
continue;
|
}
|
|
if (Exist(logic))
|
{
|
yes = true;
|
//存在就退出
|
break;
|
}
|
}
|
return yes;
|
}
|
|
/// <summary>
|
/// 查找这一条自动化是否属于该门锁
|
/// </summary>
|
/// <returns></returns>
|
private bool Exist(Common.Logic logic)
|
{
|
for (int j = 0; j < logic.Accounts.Count; j++)
|
{
|
//Option4是设备mac;Option2是设备端口;
|
if (logic.Accounts[j]["Option4"].ToString() == Send.CurrentDoorLock.DeviceAddr)
|
{
|
//查找是否是那个门锁;
|
//如果不是该门锁联动事件不显示出来;
|
return true;
|
}
|
}
|
return false;
|
}
|
}
|
}
|