using Shared.SimpleControl.Phone;
using System;
using System.Collections.Generic;
namespace Shared.SimpleControl.Pad
{
///
/// 自定义控件,为了不修改已经做好的节目,优化体验
/// 固定titleview
/// 内容view 可以滑动
///
public class NK_FrameLayout : FrameLayout {
public FrameLayout TitleView;
public VerticalScrolViewLayout VerticalScrolView;
int nk_height;
public NK_FrameLayout (int NK_Height)
{
Width = Application.GetRealWidth (646);
Height = Application.GetRealHeight (NK_Height);
BackgroundColor = 0xFF2f2f2f;
nk_height = NK_Height;
TitleView = new FrameLayout () {
Height = Application.GetRealHeight (140),
Width = LayoutParams.MatchParent,
BackgroundColor = 0xFF333333,
};
base.AddChidren (TitleView);
VerticalScrolView = new VerticalScrolViewLayout () {
Y = Application.GetRealHeight(140),
Height = Application.GetRealHeight(NK_Height) - Application.GetRealHeight (140),
};
base.AddChidren (VerticalScrolView);
}
public void HideTopView () {
TitleView.Height = 0;
VerticalScrolView.Y = 0;
VerticalScrolView.Height = Application.GetRealHeight (nk_height);
}
public override void AddChidren (View view)
{
VerticalScrolView.AddChidren (view);
}
public void VerticalScrolViewScrolUnEnable () {
VerticalScrolView.ScrollEnabled = false;
}
public override void RemoveAll ()
{
base.RemoveAll ();
VerticalScrolView.ScrollEnabled = true;
Width = Application.GetRealWidth (646);
BackgroundColor = 0xFF2f2f2f;
TitleView = new FrameLayout () {
Height = Application.GetRealHeight (140),
Width = LayoutParams.MatchParent,
BackgroundColor = 0xFF333333,
};
base.AddChidren (TitleView);
VerticalScrolView = new VerticalScrolViewLayout () {
Y = Application.GetRealHeight (140),
Height = Application.GetRealHeight (nk_height - 140),
};
base.AddChidren (VerticalScrolView);
}
public void SelectedInVerticalScrolViewFrameLayoutButton (object tag)
{
MainPage.Loading.Start ("Loading...");
System.Threading.Tasks.Task.Run (() => {
Application.RunOnMainThread (() => {
for (int i = 0; i < VerticalScrolView.ChildrenCount; i++) {
if (VerticalScrolView.GetChildren (i).GetType () == typeof (RowLayout)) {
RowLayout inFView = (RowLayout)VerticalScrolView.GetChildren (i);
for (int kkk = 0; kkk < inFView.ChildrenCount; kkk++) {
selectedView (inFView, kkk, tag);
}
}
}
MainPage.Loading.Hide ();
});
});
}
void selectedView (RowLayout inFView, int kkk, object tag)
{
if (inFView.GetChildren (kkk).GetType () == typeof (Button)) {
Button btnS = (Button)inFView.GetChildren (kkk);
if (btnS.Tag != null) {
Console.WriteLine (btnS.Tag.ToString ());
if (btnS.Tag.ToString() == tag.ToString())
btnS.IsSelected = true;
else
btnS.IsSelected = false;
}
} else if (inFView.GetChildren (kkk).GetType () == typeof (RowLayout) ) {
RowLayout view = (RowLayout)inFView.GetChildren (kkk);
for (int iii = 0; iii < view.ChildrenCount; iii++) {
selectedView (view, iii, tag);
}
}
}
}
///
/// 后台中间界面
///
public static class SystemMiddle
{
///
/// 当前主界面
///
static readonly FrameLayout FrameLayoutMain = new FrameLayout () {
Height = Application.GetRealHeight (1236),
BackgroundColor = 0xFF000000
};
public static NK_FrameLayout FristScrolView = new NK_FrameLayout (1216) {
X = Application.GetRealWidth(20),
Y = Application.GetRealHeight(20),
Width = Application.GetRealWidth(656),
BackgroundColor = 0xFF2f2f2f
};
public static NK_FrameLayout SecondScrolView = new NK_FrameLayout (1216) {
X = Application.GetRealWidth (696),
Y = Application.GetRealHeight(20),
Width = Application.GetRealWidth (656),
BackgroundColor = 0xFF2f2f2f
};
public static NK_FrameLayout ThirdScrolView = new NK_FrameLayout (1216) {
X = Application.GetRealWidth (1382),
Y = Application.GetRealHeight(20),
Width = Application.GetRealWidth (656),
BackgroundColor = 0xFF2f2f2f
};
///
/// 初始化当前视图
///
public static void Init ()
{
if (null != FrameLayoutMain.Parent) {
return;
}
FrameLayoutMain.Y = SystemMiddleTop.SystemTopMeunView.Bottom;
SystemHomePage.FrameLayoutMain.AddChidren (FrameLayoutMain);
FrameLayoutMain.AddChidren (FristScrolView);
FrameLayoutMain.AddChidren (SecondScrolView);
FrameLayoutMain.AddChidren (ThirdScrolView);
InitBottomButtonForReadGateWay ();
//默认显示网关
ShowGateWayFrameLayout ();
}
///
/// 初始化底部的按键,默认是搜索网关
///
public static void InitBottomButtonForReadGateWay ()
{
Button AddSystemEquipmentButton = new Button () {
TextID = R.MyInternationalizationString.AddSystemEquipment,
TextAlignment = TextAlignment.Center,
TextSize = 16,
};
AddSystemEquipmentButton.MouseUpEventHandler += (sender, e) => {
CommonPage.FindGateway = true;
MainPage.Loading.Start ();
readOnePort (() => {
CommonPage.FindGateway = false;
ShowGateWayFrameLayout ();
MainPage.Loading.Hide ();
});
};
FristScrolView.TitleView.AddChidren (AddSystemEquipmentButton);
}
///
/// 读取一端口信息
///
public static void readOnePort (Action action, byte subnetID = 0)
{
System.Threading.Tasks.Task.Run (() => {
//这里搜索设备,直到完成就退出
readDevice (subnetID);
CommonPage.LocalPhoneFindDevice = false;
if (action != null) {
Application.RunOnMainThread (
action
);
}
});
}
///
/// 发送控制命令,不需要等等回复
///
/// If set to true is radio.
/// Add bytes.
/// Command.
public static void ControlSend (bool isRadio, byte [] addBytes, Command command)
{
System.Net.IPAddress ipAddress = new Net.NetWiFi ().BroadcastIpAddress;
if (isRadio) {
ipAddress = System.Net.IPAddress.Parse ("224.0.168.188");
}
Control control = new Control ();
control.Send (new Target () {
IPEndPoint = new System.Net.IPEndPoint (ipAddress, 6000),
Command = command,
SubnetID = 0xFF,
DeviceID = 0xFF,
AddData = addBytes
}, SendCount.Three, true);
if (control.UsefulBytes == null) {
}
}
///
/// 读取设备
///
/// If set to true find gate way.
static void readDevice (byte subnetID)
{
CommonPage.LocalPhoneFindDevice = true;
if (subnetID == 0) {
readGateWay ();
} else {
//Newtonsoft.Json.js IO.FileUtils.ReadFile (gatwayFile);
CommonPage.RandomHigh = (byte)new Random ().Next (255);
CommonPage.RandomLow = (byte)new Random ().Next (255);
CommonPage.DeviceList.Clear ();
//如果两次都没有数据反馈,就不读取
int readCount = 4;
while (0 < readCount) {
readCount--;
System.IO.MemoryStream ms = new System.IO.MemoryStream ();
ms.WriteByte (CommonPage.RandomHigh);
ms.WriteByte (CommonPage.RandomLow);
List list = CommonPage.DeviceList;
int tempCount = list.Count;
string s = ";";
for (int i = 0; i < list.Count; i++) {
Common common = list [i];
if (common.SubnetID != subnetID)
continue;
if (s.Contains (";" + common.SubnetID.ToString () + ":" + common.DeviceID.ToString ()))
continue;
s += common.SubnetID.ToString () + ":" + common.DeviceID.ToString () + ";";
ms.WriteByte (common.SubnetID);
ms.WriteByte (common.DeviceID);
}
Console.WriteLine ("搜索非网关设备,网络地址是:" + CommonPage.EndPoint.ToString ());
Control control = new Control ();
control.Send (new Target () {
IPEndPoint = CommonPage.EndPoint,
Command = Command.ReadDeviceModul,
SubnetID = 0xFF,
DeviceID = 0xFF,
AddData = ms.ToArray ()
}, SendCount.Zero, false);
ms.Close ();
System.Threading.Thread.Sleep (1000);
//如果数量不相等,就重置次数
if (tempCount != CommonPage.DeviceList.Count) {
readCount = 4;
}
}
CommonPage.DeviceList = CommonPage.DeviceList.FindAll ((obj) => { return obj != null && obj.SubnetID == subnetID; });
}
}
///
/// 读取网关设备
///
static void readGateWay ()
{
CommonPage.RandomHigh = (byte)new Random ().Next (255);
CommonPage.RandomLow = (byte)new Random ().Next (255);
CommonPage.GateWayList.Clear ();
CommonPage.FindGateway = true;
//如果两次都没有数据反馈,就不读取
int readCount = 2;
while (0 < readCount) {
readCount--;
System.IO.MemoryStream ms = new System.IO.MemoryStream ();
ms.WriteByte (CommonPage.RandomHigh);
ms.WriteByte (CommonPage.RandomLow);
List list = CommonPage.GateWayList;
int tempCount = list.Count;
string s = ";";
for (int i = 0; i < list.Count; i++) {
Common common = list [i];
if (s.Contains (";" + common.SubnetID.ToString () + ":" + common.DeviceID.ToString ()))
continue;
s += common.SubnetID.ToString () + ":" + common.DeviceID.ToString () + ";";
ms.WriteByte (common.SubnetID);
ms.WriteByte (common.DeviceID);
}
Console.WriteLine ("搜索网关,搜索地址是:" + CommonPage.EndPoint.ToString () + " " + CommonPage.GateWayList.Count);
Control control = new Control ();
control.Send (new Target () {
IPEndPoint = CommonPage.EndPoint,
Command = Command.ReadGateway,
SubnetID = 0xFF,
DeviceID = 0xFF,
AddData = ms.ToArray ()
}, SendCount.Zero, false);
ms.Close ();
System.Threading.Thread.Sleep (800);
//如果数量不相等,就重置次数
if (tempCount != CommonPage.GateWayList.Count) {
readCount = 2;
}
}
CommonPage.FindGateway = false;
}
///
/// 显示出已经查找到的网关设备
///
public static void ShowGateWayFrameLayout ()
{
FristScrolView.RemoveAll ();
SecondScrolView.RemoveAll ();
ThirdScrolView.RemoveAll ();
InitBottomButtonForReadGateWay ();
try {
List filesList = IO.FileUtils.ReadFiles ().FindAll ((obj) => obj.Split ('_').Length == 4 &&
obj.Split ('_') [0] == "Equipment");
foreach (var f in filesList) {
string [] str = f.Split ('_');
if (str.Length == 4 && str [0] == "Equipment") {
var one = System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (f));
var commGateway = Newtonsoft.Json.JsonConvert.DeserializeObject (one);
if (commGateway.obj1 == 1) {
RowLayout WirelessView = new RowLayout () {
Height = Application.GetRealHeight (131),
Tag = commGateway.CommonLoopID
};
FristScrolView.AddChidren (WirelessView);
AddWirelessGateway (commGateway, null, WirelessView);
} else if (str [1].ToString () == DeviceType.OnePortWirelessFR.ToString ()) {
var onePortWirelessFR = Newtonsoft.Json.JsonConvert.DeserializeObject (one);
RowLayout WirelessView = new RowLayout () {
Height = Application.GetRealHeight (131),
};
FristScrolView.AddChidren (WirelessView);
AddWirelessGateway (onePortWirelessFR, (sender, e) => {
System.Threading.Tasks.Task.Run (() => {
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
FristScrolView.SelectedInVerticalScrolViewFrameLayoutButton (onePortWirelessFR.CommonLoopID);
new SystemWirelessGateway ().ShowWirelessGateway (onePortWirelessFR);
});
});
}, WirelessView);
} else if (str [1].ToString () == DeviceType.OnePortBus.ToString ()) {
var onePortBus = Newtonsoft.Json.JsonConvert.DeserializeObject (one);
RowLayout WirelessView = new RowLayout () {
Height = Application.GetRealHeight (131),
Tag = commGateway.CommonLoopID
};
FristScrolView.AddChidren (WirelessView);
AddWirelessGateway (onePortBus, (sender, e) => {
System.Threading.Tasks.Task.Run (() => {
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
FristScrolView.SelectedInVerticalScrolViewFrameLayoutButton (onePortBus.CommonLoopID);
new SystemOnePortBus ().ShowOnePortBus (onePortBus);
});
});
}, WirelessView);
}
else if (str [1].ToString () == DeviceType.MusicModel.ToString ()) {
var musicModel = Newtonsoft.Json.JsonConvert.DeserializeObject (one);
RowLayout rlMusicModel = new RowLayout () {
Height = Application.GetRealHeight (131),
};
FristScrolView.AddChidren (rlMusicModel);
Button btnDelFile = new Button () {
TextID = R.MyInternationalizationString.Del,
BackgroundColor = SkinStyle.Current.DelColor,
};
rlMusicModel.AddRightView (btnDelFile);
btnDelFile.MouseUpEventHandler += (sender, e) => {
IO.FileUtils.DeleteFile (f);
IO.FileUtils.DeleteFile (f + "_01");
SystemMiddle.ShowGateWayFrameLayout ();
};
Button button1 = new Button () {
X = Application.GetRealWidth (20),
Height = Application.GetRealHeight (66),
Width = Application.GetRealWidth (66),
UnSelectedImagePath = "Item/Music.png",
Gravity = Gravity.CenterVertical,
};
rlMusicModel.AddChidren (button1);
Button textButton1 = new Button () {
X = Application.GetRealWidth (76),// + btnIcon.Right,
Height = Application.GetRealHeight (41),
Width = Application.GetRealWidth (400),
Text = musicModel.Name,
Gravity = Gravity.CenterVertical,
TextAlignment = TextAlignment.CenterLeft,
};
rlMusicModel.AddChidren (textButton1);
Button rightButton = new Button () {
X = Application.GetRealWidth (580),
Width = Application.GetRealWidth (28),
Height = Application.GetRealHeight (40),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "Item/Right.png",
SelectedImagePath = "Item/RightSelected.png",
};
rlMusicModel.AddChidren (rightButton);
rightButton.MouseUpEventHandler += (sender, e) => {
new SystemMusicModel ().ShowMusicModel (musicModel);
};
}
}
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
});
}
} catch { } finally {
}
}
///
/// 显示网关
///
static void AddWirelessGateway (Common common, EventHandler eHandler, RowLayout wirelessView)
{
int subnetID = common.SubnetID;
string remark = common.Name;
Button btnDelFile = new Button () {
TextID = R.MyInternationalizationString.Del,
BackgroundColor = SkinStyle.Current.DelColor,
};
btnDelFile.MouseUpEventHandler += (sender, e) => {
Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipDeleteEquipmentMessage)
, Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
alert.Show ();
alert.ResultEventHandler += (object sender1, bool e1) => {
if (e1) {
var delFile = IO.FileUtils.ReadFiles ().FindAll ((w) => {
return (w.Split ('_') [0] == "Equipment") && (w.Split ('_') [2] == subnetID.ToString ());
});
for (int k = 0; k < delFile.Count; k++) {
IO.FileUtils.DeleteFile (delFile [k]);
}
ShowGateWayFrameLayout ();
}
};
};
wirelessView.AddRightView (btnDelFile);
Button pointButton1 = new Button () {
Width = Application.GetRealHeight (13),
Height = Application.GetRealHeight (13),
X = Application.GetRealWidth (40),
UnSelectedImagePath = "Item/Point.png",
SelectedImagePath = "Item/PointSelected.png",
Gravity = Gravity.CenterVertical,
Tag = common.CommonLoopID
};
wirelessView.AddChidren (pointButton1);
Button nameButton1 = new Button () {
Width = Application.GetRealWidth (342),
Height = LayoutParams.MatchParent,
Text = remark,
TextAlignment = TextAlignment.CenterLeft,
SelectedTextColor = SkinStyle.Current.SelectedColor,
TextColor = SkinStyle.Current.TextColor1,
X = pointButton1.Right + Application.GetRealWidth (20),
Tag = common.CommonLoopID
};
wirelessView.AddChidren (nameButton1);
wirelessView.MouseUpEventHandler += eHandler;
nameButton1.MouseUpEventHandler += eHandler;
Button btnNul = new Button () {
Y = Application.GetRealHeight(131)-2,
Height = 1,
BackgroundColor = SkinStyle.Current.MainColor,
};
wirelessView.AddChidren (btnNul);
Button btnNull = new Button () {
Y = Application.GetRealHeight(131)-1,
Height = 1 ,
BackgroundColor = 0xFF2f2f2f,
};
wirelessView.AddChidren (btnNull);
}
public static List hideListCommon = new List ();
///
/// 显示设备列表信息.
///
public static void ShowEquipmentBase ()
{
hideListCommon = new List ();
FristScrolView.RemoveAll ();
SecondScrolView.RemoveAll ();
ThirdScrolView.RemoveAll ();
FristScrolView.TitleView.AddChidren (new Button () {
TextID = R.MyInternationalizationString.AllDeviceList,
TextSize = 16,
TextAlignment = TextAlignment.Center
});
List localFileList = IO.FileUtils.ReadFiles ();
List offlineDeviceList = new List ();
var gateWayList = localFileList.FindAll ((obj) => {
return obj.Split ('_').Length == 4 && obj.StartsWith ("Equipment_") && obj.EndsWith ("_0");
});
foreach (var offline in localFileList) {
if (offline.Split ('_').Length == 5 && offline.Split ('_') [0] == "Equipment") {
var ss = IO.FileUtils.ReadFile (offline);
Common commonOffline = Newtonsoft.Json.JsonConvert.DeserializeObject (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (offline)));
if (commonOffline == null)
continue;
if (commonOffline.obj1 == 1) {
offlineDeviceList.Add (offline);
}
}
}
foreach (var gatewayFileName in gateWayList) {
if (offlineDeviceList.Contains (gatewayFileName))
continue;
var tempStrings = gatewayFileName.Split ('_');
if (tempStrings [1].ToString () == DeviceType.OnePortBus.ToString () ||
tempStrings [1].ToString () == DeviceType.OnePortWirelessFR.ToString ()) {
var one = System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (gatewayFileName));
#region titel
RowLayout OnePortBusFrameLayout = new RowLayout () {
Height = Application.GetRealHeight (131),
Width = LayoutParams.MatchParent,
BackgroundColor = SkinStyle.Current.MainColor,
};
FristScrolView.AddChidren (OnePortBusFrameLayout);
RowLayout busEquipmentBody = new RowLayout () {
Height = 0,
Tag = 0,
};
FristScrolView.AddChidren (busEquipmentBody);
Button button1 = new Button () {
X = Application.GetRealWidth (20),
Height = Application.GetRealHeight (66),
Width = Application.GetRealWidth (66),
UnSelectedImagePath = "Item/OnePort.png",
SelectedImagePath = "Item/OnePortSelected.png",
Gravity = Gravity.CenterVertical,
};
OnePortBusFrameLayout.AddChidren (button1);
Button textButton1 = new Button () {
X = Application.GetRealWidth (20) + button1.Right,
Height = Application.GetRealHeight (41),
Width = Application.GetRealWidth (400),
Gravity = Gravity.CenterVertical,
TextAlignment = TextAlignment.CenterLeft,
};
OnePortBusFrameLayout.AddChidren (textButton1);
Button downSelectedButton1 = new Button () {
Height = Application.GetRealHeight (46),
Width = Application.GetRealWidth (47),
UnSelectedImagePath = "Item/Down.png",
SelectedImagePath = "Item/DownSelected.png",
Gravity = Gravity.CenterVertical,
IsSelected = true,
};
downSelectedButton1.X = OnePortBusFrameLayout.Width - downSelectedButton1.Width - Application.GetRealWidth (20);
OnePortBusFrameLayout.AddChidren (downSelectedButton1);
EventHandler eHandler = (sender, e) => {
downSelectedButton1.IsSelected = !downSelectedButton1.IsSelected;
if (downSelectedButton1.IsSelected) {
busEquipmentBody.Height = Convert.ToInt32 (busEquipmentBody.Tag);
} else {
busEquipmentBody.Height = 0;
}
};
downSelectedButton1.MouseUpEventHandler += eHandler;
button1.MouseUpEventHandler += eHandler;
textButton1.MouseUpEventHandler += eHandler;
Button btnTopLine = new Button () {
Y = Application.GetRealHeight (131) - 2,
Height = 2,
BackgroundColor = 0xFF2f2f2f,
};
OnePortBusFrameLayout.AddChidren (btnTopLine);
#endregion
bool gatewayEntryProgramming = true;
if (tempStrings [1].ToString () == DeviceType.OnePortWirelessFR.ToString ()) {
var onePortWirelessFR = Newtonsoft.Json.JsonConvert.DeserializeObject (one);
textButton1.Text = onePortWirelessFR.Name;
button1.SelectedImagePath = "Item/WirelessSelected.png";
button1.UnSelectedImagePath = "Item/Wireless.png";
}
if (tempStrings [1].ToString () == DeviceType.OnePortBus.ToString ()) {
var onePortBus = Newtonsoft.Json.JsonConvert.DeserializeObject (one);
textButton1.Text = onePortBus.Name;
button1.SelectedImagePath = "Item/OnePortSelected.png";
button1.UnSelectedImagePath = "Item/OnePort.png";
}
button1.IsSelected = false;
int equipmentHeight = 0;
int count = 0;
//gatewayEntryProgramming = true;//qqqqqqq
foreach (var deviceFile in localFileList) {
if (deviceFile == gatewayFileName
|| deviceFile.Split ('_') [0] != "Equipment"
|| deviceFile.Split ('_').Length != 4) {
continue;
}
if (offlineDeviceList.Contains (deviceFile))
continue;
//子网号相等
if (deviceFile.Split ('_') [2] != tempStrings [2]) {
continue;
}
string localFileType = deviceFile.Split ('_') [1];
byte [] equipmentUsefullBytes = IO.FileUtils.ReadFile (deviceFile);
string equipmentString;
Common common = null;
equipmentString = CommonPage.MyEncodingUTF8.GetString (equipmentUsefullBytes);
common = Newtonsoft.Json.JsonConvert.DeserializeObject (equipmentString);
if (common == null) {
continue;
}
if (common.isMixBox) {
hideListCommon.Add (common);
} else {
RowLayout frameLayout = new RowLayout () {
Height = Application.GetRealHeight (131),
};
frameLayout.Y = count++ * frameLayout.Height;
busEquipmentBody.AddChidren (frameLayout);
Button btnDelFile = new Button () {
TextID = R.MyInternationalizationString.Del,
BackgroundColor = SkinStyle.Current.DelColor
};
btnDelFile.MouseUpEventHandler += (sender, e) => {
Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipDeleteEquipmentMessage)
, Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
alert.Show ();
alert.ResultEventHandler += (object sender1, bool e1) => {
if (e1) {
//"_" + deviceFile.Split ('_') [1] +
string delFlag = "_" + deviceFile.Split ('_') [2] + "_" + deviceFile.Split ('_') [3];
var delFile = IO.FileUtils.ReadFiles ().FindAll ((w) => {
return w.Contains (delFlag);
});
for (int i = 0; i < delFile.Count; i++) {
IO.FileUtils.DeleteFile (delFile [i]);
}
ShowEquipmentBase ();
}
};
};
frameLayout.AddRightView (btnDelFile);
busEquipmentBody.Height += Application.GetRealHeight (131);
equipmentHeight += Application.GetRealHeight (131);
busEquipmentBody.Tag = equipmentHeight;
Button pointButton = new Button () {
Width = Application.GetRealHeight (13),
Height = Application.GetRealHeight (13),
X = Application.GetRealWidth (40),
UnSelectedImagePath = "Item/Point.png",
SelectedImagePath = "Item/PointSelected.png",
Gravity = Gravity.CenterVertical,
Tag = common.CommonLoopID,
};
frameLayout.AddChidren (pointButton);
Button btnName = new Button () {
Width = Application.GetRealWidth (642),
Height = LayoutParams.MatchParent,
Text = common.Name,
TextAlignment = TextAlignment.CenterLeft,
X = pointButton.Right + Application.GetRealWidth (20),
Tag = common.CommonLoopID,
SelectedTextColor = SkinStyle.Current.SelectedColor,
TextColor = SkinStyle.Current.TextColor1,
};
frameLayout.AddChidren (btnName);
EventHandler mouseEvent = (sender, e) => {
FristScrolView.SelectedInVerticalScrolViewFrameLayoutButton (common.CommonLoopID);
new SystemEquipmentBase ().EquipmentBaseViewShow (common);
};
if (gatewayEntryProgramming) {
btnName.MouseUpEventHandler += mouseEvent;
frameLayout.MouseUpEventHandler += mouseEvent;
}
Button btnNul = new Button () {
Y = Application.GetRealHeight (131) - 2,
Height = 1,
BackgroundColor = SkinStyle.Current.MainColor,
};
frameLayout.AddChidren (btnNul);
Button btnNull = new Button () {
Y = Application.GetRealHeight (131) - 1,
Height = 1,
BackgroundColor = 0xFF2f2f2f
};
frameLayout.AddChidren (btnNull);
}
}
}
}
if (offlineDeviceList.Count != 0) {
#region titel
FrameLayout OnePortBusFrameLayout = new FrameLayout () {
Height = Application.GetRealHeight (131),
Width = LayoutParams.MatchParent,
BackgroundColor = SkinStyle.Current.MainColor,
};
FristScrolView.AddChidren (OnePortBusFrameLayout);
FrameLayout busEquipmentBody = new FrameLayout () {
Height = 0,
Tag = 0,
};
FristScrolView.AddChidren (busEquipmentBody);
Button button1 = new Button () {
X = Application.GetRealWidth (20),
Height = Application.GetRealHeight (66),
Width = Application.GetRealWidth (66),
UnSelectedImagePath = "Item/OnePort.png",
SelectedImagePath = "Item/OnePortSelected.png",
Gravity = Gravity.CenterVertical,
};
OnePortBusFrameLayout.AddChidren (button1);
Button textButton1 = new Button () {
X = Application.GetRealWidth (20) + button1.Right,
Height = Application.GetRealHeight (41),
Width = Application.GetRealWidth (400),
Gravity = Gravity.CenterVertical,
TextAlignment = TextAlignment.CenterLeft,
TextID = R.MyInternationalizationString.OfflineDevice
};
OnePortBusFrameLayout.AddChidren (textButton1);
Button downSelectedButton1 = new Button () {
Height = Application.GetRealHeight (46),
Width = Application.GetRealWidth (47),
UnSelectedImagePath = "Item/Down.png",
SelectedImagePath = "Item/DownSelected.png",
Gravity = Gravity.CenterVertical,
IsSelected = true,
};
downSelectedButton1.X = OnePortBusFrameLayout.Width - downSelectedButton1.Width - Application.GetRealWidth (20);
OnePortBusFrameLayout.AddChidren (downSelectedButton1);
EventHandler eHandler = (sender, e) => {
downSelectedButton1.IsSelected = !downSelectedButton1.IsSelected;
if (downSelectedButton1.IsSelected) {
busEquipmentBody.Height = Convert.ToInt32 (busEquipmentBody.Tag);
} else {
busEquipmentBody.Height = 0;
}
};
downSelectedButton1.MouseUpEventHandler += eHandler;
button1.MouseUpEventHandler += eHandler;
textButton1.MouseUpEventHandler += eHandler;
#endregion
int count = 0;
int equipmentHeight = 0;
foreach (var offlineDevice in offlineDeviceList) {
string localFileType = offlineDevice.Split ('_') [1];
byte [] equipmentUsefullBytes = IO.FileUtils.ReadFile (offlineDevice);
string equipmentString;
Common common = null;
//设备界面要显示的设备,必须在这里添加显示
equipmentString = CommonPage.MyEncodingUTF8.GetString (equipmentUsefullBytes);
common = Newtonsoft.Json.JsonConvert.DeserializeObject (equipmentString);
if (common == null) {
continue;
}
if (common.isMixBox) {
hideListCommon.Add (common);
} else {
RowLayout frameLayout = new RowLayout () {
Height = Application.GetRealHeight (131),
};
frameLayout.Y = count++ * frameLayout.Height;
busEquipmentBody.AddChidren (frameLayout);
Button btnDelFile = new Button () {
TextID = R.MyInternationalizationString.Del,
BackgroundColor = SkinStyle.Current.DelColor
};
btnDelFile.MouseUpEventHandler += (sender, e) => {
Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.TipDeleteEquipmentMessage)
, Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
alert.Show ();
alert.ResultEventHandler += (object sender1, bool e1) => {
if (e1) {
IO.FileUtils.DeleteFile (offlineDevice);
ShowEquipmentBase ();
}
};
};
frameLayout.AddRightView (btnDelFile);
busEquipmentBody.Height += Application.GetRealHeight (131);
equipmentHeight += Application.GetRealHeight (131);
busEquipmentBody.Tag = equipmentHeight;
Button pointButton = new Button () {
Width = Application.GetRealHeight (13),
Height = Application.GetRealHeight (13),
X = Application.GetRealWidth (40),
UnSelectedImagePath = "Item/Point.png",
SelectedImagePath = "Item/PointSelected.png",
Gravity = Gravity.CenterVertical,
};
frameLayout.AddChidren (pointButton);
Button btnName = new Button () {
Width = Application.GetRealWidth (642),
Height = LayoutParams.MatchParent,
Text = common.Name,
TextAlignment = TextAlignment.CenterLeft,
X = pointButton.Right + Application.GetRealWidth (20),
};
frameLayout.AddChidren (btnName);
Button btnNul = new Button () {
Y = Application.GetRealHeight (131) - 2,
Height = 1,
BackgroundColor = SkinStyle.Current.MainColor,
};
frameLayout.AddChidren (btnNul);
Button btnNull = new Button () {
Y = Application.GetRealHeight (131) - 1,
Height = 1,
BackgroundColor = 0xFF2f2f2f
};
frameLayout.AddChidren (btnNull);
}
}
}
}
}
}