| | |
| | | }; |
| | | contentView.AddChidren(functionListView); |
| | | |
| | | |
| | | LoadFunctionRow(functionListView); |
| | | |
| | | |
| | | Button btnLine1 = new Button() |
| | | { |
| | |
| | | }; |
| | | contentView.AddChidren(btnLine1); |
| | | |
| | | |
| | | Button btnLine2 = new Button() |
| | | { |
| | | //Y = sceneDelayRow.Bottom, |
| | |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }; |
| | | contentView.AddChidren(btnLine2); |
| | | |
| | | #endregion |
| | | |
| | | Button btnBottomLine = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(667-50)-1, |
| | | Y = Application.GetRealHeight(667 - 50) - 1, |
| | | Height = 1, |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }; |
| | |
| | | void LoadFunctionRow(VerticalScrolViewLayout functionListView) |
| | | { |
| | | functionListView.RemoveAll(); |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.sceneFunctionList.Count); |
| | | foreach (var function in scene.sceneFunctionList) |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | foreach (var scenefunction in scene.functions) |
| | | { |
| | | var row = new RowLayout() |
| | | { |
| | |
| | | TextAlignment = TextAlignment.BottomRight, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = GetFunctionScnenInfo(function), |
| | | Text = GetFunctionScnenInfo(scenefunction), |
| | | }; |
| | | row.AddChidren(btnFunctionInfo); |
| | | |
| | |
| | | }; |
| | | row.AddChidren(btnFunctionDelayInfo); |
| | | |
| | | if (function.delay > 0) |
| | | if (Convert.ToInt32( scenefunction.delay) > 0) |
| | | { |
| | | btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + function.delayText; |
| | | btnFunctionDelayInfo.Text = Language.StringByID(StringId.Delay) + " " + scenefunction.localFunction.delayText; |
| | | } |
| | | else |
| | | { |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | Text = function.name, |
| | | Text = scenefunction.localFunction.name, |
| | | }; |
| | | row.AddChidren(btnFunctionName); |
| | | |
| | |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | Text = function.GetRoomListName(), |
| | | Text = scenefunction.localFunction.GetRoomListName(), |
| | | }; |
| | | row.AddChidren(btnFunctionFloorAndRoom); |
| | | |
| | | btnFunctionName.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | var ssf = new SceneFunctionInfoEditPage(scene, function, refreshFunctionRowAction); |
| | | 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, function, refreshFunctionRowAction); |
| | | var ssf = new SceneFunctionInfoEditPage(scene, scenefunction, refreshFunctionRowAction); |
| | | MainPage.BasePageView.AddChidren(ssf); |
| | | ssf.LoadPage(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | |
| | | }; |
| | | row.AddRightView(btnDelSceneFunction); |
| | | btnDelSceneFunction.MouseUpEventHandler = (sender, e) => { |
| | | scene.sceneFunctionList.Remove(function); |
| | | scene.SaveFunctionData(); |
| | | scene.functions.Remove(scenefunction); |
| | | scene.SaveSceneData(); |
| | | row.RemoveFromParent(); |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.sceneFunctionList.Count); |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | //LoadFunctionRow(functionListView); |
| | | }; |
| | | |
| | |
| | | /// 解析场景功能数据 |
| | | /// </summary> |
| | | /// <param name="sceneFunction"></param> |
| | | string GetFunctionScnenInfo(Function sceneFunction) |
| | | string GetFunctionScnenInfo(SceneFunction sceneFunction) |
| | | { |
| | | string sceneFunctionInfo = Language.StringByID(StringId.Close); |
| | | if (sceneFunction.trait_on_off.curValue.ToString() == "off") |
| | | return sceneFunctionInfo; |
| | | sceneFunctionInfo = ""; |
| | | var sceneFunctionInfo = ""; |
| | | foreach (var sfs in sceneFunction.status) |
| | | { |
| | | if (sfs.key == FunctionAttributeKey.OnOff) |
| | | { |
| | | if (sfs.value == "off") |
| | | return Language.StringByID(StringId.Close); |
| | | } |
| | | if (sfs.key == FunctionAttributeKey.Mode) |
| | | { |
| | | |
| | | } |
| | | } |
| | | FunctionAttributes perTrait; |
| | | |
| | | switch (sceneFunction.functionType) |
| | | switch (sceneFunction.localFunction.functionType) |
| | | { |
| | | case FunctionType.AC: |
| | | sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "mode").GetCurValueText(); |
| | | sceneFunctionInfo += " " + sceneFunction.function.Find((obj) => obj.key == "set_temperature").curValue.ToString() + |
| | | sceneFunction.function.Find((obj) => obj.key == "set_temperature").uintString; |
| | | sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "fan").GetCurValueText(); |
| | | sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText(); |
| | | sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() + |
| | | sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString; |
| | | sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText(); |
| | | break; |
| | | case FunctionType.FloorHeating: |
| | | sceneFunctionInfo += sceneFunction.function.Find((obj) => obj.key == "mode").GetCurValueText(); |
| | | sceneFunctionInfo += " " + sceneFunction.function.Find((obj) => obj.key == "set_temperature").curValue.ToString() + |
| | | sceneFunction.function.Find((obj) => obj.key == "set_temperature").uintString; |
| | | sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText(); |
| | | sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() + |
| | | sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString; |
| | | break; |
| | | case FunctionType.Dimmer: |
| | | perTrait = sceneFunction.function.Find((obj) => obj.key == "brightness"); |
| | | perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness"); |
| | | if (perTrait != null) |
| | | { |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; |
| | | } |
| | | else |
| | | { |
| | |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | break; |
| | | case FunctionType.RGB: |
| | | perTrait = sceneFunction.function.Find((obj) => obj.key == "percent"); |
| | | perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"); |
| | | if (perTrait != null) |
| | | { |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%"; |
| | | } |
| | | else |
| | | { |
| | |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open); |
| | | break; |
| | | case FunctionType.MotorCurtain: |
| | | perTrait = sceneFunction.function.Find((obj) => obj.key == "percent"); |
| | | perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"); |
| | | if (perTrait != null) |
| | | { |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.function.Find((obj) => obj.key == "percent").curValue.ToString() + "%"; |
| | | sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%"; |
| | | } |
| | | else |
| | | { |
| | |
| | | { |
| | | btnTakePicture.IsSelected = false; |
| | | |
| | | var pid = Guid.NewGuid(); |
| | | //var pid = Guid.NewGuid(); |
| | | //CropImage.TakePicture((imagePath) => |
| | | //{ |
| | | // if (imagePath != null) |
| | | // { |
| | | // addSceneImageView.ImagePath = imagePath.ToString(); |
| | | // scene.ImagePath = addSceneImageView.ImagePath; |
| | | // MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath); |
| | | // } |
| | | //}, pid.ToString(), 4, 3); |
| | | |
| | | |
| | | //var imageName = Guid.NewGuid().ToString(); |
| | | var imageName = scene.sid; |
| | | CropImage.TakePicture((imagePath) => |
| | | { |
| | | if (imagePath != null) |
| | | { |
| | | addSceneImageView.ImagePath = imagePath.ToString(); |
| | | scene.ImagePath = addSceneImageView.ImagePath; |
| | | MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath); |
| | | } |
| | | }, pid.ToString(), 4, 3); |
| | | if (pageTitleId == StringId.EditScene) |
| | | { |
| | | scene.SaveFunctionData(); |
| | | } |
| | | CropImageCallBack(imagePath, imageName); |
| | | }, imageName, 4, 3); |
| | | |
| | | //if (pageTitleId == StringId.EditScene) |
| | | //{ |
| | | // scene.SaveFunctionData(); |
| | | //} |
| | | pictureOptionView.Parent.RemoveFromParent(); |
| | | }; |
| | | btnAlbum.MouseDownEventHandler = (sender, e) => { |
| | |
| | | btnAlbum.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | btnAlbum.IsSelected = false; |
| | | var pid = Guid.NewGuid(); |
| | | //var pid = Guid.NewGuid(); |
| | | //CropImage.SelectPicture((imagePath) => |
| | | //{ |
| | | // if (imagePath != null) |
| | | // { |
| | | // addSceneImageView.ImagePath = imagePath.ToString(); |
| | | // scene.ImagePath = addSceneImageView.ImagePath; |
| | | // MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath); |
| | | // } |
| | | //}, pid.ToString(), 4, 3); |
| | | |
| | | //从相册选择图片裁剪 |
| | | //var imageName = Guid.NewGuid().ToString(); |
| | | var imageName = scene.sid; |
| | | CropImage.SelectPicture((imagePath) => |
| | | { |
| | | if (imagePath != null) |
| | | { |
| | | addSceneImageView.ImagePath = imagePath.ToString(); |
| | | scene.ImagePath = addSceneImageView.ImagePath; |
| | | MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath); |
| | | } |
| | | }, pid.ToString(), 4, 3); |
| | | if (pageTitleId == StringId.EditScene) |
| | | { |
| | | scene.SaveFunctionData(); |
| | | } |
| | | CropImageCallBack(imagePath, imageName); |
| | | }, imageName, 4, 3); |
| | | |
| | | |
| | | //if (pageTitleId == StringId.EditScene) |
| | | //{ |
| | | // scene.SaveFunctionData(); |
| | | //} |
| | | pictureOptionView.Parent.RemoveFromParent(); |
| | | }; |
| | | |
| | |
| | | addSceneImageView.ImagePath = scene.ImagePath; |
| | | if (pageTitleId == StringId.EditScene) |
| | | { |
| | | scene.SaveFunctionData(); |
| | | scene.SaveSceneData(); |
| | | } |
| | | }; |
| | | |
| | |
| | | galleryPage.LoadPage(true); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | }; |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 裁剪完照片回调,统一处理 |
| | | /// </summary> |
| | | /// <param name="imagePath">裁剪后的真实路径</param> |
| | | /// <param name="imageName">自定义的图片名称</param> |
| | | void CropImageCallBack(string imagePath, string imageName) |
| | | { |
| | | if (string.IsNullOrEmpty(imagePath) == true) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | try |
| | | { |
| | | var mPath = imagePath; |
| | | MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath); |
| | | |
| | | #if __IOS__ |
| | | |
| | | |
| | | #else |
| | | //1.使用新名字,解决相同路径不刷新图片问题 |
| | | imageName = Guid.NewGuid().ToString() + ".png"; |
| | | //1.2如果是自定义图片删除之前的 |
| | | if (!addSceneImageView.ImagePath.Contains("Gallery/scenebg")) |
| | | { |
| | | Utlis.WriteLine("删除: " + addSceneImageView.ImagePath); |
| | | System.IO.File.Delete(addSceneImageView.ImagePath); |
| | | } |
| | | //1.3如果是安卓需要拷贝回来APP根目录 |
| | | FileUtils.FileCopyToRootPath(imagePath, imageName); |
| | | System.IO.File.Delete(imagePath); |
| | | MainPage.Log("SelectPicture 最终路径: " + imageName); |
| | | mPath = imageName; |
| | | #endif |
| | | //清空原来图片 |
| | | addSceneImageView.ImagePath = "NULL"; |
| | | addSceneImageView.ImagePath = mPath; |
| | | scene.ImagePath = mPath; |
| | | |
| | | if (pageTitleId == StringId.EditScene) |
| | | { |
| | | scene.SaveSceneData(); |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | return; |
| | | } |
| | | } |
| | | scene.SaveFunctionData(); |
| | | scene.SaveSceneData(); |
| | | DB_ResidenceData.functionList.scenes.Add(scene); |
| | | backAction(); |
| | | this.RemoveFromParent(); |
| | |
| | | scene.name = str; |
| | | if (pageTitleId == StringId.EditScene) |
| | | { |
| | | scene.SaveFunctionData(); |
| | | scene.SaveSceneData(); |
| | | } |
| | | }; |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | |
| | | btnEditSceneNameIcon.MouseUpEventHandler = eventHandler; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |