using System;
using HDL_ON.UI.UI2.Intelligence.Automation.LogicView;
using Shared;
using System.Collections.Generic;
using System.Text;
namespace HDL_ON.UI.UI2.PersonalCenter.PirDevice
{
public class AddControl : FrameLayout
{
public AddControl()
{
Tag = "Pir";
}
public void Show(Control control)
{
#region 界面布局
this.BackgroundColor = CSS.CSS_Color.viewMiddle;
PirDevice.View.TopView topView = new View.TopView();
topView.topNameBtn.TextID = StringId.zhinengyaokongqi;
topView.topIconBtn.Visible = true;
topView.topIconBtn.UnSelectedImagePath = "PirIcon/del.png";
this.AddChidren(topView.FLayoutView());
topView.clickBackBtn.MouseUpEventHandler += (sender, e) =>
{
this.RemoveFromParent();
};
#region 添加按钮
FrameLayout addLayout = new FrameLayout
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(84),
Width = Application.GetRealWidth(TextSize.view375),
};
this.AddChidren(addLayout);
Button addBtn = new Button
{
Width = Application.GetRealWidth(344),
Height = Application.GetRealHeight(44),
Y = Application.GetRealHeight(24),
X = Application.GetRealWidth(16),
TextID = StringId.tianjiaanniu,
TextSize = TextSize.text16,
TextColor = CSS.CSS_Color.btnSaveBackgroundColor,
BorderColor = CSS.CSS_Color.btnSaveBackgroundColor,
BorderWidth = 1,
Radius = (uint)Application.GetRealHeight(22),
};
addLayout.AddChidren(addBtn);
#endregion
FrameLayout frameLayout = new FrameLayout
{
Y = Application.GetRealHeight(64 + 84),
Height = Application.GetRealHeight(667 - 64 - 84),
Width = Application.GetRealWidth(TextSize.view375),
};
this.AddChidren(frameLayout);
#region 保存
FrameLayout saveLayout = new FrameLayout
{
Y = Application.GetRealHeight(667 - 104),
Height = Application.GetRealHeight(104),
Width = Application.GetRealWidth(TextSize.view375),
BackgroundColor = CSS.CSS_Color.viewLine,
};
this.AddChidren(saveLayout);
saveLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
Button paixuBtn = new Button
{
Width = Application.GetRealWidth(375 - 16 * 2),
Height = Application.GetRealHeight(20),
Y = Application.GetRealHeight(12),
X = Application.GetRealWidth(16),
TextID = StringId.paixu,
TextSize = TextSize.text14,
TextColor = CSS.CSS_Color.textTipColor,
};
saveLayout.AddChidren(paixuBtn);
Button saveBtn = new Button
{
Width = Application.GetRealWidth(220),
Height = Application.GetRealHeight(44),
Y = paixuBtn.Bottom + Application.GetRealHeight(12),
X = Application.GetRealWidth(78),
TextID = StringId.save,
TextSize = TextSize.text16,
TextColor = CSS.CSS_Color.textWhiteColor,
TextAlignment = TextAlignment.Center,
BackgroundColor = CSS.CSS_Color.btnSaveBackgroundColor,
Radius = (uint)Application.GetRealHeight(22),
};
saveLayout.AddChidren(saveBtn);
#endregion
VerticalScrolViewLayout vv = new VerticalScrolViewLayout();
frameLayout.AddChidren(vv);
RefreshView(vv, false);
#endregion
#region 界面点击事件
//删除点击事件
topView.clickSetBtn.MouseUpEventHandler += (sender, e) =>
{
topView.clickSetBtn.IsSelected = !topView.clickSetBtn.IsSelected;
if (topView.clickSetBtn.IsSelected)
{
topView.topIconBtn.UnSelectedImagePath = "";
topView.topIconBtn.Text = Language.StringByID(StringId.wancheng);
topView.topIconBtn.TextSize = TextSize.text14;
topView.topIconBtn.TextColor = CSS.CSS_Color.textColor;
RefreshView(vv, true);
}
else
{
topView.topIconBtn.UnSelectedImagePath = "PirIcon/del.png";
topView.topIconBtn.Text = "";
RefreshView(vv, false);
}
};
//添加按钮点击事件
addBtn.MouseUpEventHandler += (sender, e) =>
{
AddButton addButton = new AddButton();
MainPage.BasePageView.AddChidren(addButton);
addButton.Show(control);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
//保存点击事件
saveBtn.MouseUpEventHandler += (sender, e) =>
{
//移除当前界面
this.RemoveFromParent();
//可能之前已经存在该界面
for (int i = MainPage.BasePageView.ChildrenCount - 1; 0 <= i; i--)
{
var view = MainPage.BasePageView.GetChildren(i);
if (view.GetType() == typeof(AddControlComplete))
{
view.RemoveFromParent();
}
}
//MainPage.BasePageView.RemoveViewByTag("Pir");
AddControlComplete addControlComplete = new AddControlComplete();
MainPage.BasePageView.AddChidren(addControlComplete);
addControlComplete.Show(control,false);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
#endregion
}
///
/// 加载按钮控件View的方法
///
/// 上下滑动控件
/// 表示是否显示删除图标
void RefreshView(VerticalScrolViewLayout vv, bool if_bool)
{
vv.RemoveAll();
//定义一个变量记录行数
int sum = 0;
if (Pir.BuottonList.Count % 3 == 0)
{
sum = Pir.BuottonList.Count / 3;
}
else
{
sum = Pir.BuottonList.Count / 3 + 1;
}
//计算加载出来的数据需要的高度
int h = 16 + sum * (16 + 44) + 104 + 76;
int line = 0;
//按钮的父控件
var FLayout = new FrameLayout
{
Height = Application.GetRealWidth(h),
};
vv.AddChidren(FLayout);
for (int i = 1, j = 0; i <= Pir.BuottonList.Count; i++, j++)
{
var nameObj = Pir.BuottonList[i - 1];
//按钮
var buttonNameBtn = new Button
{
Y = Application.GetRealHeight(16 + line * (16 + 44)),
X = Application.GetRealWidth(16 + (16 + 104) * j),
Width = Application.GetRealWidth(104),
Height = Application.GetRealHeight(44),
Text = nameObj.value,
TextSize = TextSize.text16,
TextColor = CSS.CSS_Color.textColor,
TextAlignment = TextAlignment.Center,
Radius = (uint)Application.GetRealHeight(18),
BorderWidth = 1,
BorderColor = CSS.CSS_Color.textCancelColor,
};
FLayout.AddChidren(buttonNameBtn);
//删除图标
var delIconBtn = new Button
{
UnSelectedImagePath = "PirIcon/delbuton.png",
Y = Application.GetRealHeight(12 + line * (16 + 44)),
X = Application.GetRealWidth((16 + 92) + (104 + 16) * j),
Width = Application.GetRealWidth(16),
Height = Application.GetRealWidth(16),
Tag = nameObj,
};
if (if_bool)
{
FLayout.AddChidren(delIconBtn);
}
//删除图标的点击事件
delIconBtn.MouseUpEventHandler += (sender, e) =>
{
var obj = delIconBtn.Tag as ButtonObj;
//加载log
Loading loading = new Loading();
this.AddChidren(loading);
HDL_ON.DAL.Server.ResponsePackNew responsePackNew = null;
loading.Start();
new System.Threading.Thread(() =>
{
try
{
//发送按键删除;
responsePackNew = PirSend.CodeRemove(obj);
}
catch { }
finally
{
Application.RunOnMainThread(() =>
{
loading.Hide();
if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "")
{
///这里:监听MTTP推送下来主题,才知道是否添加成功
var buttonObj = Pir.BuottonList.Find((c) => c.value == obj.value);
if (buttonObj != null)
{
Pir.BuottonList.Remove(buttonObj);
}
RefreshView(vv, true);
}
else {
Method method = new Method();
method.ErrorShow(responsePackNew);
}
});
}
})
{ IsBackground = true }.Start();
};
if (i % 3 == 0)
{
//满一行重置j=0值;
j = -1;
line += 1;
}
}
}
}
}