using System;
|
using Shared;
|
using System.Collections.Generic;
|
|
|
namespace HDL_ON.UI.UI2.Intelligence.Automation
|
{
|
public class OnePortAutomation : FrameLayout
|
{
|
public OnePortAutomation()
|
{
|
Tag = "Logic";
|
}
|
|
public void Show()
|
{
|
#region 界面布局
|
this.BackgroundColor = CSS.CSS_Color.viewMiddle;
|
LogicView.TopView topView = new LogicView.TopView();
|
topView.setBtn.Visible = true;
|
this.AddChidren(topView.FLayoutView());
|
topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
|
{
|
RemoveFromParent();
|
};
|
if (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
|
{
|
topView.topNameBtn.TextID = StringId.newAutomation;
|
topView.setBtn.Visible = false;
|
topView.clickSetBtn.Visible = false;
|
}
|
else
|
{
|
topView.topNameBtn.TextID = StringId.editAutomation;
|
topView.setBtn.Visible = true;
|
topView.clickSetBtn.Visible = true;
|
}
|
|
|
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(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
titleCondition.btnText.TextID = StringId.andCondition;
|
viewLayout.AddChidren(titleCondition.FLayoutView());
|
|
if (Logic.currlogic.relation == "and")
|
{
|
titleCondition.btnText.Text = Language.StringByID(StringId.andCondition);
|
}
|
else
|
{
|
titleCondition.btnText.Text = Language.StringByID(StringId.orCondition);
|
|
}
|
|
// 条件处理方法
|
InpOrOutLogicMethod.InputCondition(this, viewLayout);
|
///添加图标的View
|
LogicView.LogicAddView addInputIcon = new LogicView.LogicAddView();
|
addInputIcon.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
|
viewLayout.AddChidren(addInputIcon.FLayoutView());
|
#endregion
|
|
#region 目标
|
///就执行View
|
LogicView.AddOutputInputTextView addOutpuTextView = new LogicView.AddOutputInputTextView();
|
addOutpuTextView.btnIf.TextID = StringId.isExecuted;
|
viewLayout.AddChidren(addOutpuTextView.FLayoutView(54, 20));
|
|
|
#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(Application.GetRealHeight(12), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
push.btnText.TextID = StringId.push;
|
push.btnNextIcon.Width = Application.GetRealWidth(36);
|
push.btnNextIcon.Height = Application.GetRealWidth(36);
|
push.btnNextIcon.X = Application.GetRealWidth(305);
|
push.btnNextIcon.UnSelectedImagePath = "LogicIcon/off.png";
|
push.btnNextIcon.SelectedImagePath = "LogicIcon/on.png";
|
push.btnClick.Width = Application.GetRealWidth(305);
|
viewLayout.AddChidren(push.FLayoutView());
|
///发送通知View
|
LogicView.LogicTypeTitleView notification = new LogicView.LogicTypeTitleView();
|
notification.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(12), HDLUtils.RectCornerBottomLeft | HDLUtils.RectCornerBottomRight);
|
notification.btnText.TextID = StringId.notification;
|
notification.btnLine.BackgroundColor = CSS.CSS_Color.textWhiteColor;
|
viewLayout.AddChidren(notification.FLayoutView());
|
//显示之前推送开关状态
|
if (Logic.currlogic.noticeConfig.enable)
|
{
|
push.btnNextIcon.IsSelected = true;
|
}
|
else
|
{
|
push.btnNextIcon.IsSelected = false;
|
}
|
///上下间隔62像素
|
viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(40) });
|
#endregion
|
|
#region 保存
|
///保存View
|
LogicView.SaveView saveView = new LogicView.SaveView();
|
saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
|
this.AddChidren(saveView.FLayoutView());
|
|
#endregion
|
#endregion
|
#endregion
|
#region 界面各种点击事件
|
///设置图标点击事件
|
topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
|
{
|
Set set = new Set();
|
MainPage.BasePageView.AddChidren(set);
|
set.Show();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
|
};
|
///或和与点击事件
|
titleCondition.btnClick.MouseUpEventHandler += (sender, e) =>
|
{
|
AndOrMethod(titleCondition.btnText);
|
};
|
///条件添加点击事件
|
addInputIcon.btnClick.MouseUpEventHandler += (sen, e) =>
|
{
|
var addInputType = new AddInputType();
|
MainPage.BasePageView.AddChidren(addInputType);
|
addInputType.Show();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
///是否要推送点击事件
|
push.btnNextIcon.MouseUpEventHandler += (sender, e) =>
|
{
|
//账号列表为空默认推送当前账号
|
if (Logic.currlogic.pushConfigs.Count == 0)
|
{
|
//初始化对象
|
PushConfigs pushConfigs = new PushConfigs();
|
//默认添加推送当前账号
|
pushConfigs.pushTarget.Add(UserInfo.Current.ID);
|
Logic.currlogic.pushConfigs.Add(pushConfigs);
|
}
|
push.btnNextIcon.IsSelected = !push.btnNextIcon.IsSelected;
|
if (push.btnNextIcon.IsSelected)
|
{
|
Logic.currlogic.noticeConfig.enable = true;
|
}
|
else
|
{
|
Logic.currlogic.noticeConfig.enable = false;
|
}
|
};
|
///输入推送文本
|
notification.btnClick.MouseUpEventHandler += (sender, e) =>
|
{
|
InputPushText inputPushText = new InputPushText();
|
MainPage.BasePageView.AddChidren(inputPushText);
|
inputPushText.Show();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
///保存点击事件
|
saveView.btnClick.MouseUpEventHandler += (sender, e) =>
|
{
|
if (Logic.currlogic.input.Count == 0)
|
{
|
new LogicView.TipPopView().TipBox(StringId.tip, StringId.conditioncNull);
|
return;
|
}
|
Loading loading = new Loading();
|
this.AddChidren(loading);
|
HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
|
if (string.IsNullOrEmpty(Logic.currlogic.userLogicId))
|
{
|
List<string> list = new List<string>();
|
foreach (var logic in Logic.LogicList)
|
{
|
list.Add(logic.name);
|
}
|
new LogicView.TipPopView().InputBox(StringId.editName, InpOrOutLogicMethod.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName, view
|
) =>
|
{
|
Logic.currlogic.name = logicName;
|
Logic.currlogic.sid = LogicMethod.NewSid();
|
loading.Start();
|
new System.Threading.Thread(() =>
|
{
|
|
try
|
{
|
//发送新加逻辑命令;
|
responsePackNew = Send.AddLogic(Logic.currlogic);
|
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
loading.Hide();
|
if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
|
{
|
|
|
//获取逻辑详细返回是一个数组(object类型转换为数组);
|
var jArray = Newtonsoft.Json.Linq.JArray.Parse(responsePackNew.Data.ToString());
|
for (int a = 0; a < jArray.Count; a++)
|
{
|
var jay = jArray[a];
|
//数据返序列化为Logic对象
|
var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay);
|
var logic = Newtonsoft.Json.JsonConvert.DeserializeObject<Logic>(str);
|
if (logic.userLogicId != "")
|
{
|
//更新云端唯一自动化id;
|
Logic.currlogic.userLogicId = logic.userLogicId;
|
}
|
else
|
{
|
//自己看的所以不需要支持中英文
|
new LogicView.TipPopView().FlashingBox("没有返回云端唯一自动化id");
|
}
|
|
}
|
|
Logic.LogicList.Add(Logic.currlogic);
|
LogicMethod.RemoveAllView();
|
MainView.MainShow();
|
}
|
else if (responsePackNew != null && responsePackNew.Code == "14005")
|
{
|
new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline));
|
}
|
else
|
{
|
new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
|
}
|
});
|
}
|
|
})
|
{ IsBackground = true }.Start();
|
|
}, () => { });
|
|
}
|
else
|
{
|
loading.Start();
|
new System.Threading.Thread(() =>
|
{
|
|
try
|
{
|
//发送修改逻辑命令;
|
responsePackNew = Send.UpdateLogic(Logic.currlogic);
|
|
}
|
catch { }
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
loading.Hide();
|
if (responsePackNew != null && responsePackNew.Code == "0")
|
{
|
LogicMethod.RemoveAllView();
|
MainView.MainShow();
|
}
|
else if (responsePackNew != null && responsePackNew.Code == "14005")
|
{
|
new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.gatewayNotOnline));
|
}
|
else
|
{
|
new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail));
|
}
|
});
|
}
|
|
|
|
})
|
{ IsBackground = true }.Start();
|
|
}
|
|
};
|
#endregion
|
}
|
|
|
/// <summary>
|
/// 满足条件
|
/// </summary>
|
/// <param name="button">显示文本</param>
|
public void AndOrMethod(Button button)
|
{
|
|
///之前的状态文本
|
string currCondition = button.Text;
|
PublicInterface conditionView = new PublicInterface();
|
var strList = conditionView.GetViewList("andor");
|
conditionView.SingleSelectionShow(this, strList, Language.StringByID(StringId.meetTheCondition), currCondition
|
, (stateValue) =>
|
{
|
//界面显示选中值
|
button.Text = stateValue;
|
//封装数据
|
if (stateValue == Language.StringByID(StringId.orCondition))
|
{
|
Logic.currlogic.relation = "or";
|
}
|
else
|
{
|
Logic.currlogic.relation = "and";
|
}
|
|
});
|
|
|
}
|
|
|
}
|
}
|