using System;
|
using Shared;
|
using System.Collections.Generic;
|
|
|
namespace HDL_ON.UI.UI2.Intelligence.Automation
|
{
|
public class AddLogic : FrameLayout
|
{
|
public AddLogic()
|
{
|
Tag = "Logic";
|
}
|
|
public void Show()
|
{
|
this.BackgroundColor = CSS.CSS_Color.viewMiddle;
|
LogicView.TopView topView = new LogicView.TopView();
|
this.AddChidren(topView.FLayoutView());
|
topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
|
{
|
RemoveFromParent();
|
};
|
topView.topNameBtn.TextID = StringId.newAutomation;
|
|
VerticalScrolViewLayout viewLayout = new VerticalScrolViewLayout
|
{
|
Y = Application.GetRealHeight(64),
|
Width = Application.GetRealWidth(LogicView.TextSize.view375),
|
Height = Application.GetRealHeight(LogicView.TextSize.view667 - 64-76),
|
BackgroundColor = CSS.CSS_Color.viewMiddle,
|
};
|
this.AddChidren(viewLayout);
|
#region 条件
|
///如果的View
|
LogicView.AddOutputInputTextView addInputTextView = new LogicView.AddOutputInputTextView();
|
addInputTextView.btnIf.TextID = StringId.ifCondition;
|
viewLayout.AddChidren(addInputTextView.FLayoutView(46, 12));
|
///满足以下条件的View
|
LogicView.LogicTypeTitleView titleCondition = new LogicView.LogicTypeTitleView();
|
titleCondition.frameLayout.SetCornerWithSameRadius(12,HDLUtils.RectCornerTopLeft| HDLUtils.RectCornerTopRight);
|
titleCondition.btnText.TextID = StringId.whenTheFollowingConditionsAreMet;
|
viewLayout.AddChidren(titleCondition.FLayoutView());
|
|
for (int i = 0; i < Logic.currlogic.input.Count; i++)
|
{
|
Input inputCondition = Logic.currlogic.input[i];
|
///输入各种条件的View
|
LogicView.AddOutputInputView inputView = new LogicView.AddOutputInputView();
|
viewLayout.AddChidren(inputView.FLayoutView());
|
///记录条件类型
|
inputView.btnClick.Name = inputCondition.condition_type;
|
///记录选中条件
|
inputView.btnClick.Tag = i;
|
///输入条件状态数组
|
List<Dictionary<string, string>> dicList = inputCondition.condition as List<Dictionary<string, string>>;
|
//显示条件各种状态
|
switch (inputCondition.condition_type)
|
{
|
case "1":
|
{
|
inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png";
|
foreach (var dic in dicList)
|
{
|
string value = dic["value"];
|
inputView.btnText.Text = Language.StringByID(StringId.hour) + ": " + value;
|
inputView.btnClick.AddTag("timepoint", value);
|
}
|
|
}
|
break;
|
case "2":
|
{
|
inputView.btnIcon.UnSelectedImagePath = "LogicIcon/timecondition.png";
|
foreach (var dic in dicList)
|
{
|
string value = dic["value"];
|
inputView.btnText.Text = Language.StringByID(StringId.timeHorizon) + ": " + value;
|
inputView.btnClick.AddTag("timeHorizon", value);
|
}
|
|
}
|
break;
|
|
}
|
//再次编辑条件状态点击事件
|
inputView.btnClick.MouseUpEventHandler += (sen, e) =>
|
{
|
Button button = (Button)sen;
|
switch (button.Name)
|
{
|
case "1":
|
{ //主界面控件
|
FrameLayout fLayout = new FrameLayout
|
{
|
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
|
};
|
//添加主界面
|
this.AddChidren(fLayout);
|
LogicView.TimeView timePointView = new LogicView.TimeView();
|
timePointView.FLayoutView(fLayout);
|
EventHandler<MouseEventArgs> RemovefLayout = (sender, e1) =>
|
{
|
//移除fLayout界面
|
fLayout.RemoveFromParent();
|
};
|
//界面点击事件
|
fLayout.MouseUpEventHandler += RemovefLayout;
|
//取消点击事件
|
timePointView.btnCancel.MouseUpEventHandler += RemovefLayout;
|
//加载数据界面的设置方法(列表互不联动)
|
timePointView.mUIPickerView.setNPicker(timePointView.GethStringList(), timePointView.GetmStringList(), null);
|
string startingVulae = button.GetTagByKey("timepoint").ToString();
|
//默认初始选中状态
|
timePointView.mUIPickerView.setCurrentItems(1, 30, 0);
|
//定义一个局部变量记录选中时间
|
string timepoint = "01:05";
|
if (!string.IsNullOrEmpty(startingVulae))
|
{
|
int hIndex = timePointView.GetValueIndex(startingVulae, 0, 1, timePointView.GethIntList());
|
int mIndex = timePointView.GetValueIndex(startingVulae, 1, 0, timePointView.GetmIntList());
|
//更新初始状态
|
timePointView.mUIPickerView.setCurrentItems(hIndex - 1, mIndex, 0);
|
timepoint = startingVulae;
|
}
|
|
//选中时间回调方法,时间变化一次回调一次
|
timePointView.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) =>
|
{
|
string hour = timePointView.GethStringList()[index1].Split(' ')[0];
|
string minuet = timePointView.GetmStringList()[index2].Split(' ')[0];
|
timepoint = hour + ":" + minuet;
|
};
|
//确定点击事件
|
timePointView.btnConfirm.MouseUpEventHandler += (sender, e3) =>
|
{
|
if (startingVulae == timepoint)
|
{
|
///编辑新时间和之前时间一样,直接关闭界面返回;
|
fLayout.RemoveFromParent();
|
return;
|
}
|
Input inputTime = new Input();
|
inputTime.sid = LogicMethod.NewSid();
|
inputTime.condition_type = "1";
|
Dictionary<string, string> dic = new Dictionary<string, string>();
|
LogicMethod.dictionary(dic, "key", "timepoint");
|
LogicMethod.dictionary(dic, "comparator", "=");
|
LogicMethod.dictionary(dic, "data_type", "string");
|
LogicMethod.dictionary(dic, "value", timepoint);
|
inputTime.condition.Add(dic);
|
//旧数据索引
|
int indexValue = int.Parse(inputView.btnClick.Tag.ToString());
|
//移除旧数据
|
Logic.currlogic.input.RemoveAt(indexValue);
|
//新数据插入旧数据的位置;
|
Logic.currlogic.input.Insert(indexValue, inputTime);
|
//添加一个新的时间点条件
|
RemoveViewByTag("Logic");
|
AddLogic addLogic = new AddLogic();
|
MainPage.BasePageView.AddChidren(addLogic);
|
addLogic.Show();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
|
};
|
}
|
break;
|
case "2":
|
{
|
FrameLayout fLayout = new FrameLayout
|
{
|
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
|
};
|
this.AddChidren(fLayout);
|
TimeTpye timeTpye = new TimeTpye();
|
timeTpye.TimeHorizon(fLayout,true,int.Parse(inputView.btnClick.Tag.ToString()));
|
}
|
break;
|
}
|
};
|
}
|
///添加图标的View
|
LogicView.LogicAddView addInputIcon = new LogicView.LogicAddView();
|
addInputIcon.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
|
viewLayout.AddChidren(addInputIcon.FLayoutView());
|
|
addInputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
|
{
|
var addInputType = new AddInputType();
|
MainPage.BasePageView.AddChidren(addInputType);
|
addInputType.Show();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
#endregion
|
|
#region 目标
|
///就执行View
|
LogicView.AddOutputInputTextView addOutpuTextView = new LogicView.AddOutputInputTextView();
|
addOutpuTextView.btnIf.TextID = StringId.isExecuted;
|
viewLayout.AddChidren(addOutpuTextView.FLayoutView(54, 20));
|
///以下动作View
|
LogicView.LogicTypeTitleView titleOutpu = new LogicView.LogicTypeTitleView();
|
titleOutpu.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
titleOutpu.btnText.TextID = StringId.theFollowingActions;
|
viewLayout.AddChidren(titleOutpu.FLayoutView());
|
///输出各种动作的View
|
LogicView.AddOutputInputView outputView = new LogicView.AddOutputInputView();
|
viewLayout.AddChidren(outputView.FLayoutView());
|
///添加图标的View
|
LogicView.LogicAddView addOutputIcon = new LogicView.LogicAddView();
|
addOutputIcon.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
|
viewLayout.AddChidren(addOutputIcon.FLayoutView());
|
#endregion
|
|
#region 循环方式
|
///循环方式iew
|
LogicView.AddOutputInputTextView cyclicTextView = new LogicView.AddOutputInputTextView();
|
cyclicTextView.btnIf.TextID = StringId.cyclic;
|
viewLayout.AddChidren(cyclicTextView.FLayoutView(54, 20));
|
///选择周期类型View
|
LogicView.LogicTypeTitleView cyclicTitle= new LogicView.LogicTypeTitleView();
|
cyclicTextView.frameLayout.Height = Application.GetRealHeight(50);
|
cyclicTitle.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight|HDLUtils.RectCornerBottomLeft|HDLUtils.RectCornerBottomRight);
|
//cyclicTitle.frameLayout.Radius = (uint)Application.GetRealHeight(12);
|
cyclicTitle.btnText.TextID = StringId.days;
|
viewLayout.AddChidren(cyclicTitle.FLayoutView());
|
#endregion
|
|
#region 执行推送 发送通知
|
///上下间隔12像素
|
viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12)});
|
///执行推送iew
|
LogicView.LogicTypeTitleView push = new LogicView.LogicTypeTitleView();
|
push.frameLayout.Height = Application.GetRealHeight(50);
|
push.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
push.btnText.TextID = StringId.push;
|
viewLayout.AddChidren(push.FLayoutView());
|
///发送通知View
|
LogicView.LogicTypeTitleView notification = new LogicView.LogicTypeTitleView();
|
notification.frameLayout.SetCornerWithSameRadius(12, HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
|
notification.btnText.TextID = StringId.notification;
|
viewLayout.AddChidren(notification.FLayoutView());
|
///上下间隔62像素
|
viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(62)});
|
#endregion
|
|
#region 保存
|
///保存View
|
LogicView.SaveView saveView = new LogicView.SaveView();
|
saveView.frameLayout.SetCornerWithSameRadius(24,HDLUtils.RectCornerTopLeft|HDLUtils.RectCornerTopRight);
|
this.AddChidren(saveView.FLayoutView());
|
//saveView.frameLayout.Y = this.Height - saveView.frameLayout.Height;
|
#endregion
|
|
|
|
}
|
}
|
}
|