| | |
| | | |
| | | public void LoadPage(Action backRefresh) |
| | | { |
| | | new TopViewDiv(bodyView, Language.StringByID(StringId.EditScene)).LoadTopView(backRefresh); |
| | | var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.EditScene)); |
| | | topView.maginY = 10; |
| | | topView.LoadTopView(backRefresh); |
| | | |
| | | initPage(); |
| | | } |
| | | |
| | |
| | | |
| | | VerticalScrolViewLayout contentView = new VerticalScrolViewLayout() |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(603-50), |
| | | Y = Application.GetRealHeight(64 + 10), |
| | | Height = Application.GetRealHeight(603-50-10), |
| | | }; |
| | | bodyView.AddChidren(contentView); |
| | | contentView.AddChidren(new Button() { Height = Application.GetRealWidth(12) }); |
| | |
| | | Height = Application.GetRealHeight(8), |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }); |
| | | #endregion |
| | | |
| | | #region 组号 |
| | | //var grounpView = new FrameLayout() |
| | | //{ |
| | | // Height = Application.GetRealWidth(50), |
| | | //}; |
| | | //contentView.AddChidren(grounpView); |
| | | |
| | | //Button btnGroupTitle = new Button() |
| | | //{ |
| | | // X = Application.GetRealWidth(16), |
| | | // //Width = Application.GetRealWidth(90), |
| | | // TextAlignment = TextAlignment.CenterLeft, |
| | | // TextColor = CSS_Color.FirstLevelTitleColor, |
| | | // TextSize = CSS_FontSize.TextFontSize, |
| | | // Text = "组号" |
| | | //}; |
| | | //grounpView.AddChidren(btnGroupTitle); |
| | | |
| | | //var etGroup = new EditText() |
| | | //{ |
| | | // TextAlignment = TextAlignment.CenterRight, |
| | | // Width = Application.GetRealWidth(350), |
| | | // Text = scene.group, |
| | | // TextColor = CSS_Color.PromptingColor1, |
| | | // TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | // IsNumberKeyboardType = true |
| | | //}; |
| | | //grounpView.AddChidren(etGroup); |
| | | //etGroup.TextChangeEventHandler = (sender, e) => { |
| | | // scene.group = e; |
| | | //}; |
| | | |
| | | |
| | | //Button btnGroupLine = new Button() |
| | | //{ |
| | | // Y = Application.GetRealWidth(49), |
| | | // Gravity = Gravity.CenterHorizontal, |
| | | // Height = Application.GetRealHeight(1), |
| | | // Width = Application.GetRealWidth(343), |
| | | // BackgroundColor = CSS_Color.DividingLineColor, |
| | | //}; |
| | | //grounpView.AddChidren(btnGroupLine); |
| | | |
| | | #endregion |
| | | |
| | | #region 场景延时row |
| | |
| | | Y = Application.GetRealHeight(667 - 50), |
| | | Height = Application.GetRealHeight(50), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextColor = CSS_Color.WarningColor, |
| | | TextColor = CSS_Color.WarningColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextID = StringId.Del, |
| | | TextID = StringId.Del, |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | //IsBold = true |
| | | }; |
| | |
| | | var pack = pm.GetSceneInfo(scene.userSceneId); |
| | | if (pack.Code == StateCode.SUCCESS) |
| | | { |
| | | var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString()); |
| | | var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId); |
| | | if (tempScene != null) |
| | | if (pack.Data != null) |
| | | { |
| | | scene.functions = tempScene.functions; |
| | | var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString()); |
| | | if (sceneList != null) |
| | | { |
| | | var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId); |
| | | if (tempScene != null) |
| | | { |
| | | scene.name = tempScene.name; |
| | | scene.delay = tempScene.delay; |
| | | scene.roomIds = tempScene.roomIds; |
| | | scene.functions = tempScene.functions; |
| | | } |
| | | } |
| | | } |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | btnSceneName.Text = scene.name; |
| | | //etGroup.Text = scene.group; |
| | | LoadFunctionRow(); |
| | | waitPage.Hide(); |
| | | waitPage.RemoveFromParent(); |
| | |
| | | void LoadFunctionRow() |
| | | { |
| | | functionListView.RemoveAll(); |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | for(int i =0;i<scene.functions.Count;) |
| | | { |
| | | var scenefunction = scene.functions[i]; |
| | |
| | | scene.functions.Remove(scenefunction); |
| | | continue; |
| | | } |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | try |
| | | { |
| | | //将spk实体里面的min max值放入场景功能实体里,要不然数据会丢失 2022-06-21 16:06:45 |
| | | foreach (var tt in scenefunction.status) |
| | | { |
| | | var attr = scenefunction.localFunction.GetAttribute(tt.key); |
| | | if(attr == null) |
| | | { |
| | | continue; |
| | | } |
| | | tt.min = attr.min; |
| | | tt.max = attr.max; |
| | | tt.valueList = attr.value; |
| | | if(tt.key == FunctionAttributeKey.SetTemp) |
| | | { |
| | | var tempType = scenefunction.localFunction.GetAttribute(FunctionAttributeKey.TempType); |
| | | if(tempType != null) |
| | | { |
| | | tt.UintString = tempType.unit; |
| | | } |
| | | } |
| | | } |
| | | }catch(Exception ex) |
| | | { |
| | | MainPage.Log($"场景加载功能列表异常:{ex.Message}"); |
| | | } |
| | | |
| | | i++; |
| | | var row = new RowLayout() |
| | | { |
| | |
| | | }; |
| | | row.AddChidren(btnFunctionInfo); |
| | | |
| | | var btnFunctionDelayInfo = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(327), |
| | | Y = Application.GetRealWidth(35), |
| | | Height = Application.GetRealWidth(32), |
| | | TextAlignment = TextAlignment.TopRight, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | }; |
| | | row.AddChidren(btnFunctionDelayInfo); |
| | | |
| | | if (!string.IsNullOrEmpty(scenefunction.delay) && Convert.ToInt32( scenefunction.delay) > 0) |
| | | { |
| | | btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + new Scene() { delay = scenefunction.delay }.GetDelayText(); |
| | | } |
| | | else |
| | | { |
| | | btnFunctionDelayInfo.Text = Language.StringByID(StringId.NoDelay); |
| | | } |
| | | |
| | | var btnFunctionName = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | |
| | | }; |
| | | row.AddChidren(btnFunctionName); |
| | | |
| | | var btnFunctionFloorAndRoom = new Button() |
| | | if (scenefunction.type == "7") |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealWidth(24), |
| | | Height = Application.GetRealWidth(41), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | Text = scenefunction.localFunction.GetRoomListName(), |
| | | }; |
| | | row.AddChidren(btnFunctionFloorAndRoom); |
| | | btnFunctionName.Gravity = Gravity.CenterVertical; |
| | | btnFunctionInfo.TextAlignment = TextAlignment.CenterRight; |
| | | btnFunctionInfo.Gravity = Gravity.CenterVertical; |
| | | |
| | | EventHandler<MouseEventArgs> skipEvent = (sender, e) => |
| | | btnFunctionName.MouseUpEventHandler = (sender, e) => { |
| | | try |
| | | { |
| | | LoadAutomationSettingDialog(scenefunction, btnFunctionInfo); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | MainPage.Log($"load automation error : {ex.Message}"); |
| | | } |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction); |
| | | MainPage.BasePageView.AddChidren(ssf); |
| | | ssf.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | btnFunctionName.MouseUpEventHandler = skipEvent; |
| | | btnFunctionFloorAndRoom.MouseUpEventHandler = skipEvent; |
| | | var btnFunctionDelayInfo = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(327), |
| | | Y = Application.GetRealWidth(35), |
| | | Height = Application.GetRealWidth(32), |
| | | TextAlignment = TextAlignment.TopRight, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | }; |
| | | row.AddChidren(btnFunctionDelayInfo); |
| | | |
| | | if (!string.IsNullOrEmpty(scenefunction.delay) && Convert.ToInt32(scenefunction.delay) > 0) |
| | | { |
| | | btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + new Scene() { delay = scenefunction.delay }.GetDelayText(); |
| | | } |
| | | else |
| | | { |
| | | btnFunctionDelayInfo.Text = Language.StringByID(StringId.NoDelay); |
| | | } |
| | | |
| | | |
| | | var btnFunctionFloorAndRoom = new Button() |
| | | { |
| | | X = Application.GetRealWidth(16), |
| | | Y = Application.GetRealWidth(24), |
| | | Height = Application.GetRealWidth(41), |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | Text = scenefunction.localFunction.GetRoomListName(), |
| | | }; |
| | | row.AddChidren(btnFunctionFloorAndRoom); |
| | | |
| | | EventHandler<MouseEventArgs> skipEvent = (sender, e) => |
| | | { |
| | | var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction); |
| | | MainPage.BasePageView.AddChidren(ssf); |
| | | ssf.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | btnFunctionName.MouseUpEventHandler = skipEvent; |
| | | btnFunctionFloorAndRoom.MouseUpEventHandler = skipEvent; |
| | | btnFunctionDelayInfo.MouseUpEventHandler = skipEvent; |
| | | btnFunctionInfo.MouseUpEventHandler = skipEvent; |
| | | btnRight.MouseUpEventHandler = skipEvent; |
| | | row.MouseUpEventHandler = skipEvent; |
| | | } |
| | | |
| | | Button btnDelSceneFunction = new Button() { |
| | | BackgroundColor = CSS_Color.WarningColor, |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | /// <summary> |
| | | /// 加载自动化配置弹窗 |
| | | /// </summary> |
| | | void LoadAutomationSettingDialog(SceneFunction temp, Button btnTipText) |
| | | { |
| | | Dialog dialog = new Dialog(); |
| | | |
| | | var pView = new FrameLayout() |
| | | { |
| | | BackgroundColor = CSS_Color.DialogTransparentColor1, |
| | | }; |
| | | dialog.AddChidren(pView); |
| | | |
| | | var optionBaseView = new FrameLayout() |
| | | { |
| | | Y = Application.GetRealHeight(500), |
| | | Height = Application.GetRealHeight(160), |
| | | AnimateSpeed = 0.3f, |
| | | Animate = Animate.DownToUp, |
| | | }; |
| | | pView.AddChidren(optionBaseView); |
| | | |
| | | var optionView = new VerticalScrolViewLayout() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealHeight(100), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | ScrollEnabled = false, |
| | | }; |
| | | optionBaseView.AddChidren(optionView); |
| | | |
| | | var btnOn = new Button() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextColor = CSS_Color.TextualColor, |
| | | SelectedTextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextID = StringId.OpenArm, |
| | | }; |
| | | optionView.AddChidren(btnOn); |
| | | |
| | | optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor }); |
| | | |
| | | var btnOff = new Button() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | | TextAlignment = TextAlignment.Center, |
| | | TextColor = CSS_Color.TextualColor, |
| | | SelectedTextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextID = StringId.Close, |
| | | }; |
| | | optionView.AddChidren(btnOff); |
| | | |
| | | var btnCancel = new Button() |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Y = Application.GetRealHeight(8) + optionView.Bottom, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = Application.GetRealHeight(50), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | TextID = StringId.Cancel, |
| | | TextColor = CSS_Color.WarningColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | }; |
| | | optionBaseView.AddChidren(btnCancel); |
| | | |
| | | dialog.Show(); |
| | | |
| | | pView.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.Close(); |
| | | }; |
| | | |
| | | btnCancel.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.Close(); |
| | | }; |
| | | btnOn.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.Close(); |
| | | temp.type = "7"; |
| | | var kv = temp.status.Find((obj) => obj.key == "enable"); |
| | | if (kv != null) |
| | | { |
| | | kv.value = "true"; |
| | | } |
| | | else |
| | | { |
| | | temp.status.Add(new SceneFunctionStatus() |
| | | { |
| | | key = "enable", |
| | | value = "true", |
| | | }); |
| | | } |
| | | |
| | | var waitPage = new Loading(); |
| | | bodyView.AddChidren(waitPage); |
| | | waitPage.Start(""); |
| | | new System.Threading.Thread(() => { |
| | | try |
| | | { |
| | | var code = scene.EditScene(); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (code == "0") |
| | | { |
| | | btnTipText.TextID = StringId.OpenArm; |
| | | } |
| | | else |
| | | { |
| | | IMessageCommon.Current.ShowErrorInfoAlter(code); |
| | | } |
| | | }); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => { |
| | | if(waitPage!= null) |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }; |
| | | btnOff.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | dialog.Close(); |
| | | temp.type = "7"; |
| | | |
| | | var kv = temp.status.Find((obj) => obj.key == "enable"); |
| | | if (kv != null) |
| | | { |
| | | kv.value = "false"; |
| | | } |
| | | else |
| | | { |
| | | temp.status.Add(new SceneFunctionStatus() |
| | | { |
| | | key = "enable", |
| | | value = "false", |
| | | }); |
| | | } |
| | | |
| | | var waitPage = new Loading(); |
| | | bodyView.AddChidren(waitPage); |
| | | waitPage.Start(""); |
| | | new System.Threading.Thread(() => { |
| | | try |
| | | { |
| | | var code = scene.EditScene(); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (code == "0") |
| | | { |
| | | btnTipText.TextID = StringId.Close; |
| | | } |
| | | else |
| | | { |
| | | IMessageCommon.Current.ShowErrorInfoAlter(code); |
| | | } |
| | | }); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => { |
| | | if (waitPage != null) |
| | | { |
| | | waitPage.RemoveFromParent(); |
| | | waitPage = null; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | }; |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | //-------------------------------------- |
| | | public partial class SceneEditPage |
| | |
| | | void LoadEvent_ChangeFunctionList() |
| | | { |
| | | btnAddFunctionTitle.MouseUpEventHandler = (sender, e) => { |
| | | var sefp =new SceneFunctionListChoosePage(scene,refreshFunctionRowAction); |
| | | MainPage.BasePageView.AddChidren(sefp); |
| | | sefp.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | if (DB_ResidenceData.Instance.HomeGateway.isSupportSceneEnableAutomation) |
| | | { |
| | | //var sefp =new SceneFunctionListChoosePage(scene,refreshFunctionRowAction); |
| | | var sefp = new SceneTargetTypeChoosePage(scene, refreshFunctionRowAction); |
| | | MainPage.BasePageView.AddChidren(sefp); |
| | | sefp.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | } |
| | | else |
| | | { |
| | | var sefp = new SceneFunctionListChoosePage(scene,refreshFunctionRowAction); |
| | | //var sefp = new SceneTargetTypeChoosePage(scene, refreshFunctionRowAction); |
| | | MainPage.BasePageView.AddChidren(sefp); |
| | | sefp.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | } |
| | | }; |
| | | } |
| | | |
| | |
| | | UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction); |
| | | } |
| | | |
| | | public override void RemoveFromParent() |
| | | { |
| | | backAction(); |
| | | base.RemoveFromParent(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 完成按钮点击事件 |
| | | /// </summary> |
| | |
| | | } |
| | | scene.EditScene(); |
| | | FunctionList.List.scenes.Add(scene); |
| | | backAction(); |
| | | //backAction(); |
| | | this.RemoveFromParent(); |
| | | } |
| | | if (btnComplete.TextID == StringId.Del) |
| | |
| | | Action action = () => |
| | | { |
| | | FunctionList.List.DeleteScene(scene,true); |
| | | backAction(); |
| | | //backAction(); |
| | | this.RemoveFromParent(); |
| | | }; |
| | | new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteSceneTip, action); |