From 737c036a39176fd2085ce82b7c60391da8cb508c Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 31 十二月 2019 19:17:47 +0800
Subject: [PATCH] 合并了代码
---
ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs | 985 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 888 insertions(+), 97 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
index 9763cd1..2c2c8f8 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/CategoryAddScene.cs
@@ -36,7 +36,7 @@
/// </summary>
private string ImagePath="SceneIcon/1.png";
/// <summary>
- /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱
+ /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱
/// </summary>
public int IconPathType = 0;
/// <summary>
@@ -59,7 +59,7 @@
/// <summary>
/// backGround
/// </summary>
- private Button backGround;
+ private ImageView backGround;
/// <summary>
/// 鏄惁淇敼
@@ -77,6 +77,21 @@
/// modifyRoom
/// </summary>
public Common.Room modifyRoom;
+
+ /// <summary>
+ /// OldBackgroundImagePath
+ /// </summary>
+ private string OldBackgroundImagePath;
+ /// <summary>
+ /// OldIconPathType
+ /// </summary>
+ public int OldIconPathType;
+
+ /// <summary>
+ /// selectedTimeAction
+ /// </summary>
+ public Action<SceneTargetDeviceUI> selectedAction;
+
#endregion
@@ -151,7 +166,7 @@
targetRow.SetNameText(devNameText);
targetRow.SetZoneText(targetDevice.SceneUI.GetZone());
}
-
+
var editBtn = new Button()
{
BackgroundColor = ZigbeeColor.Current.GXCEditBackGroundColor,
@@ -178,7 +193,6 @@
//璁惧璇︾粏璁剧疆鐣岄潰
void detailMouseUpEventHandler(object sender, MouseEventArgs e)
{
- //璁惧
if (targetDevice.Type == 0)
{
if (targetDevice.DeviceUI == null || targetDevice.DeviceUI.CommonDevice == null)
@@ -186,13 +200,8 @@
return;
}
- var deviceView = new SelectDevice();
- UserView.HomePage.Instance.AddChidren(deviceView);
- UserView.HomePage.Instance.PageIndex += 1;
- deviceView.sceneTargetDevice = targetDevice;
- deviceView.deviceUI = targetDevice.DeviceUI;
- deviceView.Show();
- deviceView.selectedAction = (selectedDevice) =>
+ ShowSelectAction(targetDevice.DeviceUI, targetDevice);
+ selectedAction = (selectedDevice) =>
{
var targetDeviceUI = sceneTargetDevicesList.Find((obj) => obj.SceneTargetDeviceUIID == selectedDevice.SceneTargetDeviceUIID);
if (targetDeviceUI != null)
@@ -204,7 +213,6 @@
};
}
- //鏃堕棿闂撮殧
else if (targetDevice.Type == 2)
{
var delayTimeView = new SelectDelayTime();
@@ -223,7 +231,6 @@
RefreshTargetListView();
};
}
- //鍦烘櫙
else if (targetDevice.Type == 1)
{
var sceneView = new SelectScene();
@@ -231,6 +238,7 @@
UserView.HomePage.Instance.PageIndex += 1;
sceneView.sceneTargetDevice = targetDevice;
sceneView.sceneUI = targetDevice.SceneUI;
+ sceneView.currentSceneUI = modifySceneUI;
sceneView.Show();
sceneView.selectedAction = (selectedScene) =>
{
@@ -245,8 +253,17 @@
};
}
}
-
-
+ }
+
+ if (sceneTargetDevicesList.Count > 1)
+ {
+ var targetRowLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(300),
+ LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ TargetListScrolView.AddChidren(targetRowLayout);
}
}
}
@@ -270,16 +287,7 @@
/// </summary>
private void Init()
{
- //foreach (var floor in Config.Instance.Home.FloorDics)
- //{
- // floorIds.Add(floor.Key);
- // floorNames.Add(floor.Value);
- // if(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count>0)
- // {
- // roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key));
- // rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key));
- // }
- //}
+
}
/// <summary>
@@ -324,14 +332,13 @@
};
bodyFrameLayout.AddChidren(imgFL);
- backGround = new Button()
+ backGround = new ImageView()
{
Width = Application.GetMinRealAverage(930),
Height = Application.GetMinRealAverage(464),
Gravity = Gravity.Center,
Radius = (uint)Application.GetMinRealAverage(CommonFormResouce.BigFormRadius),
- //UnSelectedImagePath = ImagePath
- UnSelectedImagePath = "SceneIcon/3.jpg"
+ ImagePath = "SceneIcon/3.jpg"
};
imgFL.AddChidren(backGround);
backGround.SetViewShadow(true);
@@ -352,7 +359,8 @@
TextID = R.MyInternationalizationString.EditInfo,
TextColor = ZigbeeColor.Current.GXCTextDeepBlackColor,
TextAlignment = TextAlignment.CenterLeft,
- TextSize = 14
+ TextSize = 15,
+ IsBold=true
};
infoFL.AddChidren(infoEdit);
@@ -399,7 +407,8 @@
TextAlignment = TextAlignment.CenterLeft,
TextColor = ZigbeeColor.Current.GXCTextBlackColor,
TextID = R.MyInternationalizationString.AddScentTargetAction,
- Gravity = Gravity.CenterVertical
+ Gravity = Gravity.CenterVertical,
+ TextSize=15
};
addTargetFL.AddChidren(target);
@@ -421,24 +430,42 @@
};
addTargetFL.AddChidren(targetLine);
- //娣诲姞鐩爣鍚庣殑灞曠ず鍒楄〃
TargetListScrolView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(49+127),
Height = Application.GetRealHeight(730-127-49),
- //BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
};
targetFL.AddChidren(TargetListScrolView);
confirmBtn = new CommonForm.CompleteButton(1656, 907, 127);
+ confirmBtn.TextID = R.MyInternationalizationString.Next;
AddChidren(confirmBtn);
- if(isModify)
+ if (isModify)
{
- backGround.UnSelectedImagePath = modifySceneUI.IconPath;
- nameRow.SetTitle(modifySceneUI.Name);
- zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}");
IconPathType = modifySceneUI.IconPathType;
+ OldIconPathType = modifySceneUI.IconPathType;
+ if (IconPathType != 0)
+ {
+ OldBackgroundImagePath = modifySceneUI.IconPath;
+ }
+ if (modifySceneUI.IconPathType == 0)
+ {
+ backGround.ImagePath = modifySceneUI.IconPath;
+ }
+ else
+ {
+ backGround.ImagePath = System.IO.Path.Combine(Config.Instance.FullPath, modifySceneUI.IconPath);
+ }
+ nameRow.SetTitle(modifySceneUI.Name);
+ if (Config.Instance.Home.FloorDics.Count == 0)
+ {
+ zoneRow.SetTitle($"{modifyRoom.Name}");
+ }
+ else
+ {
+ zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(modifyRoom.FloorId)},{modifyRoom.Name}");
+ }
curRoom = modifyRoom;
sceneTargetDevicesList.AddRange(modifySceneTargetDevicesList);
}
@@ -447,7 +474,6 @@
#region event
- //閫夋嫨鑳屾櫙鍥�
EventHandler<MouseEventArgs> backGroundIMGHander = (sender, e) =>
{
if (curRoom != null && curRoom.IsSharedRoom)
@@ -470,24 +496,25 @@
Height = Application.GetRealHeight(450),
Width = Application.GetRealWidth(selectRow_Width),
Gravity = Gravity.CenterHorizontal,
- Radius = (uint)Application.GetRealHeight(17),
+ Radius = (uint)Application.GetRealHeight(35),
BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
};
selectFL.AddChidren(itemFL);
- itemFL.Animate = Animate.DownToUp;
+ //itemFL.Animate = Animate.DownToUp;
var selectLocalPicture = new Button()
{
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.LocalPicture,
- TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+ TextSize=17
};
itemFL.AddChidren(selectLocalPicture);
var selectLocalLine = new Button()
{
Y = selectLocalPicture.Bottom,
Height = 1,
- BackgroundColor = ZigbeeColor.Current.GXCLineColor
+ BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
itemFL.AddChidren(selectLocalLine);
@@ -496,14 +523,15 @@
Y = selectLocalLine.Bottom,
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.Photograph,
- TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+ TextSize=17
};
itemFL.AddChidren(selectPhotographBtn);
var selectPhotographLine = new Button()
{
Y = selectPhotographBtn.Bottom,
Height = 1,
- BackgroundColor = ZigbeeColor.Current.GXCLineColor,
+ BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
};
itemFL.AddChidren(selectPhotographLine);
@@ -512,7 +540,8 @@
Y = selectPhotographLine.Bottom,
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.MyAblums,
- TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+ TextSize=17
};
itemFL.AddChidren(selectAblumsBtn);
@@ -525,7 +554,8 @@
TextID = R.MyInternationalizationString.Cancel,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
- Radius = (uint)Application.GetRealHeight(17)
+ Radius = (uint)Application.GetRealHeight(35),
+ TextSize=17
};
selectFL.AddChidren(cancelBtn);
@@ -540,52 +570,52 @@
{
IconPathType = 0;
backGround.ImageBytes = null;
- backGround.UnSelectedImagePath = imgPath;
+ backGround.ImagePath = imgPath;
};
};
selectPhotographBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
- var fileName = $"Scene_{tradeTime}";
+ var fileName = $"SceneIcon_{tradeTime}";
//閫氳繃鐩告満鎷嶇収瑁佸壀
CropImage.TakePicture((imagePath) =>
- {
+ {
if (isModify)
{
if (IconPathType != 0)
{
- Global.DeleteFilebyHomeId(backGround.UnSelectedImagePath);
+ Global.DeleteFilebyHomeId(backGround.ImagePath);
}
}
IconPathType = 1;
backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
- backGround.UnSelectedImagePath = imagePath;
+ backGround.ImagePath = imagePath;
System.IO.File.Delete(imagePath);
-
+
}, fileName, 2, 1);
};
-
+
selectAblumsBtn.MouseUpEventHandler += (send, ee) =>
{
selectFL.RemoveFromParent();
var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
- var fileName = $"Scene_{tradeTime}";
+ var fileName = $"SceneIcon_{tradeTime}";
//浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
CropImage.SelectPicture((imagePath) =>
- {
+ {
if (isModify)
{
if (IconPathType != 0)
{
- Global.DeleteFilebyHomeId(backGround.UnSelectedImagePath);
+ Global.DeleteFilebyHomeId(backGround.ImagePath);
}
}
IconPathType = 2;
backGround.ImageBytes = Shared.IO.FileUtils.ReadFile(imagePath);
- backGround.UnSelectedImagePath = imagePath;
+ backGround.ImagePath = imagePath;
System.IO.File.Delete(imagePath);
}, fileName, 2,1);
@@ -615,10 +645,11 @@
{
foreach (var floor in Config.Instance.Home.FloorDics)
{
- floorIds.Add(floor.Key);
- floorNames.Add(floor.Value);
if (Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key).Count > 0)
{
+ floorIds.Add(floor.Key);
+ floorNames.Add(floor.Value);
+
roomNames.Add(Common.Room.CurrentRoom.GetRoomNamesByFloorId(floor.Key));
rooms.Add(Common.Room.CurrentRoom.GetRoomsByFloorId(floor.Key));
}
@@ -627,7 +658,7 @@
{
curRoom = rooms[index1][index2];
zoneRow.SetTitle($"{Config.Instance.Home.GetFloorNameById(floorIds[index1])} , {rooms[index1][index2].Name}");
- }, 0, 0, Language.StringByID(R.MyInternationalizationString.BelongFloor),
+ }, 0, 0, Language.StringByID(R.MyInternationalizationString.BelongZone),
Language.StringByID(R.MyInternationalizationString.Confrim),
Language.StringByID(R.MyInternationalizationString.Cancel));
}
@@ -647,7 +678,7 @@
{
curRoom = rs[index1];
zoneRow.SetTitle(rs[index1].Name);
- }, 0, Language.StringByID(R.MyInternationalizationString.BelongFloor),
+ }, 0, Language.StringByID(R.MyInternationalizationString.BelongZone),
Language.StringByID(R.MyInternationalizationString.Confrim),
Language.StringByID(R.MyInternationalizationString.Cancel));
}
@@ -658,15 +689,18 @@
EventHandler<MouseEventArgs> targetAddHander = (sender, e) =>
{
- if (curRoom == null)
+ //if (curRoom == null)
+ //{
+ // RoomCommon.ShowTipNoRoom();
+ // return;
+ //}
+ if(curRoom != null)
{
- RoomCommon.ShowTipNoRoom();
- return;
- }
- if (curRoom.IsSharedRoom)
- {
- RoomCommon.ShowTipRoomIsShared();
- return;
+ if (curRoom.IsSharedRoom)
+ {
+ RoomCommon.ShowTipRoomIsShared();
+ return;
+ }
}
int selectRow_Height = 150;
@@ -683,24 +717,25 @@
Height = Application.GetRealHeight(450),
Width = Application.GetRealWidth(selectRow_Width),
Gravity=Gravity.CenterHorizontal,
- Radius = (uint)Application.GetRealHeight(17),
+ Radius = (uint)Application.GetRealHeight(35),
BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor
};
selectFL.AddChidren(itemFL);
- itemFL.Animate = Animate.DownToUp;
+ //itemFL.Animate = Animate.DownToUp;
var selectedFunctionBtn = new Button()
{
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.Function,
- TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+ TextSize=17
};
itemFL.AddChidren(selectedFunctionBtn);
var selectedFunctionLine = new Button()
{
Y = selectedFunctionBtn.Bottom,
Height = 1,
- BackgroundColor = ZigbeeColor.Current.GXCLineColor
+ BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
};
itemFL.AddChidren(selectedFunctionLine);
@@ -709,14 +744,15 @@
Y = selectedFunctionLine.Bottom,
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.Scence,
- TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+ TextSize=17
};
itemFL.AddChidren(selectedSceneBtn);
var selectedSceneLine = new Button()
{
Y = selectedSceneBtn.Bottom,
Height = 1,
- BackgroundColor = ZigbeeColor.Current.GXCLineColor,
+ BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2,
};
itemFL.AddChidren(selectedSceneLine);
@@ -725,7 +761,8 @@
Y = selectedSceneLine.Bottom,
Height = Application.GetRealHeight(selectRow_Height) - 1,
TextID = R.MyInternationalizationString.Delay,
- TextColor = ZigbeeColor.Current.GXCTextSelectedColor4
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
+ TextSize=17
};
itemFL.AddChidren(selectedTimerBtn);
@@ -739,7 +776,8 @@
TextID = R.MyInternationalizationString.Cancel,
TextColor = ZigbeeColor.Current.GXCTextSelectedColor4,
BackgroundColor = ZigbeeColor.Current.GXCTextWhiteColor,
- Radius = (uint)Application.GetRealHeight(17)
+ Radius = (uint)Application.GetRealHeight(35),
+ TextSize=17
};
selectFL.AddChidren(cancelBtn);
@@ -766,13 +804,14 @@
UserView.HomePage.Instance.AddChidren(sceneView);
UserView.HomePage.Instance.PageIndex += 1;
sceneView.beforeSceneTargetDeviceUIs = sceneTargetDevicesList;
+ sceneView.currentSceneUI = modifySceneUI;
sceneView.Show();
sceneView.selectedAction = (selectedScene) =>
{
sceneTargetDevicesList.Add(selectedScene);
RefreshTargetListView();
};
-
+
};
//娣诲姞鏃堕棿闂撮殧
selectedTimerBtn.MouseUpEventHandler += (send, ee) =>
@@ -832,44 +871,42 @@
try
{
var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
- var fileName = $"Scene_{tradeTime}";
- //鏀瑰悕
+ var fileName = $"SceneIcon_{tradeTime}";
if (modifySceneUI.Name != nameRow.NameText.Text.Trim())
{
if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
{
- Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist);
+ CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneHadExist));
return;
}
- //淇敼鍚嶅瓧
var r = await ZigBee.Device.Scene.RenameSceneAsync(modifySceneUI.Id, nameRow.NameText.Text.Trim());
var reName = r.sceneRenameResponseData.Result;
if (reName == 0)
{
- //澶辫触
return;
}
else if (reName == 1)
{
- //鎴愬姛
modifySceneUI.Name = nameRow.NameText.Text.Trim();
}
else if (reName == 2)
{
- //娌℃湁璇ュ満鏅�
return;
}
}
- //鍥剧墖
- if(IconPathType==1 || IconPathType ==2)
+ if (OldIconPathType != 0)
+ {
+ Shared.IO.FileUtils.DeleteFile(System.IO.Path.Combine(Config.Instance.FullPath, OldBackgroundImagePath));
+ }
+ if (IconPathType == 1 || IconPathType == 2)
{
Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
- modifySceneUI.IconPath = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
+ modifySceneUI.IconPath = fileName;
}
else
{
- modifySceneUI.IconPath = backGround.UnSelectedImagePath;
+ modifySceneUI.IconPath = backGround.ImagePath;
}
modifySceneUI.IconPathType = IconPathType;
@@ -970,7 +1007,6 @@
{
if (modifyRoom != curRoom)
{
-
modifyRoom.SceneUIList.Remove(modifySceneUI);
modifyRoom.SceneUIFilePathList.Remove(modifySceneUI.FileName);
curRoom.SceneUIList.Add(modifySceneUI);
@@ -982,12 +1018,10 @@
}
else if (result == 0)
{
- //澶辫触
Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
}
else if (result == -1)
{
- //宸插瓨鍦�
Common.CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist);
}
}
@@ -1020,15 +1054,14 @@
var tradeTime = DateTime.Now.ToString("yyyyMMddHHmmss", DateTimeFormatInfo.InvariantInfo);
var fileName = $"SceneIcon_{tradeTime}.png";
string imgPath;
- //鍥剧墖
if (IconPathType == 1 || IconPathType == 2)
{
Shared.IO.FileUtils.WriteFileByBytes(System.IO.Path.Combine(Config.Instance.FullPath, fileName), backGround.ImageBytes);
- imgPath = System.IO.Path.Combine(Config.Instance.FullPath, fileName);
+ imgPath = fileName;
}
else
{
- imgPath = backGround.UnSelectedImagePath;
+ imgPath = backGround.ImagePath;
}
if (Common.Room.CurrentRoom.GetSameFloorScenes(curRoom.FloorId).Find(s => s.Name == nameRow.NameText.Text.Trim()) != null)
{
@@ -1091,12 +1124,10 @@
}
else if (result == 0)
{
- //澶辫触
CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.AddSceneFail);
}
else if (result == -1)
{
- //宸插瓨鍦�
CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneHadExist);
}
}
@@ -1112,11 +1143,771 @@
}
}
-
};
#endregion
}
#endregion
+
+ #region 缂栬緫璁惧____________________________________
+
+ /// <summary>
+ /// ShowSelectAction
+ /// </summary>
+ /// <param name="device"></param>
+ private void ShowSelectAction(DeviceUI device, SceneTargetDeviceUI sceneTarget)
+ {
+ var dialog = new FrameLayout()
+ {
+ BackgroundColor = ZigbeeColor.Current.GXCDailogBackGroundColor
+ };
+ AddChidren(dialog);
+
+ dialog.MouseUpEventHandler += (sender, e) =>
+ {
+ dialog.RemoveFromParent();
+ };
+
+ if (device.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
+ {
+ SelectOnoffOutput(dialog, device, sceneTarget);
+ }
+ else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
+ {
+ SelectOnoffOutput(dialog, device, sceneTarget);
+ }
+ else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
+ {
+ SelectDimmableLight(dialog, device, sceneTarget);
+ }
+ else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
+ {
+ SelectWindowCoveringDevice(dialog, device, sceneTarget);
+ }
+ else if (device.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
+ {
+ SelectThermostat(dialog, device, sceneTarget);
+ }
+ }
+
+ /// <summary>
+ /// 鐏厜
+ /// </summary>
+ /// <param name="dialog"></param>
+ /// <param name="device"></param>
+ /// <param name="sceneTarget"></param>
+ private void SelectOnoffOutput(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
+ {
+ var selectFL = new FrameLayout
+ {
+ Y = Application.GetRealHeight(1391),
+ Height = Application.GetRealHeight(530),
+ };
+ dialog.AddChidren(selectFL);
+ //selectFL.Animate = Animate.DownToUp;
+
+ var titleBG = new FrameLayout
+ {
+ Height = Application.GetRealHeight(138 * 2),
+ Radius = (uint)Application.GetRealHeight(58),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ selectFL.AddChidren(titleBG);
+
+ var titleFL = new FrameLayout
+ {
+ Height = Application.GetRealHeight(138),
+ };
+ selectFL.AddChidren(titleFL);
+
+ var line = new Button
+ {
+ Y = titleFL.Height - 1,
+ Height = 1,
+ BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+ };
+ titleFL.AddChidren(line);
+
+ var cancleBtn = new Button
+ {
+ X = Application.GetRealWidth(80),
+ Width = Application.GetRealWidth(200),
+ TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextID = R.MyInternationalizationString.Cancel
+ };
+ titleFL.AddChidren(cancleBtn);
+
+ var deviceName = new Button
+ {
+ Width = Application.GetRealWidth(600),
+ Gravity = Gravity.CenterHorizontal,
+ TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+ TextSize = 16,
+ Text = device.CommonDevice.DeviceEpointName
+ };
+ titleFL.AddChidren(deviceName);
+
+ var comfrimBtn = new Button
+ {
+ X = Application.GetRealWidth(800),
+ Width = Application.GetRealWidth(200),
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterRight,
+ TextID = R.MyInternationalizationString.Complete
+ };
+ titleFL.AddChidren(comfrimBtn);
+
+ var itemFL = new FrameLayout
+ {
+ Y = titleFL.Bottom,
+ Height = Application.GetRealHeight(392),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ selectFL.AddChidren(itemFL);
+
+ var open = new SelectSceneStatuRow(0, 60);
+ itemFL.AddChidren(open);
+ open.Init();
+ open.SetTitle(R.MyInternationalizationString.Open);
+ open.IsSelected = true;
+
+
+ var shut = new SelectSceneStatuRow(0, 60 + 127 + 30);
+ itemFL.AddChidren(shut);
+ shut.Init();
+ shut.hideLine(true);
+ shut.SetTitle(R.MyInternationalizationString.Shut);
+
+ open.ClickButton.MouseUpEventHandler += (sender, e) =>
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ };
+
+ shut.ClickButton.MouseUpEventHandler += (sender, e) =>
+ {
+ open.IsSelected = false;
+ shut.IsSelected = true;
+ };
+
+ cancleBtn.MouseUpEventHandler = (sender, e) =>
+ {
+ dialog.RemoveAll();
+ dialog.RemoveFromParent();
+ };
+
+ if (sceneTarget.TaskList.Count > 0)
+ {
+ if (sceneTarget.TaskList[0].Data1 == 1)
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ }
+ else
+ {
+ open.IsSelected = false;
+ shut.IsSelected = true;
+ }
+ }
+
+ comfrimBtn.MouseUpEventHandler = (sender, e) =>
+ {
+ var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
+ int taskType = 1;
+ int data1 = 0;
+ int data2 = 0;
+
+ if (open.IsSelected)
+ {
+ //寮�
+ data1 = 1;
+ data2 = 0;
+ }
+ else
+ {
+ //鍏�
+ data1 = 0;
+ data2 = 0;
+ }
+ var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+ {
+ TaskType = taskType,
+ Data1 = data1,
+ Data2 = data2
+ };
+ taskList.Add(taskInfo);
+
+ sceneTarget.TaskList = taskList;
+ sceneTarget.DeviceUI = device;
+ selectedAction?.Invoke(sceneTarget);
+ dialog.RemoveFromParent();
+ };
+ }
+ /// <summary>
+ /// 绐楀笜
+ /// </summary>
+ /// <param name="dialog"></param>
+ /// <param name="device"></param>
+ /// <param name="sceneTarget"></param>
+ private void SelectWindowCoveringDevice(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
+ {
+ var selectFL = new FrameLayout
+ {
+ Y = Application.GetRealHeight(1169),
+ Height = Application.GetRealHeight(752),
+ };
+ dialog.AddChidren(selectFL);
+ //selectFL.Animate = Animate.DownToUp;
+
+ var titleBG = new FrameLayout
+ {
+ Height = Application.GetRealHeight(138 * 2),
+ Radius = (uint)Application.GetRealHeight(58),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ selectFL.AddChidren(titleBG);
+
+ var titleFL = new FrameLayout
+ {
+ Height = Application.GetRealHeight(138),
+ };
+ selectFL.AddChidren(titleFL);
+
+ var line = new Button
+ {
+ Y = titleFL.Height - 1,
+ Height = 1,
+ BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+ };
+ titleFL.AddChidren(line);
+
+ var cancleBtn = new Button
+ {
+ X = Application.GetRealWidth(80),
+ Width = Application.GetRealWidth(200),
+ TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextID = R.MyInternationalizationString.Cancel
+ };
+ titleFL.AddChidren(cancleBtn);
+
+ var deviceName = new Button
+ {
+ Width = Application.GetRealWidth(600),
+ Gravity = Gravity.CenterHorizontal,
+ TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+ TextSize = 16,
+ Text = device.CommonDevice.DeviceEpointName
+ };
+ titleFL.AddChidren(deviceName);
+
+ var comfrimBtn = new Button
+ {
+ X = Application.GetRealWidth(800),
+ Width = Application.GetRealWidth(200),
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterRight,
+ TextID = R.MyInternationalizationString.Complete
+ };
+ titleFL.AddChidren(comfrimBtn);
+
+ var itemFL = new FrameLayout
+ {
+ Y = titleFL.Bottom,
+ Height = Application.GetRealHeight(613),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ selectFL.AddChidren(itemFL);
+
+ var open = new SelectDeviceWithSeekBarRow(0, 60);
+ itemFL.AddChidren(open);
+ open.Init();
+ open.SetTitle(R.MyInternationalizationString.Open);
+ open.IsSelected = true;
+
+ var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
+ itemFL.AddChidren(shut);
+ shut.Init();
+ shut.hideLine(true);
+ shut.SetTitle(R.MyInternationalizationString.Shut);
+
+ open.ClickButton.MouseUpEventHandler += (sender, e) =>
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ };
+
+ shut.ClickButton.MouseUpEventHandler += (sender, e) =>
+ {
+ open.IsSelected = false;
+ shut.IsSelected = true;
+ };
+
+ cancleBtn.MouseUpEventHandler = (sender, e) =>
+ {
+ dialog.RemoveAll();
+ dialog.RemoveFromParent();
+ };
+
+ open.SeekBar.ProgressChanged += (sender, e) =>
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ open.SetSeekBarTitle();
+ };
+
+ if (sceneTarget.TaskList.Count > 0)
+ {
+ if (sceneTarget.TaskList[0].Data1 == 1)
+ {
+ open.IsSelected = false;
+ shut.IsSelected = true;
+ }
+ else
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ open.SetProgress(sceneTarget.TaskList[0].Data2);
+ }
+ }
+
+ comfrimBtn.MouseUpEventHandler = (sender, e) =>
+ {
+ var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
+
+ int taskType = 6;
+ int data1 = 0;
+ int data2 = 0;
+
+ if (shut.IsSelected)
+ {
+ //鍏�
+ data1 = 1;
+ data2 = 0;
+ }
+ else
+ {
+ //鐧惧垎姣�
+ data1 = 5;
+ data2 = open.SeekBar.Progress;
+ }
+
+ var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+ {
+ TaskType = taskType,
+ Data1 = data1,
+ Data2 = data2
+ };
+ taskList.Add(taskInfo);
+
+ sceneTarget.TaskList = taskList;
+ sceneTarget.DeviceUI = device;
+ selectedAction?.Invoke(sceneTarget);
+ dialog.RemoveFromParent();
+ };
+ }
+ /// <summary>
+ /// 璋冨厜鐏�
+ /// </summary>
+ /// <param name="dialog"></param>
+ /// <param name="device"></param>
+ /// <param name="sceneTarget"></param>
+ private void SelectDimmableLight(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
+ {
+ var selectFL = new FrameLayout
+ {
+ Y = Application.GetRealHeight(1169),
+ Height = Application.GetRealHeight(752),
+ };
+ dialog.AddChidren(selectFL);
+ //selectFL.Animate = Animate.DownToUp;
+
+ var titleBG = new FrameLayout
+ {
+ Height = Application.GetRealHeight(138 * 2),
+ Radius = (uint)Application.GetRealHeight(58),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ selectFL.AddChidren(titleBG);
+
+ var titleFL = new FrameLayout
+ {
+ Height = Application.GetRealHeight(138),
+ };
+ selectFL.AddChidren(titleFL);
+
+ var line = new Button
+ {
+ Y = titleFL.Height - 1,
+ Height = 1,
+ BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+ };
+ titleFL.AddChidren(line);
+
+ var cancleBtn = new Button
+ {
+ X = Application.GetRealWidth(80),
+ Width = Application.GetRealWidth(200),
+ TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextID = R.MyInternationalizationString.Cancel
+ };
+ titleFL.AddChidren(cancleBtn);
+
+ var deviceName = new Button
+ {
+ Width = Application.GetRealWidth(600),
+ Gravity = Gravity.CenterHorizontal,
+ TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+ TextSize = 16,
+ TextAlignment = TextAlignment.CenterLeft,
+ Text = device.CommonDevice.DeviceEpointName
+ };
+ titleFL.AddChidren(deviceName);
+
+ var comfrimBtn = new Button
+ {
+ X = Application.GetRealWidth(800),
+ Width = Application.GetRealWidth(200),
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterRight,
+ TextID = R.MyInternationalizationString.Complete
+ };
+ titleFL.AddChidren(comfrimBtn);
+
+ var itemFL = new FrameLayout
+ {
+ Y = titleFL.Bottom,
+ Height = Application.GetRealHeight(613),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ selectFL.AddChidren(itemFL);
+
+ var open = new SelectDeviceWithSeekBarRow(0, 60);
+ itemFL.AddChidren(open);
+ open.Init(254);
+ open.SetTitle(R.MyInternationalizationString.Open);
+ open.IsSelected = true;
+
+ var shut = new SelectSceneStatuRow(0, 60 + 348 + 30);
+ itemFL.AddChidren(shut);
+ shut.Init();
+ shut.hideLine(true);
+ shut.SetTitle(R.MyInternationalizationString.Shut);
+
+ open.ClickButton.MouseUpEventHandler += (sender, e) =>
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ };
+
+ shut.ClickButton.MouseUpEventHandler += (sender, e) =>
+ {
+ open.IsSelected = false;
+ shut.IsSelected = true;
+ };
+
+ cancleBtn.MouseUpEventHandler = (sender, e) =>
+ {
+ dialog.RemoveAll();
+ dialog.RemoveFromParent();
+ };
+
+ open.SeekBar.ProgressChanged += (sender, e) =>
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ open.SetSeekBarTitle();
+ };
+
+ if (sceneTarget.TaskList.Count > 0)
+ {
+ if (sceneTarget.TaskList[0].Data1 == 0)
+ {
+ open.IsSelected = false;
+ shut.IsSelected = true;
+ }
+ else
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ open.SetProgress(sceneTarget.TaskList[0].Data1);
+ }
+ }
+
+ comfrimBtn.MouseUpEventHandler = (sender, e) =>
+ {
+ var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
+
+ int taskType = 3;
+ int data1 = 0;
+ int data2 = 0;
+
+ if (shut.IsSelected)
+ {
+ //鍏�
+ data1 = 0;
+ data2 = 0;
+ }
+ else
+ {
+ //鐧惧垎姣�
+ data1 = open.SeekBar.Progress;
+ data2 = 0;
+ }
+
+ var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+ {
+ TaskType = taskType,
+ Data1 = data1,
+ Data2 = data2
+ };
+ taskList.Add(taskInfo);
+
+ sceneTarget.TaskList = taskList;
+ sceneTarget.DeviceUI = device;
+ selectedAction?.Invoke(sceneTarget);
+ dialog.RemoveFromParent();
+ };
+ }
+ /// <summary>
+ /// 绌鸿皟
+ /// </summary>
+ /// <param name="dialog"></param>
+ /// <param name="device"></param>
+ /// <param name="sceneTarget"></param>
+ private void SelectThermostat(FrameLayout dialog, DeviceUI device, SceneTargetDeviceUI sceneTarget)
+ {
+ /// 娓╁害
+ int tempId=0;
+ /// 妯″紡
+ int modelId=0;
+ /// 椋庨��
+ int fanid=0;
+
+ var selectFL = new FrameLayout
+ {
+ Y = Application.GetRealHeight(815),
+ Height = Application.GetRealHeight(1106),
+ };
+ dialog.AddChidren(selectFL);
+ //selectFL.Animate = Animate.DownToUp;
+
+ var titleBG = new FrameLayout
+ {
+ Height = Application.GetRealHeight(138 * 2),
+ Radius = (uint)Application.GetRealHeight(58),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ selectFL.AddChidren(titleBG);
+
+ var titleFL = new FrameLayout
+ {
+ Height = Application.GetRealHeight(138),
+ };
+ selectFL.AddChidren(titleFL);
+
+ var line = new Button
+ {
+ Y = titleFL.Height - 1,
+ Height = 1,
+ BackgroundColor = ZigbeeColor.Current.GXCGrayLineColor2
+ };
+ titleFL.AddChidren(line);
+
+ var cancleBtn = new Button
+ {
+ X = Application.GetRealWidth(80),
+ Width = Application.GetRealWidth(200),
+ TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterLeft,
+ TextID = R.MyInternationalizationString.Cancel
+ };
+ titleFL.AddChidren(cancleBtn);
+
+ var deviceName = new Button
+ {
+ Width = Application.GetRealWidth(600),
+ Gravity = Gravity.CenterHorizontal,
+ TextColor = ZigbeeColor.Current.GXCTextBlackColor,
+ TextSize = 16,
+ TextAlignment = TextAlignment.CenterLeft,
+ Text = device.CommonDevice.DeviceEpointName
+ };
+ titleFL.AddChidren(deviceName);
+
+ var comfrimBtn = new Button
+ {
+ X = Application.GetRealWidth(800),
+ Width = Application.GetRealWidth(200),
+ TextColor = ZigbeeColor.Current.GXCTextSelectedColor2,
+ TextSize = 14,
+ TextAlignment = TextAlignment.CenterRight,
+ TextID = R.MyInternationalizationString.Complete
+ };
+ titleFL.AddChidren(comfrimBtn);
+
+ var itemFL = new FrameLayout
+ {
+ Y = titleFL.Bottom,
+ Height = Application.GetRealHeight(968),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ selectFL.AddChidren(itemFL);
+
+ var open = new SelectDeviceWithPickViewRow(0, 60);
+ itemFL.AddChidren(open);
+ open.Init();
+ open.SetTitle(R.MyInternationalizationString.Open);
+ open.IsSelected = true;
+
+ open.pickerView.OnSelectChangeEvent = (l1, l2, l3) =>
+ {
+ tempId = l1;
+ modelId = l2;
+ fanid = l3;
+ };
+
+ var shut = new SelectSceneStatuRow(0, 60 + 703 + 30);
+ itemFL.AddChidren(shut);
+ shut.Init();
+ shut.hideLine(true);
+ shut.SetTitle(R.MyInternationalizationString.Shut);
+
+ open.ClickButton.MouseUpEventHandler += (sender, e) =>
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+ };
+
+ shut.ClickButton.MouseUpEventHandler += (sender, e) =>
+ {
+ open.IsSelected = false;
+ shut.IsSelected = true;
+ };
+
+ cancleBtn.MouseUpEventHandler = (sender, e) =>
+ {
+ dialog.RemoveAll();
+ dialog.RemoveFromParent();
+ };
+
+ if (sceneTarget.TaskList.Count > 0)
+ {
+ if (sceneTarget.TaskList.Count == 1)
+ {
+ open.IsSelected = false;
+ shut.IsSelected = true;
+ }
+ else
+ {
+ open.IsSelected = true;
+ shut.IsSelected = false;
+
+ for (int i = 0; i < sceneTarget.TaskList.Count; i++)
+ {
+ var tasklist = sceneTarget.TaskList[i];
+ if (tasklist.Data1 == 6)
+ {
+ fanid = open.fanList.IndexOf(tasklist.Data2);
+ }
+ if (tasklist.Data1 == 3)
+ {
+ modelId = open.modeList.IndexOf(tasklist.Data2);
+ }
+ if (tasklist.Data1 == 4 || tasklist.Data1 == 5)
+ {
+ tempId = open.temperatureList.IndexOf(tasklist.Data2 / 100);
+ }
+ }
+ open.pickerView.setCurrentItems(tempId, modelId, fanid);
+ }
+ }
+
+ comfrimBtn.MouseUpEventHandler = (sender, e) =>
+ {
+
+ var taskList = new List<ZigBee.Device.Scene.TaskListInfo> { };
+
+ int taskType = 5;
+ int data1 = 0;
+ int data2 = 0;
+
+ if (shut.IsSelected)
+ {
+ //鍏�
+ data1 = 3;
+ data2 = 0;
+ var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+ {
+ TaskType = taskType,
+ Data1 = data1,
+ Data2 = data2
+ };
+ taskList.Add(taskInfo);
+ }
+ else
+ {
+ //fan
+ var taskInfo = new ZigBee.Device.Scene.TaskListInfo
+ {
+ TaskType = taskType,
+ Data1 = 6,
+ Data2 = open.fanList[fanid]
+ };
+ taskList.Add(taskInfo);
+
+ //mode
+ var taskInfo2 = new ZigBee.Device.Scene.TaskListInfo
+ {
+ TaskType = taskType,
+ Data1 = 3,
+ Data2 = open.modeList[modelId]
+ };
+ taskList.Add(taskInfo2);
+
+ //tem
+ if (open.modeList[modelId] == 4)
+ {
+ //heat
+ var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
+ {
+ TaskType = taskType,
+ Data1 = 4,
+ Data2 = open.temperatureList[tempId] * 100
+ };
+ taskList.Add(taskInfo3);
+
+ }
+ else
+ {
+ //heat
+ var taskInfo3 = new ZigBee.Device.Scene.TaskListInfo
+ {
+ TaskType = taskType,
+ Data1 = 5,
+ Data2 = open.temperatureList[tempId] * 100
+ };
+ taskList.Add(taskInfo3);
+ }
+ }
+
+ sceneTarget.TaskList = taskList;
+ sceneTarget.DeviceUI = device;
+ selectedAction?.Invoke(sceneTarget);
+ dialog.RemoveFromParent();
+ };
+ }
+
+ #endregion
+
}
}
--
Gitblit v1.8.0