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
{
public class TemplatePage : FrameLayout
{
public TemplatePage()
{
UserView.HomePage.Instance.RemoveViewByTag("Logic");
Tag = "Logic";
}
EditText logicTextBox;
///
/// 图标的索引
///
public static string s;
public void Show()
{
#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(176),
Width = Application.GetRealWidth(600),
Height = Application.GetRealHeight(69),
Y = Application.GetRealHeight(92),
TextID = MyInternationalizationString.selection,
};
topRowLayout.AddChidren(titleName);
if (Common.Logic.CurrentLogic.LogicId != 0)
{
titleName.Text = Language.StringByID(MyInternationalizationString.editautomation);
}
else
{
titleName.Text = Language.StringByID(MyInternationalizationString.newautomation);
}
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();
};
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();
};
#endregion
var middle = new VerticalScrolViewLayout
{
Y = topRowLayout.Bottom,
Height = Application.GetRealHeight(1920 - 184 - 180),
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
this.AddChidren(middle);
var logiciconfl = new FrameLayout
{
Height = Application.GetRealHeight(436 + 30),
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
};
middle.AddChidren(logiciconfl);
var iconBtn = new Button
{
Width = Application.GetRealWidth(936),
Height = Application.GetRealHeight(436),
X = Application.GetRealWidth(72),
Y = Application.GetRealHeight(30),
UnSelectedImagePath = "ZigeeLogic/logicbj" + s + ".png",
};
logiciconfl.AddChidren(iconBtn);
#region -----自动化名称 设置名称-----
var logicnamefl = new FrameLayout
{
Height = Application.GetRealHeight(130),
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
};
middle.AddChidren(logicnamefl);
var text = new Button
{
Width = Application.GetRealWidth(300),
Height = Application.GetRealHeight(60),
X = Application.GetRealWidth(58),
TextAlignment = TextAlignment.CenterLeft,
//Text = "自动化名称",
TextID = MyInternationalizationString.automationname,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
Y = Application.GetRealHeight(35),
};
logicnamefl.AddChidren(text);
logicTextBox = new EditText
{
Y = Application.GetRealHeight(35),
Width = Application.GetRealWidth(900),
Height = Application.GetRealHeight(60),
X = text.Right,
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
TextSize = 13,
Text = Common.Logic.CurrentLogic.LogicName,
//TextID=MyInternationalizationString.automation1,
};
logicnamefl.AddChidren(logicTextBox);
var fraline = new FrameLayout
{
Height = Application.GetRealHeight(30),
};
middle.AddChidren(fraline);
#endregion
#region -----显示逻辑条件-----
var conditionFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(conditionFrameLayout);
var conditionRowLayout = new RowLayout
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(965),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(58),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
conditionFrameLayout.AddChidren(conditionRowLayout);
conditionRowLayout.AddChidren(new Button
{
Text = Language.StringByID(MyInternationalizationString.ifcondition),
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
Width = Application.GetRealWidth(300),
Height = Application.GetRealHeight(60),
TextSize = 16,
Gravity = Gravity.CenterVertical,
});
var conditionadd1 = new Button
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(57),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(965 + 58),
};
conditionFrameLayout.AddChidren(conditionadd1);
var conditionadd = new Button
{
Width = Application.GetRealWidth(58),
Height = Application.GetRealHeight(58),
UnSelectedImagePath = "ZigeeLogic/add.png",
X = Application.GetRealWidth(965 - 58),
Gravity = Gravity.CenterVertical,
};
conditionRowLayout.AddChidren(conditionadd);
///添加条件的点击事件
EventHandler conditionaddclick = (sender, e) =>
{
if (Common.Logic.CurrentLogic.Conditions.Count == 1)
{
ConditionView(false);
}
else
{
Common.Logic.LogicDviceList.Clear();
if (Common.Logic.LogicDviceList.Count == 0)
{
Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
}
var templateDeviceCondition = new TemplateDeviceCondition();
UserView.HomePage.Instance.AddChidren(templateDeviceCondition);
UserView.HomePage.Instance.PageIndex += 1;
templateDeviceCondition.Show();
}
};
conditionadd.MouseUpEventHandler += conditionaddclick;
conditionadd1.MouseUpEventHandler += conditionaddclick;
List> ListConditions = new List>();
ListConditions.Clear();
ListConditions.AddRange(Common.Logic.CurrentLogic.Conditions);
ListConditions.Add(new Dictionary());
if (Common.Logic.CurrentLogic.Conditions.Count > 1)
{
var row = new FrameLayout
{
Height = Application.GetRealHeight(60),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(row);
var relationship = new Button
{
Width = Application.GetRealWidth(600),
Height = Application.GetRealHeight(60),
TextAlignment = TextAlignment.CenterLeft,
X = Application.GetRealWidth(58),
TextColor = ZigbeeColor.Current.LogicBtnCompleteColor,
};
row.AddChidren(relationship);
if (Common.Logic.CurrentLogic.Relationship == 0)
{
relationship.Text = Language.StringByID(MyInternationalizationString.followingconditions) + Language.StringByID(MyInternationalizationString.Allconditions);
}
else
{
relationship.Text = Language.StringByID(MyInternationalizationString.followingconditions) + Language.StringByID(MyInternationalizationString.anycondition);
}
EventHandler editclick = (sender, e) =>
{
ConditionView(true);
};
row.MouseUpEventHandler += editclick;
relationship.MouseUpEventHandler += editclick;
}
for (int i = 0; i < ListConditions.Count; i++)
{
if (i == (ListConditions.Count - 1))
{
var addfl = new FrameLayout
{
Height = Application.GetRealHeight(160 + 30 + 50),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(addfl);
var addbtn = new Button
{
Height = Application.GetRealHeight(130 + 50),
Width = Application.GetRealWidth(908),
Y = Application.GetRealHeight(30),
X = Application.GetRealWidth(86),
UnSelectedImagePath = "ZigeeLogic/logicaddcolor.png",
};
addfl.AddChidren(addbtn);
var addtextbtn = new Button
{
Height = Application.GetRealHeight(58),
Width = Application.GetRealWidth(300),
Y = Application.GetRealHeight(45 + 30),
TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
TextID = MyInternationalizationString.addconditions,
X = Application.GetRealWidth(390),
};
addfl.AddChidren(addtextbtn);
EventHandler addconditionsclick = (sender, e) =>
{
if (Common.Logic.CurrentLogic.Conditions.Count == 1)
{
ConditionView(false);
}
else
{
var templateDeviceCondition = new TemplateDeviceCondition();
UserView.HomePage.Instance.AddChidren(templateDeviceCondition);
UserView.HomePage.Instance.PageIndex += 1;
templateDeviceCondition.Show();
}
};
addbtn.MouseUpEventHandler += addconditionsclick;
addtextbtn.MouseUpEventHandler += addconditionsclick;
}
else
{
var devicesFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(130),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(devicesFrameLayout);
///显示图标
var conditionIcon = new Button
{
Width = Application.GetRealWidth(81),
Height = Application.GetRealHeight(81),
X = Application.GetRealWidth(104),
Y = Application.GetRealHeight(25),
UnSelectedImagePath = "ZigeeLogic/sensor13.png",
};
devicesFrameLayout.AddChidren(conditionIcon);
var conditionsRowLayout = new RowLayout
{
Width = Application.GetRealWidth(800),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(222),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
devicesFrameLayout.AddChidren(conditionsRowLayout);
var Type = int.Parse(ListConditions[i]["Type"]);
var conditions = ListConditions[i];
switch (Type)
{
/// (0:时间点条件;1:设备状态变化条件;2:其他逻辑条件;3:计数器条件;4:倒计时;5:时间段条件;6:安防条件;7:地理位置)
case 1:
{
var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return obj.DeviceAddr == conditions["MacAddr"] && obj.DeviceEpoint.ToString() == conditions["Epoint"]; });
if (deviceinof == null)
{
continue;
}
///显示设备名称
var btndevice = new Button
{
Y = Application.GetRealHeight(20),
Height = Application.GetRealHeight(50),
Width = Application.GetRealWidth(400),
TextAlignment = TextAlignment.CenterLeft,
Text = deviceinof.DeviceEpointName,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
};
conditionsRowLayout.AddChidren(btndevice);
///区域(房间)名称Button
var btnregionname = new Button
{
Y = btndevice.Bottom + Application.GetRealHeight(10),
Width = Application.GetRealWidth(400),
TextAlignment = TextAlignment.CenterLeft,
Height = Application.GetRealHeight(50),
Text = "",//Language.StringByID(MyInternationalizationString.customroom),
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
};
conditionsRowLayout.AddChidren(btnregionname);
///通过设备找到区域(房间)名称
Send.RoomNmae(btnregionname, deviceinof);
var deviceedit = new Button
{
BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
Text = Language.StringByID(MyInternationalizationString.edit),
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
};
conditionsRowLayout.AddRightView(deviceedit);
deviceedit.MouseUpEventHandler += (sender, e) =>
{
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
this.AddChidren(flMain);
TemplateDeviceCondition.CurrentDeviceView(flMain, deviceinof, true);
};
///显示设备条件状态控件
var devicestatus = new Button
{
Width = Application.GetRealWidth(400),
Height = Application.GetRealHeight(130),
Gravity = Gravity.CenterVertical,
TextAlignment = TextAlignment.CenterRight,
X = Application.GetRealWidth(400),
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
};
conditionsRowLayout.AddChidren(devicestatus);
switch (deviceinof.Type)
{
case DeviceType.IASZone:
{
var iASZonedevice = deviceinof as IASZone;
var intvalue = conditions["AttriButeData1"];
switch (iASZonedevice.IasDeviceType)
{
case 13:
{
if (intvalue == "1")
{
devicestatus.TextID = MyInternationalizationString.someone;
}
else
{
int minute = int.Parse(conditions["IgnoreTime"]) / 60;
int second = int.Parse(conditions["IgnoreTime"]) % 60;
if (second != 0)
{
devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.minute) + second.ToString() + Language.StringByID(MyInternationalizationString.second) + Language.StringByID(MyInternationalizationString.unattendedtime1);
}
else
{
devicestatus.Text = minute.ToString() + Language.StringByID(MyInternationalizationString.Minute) + Language.StringByID(MyInternationalizationString.unattendedtime1);
}
}
}
break;
default:
{
conditionIcon.UnSelectedImagePath = "ZigeeLogic/infraredsensor.png";
if (intvalue == "1")
{
devicestatus.TextID = MyInternationalizationString.callthepolice;
}
}
break;
}
}
break;
}
}
break;
}
///删除控件
var del = new Button
{
BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
Text = Language.StringByID(MyInternationalizationString.del),
};
conditionsRowLayout.AddRightView(del);
del.MouseUpEventHandler += (sender, e) =>
{
var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
alert.ResultEventHandler += (sender1, e1) =>
{
if (e1)
{
Common.Logic.CurrentLogic.Conditions.Remove(conditions);
var templatePage = new TemplatePage();
UserView.HomePage.Instance.AddChidren(templatePage);
UserView.HomePage.Instance.PageIndex += 1;
templatePage.Show();
}
};
alert.Show();
};
}
}
#endregion
#region ----显示执行目标----
var targetFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(targetFrameLayout);
var targetRowLayout = new RowLayout
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(965),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(58),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
targetFrameLayout.AddChidren(targetRowLayout);
var btntargettitle = new Button
{
Text = Language.StringByID(MyInternationalizationString.execute),
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
Width = Application.GetRealWidth(300),
Height = Application.GetRealHeight(60),
TextSize = 16,
Gravity = Gravity.CenterVertical,
};
targetRowLayout.AddChidren(btntargettitle);
var btntargetadd1 = new Button
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(57),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(965 + 58),
};
targetFrameLayout.AddChidren(btntargetadd1);
var btntargetadd = new Button
{
Width = Application.GetRealWidth(58),
Height = Application.GetRealHeight(58),
UnSelectedImagePath = "ZigeeLogic/add.png",
X = Application.GetRealWidth(965 - 58),
Gravity = Gravity.CenterVertical,
};
targetRowLayout.AddChidren(btntargetadd);
EventHandler btntargetaddclick = (sender, e) =>
{
Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
var templateDeviceAction = new TemplateDeviceAction();
UserView.HomePage.Instance.AddChidren(templateDeviceAction);
UserView.HomePage.Instance.PageIndex += 1;
templateDeviceAction.Show();
};
btntargetadd1.MouseUpEventHandler += btntargetaddclick;
btntargetadd.MouseUpEventHandler += btntargetaddclick;
List> ListActions = new List>();
ListActions.Clear();
ListActions.AddRange(Common.Logic.CurrentLogic.Actions);
ListActions.Add(new Dictionary());
for (int i = 0; i < ListActions.Count; i++)
{
if (i == (ListActions.Count - 1))
{
var addfl = new FrameLayout
{
Height = Application.GetRealHeight(160 + 30 + 50),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(addfl);
var addbtn = new Button
{
Height = Application.GetRealHeight(130 + 50),
Width = Application.GetRealWidth(908),
Y = Application.GetRealHeight(30),
X = Application.GetRealWidth(86),
UnSelectedImagePath = "ZigeeLogic/logicaddcolor.png",
};
addfl.AddChidren(addbtn);
var addtextbtn = new Button
{
Height = Application.GetRealHeight(58),
Width = Application.GetRealWidth(300),
Y = Application.GetRealHeight(45 + 30),
TextColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
TextID = MyInternationalizationString.addfunction,
X = Application.GetRealWidth(390),
};
addfl.AddChidren(addtextbtn);
EventHandler addfunctionclick = (sender, e) =>
{
Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
var templateDeviceAction = new TemplateDeviceAction();
UserView.HomePage.Instance.AddChidren(templateDeviceAction);
UserView.HomePage.Instance.PageIndex += 1;
templateDeviceAction.Show();
};
addbtn.MouseUpEventHandler += addfunctionclick;
addtextbtn.MouseUpEventHandler += addfunctionclick;
}
else
{
var devicesFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(130),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(devicesFrameLayout);
///显示图标
var actionsIcon = new Button
{
Width = Application.GetRealWidth(81),
Height = Application.GetRealHeight(81),
X = Application.GetRealWidth(104),
Y = Application.GetRealHeight(25),
// UnSelectedImagePath = "ZigeeLogic/time.png",
};
devicesFrameLayout.AddChidren(actionsIcon);
var actionsrowLayout = new RowLayout
{
Width = Application.GetRealWidth(800),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(222),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
devicesFrameLayout.AddChidren(actionsrowLayout);
var linkType = int.Parse(ListActions[i]["LinkType"].ToString());
var actions = ListActions[i];
switch (linkType)
{
case 0:
{
var obj1 = actions["DeviceAddr"].ToString();
var obj2 = actions["Epoint"].ToString();
var deviceinof = Common.Logic.LogicDviceList.Find((obj) => { return ((obj.DeviceAddr == obj1) && (obj.DeviceEpoint.ToString() == obj2)); });
if (deviceinof == null)
{
continue;
}
///设备名称Button
var btndevicename = new Button
{
Y = Application.GetRealHeight(20),
Height = Application.GetRealHeight(50),
Width = Application.GetRealWidth(450),
TextAlignment = TextAlignment.CenterLeft,
Text = deviceinof.DeviceEpointName,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
};
actionsrowLayout.AddChidren(btndevicename);
///区域(房间)名称Button
var btnregionname = new Button
{
Y = btndevicename.Bottom + Application.GetRealHeight(10),
Width = Application.GetRealWidth(450),
TextAlignment = TextAlignment.CenterLeft,
Height = Application.GetRealHeight(50),
Text = "",//Language.StringByID(MyInternationalizationString.customroom),
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
};
actionsrowLayout.AddChidren(btnregionname);
///通过设备找到区域(房间)名称
Send.RoomNmae(btnregionname, deviceinof);
///显示设备条件状态控件
var devicestatus = new Button
{
Width = Application.GetRealWidth(350),
Height = Application.GetRealHeight(130),
Gravity = Gravity.CenterVertical,
TextAlignment = TextAlignment.CenterRight,
X = Application.GetRealWidth(450),
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
};
actionsrowLayout.AddChidren(devicestatus);
///编辑设备状态Button
var deviceedit = new Button
{
BackgroundColor = ZigbeeColor.Current.LogicEditBlackColor1,
Text = Language.StringByID(MyInternationalizationString.edit),
TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
};
actionsrowLayout.AddRightView(deviceedit);
///编辑点击事件
deviceedit.MouseUpEventHandler += (sender, e) =>
{
var flMain = new FrameLayout { BackgroundColor = ZigbeeColor.Current.LogicViewBackgroundColor };
this.AddChidren(flMain);
TemplateDeviceAction.CurrentDeviceStateView(flMain, deviceinof, true);
};
switch (deviceinof.Type)
{
case DeviceType.OnOffOutput:
{
actionsIcon.UnSelectedImagePath = "ZigeeLogic/light.png";
var TaskList = actions["TaskList"] as List>;
if (TaskList == null)
{
continue;
}
foreach (var status in TaskList)
{
if (status["TaskType"].ToString() == "1")
{
if (status["Data1"].ToString() == "0")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
}
else if (status["Data1"].ToString() == "1")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
}
else if (status["Data1"].ToString() == "2")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
}
}
}
}
break;
case DeviceType.DimmableLight:
{
actionsIcon.UnSelectedImagePath = "ZigeeLogic/dimmableLight.png";
var TaskList = actions["TaskList"] as List>;
if (TaskList == null)
{
continue;
}
foreach (var status in TaskList)
{
if (status["TaskType"].ToString() == "3")
{
var intvalue = int.Parse(status["Data1"]);
var lightbrightnessvalue = (intvalue * 100) / 254;
devicestatus.Text = lightbrightnessvalue.ToString() + "%";
}
else if (status["TaskType"].ToString() == "1")
{
if (status["Data1"].ToString() == "0")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
}
else if (status["Data1"].ToString() == "2")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
}
}
}
}
break;
case DeviceType.WindowCoveringDevice:
{
actionsIcon.UnSelectedImagePath = "ZigeeLogic/curtain.png";
var TaskList = actions["TaskList"] as List>;
if (TaskList == null)
{
continue;
}
foreach (var status in TaskList)
{
if (status["TaskType"] == "6")
{
if (status["Data1"] == "0")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
}
else if (status["Data1"] == "1")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
}
else if (status["Data1"] == "5")
{
devicestatus.Text = status["Data2"] + "%";
}
}
}
}
break;
case DeviceType.AirSwitch:
{
actionsIcon.UnSelectedImagePath = "ZigeeLogic/airswitch.png";
var TaskList = actions["TaskList"] as List>;
if (TaskList == null)
{
continue;
}
foreach (var status in TaskList)
{
if (status["TaskType"].ToString() == "1")
{
if (status["Data1"].ToString() == "0")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
}
else if (status["Data1"].ToString() == "1")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
}
else if (status["Data1"].ToString() == "2")
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.onoff);
}
}
}
}
break;
case DeviceType.Thermostat:
{
actionsIcon.UnSelectedImagePath = "ZigeeLogic/ac.png";
var TaskList = actions["TaskList"] as List>;
if (TaskList == null)
{
continue;
}
string modetext = "", temperaturetext = "", speedtext = "";
bool ifclose = false;
foreach (var status in TaskList)
{
if (status["TaskType"].ToString() == "1")
{
if (status["Data1"].ToString() == "0")
{
// devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
ifclose = false;
}
else if (status["Data1"].ToString() == "1")
{
//devicestatus.Text = Language.StringByID(MyInternationalizationString.open);
ifclose = true;
}
}
else if (status["TaskType"].ToString() == "5")
{
if (status["Data1"] == "3")
{//3---设置工作模式(1:自动;3:制冷;4:制热;7:送风;8:除湿)
switch (status["Data2"])
{
case "3":
{
modetext = Language.StringByID(MyInternationalizationString.logiccool);
}
break;
case "4":
{
modetext = Language.StringByID(MyInternationalizationString.logicheat);
}
break;
case "1":
{
modetext = Language.StringByID(MyInternationalizationString.logicauto);
}
break;
case "8":
{
modetext = Language.StringByID(MyInternationalizationString.logicdry);
}
break;
case "7":
{
modetext = Language.StringByID(MyInternationalizationString.logicfanonly);
}
break;
}
}
else if (status["Data1"] == "6")
{//6---设置风扇模式(1:低风;2:中风;3:高风;)
switch (status["Data2"])
{
case "1":
{
speedtext = Language.StringByID(MyInternationalizationString.logiclow);
}
break;
case "2":
{
speedtext = Language.StringByID(MyInternationalizationString.logicmedium);
}
break;
case "3":
{
speedtext = Language.StringByID(MyInternationalizationString.logichigh);
}
break;
}
}
//4---设置加热度数;5---设置制冷、除湿度数;7---设置自动度数
else if (status["Data1"] == "4" || status["Data1"] == "5" || status["Data1"] == "7")
{
var s = int.Parse(status["Data2"]) / 100;
temperaturetext = s.ToString();
}
else if (status["Data1"] == "20")
{
temperaturetext = "无";
}
}
}
if (ifclose)
{
devicestatus.Text = modetext + ";" + temperaturetext + "℃;" + speedtext;
}
else
{
devicestatus.Text = Language.StringByID(MyInternationalizationString.close);
}
}
break;
}
}
break;
}
///删除控件
var del = new Button
{
BackgroundColor = ZigbeeColor.Current.LogicDelBlackColor1,
Text = Language.StringByID(MyInternationalizationString.del),
};
actionsrowLayout.AddRightView(del);
del.MouseUpEventHandler += (sender, e) =>
{
var alert = new Alert(Language.StringByID(MyInternationalizationString.tip), Language.StringByID(MyInternationalizationString.doyouwanttodelete),
Language.StringByID(MyInternationalizationString.cancel), Language.StringByID(MyInternationalizationString.confrim));
alert.ResultEventHandler += (sender1, e1) =>
{
if (e1)
{
Common.Logic.CurrentLogic.Actions.Remove(actions);
var templatePage = new TemplatePage();
UserView.HomePage.Instance.AddChidren(templatePage);
UserView.HomePage.Instance.PageIndex += 1;
templatePage.Show();
}
};
alert.Show();
};
}
}
#endregion
#region -----每天 设置周期-----
var fraline1 = new FrameLayout
{
Height = Application.GetRealHeight(30),
};
middle.AddChidren(fraline1);
var weekFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(weekFrameLayout);
var weekRowLayout = new RowLayout
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(965),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(58),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
weekFrameLayout.AddChidren(weekRowLayout);
var settxet = new Button
{
Text = Language.StringByID(MyInternationalizationString.setupcycle),
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
Width = Application.GetRealWidth(300),
Height = Application.GetRealHeight(60),
Gravity = Gravity.CenterVertical,
};
weekRowLayout.AddChidren(settxet);
var btnweektext = new Button
{
Width = Application.GetRealWidth(595),
Height = Application.GetRealHeight(60),
TextAlignment = TextAlignment.CenterRight,
//Text = "每天",
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
TextID = MyInternationalizationString.everyday,
Y = Application.GetRealHeight(35),
X = settxet.Right,
};
weekRowLayout.AddChidren(btnweektext);
var nextBtn = new Button
{
Width = Application.GetRealWidth(58),
Height = Application.GetRealHeight(58),
UnSelectedImagePath = "ZigeeLogic/next.png",
X = Application.GetRealWidth(965 - 58),
Gravity = Gravity.CenterVertical,
};
weekRowLayout.AddChidren(nextBtn);
UpdateWeek(btnweektext);
EventHandler cycleclick = (sender, e) =>
{
/*------保留每月,每年类型*/
var cycle = new Cycle(() => { UpdateWeek(btnweektext); });
UserView.HomePage.Instance.AddChidren(cycle);
UserView.HomePage.Instance.PageIndex += 1;
cycle.Show();
//var cyclicCycle = new CyclicCycle(() => { UpdateWeek(btnweektext); });
//UserView.HomePage.Instance.AddChidren(cyclicCycle);
//UserView.HomePage.Instance.PageIndex += 1;
//cyclicCycle.Show();
};
btnweektext.MouseUpEventHandler += cycleclick;
nextBtn.MouseUpEventHandler += cycleclick;
#endregion
#region ----推送设置----
var pushFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(pushFrameLayout);
var pushswitchRowlayout = new RowLayout
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(965),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(58),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
pushFrameLayout.AddChidren(pushswitchRowlayout);
var btnswitchtxet = new Button
{
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
Width = Application.GetRealWidth(300),
Height = Application.GetRealHeight(60),
Gravity = Gravity.CenterVertical,
TextID = MyInternationalizationString.pushswitch,
};
pushswitchRowlayout.AddChidren(btnswitchtxet);
var btnswitch = new Button
{
Width = Application.GetMinRealAverage(104),
Height = Application.GetMinRealAverage(63),
UnSelectedImagePath = "ZigeeLogic/logicclose.png",
SelectedImagePath = "ZigeeLogic/logicopen.png",
X = Application.GetRealWidth(965 - 104),
Gravity = Gravity.CenterVertical,
};
pushswitchRowlayout.AddChidren(btnswitch);
btnswitch.MouseUpEventHandler += (sender1, e1) =>
{
btnswitch.IsSelected = !btnswitch.IsSelected;
if (btnswitch.IsSelected)
{
}
else
{
}
};
var custompushFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
middle.AddChidren(custompushFrameLayout);
var custompushRowLayout = new RowLayout
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(965),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(58),
LineColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
};
custompushFrameLayout.AddChidren(custompushRowLayout);
var btncustompush = new Button
{
TextID = MyInternationalizationString.custompush,
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicTextBlackColor,
Width = Application.GetRealWidth(300),
Height = Application.GetRealHeight(60),
Gravity = Gravity.CenterVertical,
};
custompushRowLayout.AddChidren(btncustompush);
var custompushback = new Button
{
Width = Application.GetRealWidth(58),
Height = Application.GetRealHeight(58),
UnSelectedImagePath = "ZigeeLogic/next.png",
X = Application.GetRealWidth(965 - 58),
Gravity = Gravity.CenterVertical,
};
custompushRowLayout.AddChidren(custompushback);
EventHandler customclick = (sender, e) =>
{
var CustomText = new CustomText();
UserView.HomePage.Instance.AddChidren(CustomText);
UserView.HomePage.Instance.PageIndex += 1;
CustomText.Show();
};
btncustompush.MouseUpEventHandler += customclick;
custompushback.MouseUpEventHandler += customclick;
custompushRowLayout.MouseUpEventHandler += customclick;
#endregion
var saveFrameLayout = new FrameLayout
{
Y = middle.Bottom,
Height = Application.GetRealHeight(180),
BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
};
this.AddChidren(saveFrameLayout);
var btnsave = new Button
{
X = Application.GetRealWidth(85),
Height = Application.GetRealHeight(130),//194
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 += async (sender, e) =>
{
var name = logicTextBox.Text.Trim();
//if (Common.Logic.CurrentLogic.Conditions.Count != 0 && Common.Logic.CurrentLogic.Actions.Count != 0)
//{
// AddChidren(btnsave);
//}
if (string.IsNullOrEmpty(logicTextBox.Text.Trim()))
{
new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.PleaseEnterLogicName), Language.StringByID(MyInternationalizationString.Close)).Show();
return;
}
var logicname = Common.Logic.LogicList.Find((logic) => Common.Logic.CurrentLogic.LogicId != logic.LogicId && logic.LogicName == name);
if (logicname != null)
{
new Alert(Language.StringByID(MyInternationalizationString.Tip), Language.StringByID(MyInternationalizationString.Rename), Language.StringByID(MyInternationalizationString.Close)).Show();
return;
}
Common.Logic.CurrentLogic.LogicName = name;
//判断是新添加逻辑(默认0)还是修改逻辑
CommonPage.Loading.Start();
if (Common.Logic.CurrentLogic.LogicId == 0)
{
//发送添加逻辑命令
var logicifon = await Send.AddModifyLogic(Common.Logic.CurrentLogic);
if (logicifon != null && logicifon.LogicId != 0)
{
Common.Logic.CurrentLogic.LogicId = logicifon.LogicId;
Common.Logic.LogicList.Add(Common.Logic.CurrentLogic);
}
}
else
{
//发送修改逻辑命令
Send.AddModifyLogic(Common.Logic.CurrentLogic);
}
CommonPage.Loading.Hide();
UserView.HomePage.Instance.RemoveViewByTag("Logic");
Category.Category.instance?.RefreshBodyView();
//UserView.HomePage.Instance.RemoveAt("Logic1");
//Category.Category category = new Category.Category();
//UserView.HomePage.Instance.AddChidren(category);
//UserView.HomePage.Instance.PageIndex += 1;
//category.Show(2);
};
}
///
/// 更新执行周期的方法
///
/// Btndisplaycycle.
void UpdateWeek(Button btndisplaycycle)
{
switch (Common.Logic.CurrentLogic.TimeAttribute.Repeat)
{
///0:只执行一次,执行后IsEnable值置;1,今年内执行;2:每天执行;3:每月执行;4:每年执行;5:周重复。
case 0:
{
btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.executeonce);
}; break;
case 1: { }; break;
case 2:
{
btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday);
}; break;
case 3:
{
string len = "", value = "";
var stringvalue = Convert.ToString(Common.Logic.CurrentLogic.TimeAttribute.MonthDate, 2);
var str = stringvalue.Insert(0, new string('0', 32 - stringvalue.Length));
for (int j = 31; j >= 0; j--)
{
len += str.Substring(j, 1);
}
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
value += (j + 1).ToString() + ",";
}
}
btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.monthly) + value.TrimEnd(',') + Language.StringByID(MyInternationalizationString.day);
}; break;
case 4:
{
Dictionary dictionary = new Dictionary();
///找出执行的月份和天数
if (Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate.Count != 0)
{
for (int i = 0; i < Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate.Count; i++)
{
var dayvalue = Common.Logic.CurrentLogic.TimeAttribute.SelectMonDate[i];
if (dayvalue != 0)
{
dictionary.Add(i + 1, dayvalue);
}
}
}
if (dictionary.Count != 0 && dictionary.Count == 1)
{
string len = "", leng = "";
int minvalue = 0, Maximum = 0;
foreach (var value in dictionary)
{
///取出月份
var month = value.Key;
///取出日数
var day = value.Value;
var maxvalue = Convert.ToString(day, 2);
var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
for (int j = 31; j >= 0; j--)
{
len += str.Substring(j, 1);
}
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
minvalue = j + 1;
break;
}
}
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
Maximum = j + 1;
}
}
if (month.ToString().Length < 2)
{
leng = "0" + month.ToString();
}
else
{
leng = month.ToString();
}
if (minvalue == Maximum)
{
btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString());
}
else
{
btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyyear) + leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-" + leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
}
}
}
else
{
int b = 0;
string stringtext = "";
foreach (var value in dictionary)
{
string len = "", leng = "";
int minvalue = 0, Maximum = 0;
///取出月份
var month = value.Key;
///取出日数
var day = value.Value;
var maxvalue = Convert.ToString(day, 2);
var str = maxvalue.Insert(0, new string('0', 32 - maxvalue.Length));
for (int j = 31; j >= 0; j--)
{
len += str.Substring(j, 1);
}
if (month.ToString().Length < 2)
{
leng = "0" + month.ToString();
}
else
{
leng = month.ToString();
}
if (b == 0)
{
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
minvalue = j + 1;
break;
}
}
stringtext += leng + "/" + (minvalue.ToString().Length < 2 ? "0" + minvalue.ToString() : minvalue.ToString()) + "-";
}
if (b == dictionary.Count - 1)
{
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
Maximum = j + 1;
}
}
stringtext += leng + "/" + (Maximum.ToString().Length < 2 ? "0" + Maximum.ToString() : Maximum.ToString());
}
b++;
}
btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyyear) + stringtext;
}
}; break;
case 5:
{
string len = "", text = "";
List listvalueInt = new List();
listvalueInt.Clear();
var maxvalue = Convert.ToString(Common.Logic.CurrentLogic.TimeAttribute.WeekDay, 2);
var str = maxvalue.Insert(0, new string('0', 8 - maxvalue.Length));
for (int j = 7; j >= 0; j--)
{
len += str.Substring(j, 1);
}
for (int j = 0; j < len.Length; j++)
{
var strvalue = len.Substring(j, 1);
if (strvalue == "1")
{
listvalueInt.Add(j + 1);
if ((j + 1) == 1)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.mon1) + ",";
//text += Language.StringByID(MyInternationalizationString.mon) + ",";
}
else if ((j + 1) == 2)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.tue1) + ",";
//text += Language.StringByID(MyInternationalizationString.tue) + ",";
}
else if ((j + 1) == 3)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.wed1) + ",";
//text += Language.StringByID(MyInternationalizationString.wed) + ",";
}
else if ((j + 1) == 4)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.thu1) + ",";
//text += Language.StringByID(MyInternationalizationString.thu) + ",";
}
else if ((j + 1) == 5)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.frl1) + ",";
//text += Language.StringByID(MyInternationalizationString.frl) + ",";
}
else if ((j + 1) == 6)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sat1) + ",";
//text += Language.StringByID(MyInternationalizationString.sat) + ",";
}
else if ((j + 1) == 7)
{
text += Language.StringByID(MyInternationalizationString.week1) + Language.StringByID(MyInternationalizationString.sun1) + ",";
//text += Language.StringByID(MyInternationalizationString.sun) + ",";
}
}
}
//暂时隐藏掉,需要显示周末和工作日再放开;
//if (listvalueInt.Count == 5 && !listvalueInt.Contains(6) && !listvalueInt.Contains(7))
//{
// btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.workingday);
//}
//else if (listvalueInt.Count == 2 && listvalueInt.Contains(6) && listvalueInt.Contains(7))
//{
// btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.weekend);
//}
//else if (listvalueInt.Count == 7)
//{
// btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.everyday);
//}
//else
//{
// btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
//}
btndisplaycycle.Text = Language.StringByID(MyInternationalizationString.week1) + text.Replace(Language.StringByID(MyInternationalizationString.week1), "").TrimEnd(',');
//btndisplaycycle.Text = text.TrimEnd(',');
}; break;
}
}
void ConditionView(bool edit)
{
Common.Logic.CurrentLogic.LogicName = logicTextBox.Text.Trim();
#region 组合条件View
FrameLayout flMain = new FrameLayout { BackgroundColor = 0x50000000 };
this.AddChidren(flMain);
flMain.MouseUpEventHandler += (sender2, e2) =>
{
flMain.RemoveFromParent();
};
var timetypeframelayout1 = new FrameLayout
{
Width = Application.GetRealWidth(1080),
Height = Application.GetRealHeight(100),
Y = Application.GetRealHeight(1920 - 100),
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
};
flMain.AddChidren(timetypeframelayout1);
var framelayout = new FrameLayout
{
Width = Application.GetRealWidth(1080),
Height = Application.GetRealHeight(530),
Y = Application.GetRealHeight(1920 - 530),
BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
Radius = (uint)Application.GetRealHeight(60),
};
flMain.AddChidren(framelayout);
#region -------取消 完成
var timetype = new RowLayout
{
Height = Application.GetRealHeight(140),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
framelayout.AddChidren(timetype);
var Btncancel = new Button
{
TextID = MyInternationalizationString.cancel,
TextColor = ZigbeeColor.Current.LogicBtnCancelColor,
Height = Application.GetRealHeight(140),
Width = Application.GetRealWidth(200),
X = Application.GetRealWidth(80),
TextAlignment = TextAlignment.CenterLeft,
};
timetype.AddChidren(Btncancel);
Btncancel.MouseUpEventHandler += (sender16, e16) =>
{
flMain.RemoveFromParent();
UserView.HomePage.Instance.ScrollEnabled = true;
};
var Btntitle = new Button
{
TextID = MyInternationalizationString.condition,
TextColor = ZigbeeColor.Current.LogicBtnTypeColor,
Height = Application.GetRealHeight(140),
Width = Application.GetRealWidth(320),
TextAlignment = TextAlignment.Center,
X = Btncancel.Right + Application.GetRealWidth(100),
TextSize = 16,
};
timetype.AddChidren(Btntitle);
var Btncomplete = new Button
{
TextID = MyInternationalizationString.complete,
TextColor = ZigbeeColor.Current.LogicBtnCompleteColor,
Height = Application.GetRealHeight(140),
Width = Application.GetRealWidth(200),
TextAlignment = TextAlignment.CenterRight,
X = Btntitle.Right + Application.GetRealWidth(100),
};
timetype.AddChidren(Btncomplete);
#endregion
#region -------满足所有条件 满足其中一个条件
#region -------满足所有条件
var andFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
Y = timetype.Bottom + Application.GetRealHeight(20),
};
framelayout.AddChidren(andFrameLayout);
var androw = new RowLayout
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(920),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(80),
LineColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
};
andFrameLayout.AddChidren(androw);
var andbtn = new Button
{
Width = Application.GetRealWidth(600),
TextID = MyInternationalizationString.Allconditions,
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
};
androw.AddChidren(andbtn);
var andSelected = new SelectedButton();
androw.AddChidren(andSelected);
#endregion
#region -------满足其中一个条件
var orFrameLayout = new FrameLayout
{
Height = Application.GetRealHeight(160),
Y = andFrameLayout.Bottom,
};
framelayout.AddChidren(orFrameLayout);
var orrow = new RowLayout
{
Y = Application.GetRealHeight(30),
Width = Application.GetRealWidth(920),
Height = Application.GetRealHeight(130),
X = Application.GetRealWidth(80),
LineColor = ZigbeeColor.Current.LogicBackgroundColor,
};
orFrameLayout.AddChidren(orrow);
var orbtn = new Button
{
Width = Application.GetRealWidth(600),
TextID = MyInternationalizationString.anycondition,
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor,
};
orrow.AddChidren(orbtn);
var orSelected = new SelectedButton();
orrow.AddChidren(orSelected);
#endregion
///满足所有条件点击事件
EventHandler andclick = (sedner14, e14) =>
{
andSelected.Visible = true;
orSelected.Visible = false;
andbtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
orbtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
};
androw.MouseUpEventHandler += andclick;
andbtn.MouseUpEventHandler += andclick;
andSelected.MouseUpEventHandler += andclick;
andFrameLayout.MouseUpEventHandler += andclick;
///满足其中一个条件点击事件
EventHandler orclick = (sedner15, e15) =>
{
andSelected.Visible = false;
orSelected.Visible = true;
andbtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
orbtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
};
orrow.MouseUpEventHandler += orclick;
orbtn.MouseUpEventHandler += orclick;
orSelected.MouseUpEventHandler += orclick;
orFrameLayout.MouseUpEventHandler += orclick;
#endregion
#endregion
if (edit)
{
if (Common.Logic.CurrentLogic.Relationship == 0)
{
andSelected.Visible = true;
orSelected.Visible = false;
andbtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
orbtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
}
else
{
andSelected.Visible = false;
orSelected.Visible = true;
andbtn.TextColor = ZigbeeColor.Current.LogicBtnNotSelectedColor;
orbtn.TextColor = ZigbeeColor.Current.LogicBtnSelectedColor;
}
}
Btncomplete.MouseUpEventHandler += (sender, e) =>
{
if (!andSelected.Visible && !orSelected.Visible)
{
///可以提示未选中状态;
return;
}
flMain.RemoveFromParent();
if (andSelected.Visible)
{
Common.Logic.CurrentLogic.Relationship = 0;
}
if (orSelected.Visible)
{
Common.Logic.CurrentLogic.Relationship = 1;
}
var templateDeviceCondition = new TemplateDeviceCondition();
UserView.HomePage.Instance.AddChidren(templateDeviceCondition);
UserView.HomePage.Instance.PageIndex += 1;
templateDeviceCondition.Show();
};
}
}
}