using System;
|
using System.Collections.Generic;
|
|
namespace Shared.SimpleControl.Phone
|
{
|
public class UserDeviceToDoorLock : FrameLayout
|
{
|
VerticalScrolViewLayout bodyScrolView;
|
VerticalScrolViewLayout equipmentListScrolView;
|
|
/// <summary>
|
///构造函数
|
/// </summary>
|
public UserDeviceToDoorLock ()
|
{
|
BackgroundColor = SkinStyle.Current.MainColor;
|
}
|
|
public override void RemoveFromParent ()
|
{
|
base.RemoveFromParent ();
|
}
|
|
/// <summary>
|
/// 添加的所有门锁列表
|
/// </summary>
|
public void ShowAllRoomDoorLock (List<string> doorLockList)
|
{
|
#region 标题
|
var topView = new FrameLayout () {
|
Y = Application.GetRealHeight (36),
|
Height = Application.GetRealHeight (90),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
};
|
AddChidren (topView);
|
|
var title = new Button () {
|
TextAlignment = TextAlignment.Center,
|
Text = Language.StringByID (R.MyInternationalizationString.DoorLock),
|
TextSize = 19,
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
topView.AddChidren (title);
|
|
var logo = new Button () {
|
Width = Application.GetRealWidth (154),
|
Height = Application.GetRealHeight (90),
|
X = Application.GetRealWidth (486),
|
UnSelectedImagePath = MainPage.LogoString,
|
};
|
topView.AddChidren (logo);
|
var back = new Button () {
|
Height = Application.GetRealHeight (90),
|
Width = Application.GetRealWidth (85),
|
UnSelectedImagePath = "Item/Back.png",
|
SelectedImagePath = "Item/BackSelected.png",
|
Gravity = Gravity.CenterVertical,
|
};
|
topView.AddChidren (back);
|
back.MouseUpEventHandler += (sender, e) => {
|
this.RemoveFromParent ();
|
};
|
#endregion
|
|
FrameLayout powerView = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
BackgroundColor = SkinStyle.Current.TitileView,
|
Y = topView.Bottom
|
};
|
AddChidren (powerView);
|
|
Button showAllDoorLock = new Button () {
|
Height = Application.GetRealHeight (108),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
TextID = R.MyInternationalizationString.DoorLockList,
|
X = Application.GetRealHeight (20),
|
};
|
powerView.AddChidren (showAllDoorLock);
|
|
#region bodyScrolView
|
bodyScrolView = new VerticalScrolViewLayout () {
|
Width = LayoutParams.MatchParent,
|
Height = Application.GetRealHeight (Application.DesignHeight - 126 - 110),
|
Y = powerView.Bottom,
|
BackgroundColor = SkinStyle.Current.ViewColor
|
};
|
AddChidren (bodyScrolView);
|
|
equipmentListScrolView = new VerticalScrolViewLayout () {
|
Height = bodyScrolView.Height - Application.GetRealHeight (110),
|
};
|
bodyScrolView.AddChidren (equipmentListScrolView);
|
|
equipmentListScrolView.RemoveAll ();
|
|
foreach (var doorLockFile in doorLockList) {
|
if (doorLockFile.Split ('_') [1] == DeviceType.DoorLock.ToString ())
|
{
|
DoorLock doorLock = Newtonsoft.Json.JsonConvert.DeserializeObject<DoorLock> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (doorLockFile)));
|
ShowDoorLockView (doorLock);
|
} else
|
{
|
LightDoorLock mLightDoorLock = Newtonsoft.Json.JsonConvert.DeserializeObject<LightDoorLock> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (doorLockFile)));
|
ShowLightDoorLockView (mLightDoorLock);
|
}
|
}
|
#endregion
|
}
|
|
private void ShowDoorLockView (DoorLock doorLock)
|
{
|
FrameLayout doorLockView = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
Tag = doorLock.ToString () + doorLock.DeviceID.ToString () + doorLock.PhysicsLoopID.ToString ()
|
};
|
equipmentListScrolView.AddChidren (doorLockView);
|
|
var btnPoint = new Button () {
|
Width = Application.GetRealWidth (10),
|
Height = Application.GetRealHeight (10),
|
X = Application.GetRealWidth (40),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Item/Point.png",
|
SelectedImagePath = "Item/Point.png",
|
};
|
doorLockView.AddChidren (btnPoint);
|
|
var tempDeviceName = new Button () {
|
Width = Application.GetRealWidth (340),
|
X = btnPoint.Right + Application.GetRealWidth (20),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
Text = doorLock.Name,
|
Tag = doorLock,
|
};
|
doorLockView.AddChidren (tempDeviceName);
|
|
var editor = new Button () {
|
Height = Application.GetRealHeight (90),
|
Width = Application.GetRealWidth (70),
|
UnSelectedImagePath = "Item/Editor.png",
|
SelectedImagePath = "Item/EditorSelected.png",
|
Gravity = Gravity.CenterVertical,
|
X = tempDeviceName.Right + Application.GetRealHeight (20),
|
};
|
doorLockView.AddChidren (editor);
|
|
editor.MouseUpEventHandler += (sender, e) => {
|
Dialog dialog = new Dialog ();
|
var dialogBodyView = new FrameLayout () {
|
Width = Application.GetRealWidth (400),
|
Height = Application.GetRealHeight (300),
|
BackgroundColor = SkinStyle.Current.DialogColor,
|
//BackgroundColor = 0xff000000,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = 0,
|
Gravity = Gravity.Center
|
};
|
dialog.AddChidren (dialogBodyView);
|
|
var btnTitle = new Button () {
|
Height = Application.GetRealHeight (80),
|
BackgroundColor = SkinStyle.Current.DialogTitle,
|
TextAlignment = TextAlignment.Center,
|
TextID = R.MyInternationalizationString.ChangeInformation
|
};
|
dialogBodyView.AddChidren (btnTitle);
|
|
var textButton = new EditText () {
|
X = Application.GetRealWidth (30),
|
Y = btnTitle.Bottom + Application.GetRealHeight (25),
|
Height = Application.GetRealHeight (80),
|
Width = Application.GetRealWidth (340),
|
Text = tempDeviceName.Text,
|
Gravity = Gravity.CenterVertical,
|
TextAlignment = TextAlignment.Center,
|
Tag = doorLock,
|
TextColor = SkinStyle.Current.TextColor,
|
BorderWidth = 1,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.BorderColor,
|
};
|
dialogBodyView.AddChidren (textButton);
|
|
var bottomView = new FrameLayout () {
|
Y = dialogBodyView.Height - Application.GetRealHeight (80),
|
Height = Application.GetRealHeight (80),
|
BackgroundColor = SkinStyle.Current.DialogTitle,
|
};
|
dialogBodyView.AddChidren (bottomView);
|
|
var btnBack = new Button () {
|
Width = Application.GetRealWidth (119),
|
UnSelectedImagePath = "Item/PositioningDialogBack.png",
|
SelectedImagePath = "Item/PositioningDialogBack.png",
|
};
|
bottomView.AddChidren (btnBack);
|
btnBack.MouseUpEventHandler += (sender1, e1) => {
|
dialog.Close ();
|
};
|
var btnLineH = new Button () {
|
Width = 1,
|
Height = LayoutParams.MatchParent,
|
BackgroundColor = SkinStyle.Current.White20Transparent,
|
X = btnBack.Right,
|
};
|
bottomView.AddChidren (btnLineH);
|
|
Button btnSave = new Button () {
|
Width = Application.GetRealWidth (280),
|
X = btnLineH.Right,
|
TextID = R.MyInternationalizationString.SAVE,
|
TextAlignment = TextAlignment.Center,
|
TextColor = SkinStyle.Current.DialogTextColor,
|
};
|
bottomView.AddChidren (btnSave);
|
btnSave.MouseUpEventHandler += (sender1, e1) => {
|
tempDeviceName.Text = textButton.Text.Trim ();
|
doorLock.Name = textButton.Text.Trim ();
|
if (doorLock.isDoorLockConverter) {
|
byte [] remakeBytes = CommonPage.MyEncodingGB2312.GetBytes (doorLock.Name);
|
System.Threading.Tasks.Task.Run (() => {
|
byte [] updateBytes = null;
|
var bigClass = doorLock.BigClass;
|
var minClass = doorLock.MinClass;
|
if (doorLock.isDoorLockConverter) {
|
bigClass = 0x0E;
|
minClass = 4;
|
}
|
|
updateBytes = Control.ControlBytesSendHasReturn (Command.ReadDeviceLoopInfo, doorLock.SubnetID, doorLock.DeviceID, new byte [] { bigClass, minClass, doorLock.LoopID });
|
if (updateBytes == null) {
|
return;
|
}
|
byte [] uBytes = new byte [20];
|
Array.Copy (remakeBytes, 0, uBytes, 0, remakeBytes.Length < 20 ? remakeBytes.Length : 20);
|
Array.Copy (uBytes, 0, updateBytes, 3, 20 < uBytes.Length ? 20 : uBytes.Length);
|
byte [] reBytes = Control.ControlBytesSendHasReturn (Command.SetDeviceLoopInfo, doorLock.SubnetID, doorLock.DeviceID, updateBytes);
|
if (reBytes != null) {
|
IO.FileUtils.SaveEquipmentMessage (doorLock, doorLock.LoopID.ToString ());
|
}
|
});
|
} else {
|
CommonPage.UpdateRemark (doorLock.SubnetID, doorLock.DeviceID, textButton.Text.Trim ());
|
IO.FileUtils.SaveEquipmentMessage (doorLock);
|
}
|
dialog.Close ();
|
};
|
dialog.Show ();
|
};
|
|
|
var btnRight = new Button () {
|
Width = Application.GetRealWidth (28),
|
Height = Application.GetRealHeight (40),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Item/Right.png",
|
SelectedImagePath = "Item/RightSelected.png",
|
X = Application.GetRealWidth (580),
|
};
|
doorLockView.AddChidren (btnRight);
|
|
EventHandler<MouseEventArgs> openDoorLockControlPageEvent = (button, mouseEventArgs) => {
|
UserDoorLock toDoorLockView = new UserDoorLock ();
|
UserMiddle.DevicePageView.AddChidren (toDoorLockView);
|
toDoorLockView.ShowDoorLockRoom (doorLock);
|
UserMiddle.DevicePageView.PageIndex = UserMiddle.DevicePageView.ChildrenCount - 1;
|
};
|
|
doorLockView.MouseUpEventHandler += openDoorLockControlPageEvent;
|
tempDeviceName.MouseUpEventHandler += openDoorLockControlPageEvent;
|
btnRight.MouseUpEventHandler += openDoorLockControlPageEvent;
|
|
Button btnRowNull = new Button () {
|
Y = Application.GetRealHeight (107),
|
Height = Application.GetRealHeight (3),
|
BackgroundColor = SkinStyle.Current.TitileView
|
};
|
doorLockView.AddChidren (btnRowNull);
|
}
|
|
private void ShowLightDoorLockView (LightDoorLock doorLock) {
|
FrameLayout doorLockView = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
Tag = doorLock.ToString () + doorLock.DeviceID.ToString () + doorLock.LoopID.ToString ()
|
};
|
equipmentListScrolView.AddChidren (doorLockView);
|
|
var btnPoint = new Button () {
|
Width = Application.GetRealWidth (10),
|
Height = Application.GetRealHeight (10),
|
X = Application.GetRealWidth (40),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Item/Point.png",
|
SelectedImagePath = "Item/Point.png",
|
};
|
doorLockView.AddChidren (btnPoint);
|
|
var tempDeviceName = new Button () {
|
Width = Application.GetRealWidth (340),
|
X = btnPoint.Right + Application.GetRealWidth (20),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
Text = doorLock.Name,
|
Tag = doorLock,
|
};
|
doorLockView.AddChidren (tempDeviceName);
|
|
var editor = new Button () {
|
Height = Application.GetRealHeight (90),
|
Width = Application.GetRealWidth (70),
|
UnSelectedImagePath = "Item/Editor.png",
|
SelectedImagePath = "Item/EditorSelected.png",
|
Gravity = Gravity.CenterVertical,
|
X = tempDeviceName.Right + Application.GetRealHeight (20),
|
};
|
doorLockView.AddChidren (editor);
|
|
editor.MouseUpEventHandler += (sender, e) => {
|
Dialog dialog = new Dialog ();
|
var dialogBodyView = new FrameLayout () {
|
Width = Application.GetRealWidth (400),
|
Height = Application.GetRealHeight (300),
|
BackgroundColor = SkinStyle.Current.DialogColor,
|
//BackgroundColor = 0xff000000,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = 0,
|
Gravity = Gravity.Center
|
};
|
dialog.AddChidren (dialogBodyView);
|
|
var btnTitle = new Button () {
|
Height = Application.GetRealHeight (80),
|
BackgroundColor = SkinStyle.Current.DialogTitle,
|
TextAlignment = TextAlignment.Center,
|
TextID = R.MyInternationalizationString.ChangeInformation
|
};
|
dialogBodyView.AddChidren (btnTitle);
|
|
var textButton = new EditText () {
|
X = Application.GetRealWidth (30),
|
Y = btnTitle.Bottom + Application.GetRealHeight (25),
|
Height = Application.GetRealHeight (80),
|
Width = Application.GetRealWidth (340),
|
Text = tempDeviceName.Text,
|
Gravity = Gravity.CenterVertical,
|
TextAlignment = TextAlignment.Center,
|
Tag = doorLock,
|
TextColor = SkinStyle.Current.TextColor,
|
BorderWidth = 1,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.BorderColor,
|
};
|
dialogBodyView.AddChidren (textButton);
|
|
var bottomView = new FrameLayout () {
|
Y = dialogBodyView.Height - Application.GetRealHeight (80),
|
Height = Application.GetRealHeight (80),
|
BackgroundColor = SkinStyle.Current.DialogTitle,
|
};
|
dialogBodyView.AddChidren (bottomView);
|
|
var btnBack = new Button () {
|
Width = Application.GetRealWidth (119),
|
UnSelectedImagePath = "Item/PositioningDialogBack.png",
|
SelectedImagePath = "Item/PositioningDialogBack.png",
|
};
|
bottomView.AddChidren (btnBack);
|
btnBack.MouseUpEventHandler += (sender1, e1) => {
|
dialog.Close ();
|
};
|
var btnLineH = new Button () {
|
Width = 1,
|
Height = LayoutParams.MatchParent,
|
BackgroundColor = SkinStyle.Current.White20Transparent,
|
X = btnBack.Right,
|
};
|
bottomView.AddChidren (btnLineH);
|
|
Button btnSave = new Button () {
|
Width = Application.GetRealWidth (280),
|
X = btnLineH.Right,
|
TextID = R.MyInternationalizationString.SAVE,
|
TextAlignment = TextAlignment.Center,
|
TextColor = SkinStyle.Current.DialogTextColor,
|
};
|
bottomView.AddChidren (btnSave);
|
btnSave.MouseUpEventHandler += (sender1, e1) => {
|
tempDeviceName.Text = textButton.Text.Trim ();
|
doorLock.Name = textButton.Text.Trim ();
|
CommonPage.UpdateRemark (doorLock.SubnetID, doorLock.DeviceID, textButton.Text.Trim ());
|
IO.FileUtils.SaveEquipmentMessage (doorLock);
|
dialog.Close ();
|
};
|
dialog.Show ();
|
};
|
|
|
|
|
var btnRight = new Button () {
|
Width = Application.GetRealWidth (28),
|
Height = Application.GetRealHeight (40),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Item/Right.png",
|
SelectedImagePath = "Item/RightSelected.png",
|
X = Application.GetRealWidth (580),
|
};
|
doorLockView.AddChidren (btnRight);
|
|
EventHandler<MouseEventArgs> openDoorLockControlPageEvent = (button, mouseEventArgs) => {
|
|
DoorLockRelayPage mDoorLockRelayPage = new DoorLockRelayPage(doorLock);
|
UserMiddle.DevicePageView.AddChidren (mDoorLockRelayPage);
|
mDoorLockRelayPage.showmLightDoorLocksRoom();
|
|
UserMiddle.DevicePageView.PageIndex = UserMiddle.DevicePageView.ChildrenCount - 1;
|
};
|
|
doorLockView.MouseUpEventHandler += openDoorLockControlPageEvent;
|
tempDeviceName.MouseUpEventHandler += openDoorLockControlPageEvent;
|
btnRight.MouseUpEventHandler += openDoorLockControlPageEvent;
|
|
Button btnRowNull = new Button () {
|
Y = Application.GetRealHeight (107),
|
Height = Application.GetRealHeight (3),
|
BackgroundColor = SkinStyle.Current.TitileView
|
};
|
doorLockView.AddChidren (btnRowNull);
|
}
|
|
}
|
}
|