using System;
using System.Collections.Generic;
using Shared;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
public class AddInputType : FrameLayout
{
public AddInputType()
{
Tag = "Logic";
}
public void Show()
{
LogicView.TopView topView = new LogicView.TopView();
this.AddChidren(topView.FLayoutView());
topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
{
RemoveFromParent();
};
topView.topNameBtn.TextID = StringId.selectionCondition;
FrameLayout viewLayout = new FrameLayout
{
Y = Application.GetRealHeight(64),
Width = Application.GetRealWidth(LogicView.TextSize.view375),
Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64),
BackgroundColor = CSS.CSS_Color.viewMiddle,
};
this.AddChidren(viewLayout);
#region 时间 功能 室外变化
//时间
LogicView.SelectTypeView timeView = new LogicView.SelectTypeView();
timeView.btnText.TextID = StringId.time;
timeView.btnIcon.UnSelectedImagePath = "LogicIcon/time.png";
if (MainView.IsGatewayType)
{
viewLayout.AddChidren(timeView.FLayoutView());
}
//功能
LogicView.SelectTypeView functionView = new LogicView.SelectTypeView();
functionView.frameLayout.Y = timeView.frameLayout.Bottom;
functionView.btnText.TextID = StringId.funLogic;
functionView.btnIcon.UnSelectedImagePath = "LogicIcon/functionicon.png";
viewLayout.AddChidren(functionView.FLayoutView());
if (!MainView.IsGatewayType)
{
functionView.frameLayout.Y = Application.GetRealHeight(0);
}
//场景
LogicView.SelectTypeView sceneView = new LogicView.SelectTypeView();
sceneView.frameLayout.Y = functionView.frameLayout.Bottom;
sceneView.btnText.TextID = StringId.Scenes;
sceneView.btnIcon.UnSelectedImagePath = "LogicIcon/scene.png";
viewLayout.AddChidren(sceneView.FLayoutView());
//室外变化
LogicView.SelectTypeView shiwaiView = new LogicView.SelectTypeView();
shiwaiView.frameLayout.Y = sceneView.frameLayout.Bottom;
shiwaiView.btnText.TextID = StringId.shiwaibainhua;
shiwaiView.btnIcon.UnSelectedImagePath = "LogicIcon/changesinoutdoor.png";
if (MainView.IsGatewayType)
{
viewLayout.AddChidren(shiwaiView.FLayoutView());
}
#endregion
#region 所有点击事件
//时间
timeView.btnClick.MouseUpEventHandler += (sen, e) => {
TimeTpye timeTpye = new TimeTpye();
MainPage.BasePageView.AddChidren(timeTpye);
timeTpye.Show();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
//功能
functionView.btnClick.MouseUpEventHandler += (sen, e) => {
FunTpye funTpye = new FunTpye();
MainPage.BasePageView.AddChidren(funTpye);
funTpye.Show(LogicMethod.condition_if);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
//场景点击事件
sceneView.btnClick.MouseUpEventHandler += (sen, e) =>
{
SceneMethod();
};
//室外变化
shiwaiView.btnClick.MouseUpEventHandler += (sen, e) => {
if (string.IsNullOrEmpty(Entity.DB_ResidenceData.Instance.CurrentRegion.homeAddress))//.longitude == 0 && Entity.DB_ResidenceData.Instance.CurrentRegion.latitude == 0)
{
new PublicAssmebly().TipMsg(StringId.tip, StringId.GatewayLocationInformationIsNotConfigured);
return;
}
Weather weather = new Weather();
MainPage.BasePageView.AddChidren(weather);
weather.Show();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
#endregion
}
///
/// 添加场景
///
public void SceneMethod()
{
var sceneList = LogicMethod.CurrLogicMethod.GetSceneList();
List nameList = new List();
for (int i = 0; i < sceneList.Count; i++)
{
var scene = sceneList[i];
nameList.Add(scene.name);
}
PublicInterface publicInterface = new PublicInterface();
publicInterface.FrameOrVv(this, nameList, new List { }, StringId.addSceneLogic, (index) =>
{
var sceneSelecetd = sceneList[index];
Input input = new Input();
input.sid = sceneSelecetd.sid;
input.condition_type = "10";
Dictionary dic = new Dictionary();
LogicMethod.CurrLogicMethod.dictionary(dic, "key", "scene");
LogicMethod.CurrLogicMethod.dictionary(dic, "comparator", "=");
LogicMethod.CurrLogicMethod.dictionary(dic, "data_type", "string");
LogicMethod.CurrLogicMethod.dictionary(dic, "value", "on");
input.condition.Add(dic);
AddCondition(input);
LogicMethod.CurrLogicMethod.RemoveAllView();
AddLogic addLogic = new AddLogic();
MainPage.BasePageView.AddChidren(addLogic);
addLogic.Show();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
});
}
///
/// 添加条件
///
///
private void AddCondition(Input input)
{
///记录索引值
int index = -1;
for (var i = 0; i < Logic.currlogic.input.Count; i++)
{
var condition_type = Logic.currlogic.input[i].condition_type;
if (condition_type == "10")
{
///找到标记索引,退出循环体
index = i;
break;
}
}
if (index != -1)
{
//移除旧数据
Logic.currlogic.input.RemoveAt(index);
//新数据插入旧数据的位置
Logic.currlogic.input.Insert(index, input);
}
else
{
Logic.currlogic.input.Add(input);
}
}
}
}