using System;
using Shared;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using System.Collections.Generic;
using HDL_ON.DAL;
using HDL_ON.DAL.Server;
namespace HDL_ON.UI
{
public partial class MemberFunctionPermissionPage : FrameLayout
{
MemberFunctionPermissionPage bodyView;
FrameLayout allRoomView;
///
/// 全选按钮
///
Button btnChooseAll;
///
/// 功能显示区域
///
VerticalScrolViewLayout contentView;
ResidenceMemberInfo memberInfo;
Room room;
List funs;
public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, Room r)
{
bodyView = this;
memberInfo = mInfo;
room = r;
funs = new List();
if (memberInfo.CurShareData.ShareDataBytes != null)
{
funs = Newtonsoft.Json.JsonConvert.DeserializeObject>(
CommonPage.MyEncodingUTF8.GetString(memberInfo.CurShareData.ShareDataBytes));
}
}
public MemberFunctionPermissionPage(Room r)
{
bodyView = this;
room = r;
funs = new List();
funs.AddRange(r.functions);
}
public void LoadPage(int titleId)
{
new TopViewDiv(bodyView, Language.StringByID(titleId)).LoadTopView();
allRoomView = new FrameLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(allRoomView);
Button btnAllRoomText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(280),
TextID = StringId.SelectedAll,
TextSize = CSS_FontSize.SubheadingFontSize,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.CenterLeft,
};
allRoomView.AddChidren(btnAllRoomText);
btnChooseAll = new Button()
{
X = Application.GetRealWidth(331),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(28),
Height = Application.GetMinRealAverage(28),
UnSelectedImagePath = "Public/ChooseIcon.png",
SelectedImagePath = "Public/ChooseOnIcon.png",
IsSelected = true,
};
allRoomView.AddChidren(btnChooseAll);
allRoomView.AddChidren(new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(49),
Height = Application.GetMinReal(1),
Width = Application.GetRealWidth(343),
BackgroundColor = CSS_Color.DividingLineColor,
});
contentView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(64+50),
Height = Application.GetRealHeight(450),
};
bodyView.AddChidren(contentView);
var btnOption = new Button()
{
Y = Application.GetRealHeight(519+64),
Gravity = Gravity.CenterHorizontal,
Width = Application.GetRealWidth(220),
Height = Application.GetRealHeight(44),
BackgroundColor = CSS_Color.MainColor,
TextAlignment = TextAlignment.Center,
TextColor = CSS_Color.MainBackgroundColor,
TextID = titleId == StringId.PermissionToUse ? StringId.Confirm : StringId.Shared,
TextSize = CSS_FontSize.SubheadingFontSize,
IsBold = true,
Radius = (uint) Application.GetRealWidth(22),
BorderColor = 0x00000000,
BorderWidth = 0,
};
bodyView.AddChidren(btnOption);
btnOption.MouseUpEventHandler = (sender, e) =>
{
if (titleId == StringId.PermissionToUse)
{
var act = TipLoadingMsg(Language.StringByID(StringId.SavingPleaseWait));
memberInfo.CurShareData.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs));
LoadEvent_EditShareData();
act();
}
else
{
var sharedBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs));
var page = new ChooseShareMemberTargetListPage(sharedBytes);
MainPage.BasePageView.AddChidren(page);
page.LoadPage();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
}
};
LoadFunctionRow();
LoadEventList();
}
///
/// 加载功能列表
///
void LoadFunctionRow()
{
contentView.RemoveAll();
foreach (var function in room.functions)
{
var roomView = new FrameLayout()
{
Height = Application.GetRealHeight(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
Tag = "row"
};
contentView.AddChidren(roomView);
Button btnRoomText = new Button()
{
X = Application.GetRealWidth(16),
Width = Application.GetRealWidth(280),
TextSize = CSS_FontSize.SubheadingFontSize,
TextColor = CSS_Color.FirstLevelTitleColor,
TextAlignment = TextAlignment.CenterLeft,
Text = function.name,
};
roomView.AddChidren(btnRoomText);
Button btnChoose = new Button()
{
X = Application.GetRealWidth(331),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(28),
Height = Application.GetMinRealAverage(28),
UnSelectedImagePath = "Public/ChooseIcon.png",
SelectedImagePath = "Public/ChooseOnIcon.png",
Tag = "ChooseIcon"
};
roomView.AddChidren(btnChoose);
if (funs.Find((obj) => obj.sid == function.sid) != null)
{
btnChoose.IsSelected = true;
funs.Add(function);
}
else
{
if (btnChooseAll.IsSelected)
btnChooseAll.IsSelected = false;
}
LoadEvent_SharedDataChange(btnChoose, btnRoomText, roomView, function);
var btnLine = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(49),
Height = Application.GetMinReal(1),
Width = Application.GetRealWidth(343),
BackgroundColor = CSS_Color.DividingLineColor,
};
roomView.AddChidren(btnLine);
}
}
Action TipLoadingMsg(string msg)
{
Dialog dialog = new Dialog()
{
X = Application.GetRealWidth(89),
Y = Application.GetRealHeight(285),
Width = Application.GetRealWidth(198),
Height = Application.GetRealHeight(98),
};
FrameLayout frame = new FrameLayout()
{
BackgroundColor = CSS_Color.DialogTransparentColor1,
Radius = (uint)Application.GetRealWidth(12),
};
dialog.AddChidren(frame);
Button btnTipIcon = new Button()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealHeight(15),
Width = Application.GetRealWidth(32),
Height = Application.GetRealWidth(32),
UnSelectedImagePath = "Public/MsgIcon/LoadingIcon.png",
};
frame.AddChidren(btnTipIcon);
Button btnTipMsg = new Button()
{
Y = Application.GetRealHeight(47),
Height = Application.GetRealHeight(50),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.TextFontSize,
TextColor = CSS_Color.MainBackgroundColor,
Text = msg,
};
frame.AddChidren(btnTipMsg);
//new System.Threading.Thread(() =>{
//});
dialog.Show();
return new Action(() => {
dialog.Close();
});
}
}
}