|
using System;
|
using System.Collections.Generic;
|
using System.Threading;
|
using HDL_ON.DAL.Server;
|
using HDL_ON.DriverLayer;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
|
namespace HDL_ON.UI
|
{
|
public class AddGroupControlPage : FrameLayout
|
{
|
#region 控件列表
|
/// <summary>
|
/// 当前窗体
|
/// </summary>
|
FrameLayout bodyView;
|
/// <summary>
|
/// 楼层选择下拉图标
|
/// </summary>
|
Button btnFloorDownIcon;
|
/// <summary>
|
/// 楼层显示
|
/// </summary>
|
Button btnFloor;
|
/// <summary>
|
/// 全选按钮
|
/// </summary>
|
Button btnChooseAll;
|
/// <summary>
|
/// 功能列表集合显示区域
|
/// </summary>
|
VerticalScrolViewLayout functionListView;
|
/// <summary>
|
/// 完成按钮
|
/// </summary>
|
Button btnConfrim;
|
|
#endregion
|
/// <summary>
|
/// 功能列表
|
/// </summary>
|
List<Function> groupControlLightList;
|
/// <summary>
|
/// 本地的灯光列表
|
/// </summary>
|
List<Function> lightList;
|
/// <summary>
|
/// 回调刷新
|
/// </summary>
|
Action backActon;
|
|
|
GroupControl groupControl;
|
|
|
|
public AddGroupControlPage(List<Function> functions, GroupControl groupControl, Action action)
|
{
|
bodyView = this;
|
groupControlLightList = functions;
|
backActon = action;
|
lightList = FunctionList.List.GetLightList();
|
this.groupControl = groupControl;
|
}
|
|
public void LoadPage()
|
{
|
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
|
new TopViewDiv(bodyView, Language.StringByID(StringId.CombinedDimming)).LoadTopView();
|
|
var contentView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(64),
|
Height = Application.GetRealHeight(550),
|
};
|
bodyView.AddChidren(contentView);
|
|
#region 组名称
|
FrameLayout groupNameView;
|
groupNameView = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
};
|
contentView.AddChidren(groupNameView);
|
Button btnGroupNameTitle = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
Width = Application.GetRealWidth(78),
|
TextID = StringId.GroupNmae,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
};
|
groupNameView.AddChidren(btnGroupNameTitle);
|
|
var etGroupName = new EditText()
|
{
|
X = Application.GetRealWidth(155),
|
Width = Application.GetRealWidth(200),
|
PlaceholderText = Language.StringByID(StringId.PlsEntry),
|
TextSize = CSS_FontSize.TextFontSize,
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = CSS_Color.TextualColor,
|
};
|
groupNameView.AddChidren(etGroupName);
|
|
groupNameView.AddChidren(
|
new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(49),
|
Height = Application.GetRealHeight(1),
|
Width = Application.GetRealWidth(343),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
});
|
#endregion
|
#region 位置管理
|
var locationMagtView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(50),
|
Height = Application.GetRealHeight(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
};
|
contentView.AddChidren(locationMagtView);
|
|
var btnLocationMagtTitle = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
Width = Application.GetRealWidth(160),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextID = StringId.LocationManagement,
|
};
|
locationMagtView.AddChidren(btnLocationMagtTitle);
|
|
var btnLocationValues = new Button()
|
{
|
X = Application.GetRealWidth(86),
|
Width = Application.GetRealWidth(237),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.TextFontSize,
|
Text = groupControl.GetRoomListName(),
|
};
|
locationMagtView.AddChidren(btnLocationValues);
|
|
var btnLocationInfoRight = new Button()
|
{
|
X = Application.GetRealWidth(339),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetMinRealAverage(16),
|
Height = Application.GetMinRealAverage(16),
|
UnSelectedImagePath = "Public/RightIcon.png",
|
};
|
locationMagtView.AddChidren(btnLocationInfoRight);
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
{
|
//修改功能所属房间之后的回调事件
|
Action chooseRoomBackAction = () => {
|
try
|
{
|
btnLocationValues.Text = groupControl.GetRoomListName();
|
}
|
catch { }
|
};
|
var view = new GroupChooseRoomPage(groupControl, chooseRoomBackAction);
|
MainPage.BasePageView.AddChidren(view);
|
view.LoadPage();
|
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
|
};
|
btnLocationInfoRight.MouseUpEventHandler = eventHandler;
|
btnLocationValues.MouseUpEventHandler = eventHandler;
|
|
|
//locationMagtView.AddChidren(
|
// new Button()
|
// {
|
// Y = Application.GetRealHeight(49),
|
// Gravity = Gravity.CenterHorizontal,
|
// BackgroundColor = CSS_Color.DividingLineColor,
|
// Width = Application.GetRealWidth(343),
|
// Height = Application.GetRealHeight(1)
|
// });
|
#endregion
|
|
//contentView.AddChidren(new Button()
|
//{
|
// Y = Application.GetRealHeight(164),
|
// BackgroundColor = CSS_Color.BackgroundColor,
|
//});
|
|
/// <summary>
|
/// 房间内容显示区域
|
/// </summary>
|
var roomFloorChangeView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(172),
|
Height = Application.GetRealHeight(52),
|
BackgroundColor = CSS_Color.BackgroundColor,
|
};
|
bodyView.AddChidren(roomFloorChangeView);
|
#region 房间顶部切换显示区域
|
btnFloorDownIcon = new Button()
|
{
|
Width = Application.GetMinRealAverage(16),
|
Height = Application.GetMinRealAverage(16),
|
X = Application.GetRealWidth(16),
|
Y = Application.GetRealHeight(18),
|
UnSelectedImagePath = "Public/DownIcon.png",
|
};
|
roomFloorChangeView.AddChidren(btnFloorDownIcon);
|
|
btnFloor = new Button()
|
{
|
X = btnFloorDownIcon.Right,
|
Width = Application.GetRealWidth(200),
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = DB_ResidenceData.Instance.CurFloor.roomName,
|
};
|
roomFloorChangeView.AddChidren(btnFloor);
|
|
btnChooseAll = new Button()
|
{
|
X = Application.GetRealWidth(245),
|
Width = Application.GetRealWidth(109),
|
TextAlignment = TextAlignment.CenterRight,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextID = StringId.SelectedAll,
|
};
|
if (groupControlLightList.Count > 0)
|
{
|
btnChooseAll.TextID = StringId.Cancel;
|
}
|
roomFloorChangeView.AddChidren(btnChooseAll);
|
btnChooseAll.MouseUpEventHandler = (sender, e) => {
|
if (groupControlLightList.Count > 0)
|
{
|
groupControlLightList.Clear();
|
btnChooseAll.TextID = StringId.SelectAll;
|
btnConfrim.IsSelected = false;
|
}
|
else
|
{
|
groupControlLightList.AddRange(lightList);
|
btnChooseAll.TextID = StringId.Cancel;
|
btnConfrim.IsSelected = true;
|
}
|
LoadLightRow(lightList);
|
};
|
|
#endregion
|
|
functionListView = new VerticalScrolViewLayout()
|
{
|
Y = Application.GetRealHeight(220),
|
Height = Application.GetRealHeight(640 - 12 - 52 - 100 -100),
|
};
|
bodyView.AddChidren(functionListView);
|
|
|
LoadLightRow(lightList);
|
functionListView.AddChidren(new Button()
|
{
|
Height = Application.GetRealHeight(10),
|
});
|
|
#region 底部view
|
var bottomView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(591),
|
Height = Application.GetRealHeight(100),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
this.AddChidren(bottomView);
|
|
btnConfrim = new Button()
|
{
|
Y = Application.GetRealHeight(12),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(220),
|
Height = Application.GetRealHeight(44),
|
Radius = (uint)Application.GetRealHeight(22),
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.MainBackgroundColor,
|
BackgroundColor = CSS_Color.BackgroundColor,
|
TextID = StringId.Confirm,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
SelectedTextColor = CSS_Color.MainBackgroundColor,
|
SelectedBackgroundColor = CSS_Color.MainColor,
|
};
|
bottomView.AddChidren(btnConfrim);
|
btnConfrim.MouseUpEventHandler = (sender, e) => {
|
if (btnConfrim.IsSelected)
|
{
|
//保存群控数据
|
var name = etGroupName.Text.Trim();
|
if (string.IsNullOrEmpty(name))
|
{
|
new PublicAssmebly().TipMsg(StringId.Tip, StringId.PlsEntryGroupName);
|
return;
|
}
|
groupControl.name = name;
|
groupControl.sids.Clear();
|
foreach (var light in groupControlLightList)
|
{
|
try
|
{
|
var gc = new GroupControlFunction();
|
gc.sid = light.sid;
|
gc.spk = light.spk;
|
groupControl.sids.Add(gc);
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"新增群控转换数据异常:{ex.Message}");
|
}
|
}
|
try
|
{
|
var http = new HttpServerRequest();
|
var pack = http.AddGroupControl(new List<GroupControl>() { groupControl });
|
if (pack != null)
|
{
|
if(pack.Code == StateCode.SUCCESS)
|
{
|
backActon?.Invoke();
|
this.RemoveFromParent();
|
}
|
else
|
{
|
IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
|
}
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"新增群控异常:{ex.Message}");
|
}
|
}
|
};
|
|
#endregion
|
|
//加载功能筛选组件
|
LoadDialog_ChangeFloor();
|
}
|
|
/// <summary>
|
/// 显示的设备的总数
|
/// </summary>
|
int showCount = 0;
|
|
/// <summary>
|
/// 加载功能row
|
/// </summary>
|
/// <param name="lightList"></param>
|
void LoadLightRow(List<Function> functions, bool isAppend = false)
|
{
|
var waitPage = new Loading();
|
bodyView.AddChidren(waitPage);
|
waitPage.Start("");
|
|
new Thread(() =>
|
{
|
try
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (!isAppend)
|
{
|
showCount = 0;
|
functionListView.RemoveAll();
|
}
|
int i = 0;
|
foreach (var function in functions)
|
{
|
i++;
|
if (i > 100)
|
{
|
break;
|
}
|
showCount++;
|
var functionDiv = new LightRow(function)
|
{
|
Gravity = Gravity.CenterHorizontal,
|
//Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(62),
|
BorderColor = 0x00FFFFFF,
|
BorderWidth = 1,
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Tag = function.spk + function.sid
|
};
|
functionDiv.AddChidren(new Button()
|
{
|
Y = Application.GetRealHeight(61),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealWidth(1),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
});
|
|
Action setAction = () =>
|
{
|
if (groupControlLightList.Count > 0)
|
{
|
btnConfrim.IsSelected = true;
|
}
|
else
|
{
|
btnConfrim.IsSelected = false;
|
}
|
};
|
|
functionDiv.LoadDiv(groupControlLightList, setAction);
|
functionListView.AddChidren(functionDiv);
|
}
|
|
if (functions.Count > showCount)
|
{
|
var btnAppend = new Button()
|
{
|
Height = Application.GetRealHeight(60),
|
TextAlignment = TextAlignment.Center,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
Text = "加载更多",
|
};
|
if (Language.CurrentLanguage != "Chinese")
|
{
|
btnAppend.Text = "Load more";
|
}
|
functionListView.AddChidren(btnAppend);
|
btnAppend.MouseUpEventHandler = (sender, e) =>
|
{
|
btnAppend.RemoveFromParent();
|
LoadLightRow(functions, true);
|
};
|
}
|
});
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log("ShowFunctionRowError : " + ex.Message);
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (waitPage != null)
|
{
|
waitPage.RemoveFromParent();
|
waitPage = null;
|
}
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
|
}
|
|
|
/// <summary>
|
/// 住宅列表点击事件
|
/// </summary>
|
void LoadDialog_ChangeFloor()
|
{
|
string nowSelectId = null;
|
btnFloor.MouseUpEventHandler += (sender, e) =>
|
{
|
//显示下拉列表
|
var form = new FloorRoomSelectPopupView();
|
form.ShowDeviceFunctionView(btnFloor, this.lightList, (selectId, listFunc) =>
|
{
|
btnChooseAll.MouseUpEventHandler = (sender2, e2) => {
|
if (groupControlLightList.Count > 0)
|
{
|
groupControlLightList.Clear();
|
btnChooseAll.TextID = StringId.SelectAll;
|
btnConfrim.IsSelected = false;
|
}
|
else
|
{
|
groupControlLightList.AddRange(listFunc);
|
btnChooseAll.TextID = StringId.Cancel;
|
btnConfrim.IsSelected = true;
|
}
|
LoadLightRow(listFunc);
|
};
|
nowSelectId = selectId;
|
//重新加载界面
|
LoadLightRow(listFunc);
|
}, nowSelectId);
|
};
|
}
|
|
}
|
|
|
//public class LightRow : FrameLayout
|
//{
|
// #region 区域控件
|
// static FrameLayout bodyDiv;
|
// /// <summary>
|
// /// 功能/场景icon
|
// /// </summary>
|
// Button btnIcon;
|
// /// <summary>
|
// /// 功能名称/场景名称
|
// /// </summary>
|
// Button btnName;
|
// /// <summary>
|
// /// 楼层信息显示按钮
|
// /// </summary>
|
// Button btnFromFloor;
|
// /// <summary>
|
// /// 选中按钮
|
// /// </summary>
|
// Button btnSelect;
|
// #endregion
|
|
// #region 区域变量
|
// Function function;
|
// #endregion
|
// public LightRow(Function func)
|
// {
|
// bodyDiv = this;
|
// bodyDiv.Tag = func.sid;
|
// function = func;
|
// }
|
|
|
// /// <summary>
|
// /// 加载控制卡片区域
|
// /// </summary>
|
// public void LoadDiv(List<Function> functions, Action action)
|
// {
|
// btnIcon = new Button()
|
// {
|
// X = Application.GetRealWidth(10),
|
// Y = Application.GetRealHeight(15),
|
// Width = Application.GetRealWidth(32),
|
// Height = Application.GetRealWidth(32),
|
// UnSelectedImagePath = $"FunctionIcon/Icon/{function.IconName}.png"
|
// };
|
// bodyDiv.AddChidren(btnIcon);
|
|
// btnName = new Button()
|
// {
|
// X = Application.GetRealWidth(8 + 10 + 32),
|
// Y = Application.GetRealHeight(10),
|
// Width = Application.GetRealWidth(200),
|
// Height = Application.GetRealHeight(24),
|
// Text = function.name,
|
// TextAlignment = TextAlignment.CenterLeft,
|
// TextColor = CSS_Color.FirstLevelTitleColor,
|
// TextSize = CSS_FontSize.TextFontSize,
|
// };
|
// bodyDiv.AddChidren(btnName);
|
|
// btnFromFloor = new Button()
|
// {
|
// X = Application.GetRealWidth(8 + 10 + 32),
|
// Y = Application.GetRealHeight(10 + 24),
|
// Width = Application.GetRealWidth(200),
|
// Height = Application.GetRealHeight(18),
|
// Text = function.GetRoomListName(),
|
// TextAlignment = TextAlignment.CenterLeft,
|
// TextColor = CSS_Color.PromptingColor1,
|
// TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
// };
|
// bodyDiv.AddChidren(btnFromFloor);
|
|
// btnSelect = new Button()
|
// {
|
// X = Application.GetRealWidth(303),
|
// Gravity = Gravity.CenterVertical,
|
// Width = Application.GetRealWidth(32),
|
// Height = Application.GetRealWidth(32),
|
// UnSelectedImagePath = "FunctionIcon/Light/LightScene/CheckIcon.png",
|
// SelectedImagePath = "FunctionIcon/Light/LightScene/CheckOnIcon.png",
|
// IsSelected = functions.Find((obj) => obj.deviceId == function.deviceId) != null
|
// };
|
// bodyDiv.AddChidren(btnSelect);
|
|
// btnSelect.MouseUpEventHandler = (sender, e) => {
|
// btnSelect.IsSelected = !btnSelect.IsSelected;
|
// if (btnSelect.IsSelected)
|
// {
|
// var addTemp = functions.Find((obj) => obj.deviceId == function.deviceId);
|
// if (addTemp == null)
|
// {
|
// functions.Add(function);
|
// }
|
// }
|
// else
|
// {
|
// var removeTemp = functions.Find((obj) => obj.deviceId == function.deviceId);
|
// if (removeTemp != null)
|
// {
|
// functions.Remove(removeTemp);
|
// }
|
// }
|
// ///刷新界面
|
// if (functions.Count == 0 || functions.Count == 1)
|
// {
|
// action();
|
// }
|
// };
|
|
// }
|
|
|
//}
|
|
///// <summary>
|
///// 灯光场景编辑弹窗
|
///// </summary>
|
//public class LightSceneEditDialog : Dialog
|
//{
|
|
|
// Dictionary<string, string> d = new Dictionary<string, string>();
|
// List<Function> listSwitch = new List<Function>();
|
// List<Function> lightDimming = new List<Function>();
|
// List<Function> lightCCT = new List<Function>();
|
// List<Function> lightRGB = new List<Function>();
|
|
// /// <summary>
|
// /// 传入的灯光列表
|
// /// 加入场景控制功能列表
|
// /// </summary>
|
// List<Function> lights;
|
// /// <summary>
|
// /// 临时灯光对象
|
// /// 处理灯光方法
|
// /// </summary>
|
// Light tempLight = new Light();
|
// //发送数据收集
|
// Dictionary<string, string> commandDic = new Dictionary<string, string>();
|
|
// Scene scene;
|
// Action<Scene> backAction;
|
// public LightSceneEditDialog(List<Function> functions, Scene inParScene, Action<Scene> action)
|
// {
|
// lights = functions;
|
// scene = inParScene;
|
// backAction = action;
|
// }
|
|
|
// public void ShowDialog()
|
// {
|
// commandDic.Clear();
|
// commandDic.Add(FunctionAttributeKey.OnOff, "off");
|
|
// listSwitch = lights.FindAll((obj) => obj.spk == SPK.LightSwitch);
|
// lightDimming = lights.FindAll((obj) => obj.spk == SPK.LightDimming);
|
// lightCCT = lights.FindAll((obj) => obj.spk == SPK.LightCCT);
|
// lightRGB = lights.FindAll((obj) => obj.spk == SPK.LightRGB);
|
|
|
|
// var hadDimming = lightDimming.Count > 0;
|
// var hadCCT = lightCCT.Count > 0;
|
// var hadRGB = lightRGB.Count > 0;
|
// if (hadRGB)
|
// {
|
// commandDic.Add(FunctionAttributeKey.RGB, lightRGB[0].GetAttrState(FunctionAttributeKey.RGB));
|
// commandDic.Add(FunctionAttributeKey.Brightness, lightRGB[0].GetAttrState(FunctionAttributeKey.Brightness));
|
// }
|
// if (hadCCT)
|
// {
|
// commandDic.Add(FunctionAttributeKey.CCT, lightCCT[0].GetAttrState(FunctionAttributeKey.CCT));
|
// if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness))
|
// {
|
// commandDic.Add(FunctionAttributeKey.Brightness, lightCCT[0].GetAttrState(FunctionAttributeKey.Brightness));
|
// }
|
// }
|
// if (hadDimming)
|
// {
|
// if (!commandDic.ContainsKey(FunctionAttributeKey.Brightness))
|
// {
|
// commandDic.Add(FunctionAttributeKey.Brightness, lightDimming[0].GetAttrState(FunctionAttributeKey.Brightness));
|
// }
|
// }
|
|
// var bodyView = new FrameLayout();
|
// this.AddChidren(bodyView);
|
// bodyView.MouseUpEventHandler = (sender, e) => {
|
// this.Close();
|
// };
|
|
// var contentView = new FrameLayout()
|
// {
|
// BackgroundColor = CSS_Color.MainBackgroundColor,
|
// Width = Application.GetRealWidth(343),
|
// Radius = (uint)Application.GetRealWidth(12),
|
// };
|
// bodyView.AddChidren(contentView);
|
|
// #region 标题区
|
// var titleView = new FrameLayout()
|
// {
|
// Width = Application.GetRealWidth(343),
|
// Height = Application.GetRealHeight(52),
|
// };
|
// contentView.AddChidren(titleView);
|
|
// var btnTitle = new Button()
|
// {
|
// Height = Application.GetRealHeight(52),
|
// Gravity = Gravity.Center,
|
// TextSize = CSS_FontSize.SubheadingFontSize,
|
// TextColor = CSS_Color.MainColor,
|
// TextID = StringId.CombinedDimming,
|
// TextAlignment = TextAlignment.Center,
|
// };
|
// if (btnTitle.GetTextWidth() > Application.GetRealWidth(197))//247
|
// {
|
// btnTitle.Width = Application.GetRealWidth(197);
|
// btnTitle.IsMoreLines = true;
|
// }
|
// else
|
// {
|
// btnTitle.Width = btnTitle.GetTextWidth() + Application.GetRealWidth(10);
|
// btnTitle.IsMoreLines = false;
|
// }
|
// titleView.AddChidren(btnTitle);
|
|
// var btnEditIcon = new Button()
|
// {
|
// Width = Application.GetRealWidth(24),
|
// Height = Application.GetRealWidth(24),
|
// X = Application.GetRealWidth(12) + btnTitle.Right,
|
// Gravity = Gravity.CenterVertical,
|
// UnSelectedImagePath = "Public/Edit.png",
|
// };
|
// if (string.IsNullOrEmpty(scene.userSceneId))
|
// {
|
// titleView.AddChidren(btnEditIcon);
|
// }
|
// else
|
// {
|
// btnTitle.Text = scene.name;
|
// btnTitle.Width = btnTitle.GetTextWidth() + Application.GetRealWidth(10);
|
// btnTitle.Gravity = Gravity.Center;
|
// }
|
|
// Action<string> callBack = (str) =>
|
// {
|
// //名称不能为空
|
// if (string.IsNullOrEmpty(str))
|
// {
|
// new Tip()
|
// {
|
// CloseTime = 1,
|
// Text = Language.StringByID(StringId.NameCannotBeEmpty),
|
// Direction = AMPopTipDirection.None,
|
// }.Show(bodyView);
|
// return;
|
// }
|
// btnTitle.Text = str;
|
// scene.name = str;
|
|
|
// if (btnTitle.GetTextWidth() > Application.GetRealWidth(197))//247
|
// {
|
// btnTitle.Width = Application.GetRealWidth(197);
|
// }
|
// else
|
// {
|
// btnTitle.Width = btnTitle.GetTextWidth();
|
// }
|
|
// };
|
// EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
// {
|
// List<string> sceneNameList = new List<string>();
|
// foreach (var tempScene in FunctionList.List.scenes)
|
// {
|
// sceneNameList.Add(tempScene.name);
|
// }
|
// new PublicAssmebly().LoadDialog_EditParater(StringId.SceneName, scene.name, callBack, StringId.SceneNameCannotBeEmpty, StringId.SceneNameAlreadyExists, sceneNameList);
|
// };
|
// btnTitle.MouseUpEventHandler = eventHandler;
|
// btnEditIcon.MouseUpEventHandler = eventHandler;
|
|
// titleView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor, Y = Application.GetRealHeight(51) });
|
|
// #endregion
|
|
|
// //var dimmingLight = lights.Find((obj) => obj.spk == SPK.LightDimming);
|
// //var cctLight = lights.Find((obj) => obj.spk == SPK.LightCCT);
|
// //var rgbLight = lights.Find((obj) => obj.spk == SPK.LightRGB);
|
// var dimmingLight = scene.functions.Find((obj) => obj.localFunction.spk == SPK.LightDimming);
|
// var cctLight = scene.functions.Find((obj) => obj.localFunction.spk == SPK.LightCCT);
|
// var rgbLight = scene.functions.Find((obj) => obj.localFunction.spk == SPK.LightRGB);
|
|
// var brightnessValue = 0;
|
// var cctValue = 27;
|
// //if(rgbLight!= null)
|
// //{
|
// // int.TryParse(rgbLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue);
|
// //}
|
// //if (cctLight != null)
|
// //{
|
// // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness).value, out brightnessValue);
|
// // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out cctValue);
|
// //}
|
// //if(dimmingLight!=null)
|
// //{
|
// // int.TryParse(cctLight.status.Find((obj) => obj.key == FunctionAttributeKey.CCT).value, out brightnessValue);
|
// //}
|
|
|
// //属性设置区域
|
// var attrView = new VerticalScrolViewLayout()
|
// {
|
// Y = Application.GetRealHeight(52),
|
// Width = Application.GetRealWidth(343),
|
// ScrollEnabled = false,
|
// };
|
// //属性设置区域高度
|
// int attrViewHight = Application.GetRealHeight(18 + 22);
|
|
|
// //只有继电器
|
// if (!hadDimming && !hadCCT && !hadRGB)
|
// {
|
// attrViewHight += Application.GetRealHeight(50);
|
// attrView.Height = attrViewHight;
|
// contentView.AddChidren(attrView);
|
// attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) });
|
|
// var view = new FrameLayout()
|
// {
|
// Width = Application.GetRealWidth(343),
|
// Height = Application.GetRealHeight(50),
|
// };
|
// attrView.AddChidren(view);
|
|
|
// var btnClose = new Button()
|
// {
|
// X = Application.GetRealWidth(50),
|
// Gravity = Gravity.CenterVertical,
|
// Width = Application.GetRealWidth(98),
|
// Height = Application.GetRealHeight(40),
|
// TextColor = CSS_Color.TextualColor,
|
// SelectedBackgroundColor = CSS_Color.MainColor,
|
// SelectedTextColor = CSS_Color.MainBackgroundColor,
|
// BackgroundColor = CSS_Color.DividingLineColor,
|
// TextID = StringId.OFF,
|
// TextSize = CSS_FontSize.TextFontSize,
|
// Radius = (uint)Application.GetRealWidth(5),
|
// IsSelected = true,
|
// //BorderWidth = 1,
|
// //BorderColor = 0x00000000
|
// };
|
// view.AddChidren(btnClose);
|
|
// var btnOpen = new Button()
|
// {
|
// X = Application.GetRealWidth(100 + 98),
|
// Gravity = Gravity.CenterVertical,
|
// Width = Application.GetRealWidth(98),
|
// Height = Application.GetRealHeight(40),
|
// TextColor = CSS_Color.TextualColor,
|
// SelectedBackgroundColor = CSS_Color.MainColor,
|
// SelectedTextColor = CSS_Color.MainBackgroundColor,
|
// BackgroundColor = CSS_Color.DividingLineColor,
|
// TextID = StringId.On,
|
// TextSize = CSS_FontSize.TextFontSize,
|
// Radius = (uint)Application.GetRealWidth(5),
|
// };
|
// view.AddChidren(btnOpen);
|
|
// btnClose.MouseUpEventHandler = (sender, e) =>
|
// {
|
// btnClose.IsSelected = true;
|
// btnOpen.IsSelected = false;
|
// commandDic[FunctionAttributeKey.OnOff] = "off";
|
// d.Clear();
|
// d.Add(FunctionAttributeKey.OnOff, "off");
|
// foreach (var light in lights)
|
// {
|
// Control.Ins.SendWriteCommand(light, d);
|
// }
|
// };
|
// btnOpen.MouseUpEventHandler = (sender, e) =>
|
// {
|
// btnClose.IsSelected = false;
|
// btnOpen.IsSelected = true;
|
// commandDic[FunctionAttributeKey.OnOff] = "on";
|
// d.Clear();
|
// d.Add(FunctionAttributeKey.OnOff, "on");
|
// foreach (var light in lights)
|
// {
|
// Control.Ins.SendWriteCommand(light, d);
|
// }
|
// };
|
|
// }
|
|
// else
|
// {
|
// if (hadRGB)
|
// {
|
// attrViewHight += Application.GetRealHeight(248);
|
// hadDimming = true;
|
// }
|
// if (hadCCT)
|
// {
|
// attrViewHight += Application.GetRealHeight(54 + 11);
|
// hadDimming = true;
|
// }
|
// if (hadDimming)
|
// {
|
// attrViewHight += Application.GetRealHeight(54 + 11);
|
// }
|
// attrView.Height = attrViewHight;
|
// contentView.AddChidren(attrView);
|
// attrView.AddChidren(new Button() { Height = Application.GetRealHeight(18) });
|
|
|
// if (hadDimming)
|
// {
|
// LoadDimmingAttrView(attrView);
|
// }
|
// if (hadCCT)
|
// {
|
// LoadCctAttrView(attrView);
|
// }
|
// if (hadRGB)
|
// {
|
// LoadRgbAttrView(attrView);
|
// }
|
// }
|
|
// contentView.Height = Application.GetRealHeight(52 + 44) + attrViewHight;
|
// contentView.Gravity = Gravity.Center;
|
|
|
|
|
// #region bottom View
|
// var bottomView = new FrameLayout()
|
// {
|
// Y = Application.GetRealHeight(52) + attrViewHight,
|
// Height = Application.GetRealHeight(46),
|
// };
|
// contentView.AddChidren(bottomView);
|
// bottomView.AddChidren(new Button() { Height = 1, BackgroundColor = CSS_Color.DividingLineColor });
|
|
// if (string.IsNullOrEmpty(scene.userSceneId))
|
// {
|
// var btnCacel = new Button()
|
// {
|
// Width = Application.GetRealWidth(172),
|
// Height = Application.GetRealHeight(44),
|
// TextAlignment = TextAlignment.Center,
|
// TextSize = CSS_FontSize.SubheadingFontSize,
|
// TextColor = CSS_Color.TextualColor,
|
// TextID = StringId.Cancel,
|
// };
|
// bottomView.AddChidren(btnCacel);
|
|
// var btnSave = new Button()
|
// {
|
// X = Application.GetRealWidth(172),
|
// Width = Application.GetRealWidth(172),
|
// Height = Application.GetRealHeight(46),
|
// BackgroundColor = CSS_Color.MainColor,
|
// TextColor = CSS_Color.MainBackgroundColor,
|
// TextAlignment = TextAlignment.Center,
|
// TextSize = CSS_FontSize.SubheadingFontSize,
|
// TextID = StringId.Save
|
// };
|
// bottomView.AddChidren(btnSave);
|
|
// //例:右下圆角 大小为50
|
// int mRectCornerID = HDLUtils.RectCornerBottomRight;
|
// btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
|
|
// btnCacel.MouseUpEventHandler = (sender, e) =>
|
// {
|
// this.Close();
|
|
// //var waitPage = new Loading();
|
// //MainPage.BaseView.AddChidren(waitPage);
|
// //waitPage.Start(Language.StringByID(StringId.PleaseWait));
|
// //new Thread(() =>
|
// //{
|
// // try
|
// // {
|
// // foreach (var light in lights)
|
// // {
|
// // Dictionary<string, string> sendDate = new Dictionary<string, string>();
|
// // //赋值场景功能数据
|
// // foreach (var attr in light.GetAttributes())
|
// // {
|
// // if (commandDic.ContainsKey(attr))
|
// // {
|
// // try
|
// // {
|
// // sendDate.Add(attr, commandDic[attr]);
|
// // }
|
// // catch { }
|
// // }
|
|
// // }
|
// // Control.Ins.SendWriteCommand(light, sendDate);
|
// // Thread.Sleep(50);
|
// // }
|
// // }
|
// // catch
|
// // { }
|
// // finally
|
// // {
|
// // Application.RunOnMainThread(() =>
|
// // {
|
// // waitPage.Hide();
|
// // new PublicAssmebly().TipMsgAutoClose("组合控制已执行", true);
|
// // if (waitPage != null)
|
// // {
|
// // //backAction(null);
|
// // waitPage.RemoveFromParent();
|
// // }
|
// // });
|
// // }
|
// //})
|
// //{ IsBackground = true }.Start();
|
// };
|
|
// btnSave.MouseUpEventHandler = (sender, e) =>
|
// {
|
// if (string.IsNullOrEmpty(scene.name))
|
// {
|
// new Tip()
|
// {
|
// CloseTime = 1,
|
// Text = Language.StringByID(StringId.NameCannotBeEmpty),
|
// Direction = AMPopTipDirection.None,
|
// }.Show(bodyView);
|
// return;
|
// }
|
// foreach (var tempRoom in FunctionList.List.scenes)
|
// {
|
// if (scene.name == tempRoom.name)
|
// {
|
// new PublicAssmebly().TipMsg(StringId.Tip, StringId.NameAlreadyExists);
|
// return;
|
// }
|
// }
|
// var waitPage = new Loading();
|
// MainPage.BaseView.AddChidren(waitPage);
|
// waitPage.Start(Language.StringByID(StringId.PleaseWait));
|
// new Thread(() =>
|
// {
|
// try
|
// {
|
// var serverScene = new Scene();
|
// for (int i = 0; i < lights.Count; i++)
|
// {
|
// var light = lights[i];
|
// //赋值场景功能数据
|
// foreach (var attr in light.GetAttributes())
|
// {
|
// if (commandDic.ContainsKey(attr))
|
// {
|
// try
|
// {
|
// light.SetAttrState(attr, commandDic[attr]);
|
// }
|
// catch { }
|
// }
|
// }
|
// //转换场景的功能对象
|
// var sceneFunction = light.ConvertSceneFunction();
|
// //查询有没有存在
|
// var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid);
|
// //赋值
|
// if (temp != null)
|
// {
|
// temp = sceneFunction;
|
// }
|
// else
|
// {
|
// scene.functions.Add(sceneFunction);
|
// }
|
// }
|
// var result = FunctionList.List.AddScene(scene, out serverScene);
|
// Application.RunOnMainThread(() =>
|
// {
|
// if (result == StateCode.SUCCESS)
|
// {
|
// scene.userSceneId = serverScene.userSceneId;
|
// FunctionList.List.scenes.Add(scene);
|
// backAction?.Invoke(scene);
|
// this.Close();
|
// }
|
// else
|
// {
|
// if (result == "124005")
|
// IMessageCommon.Current.ShowErrorInfoAlter(Language.StringByID(StringId.GatewayOffline));
|
// else
|
// IMessageCommon.Current.ShowErrorInfoAlter(result);
|
// }
|
// });
|
// }
|
// catch { }
|
// finally
|
// {
|
// Application.RunOnMainThread(() =>
|
// {
|
// waitPage.Hide();
|
// waitPage.RemoveFromParent();
|
// });
|
// }
|
// })
|
// { IsBackground = true, Priority = ThreadPriority.AboveNormal }.Start();
|
// };
|
// }
|
// else
|
// {
|
// var btnCacel = new Button()
|
// {
|
// Height = Application.GetRealHeight(44),
|
// TextAlignment = TextAlignment.Center,
|
// TextSize = CSS_FontSize.SubheadingFontSize,
|
// TextColor = CSS_Color.TextualColor,
|
// TextID = StringId.Close,
|
// };
|
// bottomView.AddChidren(btnCacel);
|
|
|
// //例:右下圆角 大小为50
|
// //int mRectCornerID = HDLUtils.RectCornerBottomRight;
|
// //btnSave.SetCornerWithSameRadius((uint)Application.GetRealWidth(14), mRectCornerID);
|
|
// btnCacel.MouseUpEventHandler = (sender, e) =>
|
// {
|
// this.Close();
|
// };
|
|
// }
|
|
|
|
|
|
// #endregion
|
|
|
// this.Show();
|
|
// }
|
|
// /// <summary>
|
// /// 加载调光属性设置控件
|
// /// </summary>
|
// /// <param name="attrView"></param>
|
// void LoadDimmingAttrView(VerticalScrolViewLayout attrView)
|
// {
|
// string briValue = "";
|
// commandDic.TryGetValue(FunctionAttributeKey.Brightness, out briValue);
|
|
// var dimmingView = new FrameLayout()
|
// {
|
// Height = Application.GetRealHeight(54 + 11)
|
// };
|
// attrView.AddChidren(dimmingView);
|
|
// #region 亮度调节
|
// var btnBrightnessText = new Button()
|
// {
|
// X = Application.GetRealWidth(35),
|
// Y = Application.GetRealHeight(1),
|
// Width = Application.GetRealWidth(224),
|
// Height = Application.GetRealHeight(25),
|
// TextAlignment = TextAlignment.CenterLeft,
|
// TextColor = CSS_Color.FirstLevelTitleColor,
|
// TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
// TextID = StringId.Brightness,
|
// };
|
// btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + commandDic[FunctionAttributeKey.Brightness] + "%";
|
// dimmingView.AddChidren(btnBrightnessText);
|
|
|
// var btnMinValuesText = new Button()
|
// {
|
// X = Application.GetRealWidth(35),
|
// Y = btnBrightnessText.Bottom,
|
// Width = Application.GetRealWidth(40),
|
// Height = Application.GetRealHeight(21),
|
// Text = "0%",
|
// TextAlignment = TextAlignment.CenterLeft,
|
// TextColor = CSS_Color.PromptingColor1,
|
// TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
// };
|
// dimmingView.AddChidren(btnMinValuesText);
|
|
// var dimmerBar = new DiyImageSeekBar()
|
// {
|
// X = Application.GetRealWidth(45 + 10),
|
// Y = Application.GetRealHeight(11),
|
// Width = Application.GetRealWidth(220),
|
// Height = Application.GetRealHeight(54),
|
// SeekBarViewHeight = Application.GetRealHeight(8),
|
// ThumbImagePath = "Public/ThumbImage.png",
|
// ThumbImageHeight = Application.GetRealHeight(54),
|
// ProgressTextColor = CSS_Color.FirstLevelTitleColor,
|
// ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
// ProgressBarColor = CSS_Color.AuxiliaryColor1,
|
// MaxValue = 100,
|
// Progress = Convert.ToInt32(commandDic[FunctionAttributeKey.Brightness]),
|
// SeekBarPadding = Application.GetRealWidth(20),
|
// IsProgressTextShow = false,
|
// ProgressChangeDelayTime = 0,
|
// };
|
// dimmingView.AddChidren(dimmerBar);
|
// dimmerBar.OnProgressChangedEvent = (sender, e) => {
|
// btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%";
|
// };
|
// dimmerBar.OnStopTrackingTouchEvent = (sender, e) => {
|
// commandDic[FunctionAttributeKey.Brightness] = dimmerBar.Progress.ToString();
|
// btnBrightnessText.Text = Language.StringByID(StringId.Brightness) + " " + e + "%";
|
|
// foreach (var light in lights)
|
// {
|
// if (light.spk == SPK.LightSwitch)
|
// {
|
// d.Clear();
|
// d.Add(FunctionAttributeKey.OnOff, e > 0 ? "on" : "off");
|
// Control.Ins.SendWriteCommand(light, d);
|
// }
|
// else
|
// {
|
// d.Clear();
|
// d.Add(FunctionAttributeKey.Brightness, e.ToString());
|
// Control.Ins.SendWriteCommand(light, d);
|
// }
|
// }
|
// };
|
|
|
// var btnMaxValuesText = new Button()
|
// {
|
// X = dimmerBar.Right,
|
// Y = btnBrightnessText.Bottom,
|
// Width = Application.GetRealWidth(55),
|
// Height = Application.GetRealHeight(21),
|
// Text = "100%",
|
// TextAlignment = TextAlignment.CenterLeft,
|
// TextColor = CSS_Color.PromptingColor1,
|
// TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
// };
|
// dimmingView.AddChidren(btnMaxValuesText);
|
// #endregion
|
|
// }
|
|
// /// <summary>
|
// /// 加载cct属性设置控件
|
// /// </summary>
|
// /// <param name="attrView"></param>
|
// void LoadCctAttrView(VerticalScrolViewLayout attrView)
|
// {
|
// #region 色温
|
|
// string valueStr = "2700";
|
// commandDic.TryGetValue(FunctionAttributeKey.CCT, out valueStr);
|
// int value = Convert.ToInt32(valueStr) / 100;
|
|
// var cctView = new FrameLayout()
|
// {
|
// Height = Application.GetRealHeight(54 + 11)
|
// };
|
// attrView.AddChidren(cctView);
|
|
|
// //色温
|
// var btnTempClolor = new Button();
|
// btnTempClolor.X = Application.GetRealWidth(35);
|
// btnTempClolor.Y = Application.GetRealHeight(1);
|
// btnTempClolor.Width = Application.GetRealWidth(224);
|
// btnTempClolor.Height = Application.GetRealHeight(21);
|
// btnTempClolor.TextAlignment = TextAlignment.CenterLeft;
|
// btnTempClolor.TextColor = CSS_Color.FirstLevelTitleColor;
|
// btnTempClolor.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
// btnTempClolor.TextID = StringId.ColorTemperature;
|
// cctView.AddChidren(btnTempClolor);
|
|
// //2700K
|
// var btnTempClolorMin = new Button()
|
// {
|
// X = Application.GetRealWidth(35),
|
// Y = btnTempClolor.Bottom,
|
// Width = Application.GetRealWidth(40),
|
// Height = Application.GetRealHeight(21),
|
// };
|
// btnTempClolorMin.Width = Application.GetRealWidth(54);
|
// btnTempClolorMin.Height = Application.GetRealHeight(21);
|
// btnTempClolorMin.Text = "2700K";
|
// btnTempClolorMin.TextAlignment = TextAlignment.CenterLeft;
|
// btnTempClolorMin.TextColor = CSS_Color.PromptingColor1;
|
// btnTempClolorMin.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
// cctView.AddChidren(btnTempClolorMin);
|
|
// //滑动条的背景图片
|
// var btnColorTemplatrueBack = new Button()
|
// {
|
// X = Application.GetRealWidth(55 + 22 + 15),
|
// Y = Application.GetRealHeight(11),
|
// Width = Application.GetRealWidth(180),
|
// Height = Application.GetRealHeight(54),
|
// };
|
// btnColorTemplatrueBack.UnSelectedImagePath = "FunctionIcon/Light/ColorTemperatureBar.png";
|
// btnColorTemplatrueBack.Height = Application.GetRealHeight(8);
|
// btnColorTemplatrueBack.Gravity = Gravity.CenterHorizontal;
|
// cctView.AddChidren(btnColorTemplatrueBack);
|
// //滑动条控件
|
// var barColorTemplatrue = new CCTSeekBarControl()
|
// {
|
// X = Application.GetRealWidth(55 + 22),
|
// Y = Application.GetRealHeight(11),
|
// Width = Application.GetRealWidth(220),
|
// Height = Application.GetRealHeight(54),
|
// };
|
// barColorTemplatrue.MinValue = 27;
|
// barColorTemplatrue.MaxValue = 65;
|
// barColorTemplatrue.ProgressBarColor = 0x00000000;//全部透明
|
// barColorTemplatrue.ProgressBarUnEnableColor = 0x00000000;
|
// barColorTemplatrue.SeekBarBackgroundColor = 0x00000000;
|
// cctView.AddChidren(barColorTemplatrue);
|
// barColorTemplatrue.Y = btnTempClolorMin.Y - (barColorTemplatrue.Height - btnTempClolorMin.Height) / 2;
|
// barColorTemplatrue.Progress = value;
|
// //设置初始值
|
// btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K");
|
// barColorTemplatrue.OnProgressChangedEvent = (sender, e) =>
|
// {
|
// btnTempClolor.Text = Language.StringByID(StringId.ColorTemperature) + " " + (barColorTemplatrue.Progress * 100 + "K");
|
// };
|
// barColorTemplatrue.OnStopTrackingTouchEvent = (sender, e) =>
|
// {
|
// commandDic[FunctionAttributeKey.CCT] = (barColorTemplatrue.Progress * 100).ToString();
|
|
// d.Clear();
|
// d.Add(FunctionAttributeKey.CCT, (barColorTemplatrue.Progress * 100).ToString());
|
// foreach (var light in lightCCT)
|
// {
|
// if (light.spk == SPK.LightCCT)
|
// {
|
// Control.Ins.SendWriteCommand(light, d);
|
// }
|
// }
|
// };
|
// //变更背景图的Y轴坐标
|
// btnColorTemplatrueBack.Y = barColorTemplatrue.Y + (barColorTemplatrue.Height - btnColorTemplatrueBack.Height) / 2;
|
|
// //6500K
|
// var btnTempClolorMax = new Button();
|
// btnTempClolorMax.Y = btnTempClolorMin.Y;
|
// btnTempClolorMax.X = barColorTemplatrue.Right - Application.GetRealWidth(30);
|
// btnTempClolorMax.Width = Application.GetRealWidth(54);
|
// btnTempClolorMax.Height = Application.GetRealHeight(21);
|
// btnTempClolorMax.Text = "6500K";
|
// btnTempClolorMax.TextAlignment = TextAlignment.CenterRight;
|
// btnTempClolorMax.TextColor = CSS_Color.PromptingColor1;
|
// btnTempClolorMax.TextSize = CSS_FontSize.PromptFontSize_FirstLevel;
|
// cctView.AddChidren(btnTempClolorMax);
|
|
// #endregion
|
|
|
// }
|
|
// /// <summary>
|
// /// 加载rgb属性设置控件
|
// /// </summary>
|
// /// <param name="attrView"></param>
|
// void LoadRgbAttrView(VerticalScrolViewLayout attrView)
|
// {
|
|
// #region RGB
|
|
// string value = "255,255,255";
|
// commandDic.TryGetValue(FunctionAttributeKey.RGB, out value);
|
|
// var rgbView = new FrameLayout()
|
// {
|
// Height = Application.GetRealHeight(248)
|
// };
|
// attrView.AddChidren(rgbView);
|
|
|
// var btnCurColor = new Button()
|
// {
|
// X = Application.GetRealWidth(24),
|
// Y = Application.GetRealHeight(10),
|
// Width = Application.GetMinRealAverage(24),
|
// Height = Application.GetMinRealAverage(24),
|
// Radius = (uint)Application.GetMinRealAverage(8),
|
// BorderColor = CSS_Color.PromptingColor2,
|
// BorderWidth = 1,
|
// BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(commandDic[FunctionAttributeKey.RGB]))
|
// };
|
// rgbView.AddChidren(btnCurColor);
|
|
// //色盘的桌布控件(限制那个白色滑动球使用)
|
// var framePickerBack = new FrameLayout();
|
// framePickerBack.Gravity = Gravity.CenterHorizontal;
|
// framePickerBack.Y = Application.GetRealHeight(20);
|
// framePickerBack.Width = Application.GetMinRealAverage(198);
|
// framePickerBack.Height = Application.GetMinRealAverage(198);
|
// rgbView.AddChidren(framePickerBack);
|
|
// var colorPicker = new ColorPicker()
|
// {
|
// ColorImagePath = "FunctionIcon/Light/ColorWheel.png",
|
// };
|
// framePickerBack.AddChidren(colorPicker);
|
|
|
|
|
|
|
// //白点控件
|
// var btnWhiteRound = new Button();
|
// btnWhiteRound.Width = Application.GetRealWidth(24);
|
// btnWhiteRound.Height = Application.GetRealWidth(24);
|
// btnWhiteRound.UnSelectedImagePath = "FunctionIcon/Light/ColorWheelTip.png";
|
// btnWhiteRound.Visible = false;
|
// framePickerBack.AddChidren(btnWhiteRound);
|
|
|
// //当前点击的【点】是否正确
|
// bool pointIsRight = false;
|
// //圆的半径(考虑边界,需要设置它的半径比较小一点)
|
// int circleR = colorPicker.Width / 2 - Application.GetRealWidth(12);
|
|
// colorPicker.MouseUpEventHandler = (sender2, e) => {
|
// d.Clear();
|
// d.Add(FunctionAttributeKey.RGB, commandDic[FunctionAttributeKey.RGB]);
|
// foreach (var light in lightCCT)
|
// {
|
// if (light.spk == SPK.LightCCT)
|
// {
|
// Control.Ins.SendWriteCommand(light, d);
|
// }
|
// }
|
// };
|
// colorPicker.ColorChaged += (sender2, e2) => {
|
// string rgbString = (e2[0] + "," + e2[1] + "," + e2[2]).ToString();
|
// commandDic[FunctionAttributeKey.RGB] = rgbString;
|
// btnCurColor.BackgroundColor = (uint)(0xFF000000 + tempLight.GetRGBcolor(rgbString));
|
// foreach (var rgbTemp in lightRGB)
|
// {
|
// rgbTemp.SetAttrState(FunctionAttributeKey.RGB, rgbString);
|
// }
|
// };
|
// colorPicker.MouseDownEventHandler += (sender, e) =>
|
// {
|
// pointIsRight = this.CheckPoint(circleR, colorPicker.Width / 2, colorPicker.Height / 2, (int)e.X, (int)e.Y);
|
// if (pointIsRight == false)
|
// {
|
// //点的区域不是圆盘内
|
// return;
|
// }
|
// //显示白点
|
// btnWhiteRound.X = (int)e.X - btnWhiteRound.Width / 2;
|
// btnWhiteRound.Y = (int)e.Y - btnWhiteRound.Height / 2;
|
// if (btnWhiteRound.Visible == false)
|
// {
|
// btnWhiteRound.Visible = true;
|
// }
|
// };
|
// colorPicker.MouseUpEventHandler = (sender, e) => {
|
// foreach (var rgbTemp in lightRGB)
|
// {
|
// Dictionary<string, string> d = new Dictionary<string, string>();
|
// d.Add(FunctionAttributeKey.RGB, tempLight.GetRGBcolorString(rgbTemp));
|
// Control.Ins.SendWriteCommand(rgbTemp, d, false, 0);
|
// }
|
// };
|
|
// colorPicker.MouseMoveEventHandler += (sender, e) =>
|
// {
|
// //当鼠标点下事件处理
|
// colorPicker.MouseDownEventHandler(sender, e);
|
// };
|
|
|
// #endregion
|
|
// }
|
|
|
// /// <summary>
|
// /// 检测点击点
|
// /// </summary>
|
// /// <param name="circleR">圆的半径</param>
|
// /// <param name="circleX">圆心X轴</param>
|
// /// <param name="circleY">圆心Y轴</param>
|
// /// <param name="pointX">点击点的X轴</param>
|
// /// <param name="pointY">点击点的Y轴</param>
|
// /// <returns></returns>
|
// private bool CheckPoint(int circleR, int circleX, int circleY, int pointX, int pointY)
|
// {
|
// int dwidth = circleX - pointX;
|
// if (dwidth < 0) { dwidth *= -1; }
|
|
// int dHeight = circleY - pointY;
|
// if (dHeight < 0) { dHeight *= -1; }
|
|
// //根据三角函数,求三角形的斜边长
|
// int dlength = dwidth * dwidth + dHeight * dHeight;
|
// //半径长度(不开方,所以是按平方算)
|
// circleR *= circleR;
|
// if (dlength < circleR)
|
// {
|
// //如果组成的三角形并没有长过半径,则代表还在圆内(不允许点边界)
|
// return true;
|
// }
|
// return false;
|
// }
|
|
//}
|
|
}
|