From 97e259d966cb5cb5d73c105d5dbaadcc1f920614 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 18 十月 2019 13:48:43 +0800
Subject: [PATCH] 合并了全部的代码
---
ZigbeeApp/Shared/Phone/Device/Category/Category.cs | 1433 ++++++++++++++++++++++++++++++-----------------------------
1 files changed, 727 insertions(+), 706 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
index 0c0e063..0aa8117 100755
--- a/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
+++ b/ZigbeeApp/Shared/Phone/Device/Category/Category.cs
@@ -36,9 +36,13 @@
/// </summary>
private ButtonLineForm automationBtn;
/// <summary>
- /// 涓儴鑳屾櫙bodyView
+ /// 鍦烘櫙鍔熻兘涓儴鑳屾櫙bodyView
/// </summary>
public FrameLayout functionSceneBodyView;
+ /// <summary>
+ /// 涓儴鑳屾櫙bodyView
+ /// </summary>
+ public FrameLayout functionSceneAutoBodyView;
/// <summary>
/// 鐩稿悓鐨勮澶囧垪琛�
/// </summary>
@@ -539,6 +543,7 @@
/// <param name="selectedBtn">閫変腑閭d釜鐣岄潰 0--鍔熻兘 1--鍦烘櫙 2--鑷姩鍖� </param>
public void Show(int selectedBtn = 1)
{
+
ZbGateway.StatusList.Add(this);
RemoveAll();
@@ -639,76 +644,13 @@
functionSceneAutoBG.AddChidren(selectFloorBtn);
}
- var roomFL = new HorizontalScrolViewLayout()
+ functionSceneAutoBodyView = new FrameLayout
{
- X= Application.GetRealWidth(CommonFormResouce.X_Left),
Y = functionSceneAutoBG.Bottom,
- Height = Application.GetRealHeight(167),
- Width=Application.GetRealWidth(CommonPage.AppRealWidth-CommonFormResouce.X_Left),
+ Height = Application.GetRealHeight(1423),
BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
};
- midFL.AddChidren(roomFL);
-
- Button curBtn = new Button();
- for(int i=0;i<Config.Instance.Home.RoomFilePathList.Count;i++)
- {
- var roomFilePath = Config.Instance.Home.RoomFilePathList[i];
- var room = Shared.Common.Room.GetRoomByFilePath(roomFilePath);
- if (room == null)
- {
- continue;
- }
- var row = new RowLayout()
- {
- Width = Application.GetRealWidth(187+50),
- Height = Application.GetRealHeight(167),
- LineColor= ZigbeeColor.Current.GXCGrayBackgroundColor
- };
- roomFL.AddChidren(row);
-
- var roomBtn = new Button()
- {
- Width = Application.GetRealWidth(187),
- Height = Application.GetRealHeight(78),
- Radius=(uint)Application.GetRealHeight(78/2),
- Gravity = Gravity.Center,
- Text=room.Name,
- TextColor=ZigbeeColor.Current.GXCTextGrayColor,
- SelectedTextColor=ZigbeeColor.Current.GXCTextWhiteColor,
- BackgroundColor=ZigbeeColor.Current.GXCButtonUnSelectedColor3,
- SelectedBackgroundColor=ZigbeeColor.Current.GXCButtonSelectedColor,
- BorderColor=ZigbeeColor.Current.GXCBorderUnSelectedColor,
- BorderWidth=1
- };
- row.AddChidren(roomBtn);
- if(Shared.Common.Room.CurrentRoom.FileName==roomFilePath)
- {
- roomBtn.IsSelected = true;
- curBtn = roomBtn;
- }
-
- roomBtn.MouseUpEventHandler += (sender, e) =>
- {
- if ((sender as Button) == curBtn)
- {
- return;
- }
- (sender as Button).IsSelected = true;
- curBtn.IsSelected = false;
- curBtn = (sender as Button);
- Shared.Common.Room.CurrentRoom = room;
- };
- }
-
-
- //鍔熻兘鍜屽満鏅痓odyView
- functionSceneBodyView = new FrameLayout()
- {
- Y = roomFL.Bottom,
- Height = Application.GetRealHeight(CommonPage.AppRealHeight - CommonPage.TabbarHeight) - functionBtn.Height - topView.Height - roomFL.Height - CommonPage.LineHeight,
- BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
- };
- midFL.AddChidren(functionSceneBodyView);
+ midFL.AddChidren(functionSceneAutoBodyView);
if (selectedBtn == 0)
{
@@ -763,10 +705,11 @@
{
var floors = new SelectFloor ();
AddChidren(floors);
- floors.Init(599,357);
+ floors.Init(599,357,Direction.Right);
floors.FloorAction += (floorName) =>
{
floorBtn.Text = floorName;
+ RefreshBodyView();
};
}
@@ -843,12 +786,6 @@
var scene = new CategoryAddScene();
UserView.HomePage.Instance.AddChidren(scene);
UserView.HomePage.Instance.PageIndex += 1;
- CategoryAddScene.sceneTargetDevicesList?.Clear();
- CategoryAddScene.SceneText = "";
- CategoryAddScene.CurrentRoom = Shared.Common.Room.CurrentRoom;
- CategoryAddScene.ModifySceneUI = null;
- CategoryAddScene.Modify = false;
- CategoryAddScene.ImagePath = "Scene/Scene0.png";
scene.Show();
}
@@ -875,7 +812,7 @@
/// </summary>
public void RefreshBodyView()
{
- functionSceneBodyView.RemoveAll();
+ functionSceneAutoBodyView.RemoveAll();
if (functionBtn.IsSelected)
{
ShowFunction();
@@ -898,590 +835,7 @@
/// </summary>
public void ShowFunction()
{
- //绉婚櫎鐩戝惉
- RemoveAllUpdateControlDeviceStatuAction();
- //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙�
- Shared.Common.Room.GetAllRoomDeviceUIList();
- Shared.Common.Room.GetAllRoomDeviceTypeList();
- if (Common.Room.AllRoomDeviceUIList == null)
- {
- return;
- }
- if (Common.Room.AllRoomDeviceUIList.Count == 0)
- {
- ShowNoFunctionTip();
- }
- else
- {
- functionTypeScrowView = new HorizontalScrolViewLayout
- {
- X=Application.GetRealWidth(CommonFormResouce.X_Left),
- Height = Application.GetRealHeight(279),
- Width = Application.GetRealWidth(1028),
- BackgroundColor=ZigbeeColor.Current.GXCBackgroundColor
- };
- functionSceneBodyView.AddChidren(functionTypeScrowView);
-
- deviceListScrolView = new VerticalScrolViewLayout
- {
- X = Application.GetRealWidth(CommonFormResouce.X_Left),
- Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50),
- Width = Application.GetRealWidth(1028),
- Height = functionSceneBodyView.Height - Application.GetRealHeight(279+50) - 1,
- BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
-
- };
- functionSceneBodyView.AddChidren(deviceListScrolView);
- tempFunctionTypeBtn = new FunctionButton();
-
- foreach (var deviceType in Common.Room.AllRoomDeviceTypeList)
- {
- typeRowLayout = new RowLayout()
- {
- Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5),
- LineColor = ZigbeeColor.Current.GXCBackgroundColor,
- Tag = deviceType
- };
- functionTypeScrowView.AddChidren(typeRowLayout);
-
- functionTypeIMG = new FunctionButton()
- {
- Tag = deviceType
- };
- functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType));
- functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType));
- typeRowLayout.AddChidren(functionTypeIMG);
-
-
- functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction;
- functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction;
- functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction;
-
- if (deviceType == Shared.Common.Room.AllRoomDeviceUIList[0].CommonDevice.Type)
- {
- ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
- }
- }
- }
- }
-
- /// <summary>
- /// 鏄剧ず鐩稿悓绫诲瀷鐨勫姛鑳�
- /// </summary>
- /// <param name="typeSender">typeSender.</param>
- /// <param name="mouseEventArgs">The ${ParameterType} instance containing the event data.</param>
- private void ShowSameTypeFunction(object typeSender, MouseEventArgs mouseEventArgs)
- {
- //閫夋嫨鍔熻兘--鐩存帴浠庢埧闂寸殑devicelist涓幏鍙�
- Shared.Common.Room.GetAllRoomDeviceUIList();
- tempFunctionTypeBtn.IsSelected = false;
- tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton;
- ((typeSender as Button).Parent as FunctionButton).IsSelected = true;
-
- deviceListScrolView.RemoveAll();
-
- var sameTypeList = new List<DeviceUI> { };
- foreach (var devieceUI in Common.Room.AllRoomDeviceUIList)
- {
- if (devieceUI == null || devieceUI.CommonDevice == null)
- {
- continue;
- }
- if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString())
- {
- if (!sameTypeList.Contains(devieceUI))
- {
- sameTypeList.Add(devieceUI);
- }
- }
- }
- foreach (var deviceUI in sameTypeList)
- {
- //鍒犻櫎璁惧
- EventHandler<MouseEventArgs> delEvent = (delSender, delE) =>
- {
- var alert = new CustomAlert();
- AddChidren(alert);
- alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
- alert.ResultEventHandler += (e2) =>
- {
- if (e2)
- {
- Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
- deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
- sameTypeList.Remove(deviceUI);
- if (sameTypeList.Count == 0)
- {
- RefreshBodyView();
- }
- }
- };
- };
- EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) =>
- {
- var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
- UserView.HomePage.Instance.AddChidren(detailInfo);
- UserView.HomePage.Instance.PageIndex += 1;
- detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
- detailInfo.action = RefreshBodyView;
- };
-
- if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
- {
- //鐏�
- var light = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
- //琛ヤ笂闈炶繙绋�
- if (light.Gateway == null)
- {
- continue;
- }
- if (light.Gateway.IsVirtual)
- {
- UserHomeView.ReadStatus(light, () =>
- {
- light.ReadOnOffStatus();
- light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- });
- }
- else
- {
- //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵��
- if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
- {
- light.ReadOnOffStatus();
- light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- }
- }
-
- var deviceTypeRowLayout = new RowLayout()
- {
- Height = Application.GetRealHeight(127+35),
- LineColor = ZigbeeColor.Current.GXCBackgroundColor,
- Tag = deviceUI
- };
- deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
- var deviceRow = new FunctionRow(0, 35);
- deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
- deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetStatu(light.IsOnline == 1);
- deviceTypeRowLayout.AddChidren(deviceRow);
-
-
- deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
- {
- zbGateway = deviceUI.CommonDevice.Gateway;
- sendedControlCommand = false;
- zbGateway.ReportAction += UpdateDeviceControllStatu;
- AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
- (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
- if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
- {
- light.SwitchControl(1);
- }
- else
- {
- light.SwitchControl(0);
- }
- //鎺у埗寤舵椂鍥炶皟
- DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
- {
- if (Parent == null)
- {
- return;
- }
- RemoveUpdateControlDeviceStatuAction(zbGateway);
- if (sendedControlCommand == false)
- {
- DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
- }
- });
- };
-
- var editBtn = new CommonForm.RowLayoutEditButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(editBtn);
- editBtn.MouseUpEventHandler += deviceDetailHandler;
-
- var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(delBtn);
- delBtn.MouseUpEventHandler += delEvent;
- }
- else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
- {
- //绌烘皵寮�鍏�
- var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
- //琛ヤ笂闈炶繙绋�
- if (airSwitch.Gateway == null)
- {
- continue;
- }
- if (airSwitch.Gateway.IsVirtual)
- {
- UserHomeView.ReadStatus(airSwitch, () =>
- {
- airSwitch.ReadOnOffStatus();
- airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- });
- }
- else
- {
- if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
- {
- airSwitch.ReadOnOffStatus();
- airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- }
- }
-
- var deviceTypeRowLayout = new RowLayout()
- {
- Height = Application.GetRealHeight(127 + 35),
- LineColor = ZigbeeColor.Current.GXCBackgroundColor,
- Tag = deviceUI
- };
- deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
- var deviceRow = new FunctionRow(0, 35);
- deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
- deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetStatu(airSwitch.IsOnline == 1);
- deviceTypeRowLayout.AddChidren(deviceRow);
-
- deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
- {
- zbGateway = deviceUI.CommonDevice.Gateway;
- sendedControlCommand = false;
- zbGateway.ReportAction += UpdateDeviceControllStatu;
- AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
- (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
- if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
- {
- airSwitch.SwitchControl(1);
- }
- else
- {
- airSwitch.SwitchControl(0);
- }
- //鎺у埗寤舵椂鍥炶皟
- DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
- {
- if (Parent == null)
- {
- return;
- }
- RemoveUpdateControlDeviceStatuAction(zbGateway);
- if (sendedControlCommand == false)
- {
- DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
- }
- });
- };
-
- var editBtn = new CommonForm.RowLayoutEditButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(editBtn);
- editBtn.MouseUpEventHandler += deviceDetailHandler;
-
- var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(delBtn);
- delBtn.MouseUpEventHandler += delEvent;
- }
- else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
- {
- //璋冨厜鐏�
- var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
- //琛ヤ笂闈炶繙绋�
- if (dimmableLight.Gateway == null)
- {
- continue;
- }
- if (dimmableLight.Gateway.IsVirtual)
- {
- UserHomeView.ReadStatus(dimmableLight, () =>
- {
- dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- dimmableLight.ReadOnOffStatus();
- dimmableLight.ReadLevel();
- });
- }
- else
- {
- if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
- {
- dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- dimmableLight.ReadOnOffStatus();
- dimmableLight.ReadLevel();
- }
- }
-
- var deviceTypeRowLayout = new RowLayout()
- {
- Height = Application.GetRealHeight(127 + 35),
- LineColor = ZigbeeColor.Current.GXCBackgroundColor,
- Tag = deviceUI
- };
- deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
- var deviceRow = new FunctionRow(0, 35);
- deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
- deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetStatu(dimmableLight.IsOnline == 1);
- deviceTypeRowLayout.AddChidren(deviceRow);
-
- deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
- {
- zbGateway = deviceUI.CommonDevice.Gateway;
- sendedControlCommand = false;
- zbGateway.ReportAction += UpdateDeviceControllStatu;
- AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
- (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
- if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
- {
- dimmableLight.SwitchControl(1);
- }
- else
- {
- dimmableLight.SwitchControl(0);
- }
- //鎺у埗寤舵椂鍥炶皟
- DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
- {
- if (Parent == null)
- {
- return;
- }
- RemoveUpdateControlDeviceStatuAction(zbGateway);
- if (sendedControlCommand == false)
- {
- DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
- }
- });
- };
-
- var editBtn = new CommonForm.RowLayoutEditButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(editBtn);
- editBtn.MouseUpEventHandler += deviceDetailHandler;
-
- var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(delBtn);
- delBtn.MouseUpEventHandler += delEvent;
-
- }
- else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
- {
- //绌鸿皟
- var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
- //琛ヤ笂闈炶繙绋�
- if (ac.Gateway == null)
- {
- continue;
- }
- if (ac.Gateway.IsVirtual)
- {
- //鍙戦�佽鍙栫姸鎬佸懡浠�
- UserView.UserHomeView.ReadStatus(ac, () =>
- {
- ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- ac.ReadFanMode();
- ac.ReadSystemMode();
- ac.ReadLocalTemperature();
- ac.ReadCoolingSetpoint();
- ac.ReadHeatingSetpoint();
- });
- }
- else
- {
- //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵��
- if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
- {
- ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- ac.ReadFanMode();
- ac.ReadSystemMode();
- ac.ReadLocalTemperature();
- ac.ReadCoolingSetpoint();
- ac.ReadHeatingSetpoint();
- }
- }
-
- var deviceTypeRowLayout = new RowLayout()
- {
- Height = Application.GetRealHeight(127 + 35),
- LineColor = ZigbeeColor.Current.GXCBackgroundColor,
- Tag = deviceUI
- };
- deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
- var deviceRow = new FunctionRow(0, 35);
- deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
- deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetStatu(ac.IsOnline == 1);
- deviceTypeRowLayout.AddChidren(deviceRow);
-
- deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
- {
- zbGateway = deviceUI.CommonDevice.Gateway;
- sendedControlCommand = false;
- zbGateway.ReportAction += UpdateDeviceControllStatu;
- AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
- (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
- if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
- {
- ac.Open();
- }
- else
- {
- ac.Close();
- }
- //鎺у埗寤舵椂鍥炶皟
- DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
- {
- if (Parent == null)
- {
- return;
- }
- RemoveUpdateControlDeviceStatuAction(zbGateway);
- if (sendedControlCommand == false)
- {
- DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
- }
- });
- };
-
- var editBtn = new CommonForm.RowLayoutEditButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(editBtn);
- editBtn.MouseUpEventHandler += deviceDetailHandler;
-
- var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(delBtn);
- delBtn.MouseUpEventHandler += delEvent;
- }
- else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
- {
- //鍗峰笜
- var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
- //涓嶄笂闈炶繙绋�
- if (rollerShade.Gateway == null)
- {
- continue;
- }
- if (rollerShade.Gateway.IsVirtual)
- {
- UserHomeView.ReadStatus(rollerShade, () =>
- {
- rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- });
- }
- else
- {
- //闃叉鐭椂闂村唴澶氭璇诲彇
- if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
- {
- rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
- }
- }
-
-
- var deviceTypeRowLayout = new RowLayout()
- {
- Height = Application.GetRealHeight(127 + 35),
- LineColor = ZigbeeColor.Current.GXCLineColor,
- Tag = deviceUI
- };
- deviceListScrolView.AddChidren(deviceTypeRowLayout);
-
- var deviceRow = new FunctionRow(0, 35);
- deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
- deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
- deviceRow.SetStatu(rollerShade.IsOnline == 1);
- deviceTypeRowLayout.AddChidren(deviceRow);
-
- var editBtn = new CommonForm.RowLayoutEditButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(editBtn);
- editBtn.MouseUpEventHandler += deviceDetailHandler;
-
- var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
- {
- Tag = deviceUI,
- Radius = 0
- };
- deviceTypeRowLayout.AddRightView(delBtn);
- delBtn.MouseUpEventHandler += delEvent;
-
-
- deviceRow.SwitchBtn.MouseUpEventHandler += (sender, e) =>
- {
- zbGateway = deviceUI.CommonDevice.Gateway;
- sendedControlCommand = false;
- zbGateway.ReportAction += UpdateDeviceControllStatu;
- AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
-
- (sender as CommonForm.SelectedStatuButton).IsSelected = !(sender as CommonForm.SelectedStatuButton).IsSelected;
- if ((sender as CommonForm.SelectedStatuButton).IsSelected)
- {
- rollerShade.CurtainUpDownStopControl(0);
- }
- else
- {
- rollerShade.CurtainUpDownStopControl(1);
- }
-
- //鎺у埗寤舵椂鍥炶皟
- DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
- {
- if (Parent == null)
- {
- return;
- }
- RemoveUpdateControlDeviceStatuAction(zbGateway);
- if (sendedControlCommand == false)
- {
- DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
- }
- });
- };
- }
- else
- {
-
- }
- }
+ AddRoomView();
}
/// <summary>
@@ -1505,13 +859,681 @@
Height = Application.GetRealHeight(200),
Width = Application.GetRealWidth(700),
Gravity = Gravity.CenterHorizontal,
- TextID = R.MyInternationalizationString.NoFunction,
- //Text = "娌℃湁鍔熻兘 \n 璇峰湪涓汉涓績涓�--璁惧绠$悊澶勬坊鍔�",
+ Text = Language.StringByID(R.MyInternationalizationString.NoFunction).Replace("{\\r\\n}","\r\n"),
TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
TextAlignment = TextAlignment.Center,
IsMoreLines=true
};
functionSceneBodyView.AddChidren(noFunctionTip);
+ }
+
+ /// <summary>
+ /// RefreshFunction
+ /// </summary>
+ /// <param name="room"></param>
+ private void RefreshFunction(Common.Room room)
+ {
+ //绉婚櫎鐩戝惉
+ RemoveAllUpdateControlDeviceStatuAction();
+ functionSceneBodyView.RemoveAll();
+
+ if (room.DeviceUIList.Count == 0)
+ {
+ ShowNoFunctionTip();
+ }
+ else
+ {
+ functionTypeScrowView = new HorizontalScrolViewLayout
+ {
+ X = Application.GetRealWidth(CommonFormResouce.X_Left),
+ Height = Application.GetRealHeight(279),
+ Width = Application.GetRealWidth(1028),
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+ };
+ functionSceneBodyView.AddChidren(functionTypeScrowView);
+
+ deviceListScrolView = new VerticalScrolViewLayout
+ {
+ X = Application.GetRealWidth(CommonFormResouce.X_Left),
+ Y = functionTypeScrowView.Bottom + Application.GetRealHeight(50),
+ Width = Application.GetRealWidth(1028),
+ Height = functionSceneBodyView.Height - Application.GetRealHeight(279 + 50) - 1,
+ BackgroundColor = ZigbeeColor.Current.GXCBackgroundColor
+
+ };
+ functionSceneBodyView.AddChidren(deviceListScrolView);
+ tempFunctionTypeBtn = new FunctionButton();
+
+ EventHandler<MouseEventArgs> ShowSameTypeFunction = (object typeSender, MouseEventArgs mouseEventArgs) =>
+ {
+ tempFunctionTypeBtn.IsSelected = false;
+ tempFunctionTypeBtn = (typeSender as Button).Parent as FunctionButton;
+ ((typeSender as Button).Parent as FunctionButton).IsSelected = true;
+
+ deviceListScrolView.RemoveAll();
+
+ var sameTypeList = new List<DeviceUI> { };
+ foreach (var devieceUI in room.DeviceUIList)
+ {
+ if (devieceUI == null || devieceUI.CommonDevice == null)
+ {
+ continue;
+ }
+ if (devieceUI.CommonDevice.Type.ToString() == (typeSender as Button).Tag.ToString())
+ {
+ if (!sameTypeList.Contains(devieceUI))
+ {
+ sameTypeList.Add(devieceUI);
+ }
+ }
+ }
+ foreach (var deviceUI in sameTypeList)
+ {
+ //鍒犻櫎璁惧
+ EventHandler<MouseEventArgs> delEvent = (delSender, delE) =>
+ {
+ var alert = new CustomAlert();
+ AddChidren(alert);
+ alert.Show(Language.StringByID(R.MyInternationalizationString.ConfirmDelete));
+ alert.ResultEventHandler += (e2) =>
+ {
+ if (e2)
+ {
+ Shared.Common.Room.CurrentRoom.DeleteDevice(deviceUI.CommonDevice);
+ deviceListScrolView.RemoveViewByTag((delSender as Button).Tag);
+ sameTypeList.Remove(deviceUI);
+ if (sameTypeList.Count == 0)
+ {
+ RefreshBodyView();
+ }
+ }
+ };
+ };
+ EventHandler<MouseEventArgs> deviceDetailHandler = (send2, e2) =>
+ {
+ var detailInfo = new Device.CommonForm.DeviceDetailInfo { };
+ UserView.HomePage.Instance.AddChidren(detailInfo);
+ UserView.HomePage.Instance.PageIndex += 1;
+ detailInfo.Show(deviceUI, Shared.Common.Room.CurrentRoom);
+ detailInfo.action = RefreshBodyView;
+ };
+
+ if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.OnOffOutput)
+ {
+ //鐏�
+ var light = deviceUI.CommonDevice as ZigBee.Device.ToggleLight;
+ //琛ヤ笂闈炶繙绋�
+ if (light.Gateway == null)
+ {
+ continue;
+ }
+ if (light.Gateway.IsVirtual)
+ {
+ UserHomeView.ReadStatus(light, () =>
+ {
+ light.ReadOnOffStatus();
+ light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ });
+ }
+ else
+ {
+ //闃叉鐭椂闂村唴澶氭璇诲彇鐘舵��
+ if (CommonPage.ReadDeviceStatuSpan < (DateTime.Now - light.LastDateTime).TotalSeconds)
+ {
+ light.ReadOnOffStatus();
+ light.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ }
+ }
+
+ var deviceTypeRowLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(127 + 35),
+ LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+ Tag = deviceUI
+ };
+ deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+ var deviceRow = new FunctionRow(0, 35);
+ deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+ deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+ deviceRow.SetStatu(light.IsOnline == 1);
+ deviceTypeRowLayout.AddChidren(deviceRow);
+
+
+ deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
+ {
+ zbGateway = deviceUI.CommonDevice.Gateway;
+ sendedControlCommand = false;
+ zbGateway.ReportAction += UpdateDeviceControllStatu;
+ AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+ (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
+ if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
+ {
+ light.SwitchControl(1);
+ }
+ else
+ {
+ light.SwitchControl(0);
+ }
+ //鎺у埗寤舵椂鍥炶皟
+ DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+ {
+ if (Parent == null)
+ {
+ return;
+ }
+ RemoveUpdateControlDeviceStatuAction(zbGateway);
+ if (sendedControlCommand == false)
+ {
+ DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+ }
+ });
+ };
+
+ var editBtn = new CommonForm.RowLayoutEditButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(editBtn);
+ editBtn.MouseUpEventHandler += deviceDetailHandler;
+
+ var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(delBtn);
+ delBtn.MouseUpEventHandler += delEvent;
+ }
+ else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.AirSwitch)
+ {
+ //绌烘皵寮�鍏�
+ var airSwitch = deviceUI.CommonDevice as ZigBee.Device.AirSwitch;
+ //琛ヤ笂闈炶繙绋�
+ if (airSwitch.Gateway == null)
+ {
+ continue;
+ }
+ if (airSwitch.Gateway.IsVirtual)
+ {
+ UserHomeView.ReadStatus(airSwitch, () =>
+ {
+ airSwitch.ReadOnOffStatus();
+ airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ });
+ }
+ else
+ {
+ if ((DateTime.Now - airSwitch.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+ {
+ airSwitch.ReadOnOffStatus();
+ airSwitch.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ }
+ }
+
+ var deviceTypeRowLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(127 + 35),
+ LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+ Tag = deviceUI
+ };
+ deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+ var deviceRow = new FunctionRow(0, 35);
+ deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+ deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+ deviceRow.SetStatu(airSwitch.IsOnline == 1);
+ deviceTypeRowLayout.AddChidren(deviceRow);
+
+ deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
+ {
+ zbGateway = deviceUI.CommonDevice.Gateway;
+ sendedControlCommand = false;
+ zbGateway.ReportAction += UpdateDeviceControllStatu;
+ AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+
+ (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
+ if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
+ {
+ airSwitch.SwitchControl(1);
+ }
+ else
+ {
+ airSwitch.SwitchControl(0);
+ }
+ //鎺у埗寤舵椂鍥炶皟
+ DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+ {
+ if (Parent == null)
+ {
+ return;
+ }
+ RemoveUpdateControlDeviceStatuAction(zbGateway);
+ if (sendedControlCommand == false)
+ {
+ DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+ }
+ });
+ };
+
+ var editBtn = new CommonForm.RowLayoutEditButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(editBtn);
+ editBtn.MouseUpEventHandler += deviceDetailHandler;
+
+ var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(delBtn);
+ delBtn.MouseUpEventHandler += delEvent;
+ }
+ else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.DimmableLight)
+ {
+ //璋冨厜鐏�
+ var dimmableLight = deviceUI.CommonDevice as ZigBee.Device.DimmableLight;
+ //琛ヤ笂闈炶繙绋�
+ if (dimmableLight.Gateway == null)
+ {
+ continue;
+ }
+ if (dimmableLight.Gateway.IsVirtual)
+ {
+ UserHomeView.ReadStatus(dimmableLight, () =>
+ {
+ dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ dimmableLight.ReadOnOffStatus();
+ dimmableLight.ReadLevel();
+ });
+ }
+ else
+ {
+ if ((DateTime.Now - dimmableLight.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+ {
+ dimmableLight.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ dimmableLight.ReadOnOffStatus();
+ dimmableLight.ReadLevel();
+ }
+ }
+
+ var deviceTypeRowLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(127 + 35),
+ LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+ Tag = deviceUI
+ };
+ deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+ var deviceRow = new FunctionRow(0, 35);
+ deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+ deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+ deviceRow.SetStatu(dimmableLight.IsOnline == 1);
+ deviceTypeRowLayout.AddChidren(deviceRow);
+
+ deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
+ {
+ zbGateway = deviceUI.CommonDevice.Gateway;
+ sendedControlCommand = false;
+ zbGateway.ReportAction += UpdateDeviceControllStatu;
+ AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+
+ (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
+ if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
+ {
+ dimmableLight.SwitchControl(1);
+ }
+ else
+ {
+ dimmableLight.SwitchControl(0);
+ }
+ //鎺у埗寤舵椂鍥炶皟
+ DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+ {
+ if (Parent == null)
+ {
+ return;
+ }
+ RemoveUpdateControlDeviceStatuAction(zbGateway);
+ if (sendedControlCommand == false)
+ {
+ DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+ }
+ });
+ };
+
+ var editBtn = new CommonForm.RowLayoutEditButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(editBtn);
+ editBtn.MouseUpEventHandler += deviceDetailHandler;
+
+ var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(delBtn);
+ delBtn.MouseUpEventHandler += delEvent;
+
+ }
+ else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.Thermostat)
+ {
+ //绌鸿皟
+ var ac = deviceUI.CommonDevice as ZigBee.Device.AC;
+ //琛ヤ笂闈炶繙绋�
+ if (ac.Gateway == null)
+ {
+ continue;
+ }
+ if (ac.Gateway.IsVirtual)
+ {
+ //鍙戦�佽鍙栫姸鎬佸懡浠�
+ UserView.UserHomeView.ReadStatus(ac, () =>
+ {
+ ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ ac.ReadFanMode();
+ ac.ReadSystemMode();
+ ac.ReadLocalTemperature();
+ ac.ReadCoolingSetpoint();
+ ac.ReadHeatingSetpoint();
+ });
+ }
+ else
+ {
+ //闃叉鐭椂闂村唴澶氭璇诲彇璁惧鐘舵��
+ if ((DateTime.Now - ac.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+ {
+ ac.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ ac.ReadFanMode();
+ ac.ReadSystemMode();
+ ac.ReadLocalTemperature();
+ ac.ReadCoolingSetpoint();
+ ac.ReadHeatingSetpoint();
+ }
+ }
+
+ var deviceTypeRowLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(127 + 35),
+ LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+ Tag = deviceUI
+ };
+ deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+ var deviceRow = new FunctionRow(0, 35);
+ deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+ deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+ deviceRow.SetStatu(ac.IsOnline == 1);
+ deviceTypeRowLayout.AddChidren(deviceRow);
+
+ deviceRow.SwitchBtn.MouseUpEventHandler += (send2, e2) =>
+ {
+ zbGateway = deviceUI.CommonDevice.Gateway;
+ sendedControlCommand = false;
+ zbGateway.ReportAction += UpdateDeviceControllStatu;
+ AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+
+ (send2 as CommonForm.SelectedStatuButton).IsSelected = !(send2 as CommonForm.SelectedStatuButton).IsSelected;
+ if ((send2 as CommonForm.SelectedStatuButton).IsSelected)
+ {
+ ac.Open();
+ }
+ else
+ {
+ ac.Close();
+ }
+ //鎺у埗寤舵椂鍥炶皟
+ DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+ {
+ if (Parent == null)
+ {
+ return;
+ }
+ RemoveUpdateControlDeviceStatuAction(zbGateway);
+ if (sendedControlCommand == false)
+ {
+ DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+ }
+ });
+ };
+
+ var editBtn = new CommonForm.RowLayoutEditButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(editBtn);
+ editBtn.MouseUpEventHandler += deviceDetailHandler;
+
+ var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(delBtn);
+ delBtn.MouseUpEventHandler += delEvent;
+ }
+ else if (deviceUI.CommonDevice.Type == ZigBee.Device.DeviceType.WindowCoveringDevice)
+ {
+ //鍗峰笜
+ var rollerShade = deviceUI.CommonDevice as ZigBee.Device.Rollershade;
+ //涓嶄笂闈炶繙绋�
+ if (rollerShade.Gateway == null)
+ {
+ continue;
+ }
+ if (rollerShade.Gateway.IsVirtual)
+ {
+ UserHomeView.ReadStatus(rollerShade, () =>
+ {
+ rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ });
+ }
+ else
+ {
+ //闃叉鐭椂闂村唴澶氭璇诲彇
+ if ((DateTime.Now - rollerShade.LastDateTime).TotalSeconds > CommonPage.ReadDeviceStatuSpan)
+ {
+ rollerShade.ReadAttri(Cluster_ID.Identify, AttriButeId.Switch);
+ }
+ }
+
+
+ var deviceTypeRowLayout = new RowLayout()
+ {
+ Height = Application.GetRealHeight(127 + 35),
+ LineColor = ZigbeeColor.Current.GXCLineColor,
+ Tag = deviceUI
+ };
+ deviceListScrolView.AddChidren(deviceTypeRowLayout);
+
+ var deviceRow = new FunctionRow(0, 35);
+ deviceRow.Init(deviceUI.IconPath, deviceUI.OnlineIconPath);
+ deviceRow.SetTitle(deviceUI.CommonDevice.DeviceEpointName);
+ deviceRow.SetStatu(rollerShade.IsOnline == 1);
+ deviceTypeRowLayout.AddChidren(deviceRow);
+
+ var editBtn = new CommonForm.RowLayoutEditButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(editBtn);
+ editBtn.MouseUpEventHandler += deviceDetailHandler;
+
+ var delBtn = new Device.CommonForm.RowLayoutDeleteButton()
+ {
+ Tag = deviceUI,
+ Radius = 0
+ };
+ deviceTypeRowLayout.AddRightView(delBtn);
+ delBtn.MouseUpEventHandler += delEvent;
+
+
+ deviceRow.SwitchBtn.MouseUpEventHandler += (sender, e) =>
+ {
+ zbGateway = deviceUI.CommonDevice.Gateway;
+ sendedControlCommand = false;
+ zbGateway.ReportAction += UpdateDeviceControllStatu;
+ AddZbGateway(zbGatewayList, zbGateway, commonDeviceList, deviceUI.CommonDevice);
+
+ (sender as CommonForm.SelectedStatuButton).IsSelected = !(sender as CommonForm.SelectedStatuButton).IsSelected;
+ if ((sender as CommonForm.SelectedStatuButton).IsSelected)
+ {
+ rollerShade.CurtainUpDownStopControl(0);
+ }
+ else
+ {
+ rollerShade.CurtainUpDownStopControl(1);
+ }
+
+ //鎺у埗寤舵椂鍥炶皟
+ DeviceUI.SendCommandDelayAction(deviceUI.CommonDevice, () =>
+ {
+ if (Parent == null)
+ {
+ return;
+ }
+ RemoveUpdateControlDeviceStatuAction(zbGateway);
+ if (sendedControlCommand == false)
+ {
+ DeviceUI.ShowStatuTip(R.MyInternationalizationString.FAIL);
+ }
+ });
+ };
+ }
+ else
+ {
+
+ }
+ }
+ };
+
+ foreach (var deviceType in Common.Room.GetdeviceTypes(room))
+ {
+ typeRowLayout = new RowLayout()
+ {
+ Width = Application.GetRealWidth(CommonPage.AppRealWidth / 5),
+ LineColor = ZigbeeColor.Current.GXCBackgroundColor,
+ Tag = deviceType
+ };
+ functionTypeScrowView.AddChidren(typeRowLayout);
+
+ functionTypeIMG = new FunctionButton()
+ {
+ Tag = deviceType
+ };
+ functionTypeIMG.Init(DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType), DeviceUI.GetDeviceTypeUnSelectedImagePath(deviceType));
+ functionTypeIMG.SetTitle(DeviceUI.GetDeviceTypeName(deviceType));
+ typeRowLayout.AddChidren(functionTypeIMG);
+
+
+ functionTypeIMG.ImageBtn.MouseUpEventHandler += ShowSameTypeFunction;
+ functionTypeIMG.NameBtn.MouseUpEventHandler += ShowSameTypeFunction;
+ functionTypeIMG.ImageBG.MouseUpEventHandler += ShowSameTypeFunction;
+
+ if (deviceType == room.DeviceUIList[0].CommonDevice.Type)
+ {
+ ShowSameTypeFunction(functionTypeIMG.ImageBtn, null);
+ }
+
+ }
+
+
+ }
+ }
+
+ /// <summary>
+ /// AddRoomView
+ /// </summary>
+ private void AddRoomView()
+ {
+ var roomFL = new HorizontalScrolViewLayout()
+ {
+ X = Application.GetRealWidth(CommonFormResouce.X_Left),
+ Height = Application.GetRealHeight(167),
+ Width = Application.GetRealWidth(CommonPage.AppRealWidth - CommonFormResouce.X_Left),
+ BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
+ };
+ functionSceneAutoBodyView.AddChidren(roomFL);
+
+ //鍔熻兘鍜屽満鏅痓odyView
+ functionSceneBodyView = new FrameLayout()
+ {
+ Y = roomFL.Bottom,
+ Height = Application.GetRealHeight(1316),
+ BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor
+ };
+ functionSceneAutoBodyView.AddChidren(functionSceneBodyView);
+
+ Button curBtn = new Button();
+ foreach (var room in Common.Room.CurrentRoom.GetRoomsByCurrentFloorIdAppendLoveRoom())
+ {
+ var row = new RowLayout()
+ {
+ Width = Application.GetRealWidth(187 + 50),
+ Height = Application.GetRealHeight(167),
+ LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor
+ };
+ roomFL.AddChidren(row);
+
+ var roomBtn = new Button()
+ {
+ Width = Application.GetRealWidth(187),
+ Height = Application.GetRealHeight(78),
+ Radius = (uint)Application.GetRealHeight(78 / 2),
+ Gravity = Gravity.Center,
+ Text = room.Name,
+ TextColor = ZigbeeColor.Current.GXCTextGrayColor,
+ SelectedTextColor = ZigbeeColor.Current.GXCTextWhiteColor,
+ BackgroundColor = ZigbeeColor.Current.GXCButtonUnSelectedColor3,
+ SelectedBackgroundColor = ZigbeeColor.Current.GXCButtonSelectedColor,
+ BorderColor = ZigbeeColor.Current.GXCBorderUnSelectedColor,
+ BorderWidth = 1
+ };
+ row.AddChidren(roomBtn);
+ if (room.IsLove)
+ {
+ roomBtn.IsSelected = true;
+ curBtn = roomBtn;
+
+ if(sceneBtn.IsSelected)
+ {
+ RefreshScene(room);
+ }
+ else
+ {
+ RefreshFunction(room);
+ }
+
+ }
+ roomBtn.MouseUpEventHandler += (sender, e) =>
+ {
+ if ((sender as Button) == curBtn)
+ {
+ return;
+ }
+ (sender as Button).IsSelected = true;
+ curBtn.IsSelected = false;
+ curBtn = sender as Button;
+ if (sceneBtn.IsSelected)
+ {
+ RefreshScene(room);
+ }
+ else
+ {
+ RefreshFunction(room);
+ }
+ };
+ }
+
}
#endregion
@@ -1522,15 +1544,16 @@
/// </summary>
public void ShowScene()
{
- //鍒锋柊鍦烘櫙
- //var reFreshResult=await Shared.Common.Room.RefreshSceneUIList();
- Shared.Common.SceneRoomUI.GetAllSceneRoomUIList();
- if (SceneRoomUI.AllSceneRoomUIList == null)
- {
- return;
- }
- var sceneList = SceneRoomUI.AllSceneRoomUIList;
- Shared.Common.Room.GetAllRoomDeviceUIList();
+ AddRoomView();
+ }
+
+ /// <summary>
+ /// RefreshScene
+ /// </summary>
+ /// <param name="room"></param>
+ public void RefreshScene(Common.Room room)
+ {
+ var sceneList = room.SceneUIList;
if (sceneList.Count == 0)
{
ShowNoSceneTip();
@@ -1539,24 +1562,22 @@
{
var sceneScrolView = new VerticalScrolViewLayout
{
- Y=Application.GetRealHeight(58)
+ Y = Application.GetRealHeight(58)
};
functionSceneBodyView.AddChidren(sceneScrolView);
- foreach (var sceneRoomUI in sceneList)
+ foreach (var scene in sceneList)
{
var sceneFL = new FrameLayout()
{
Height = Application.GetRealHeight(446),
- Gravity = Gravity.CenterHorizontal,
BackgroundColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
- Tag = sceneRoomUI
+ Tag = scene
};
sceneScrolView.AddChidren(sceneFL);
- var sceneRowLayout = new RowLayout()
+ var sceneRowLayout = new RowLayout
{
Y = Application.GetRealHeight(46),
Height = Application.GetRealHeight(446 - 46),
- Gravity = Gravity.CenterHorizontal,
LineColor = ZigbeeColor.Current.GXCGrayBackgroundColor,
Radius = CommonPage.BigFormRadius
};
@@ -1564,33 +1585,34 @@
var sceneImg = new Button()
{
- X=Application.GetRealWidth(179),
- Width=Application.GetMinReal(844),
- Height=Application.GetMinReal(400),
- Gravity = Gravity.CenterVertical,
- UnSelectedImagePath = sceneRoomUI.sceneUI.IconPath,
- Radius = (uint)Application.GetRealHeight(CommonFormResouce.BigFormRadius)
+ X = Application.GetRealWidth(179),
+ Width = Application.GetRealWidth(844),
+ Height = Application.GetRealHeight(400),
+ BackgroundColor = ZigbeeColor.Current.GXCRedColor,
+ UnSelectedImagePath = scene.IconPath,
+ Radius = (uint)Application.GetRealHeight(17)
};
sceneRowLayout.AddChidren(sceneImg);
var leftFL = new FrameLayout
{
- X=Application.GetRealWidth(CommonFormResouce.X_Left),
+ X = Application.GetRealWidth(CommonFormResouce.X_Left),
+ Y = Application.GetRealHeight(58),
Width = Application.GetRealWidth(251),
Height = Application.GetRealHeight(282),
- Gravity=Gravity.CenterVertical,
- BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2
+ BackgroundColor = ZigbeeColor.Current.GXCBlackBackgroundColor2,
+ Radius = (uint)Application.GetRealHeight(17)
};
sceneRowLayout.AddChidren(leftFL);
var collectionBtn = new Button
{
- X=Application.GetRealWidth(23),
- Y=Application.GetRealHeight(23),
- Width=Application.GetMinRealAverage(65),
- Height=Application.GetMinRealAverage(65),
- UnSelectedImagePath="Item/Collection.png",
- SelectedImagePath="Item/CollectionSelected.png"
+ X = Application.GetRealWidth(23),
+ Y = Application.GetRealHeight(23),
+ Width = Application.GetMinRealAverage(65),
+ Height = Application.GetMinRealAverage(65),
+ UnSelectedImagePath = "Item/Collection.png",
+ SelectedImagePath = "Item/CollectionSelected.png"
};
leftFL.AddChidren(collectionBtn);
@@ -1599,9 +1621,9 @@
Width = Application.GetRealWidth(176),
Height = Application.GetRealHeight(200),
TextColor = ZigbeeColor.Current.GXCTextWhiteColor,
- Text = sceneRoomUI.sceneUI.Name,
+ Text = scene.Name,
Gravity = Gravity.Center,
- IsMoreLines=true
+ IsMoreLines = true
};
leftFL.AddChidren(sceneNameBtn);
@@ -1609,36 +1631,35 @@
var delayBtn = new RowLayoutDeleteButton
{
TextID = R.MyInternationalizationString.Delay,
- Tag = sceneRoomUI.sceneUI.SceneDelayTime
+ Tag = scene.SceneDelayTime
};
sceneRowLayout.AddLeftView(delayBtn);
//缂栬緫
var settingBtn = new Device.CommonForm.RowLayoutEditButton()
{
- TextID=R.MyInternationalizationString.Setting,
- Tag = sceneRoomUI.sceneUI.SceneDelayTime
+ TextID = R.MyInternationalizationString.Setting,
+ Tag = scene.SceneDelayTime
};
//鍒犻櫎
var deleteBtn = new Device.CommonForm.RowLayoutDeleteButton
{
- Tag = sceneRoomUI
+ Tag = scene
};
- if (!sceneRoomUI.room.IsSharedRoom)
+ if (!room.IsSharedRoom)
{
sceneRowLayout.AddRightView(settingBtn);
sceneRowLayout.AddRightView(deleteBtn);
}
//璋冪敤鍦烘櫙
-
EventHandler<MouseEventArgs> sceneUpHandler = async (sender, e) =>
{
//1鎴愬姛 0澶辫触
//鍚庨潰琛ヤ笂鐩稿叧鎻愮ず
//瑕佸厛浠庣綉鍏宠鍙栧欢鏃舵槸鍚︽鍦ㄦ墽琛岋紝濡傛灉鏄繘琛屽�掕鏃讹紝涓嶅厑璁稿湪鐐瑰嚮
- var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(sceneRoomUI.sceneUI.Id, sceneRoomUI.sceneUI.SceneDelayTime);
+ var sceneOpenAllData = await ZigBee.Device.Scene.ControlSceneAsync(scene.Id, scene.SceneDelayTime);
//涓荤綉鍏充笉鍦ㄧ嚎
if (sceneOpenAllData == null)
{
@@ -1678,7 +1699,7 @@
if (e1)
{
//0 绉婚櫎澶辫触 1 绉婚櫎鎴愬姛 2 娌℃湁璇ュ満鏅�
- var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(sceneRoomUI.sceneUI.Id);
+ var removeSceneAllData = await ZigBee.Device.Scene.DeleteSceneAsync(scene.Id);
if (removeSceneAllData == null || removeSceneAllData.removeSceneData == null)
{
//CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine);
@@ -1688,7 +1709,7 @@
//1鎴愬姛
if (removeSceneAllData.removeSceneData.Result == 1)
{
- sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI);
+ room.RemoveScene(scene);
//RefreshBodyView();
sceneScrolView.RemoveViewByTag((sender as Button).Tag);
}
@@ -1701,7 +1722,7 @@
//2 娌℃湁璇ュ満鏅�
else if (removeSceneAllData.removeSceneData.Result == 2)
{
- sceneRoomUI.room.RemoveScene(sceneRoomUI.sceneUI);
+ room.RemoveScene(scene);
//RefreshBodyView();
sceneScrolView.RemoveViewByTag((sender as Button).Tag);
CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheSceneIsNull);
@@ -1714,7 +1735,7 @@
//缂栬緫鍦烘櫙
settingBtn.MouseUpEventHandler += (sender, e) =>
{
- SceneRoomUI.EditScene(sceneRoomUI.sceneUI, sceneRoomUI.room);
+ SceneRoomUI.EditScene(scene,room);
};
//缂栬緫寤舵椂
delayBtn.MouseUpEventHandler += (sender, e) =>
@@ -1737,7 +1758,7 @@
// {
// if (ss.Id == sceneRoomUI.sceneUI.Id)
// {
- // ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]);
+ // //ss.SceneDelayTime = int.Parse(obj.Split(' ')[0]);
// sceneRoomUI.room.Save();
// RefreshBodyView();
// return;
@@ -1770,7 +1791,7 @@
Height = Application.GetRealHeight(200),
Width = Application.GetRealWidth(700),
Gravity = Gravity.CenterHorizontal,
- TextID = R.MyInternationalizationString.NoScene,
+ Text = Language.StringByID(R.MyInternationalizationString.NoScene).Replace("{\\r\\n}","\r\n"),
TextColor = ZigbeeColor.Current.GXCPlaceHolderTextColor,
TextAlignment = TextAlignment.Center,
IsMoreLines = true
--
Gitblit v1.8.0