| | |
| | | /// </summary> |
| | | Action refreshFunctionRowAction; |
| | | /// <summary> |
| | | /// 回掉更新 |
| | | /// 回调更新 |
| | | /// </summary> |
| | | Action backAction; |
| | | public SceneAddPage(Scene s, Action act) |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | TextID = StringId.BelongToZone, |
| | | TextID = StringId.LocationManagement, |
| | | }; |
| | | belongToZoneRow.AddChidren(btnBelongToTitle); |
| | | |
| | |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | Text = scene.GetRoomListName() == "" ? Language.StringByID(StringId.WholeHouseScene) : scene.GetRoomListName() |
| | | Text = scene.GetRoomListName() == "" ? Language.StringByID(StringId.WholeZone) : scene.GetRoomListName() |
| | | }; |
| | | belongToZoneRow.AddChidren(btnZoneName); |
| | | |
| | |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = FunctionList.List.GetDelayText(scene.delay.ToString()) |
| | | Text = scene.GetDelayText() |
| | | }; |
| | | sceneDelayRow.AddChidren(btnSceneDelayInfo); |
| | | |
| | |
| | | }; |
| | | sceneDelayRow.AddChidren(btnSceneDelayTitle); |
| | | |
| | | |
| | | btnSceneDelayTitle.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | Action<string> action = (obj) => { |
| | | scene.delay = obj; |
| | | btnSceneDelayInfo.Text = FunctionList.List.GetDelayText(obj); |
| | | btnSceneDelayInfo.Text = scene.GetDelayText(); |
| | | }; |
| | | new PublicAssmebly().SetSceneDelayDialog(action ,scene.delay); |
| | | Dictionary<string, string> items = new Dictionary<string, string>(); |
| | | items.Add("30", "30s"); |
| | | items.Add("60", "1min"); |
| | | items.Add("120", "2min"); |
| | | items.Add("300", "5min"); |
| | | new PublicAssmebly().SetSceneDelayDialog( action ,scene.delay); |
| | | |
| | | |
| | | }; |
| | | |
| | | contentView.AddChidren(new Button() |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.MainColor, |
| | | TextSize = CSS_FontSize.SubheadingFontSize, |
| | | TextID = StringId.AddFunction, |
| | | TextID = StringId.FunctionManagement, |
| | | IsBold = true, |
| | | }; |
| | | addFunctionRow.AddChidren(btnAddFunctionTitle); |
| | |
| | | |
| | | LoadEventList(); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 加载功能列表 |
| | | /// </summary> |
| | |
| | | |
| | | if (Convert.ToInt32(scenefunction.delay) > 0) |
| | | { |
| | | btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + FunctionList.List.GetDelayText(scenefunction.delay); |
| | | btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + new Scene() { delay = scenefunction.delay }.GetDelayText(); |
| | | } |
| | | else |
| | | { |
| | |
| | | }; |
| | | row.AddChidren(btnFunctionFloorAndRoom); |
| | | |
| | | btnFunctionName.MouseUpEventHandler = (sender, e) => |
| | | 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; |
| | | }; |
| | | btnFunctionFloorAndRoom.MouseUpEventHandler = (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; |
| | | |
| | | Button btnDelSceneFunction = new Button() |
| | | { |
| | |
| | | row.AddRightView(btnDelSceneFunction); |
| | | btnDelSceneFunction.MouseUpEventHandler = (sender, e) => { |
| | | scene.functions.Remove(scenefunction); |
| | | scene.SaveSceneData(true); |
| | | row.RemoveFromParent(); |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | }; |
| | |
| | | } |
| | | } |
| | | |
| | | if (sceneFunction.status.Count == 0) |
| | | { |
| | | return sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | } |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | |
| | | var modeState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode); |
| | | var tempState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp); |
| | | var fanState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed); |
| | | if (modeState != null) |
| | | { |
| | | sceneFunctionInfo += FunctionList.List.GetValueText(modeState.key, modeState.value); |
| | | sceneFunctionInfo += modeState.GetValueText(); |
| | | } |
| | | if (tempState != null) |
| | | { |
| | | sceneFunctionInfo += FunctionList.List.GetValueText(tempState.key, tempState.value); |
| | | sceneFunctionInfo += FunctionList.List.GetUintString(tempState.key); |
| | | sceneFunctionInfo += tempState.GetValueText(); |
| | | sceneFunctionInfo += tempState.GetUintString(); |
| | | } |
| | | if (fanState != null) |
| | | { |
| | | sceneFunctionInfo += FunctionList.List.GetValueText(fanState.key, fanState.value); |
| | | sceneFunctionInfo += tempState.GetValueText(); |
| | | } |
| | | var briState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness); |
| | | if (briState != null) |
| | | { |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; |
| | | sceneFunctionInfo += briState.value + "%"; |
| | | } |
| | | var perState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent); |
| | | if (perState != null) |
| | | { |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; |
| | | sceneFunctionInfo += perState.value + "%"; |
| | | } |
| | | |
| | | //FunctionAttributes perTrait; |
| | | |
| | | //switch (sceneFunction.localFunction.functionType) |
| | | //{ |
| | | //case FunctionType.AC: |
| | | //var acMode = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode); |
| | | //var acTemp = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp); |
| | | //var acFan = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed); |
| | | //if (acMode != null) |
| | | //{ |
| | | // sceneFunctionInfo += FunctionList.List.GetValueText(acMode.key, acMode.value); |
| | | //} |
| | | //if (acTemp != null) |
| | | //{ |
| | | // sceneFunctionInfo += FunctionList.List.GetValueText(acTemp.key, acTemp.value); |
| | | // sceneFunctionInfo += FunctionList.List.GetUintString(acTemp.key); |
| | | //} |
| | | //if (acFan!=null) |
| | | //{ |
| | | // sceneFunctionInfo += FunctionList.List.GetValueText(acFan.key, acFan.value); |
| | | //} |
| | | // break; |
| | | //case FunctionType.FloorHeating: |
| | | //sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText(); |
| | | //sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() + |
| | | // sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString; |
| | | //break; |
| | | //case FunctionType.Dimmer: |
| | | //perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness"); |
| | | //if (perTrait != null) |
| | | //{ |
| | | // sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; |
| | | //} |
| | | //else |
| | | //{ |
| | | // sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | //} |
| | | //break; |
| | | //case FunctionType.Relay: |
| | | // sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | // break; |
| | | //case FunctionType.RGB: |
| | | // perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"); |
| | | // if (perTrait != null) |
| | | // { |
| | | // sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; |
| | | // } |
| | | // else |
| | | // { |
| | | // sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | // } |
| | | // break; |
| | | //case FunctionType.Curtain: |
| | | // sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | // break; |
| | | //case FunctionType.MotorCurtain: |
| | | // perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"); |
| | | // if (perTrait != null) |
| | | // { |
| | | // sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%"; |
| | | // } |
| | | // else |
| | | // { |
| | | // sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | // } |
| | | // break; |
| | | //} |
| | | return sceneFunctionInfo; |
| | | } |
| | | |
| | |
| | | pictureOptionView.Parent.RemoveFromParent(); |
| | | Action<string> action = (obj) => { |
| | | scene.ImagePath = obj; |
| | | addSceneImageView.ImageBytes = null;//解决有ImageBytes不加载ImagePath |
| | | addSceneImageView.ImagePath = scene.ImagePath; |
| | | }; |
| | | |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 创建场景 |
| | | /// 完成按钮点击事件 |
| | | /// </summary> |
| | | void LoadEvent_CompleteEvent() |
| | |
| | | return; |
| | | } |
| | | } |
| | | string result = ""; |
| | | var addScene = FunctionList.List.AddScene(scene,out result); |
| | | if (addScene != null) |
| | | var waitPage = new Loading(); |
| | | MainPage.BaseView.AddChidren(waitPage); |
| | | waitPage.Start(Language.StringByID(StringId.PleaseWait)); |
| | | new Thread(() => |
| | | { |
| | | FunctionList.List.scenes.Add(scene); |
| | | backAction(); |
| | | this.RemoveFromParent(); |
| | | } |
| | | else |
| | | { |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result); |
| | | } |
| | | try |
| | | { |
| | | var serverScene = new Scene(); |
| | | var result = FunctionList.List.AddScene(scene, out serverScene); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (result == StateCode.SUCCESS) |
| | | { |
| | | scene = serverScene; |
| | | FunctionList.List.scenes.Add(scene); |
| | | backAction(); |
| | | RemoveFromParent(); |
| | | } |
| | | else |
| | | { |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result); |
| | | } |
| | | }); |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => { |
| | | waitPage.Hide(); |
| | | waitPage.RemoveFromParent(); |
| | | }); |
| | | } |
| | | }) |
| | | { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start(); |
| | | }; |
| | | } |
| | | |