using System;
using Shared;
using HDL_ON.Entity;
using System.Collections.Generic;
namespace HDL_ON.UI
{
public partial class RoomEditPage
{
///
/// 加载事件列表
///
void LoadEventList()
{
LoadEvent_PictureOptionView();
LoadEvent_EditRoomName();
LoadEvent_SkinBindFloor();
LoadEvent_SkipEditFunctionList();
LoadEvent_Option();
//LoadEvent_SkipSharedRoomFunctionPage();
}
///
/// 底部按钮事件
///
void LoadEvent_Option()
{
btnOption.MouseUpEventHandler = (sender, e) =>
{
if (btnOption.TextID == StringId.Save)
{
if (string.IsNullOrEmpty(room.name))
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.RoomNameCannotBeEmpty),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
if (string.IsNullOrEmpty(room.floorName))
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.PlsBindFloor),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
foreach (var tempRoom in DB_ResidenceData.rooms)
{
if (room.name == tempRoom.name)
{
new PublicAssmebly().TipMsg(StringId.Tip, StringId.AddingFailed_RoomAlreadyExists);
return;
}
}
DB_ResidenceData.rooms.Add(room);
room.SaveRoomData();
backAction();
this.RemoveFromParent();
}
if (btnOption.TextID == StringId.DeleteRoom)
{
Action action = () =>
{
foreach (var f in DB_ResidenceData.functionList.GetAllFunction())
{
if (f.roomIds.Contains(room.sid))
{
f.roomIds.Remove(room.sid);
}
}
DB_ResidenceData.DelRoom(room);
backAction();
this.RemoveFromParent();
};
new PublicAssmebly().TipMsg(StringId.Tip, StringId.DeleteRoomTip, action);
};
};
}
///
/// 显示背景图选择选项
///
void LoadEvent_PictureOptionView()
{
btnRoomBg.MouseUpEventHandler = (sender, e) =>
{
LoadPictureOptionView();
};
}
///
/// 加载修改房间名称窗口事件
///
void LoadEvent_EditRoomName()
{
Action callBack = (str) =>
{
//房间名称不能为空
if (string.IsNullOrEmpty(str))
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.RoomNameCannotBeEmpty),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
btnRoomName.Text = str;
room.name = str;
if (pageTitleId == StringId.EditRoomInfo)
{
room.SaveRoomData();
}
};
EventHandler eventHandler = (sender, e) =>
{
List roomNameList = new List();
foreach (var rroom in DB_ResidenceData.rooms)
{
roomNameList.Add(rroom.name);
}
if (pageTitleId == StringId.AddRoom)
{
new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.name, callBack, StringId.RoomNameCannotBeEmpty, StringId.RoomNameAlreadyExists, roomNameList);
}
else
{
new PublicAssmebly().LoadDialog_EditParater(StringId.RoomName, room.name, callBack, StringId.RoomNameCannotBeEmpty, StringId.EidtFailed_RoomAlreadyExists, roomNameList);
}
};
btnEditRoomNameIcon.MouseUpEventHandler = eventHandler;
roomNameRow.MouseUpEventHandler = eventHandler;
btnRoomName.MouseUpEventHandler = eventHandler;
}
///
/// 跳转绑定楼层界面
///
void LoadEvent_SkinBindFloor()
{
EventHandler eventHandler = (sender, e) =>
{
Action floorsCallBackAction = () =>
{
btnFloorInfo.Text = room.floorName;
};
var residentialManagePage = new FloorsManagementPage(floorsCallBackAction);
MainPage.BasePageView.AddChidren(residentialManagePage);
residentialManagePage.LoadPage(room, StringId.FloorAssignment);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
btnFloorInfo.MouseUpEventHandler = eventHandler;
floorView.MouseUpEventHandler = eventHandler;
}
///
/// 跳转到编辑房间功能界面
///
void LoadEvent_SkipEditFunctionList()
{
EventHandler eventHandler = (sender, e) =>
{
var residentialManagePage = new RoomEditFunctionPage(room);
MainPage.BasePageView.AddChidren(residentialManagePage);
residentialManagePage.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
btnFunctionManagementRight.MouseUpEventHandler = eventHandler;
functionManagemantView.MouseUpEventHandler = eventHandler;
}
/////
///// 跳转到功能分享界面
/////
//void LoadEvent_SkipSharedRoomFunctionPage()
//{
// if (pageTitleId != StringId.AddRoom)
// {
// EventHandler eHandler = (sender, e) =>
// {
// List sds = new List();
// foreach (var f in room.GetRoomFunctions(false))
// {
// var sd = new ShareData();
// sd.ShareName = f.sid;
// sd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID;
// sd.ShareDataBytes = DAL.System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f));
// //sd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark;
// sds.Add(sd);
// }
// var mmp = new MemberFunctionPermissionPage(room, sds);
// MainPage.BasePageView.AddChidren(mmp);
// mmp.LoadPage(StringId.ChooseSharedFunction);
// MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
// };
// btnSharedRight.MouseUpEventHandler = eHandler;
// sharedView.MouseUpEventHandler = eHandler;
// btnSharedTitle.MouseUpEventHandler = eHandler;
// }
//}
///
/// 加载背景图选择区域事件列表
///
void LoadEvent_PictureOptionViewEventList(FrameLayout baseView)
{
pictureOptionView.MouseUpEventHandler = (sender, e) =>
{
baseView.RemoveFromParent();
};
baseView.MouseUpEventHandler = (sender, e) =>
{
baseView.RemoveFromParent();
};
btnCancel.MouseUpEventHandler = (sender, e) =>
{
baseView.RemoveFromParent();
};
btnTakePicture.MouseDownEventHandler = (sender, e) =>
{
btnTakePicture.IsSelected = true;
};
//拍照
btnTakePicture.MouseUpEventHandler = (sender, e) =>
{
btnTakePicture.IsSelected = false;
//var pid = Guid.NewGuid();
//CropImage.TakePicture((imagePath) =>
//{
// if (imagePath != null)
// {
// btnRoomBg.ImagePath = imagePath.ToString();
// room.backgroundImage = btnRoomBg.ImagePath;
// MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath);
// }
//}, pid.ToString(), 16, 9);
//var imageName = Guid.NewGuid().ToString();
var imageName = room.sid;
CropImage.TakePicture((imagePath) =>
{
CropImageCallBack(imagePath, imageName);
}, imageName, 16, 9);
baseView.RemoveFromParent();
};
//选择照片
btnAlbum.MouseDownEventHandler = (sender, e) =>
{
btnAlbum.IsSelected = true;
};
btnAlbum.MouseUpEventHandler = (sender, e) =>
{
btnAlbum.IsSelected = false;
//var pid = Guid.NewGuid();
//CropImage.SelectPicture((imagePath) =>
//{
// if (imagePath != null)
// {
// btnRoomBg.ImagePath = imagePath.ToString();
// room.backgroundImage = btnRoomBg.ImagePath;
// MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath);
// }
//}, pid.ToString(), 16, 9);
//从相册选择图片裁剪
//var imageName = Guid.NewGuid().ToString();
var imageName = room.sid;
CropImage.SelectPicture((imagePath) =>
{
CropImageCallBack(imagePath, imageName);
}, imageName, 16, 9);
baseView.RemoveFromParent();
};
//房间默认图库
btnDefaultGallery.MouseUpEventHandler = (sender, e) => {
pictureOptionView.Parent.RemoveFromParent();
Action action = (obj) => {
room.backgroundImage = obj;
btnRoomBg.ImagePath = room.backgroundImage;
if (pageTitleId == StringId.EditRoomInfo)
{
room.SaveRoomData();
}
};
var galleryPage = new RoomGalleryPage(room.backgroundImage, action);
MainPage.BasePageView.AddChidren(galleryPage);
galleryPage.LoadPage(true);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
}
///
/// 裁剪完照片回调,统一处理
///
/// 裁剪后的真实路径
/// 自定义的图片名称
void CropImageCallBack(string imagePath, string imageName)
{
if (string.IsNullOrEmpty(imagePath) == true)
{
return;
}
try
{
var mPath = imagePath;
MainPage.Log("SelectPicture 裁剪图片返回路径: " + imagePath);
#if __IOS__
#else
//imageName = imageName + ".png";
//1.使用新名字,解决相同路径不刷新图片问题
imageName = Guid.NewGuid().ToString() + ".png";
//1.2如果是自定义图片删除之前的
if (!btnRoomBg.ImagePath.Contains("Room")) {
Utlis.WriteLine("删除: " + btnRoomBg.ImagePath);
System.IO.File.Delete(btnRoomBg.ImagePath);
}
//1.3如果是安卓需要拷贝回来APP根目录
FileUtils.FileCopyToRootPath(imagePath, imageName);
System.IO.File.Delete(imagePath);
mPath = imageName;
#endif
//清空原来图片
btnRoomBg.ImagePath = "NULL";
//生成图片
room.backgroundImage = mPath;
btnRoomBg.ImagePath = mPath;
if (pageTitleId == StringId.EditRoomInfo)
{
room.SaveRoomData();
}
}
catch { }
}
}
}