using System;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using Shared;
|
using System.Collections.Generic;
|
|
namespace HDL_ON.UI
|
{
|
public class SceneFunctionInfoEditPage : FrameLayout
|
{
|
FrameLayout bodyView;
|
VerticalScrolViewLayout contentView;
|
Button btnOnText;
|
Button btnBrightnessText;
|
|
Scene scene;
|
|
Action refreshAction;
|
SceneFunction sceneFunction;
|
public SceneFunctionInfoEditPage(Scene s, SceneFunction fc,Action action)
|
{
|
bodyView = this;
|
scene = s;
|
sceneFunction = fc;
|
refreshAction = action;
|
}
|
|
public void LoadPage()
|
{
|
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
|
|
new TopViewDiv(bodyView, sceneFunction.localFunction.name).LoadTopView();
|
|
contentView = new VerticalScrolViewLayout()
|
{
|
Y = Application.GetRealHeight(64),
|
Height = Application.GetRealHeight(520),
|
ScrollEnabled = false,
|
};
|
bodyView.AddChidren(contentView);
|
|
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff));
|
|
foreach (var attr in sceneFunction.status)
|
{
|
switch (attr.key)
|
{
|
case FunctionAttributeKey.SetTemp:
|
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp));
|
break;
|
case FunctionAttributeKey.Mode:
|
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode));
|
break;
|
case FunctionAttributeKey.FanSpeed:
|
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed));
|
break;
|
case FunctionAttributeKey.Percent:
|
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent));
|
break;
|
case FunctionAttributeKey.Brightness:
|
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness));
|
break;
|
case FunctionAttributeKey.FadeTime:
|
LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FadeTime));
|
break;
|
}
|
}
|
|
//加载开关Row
|
//LoadFunctionRow(sceneFunction.localFunction.trait_on_off);
|
//switch (sceneFunction.localFunction.functionType)
|
//{
|
// case SPK.AcStandard:
|
// LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp"));
|
// LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode"));
|
// LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan"));
|
// break;
|
// case SPK.FloorHeatStandard:
|
// LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp"));
|
// LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode"));
|
// break;
|
// case SPK.CurtainSwitch:
|
// //无操作
|
// break;
|
// case SPK.CurtainTrietex:
|
// case SPK.CurtainRoller:
|
// LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent"));
|
// break;
|
// case SPK.LightSwitch:
|
// //无操作
|
// break;
|
// case SPK.LightDimming:
|
// case SPK.LightRGB:
|
// LoadFunctionRow(sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness"));
|
// break;
|
//}
|
|
if (DB_ResidenceData.Instance.GatewayType != 0)
|
{
|
//加载延时Row
|
LoadDelayRow();
|
}
|
|
var bottomView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(591),
|
Height = Application.GetRealHeight(106),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(16),
|
};
|
bodyView.AddChidren(bottomView);
|
|
var btnConfrim = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(12),
|
Width = Application.GetRealWidth(220),
|
Height = Application.GetRealWidth(44),
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.MainBackgroundColor,
|
BackgroundColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
IsBold = true,
|
Radius = (uint) Application.GetRealWidth(22),
|
TextID = StringId.Complete
|
};
|
bottomView.AddChidren(btnConfrim);
|
|
btnConfrim.MouseUpEventHandler = (sender, e) =>
|
{
|
var temp = scene.functions.Find((obj) => obj.sid == sceneFunction.sid);
|
//if (sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness) != null)
|
//{
|
// try
|
// {
|
// //一端口不支持开关值与亮度值一起处理,需要将开关值移除掉
|
// sceneFunction.status.Remove(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff));
|
// }
|
// catch { }
|
//}
|
if (temp != null)
|
{
|
temp = sceneFunction;
|
}
|
else
|
{
|
scene.functions.Add(sceneFunction);
|
}
|
if (!string.IsNullOrEmpty(scene.userSceneId))
|
{
|
var result = scene.UpdateScene();
|
if (result == DAL.Server.StateCode.SUCCESS)
|
{
|
refreshAction();
|
this.RemoveFromParent();
|
}
|
else
|
{
|
DAL.Server.IMessageCommon.Current.ShowErrorInfoAlter(result);
|
}
|
}
|
else
|
{
|
refreshAction();
|
this.RemoveFromParent();
|
}
|
};
|
}
|
|
|
/// <summary>
|
/// 加载功能Row
|
/// </summary>
|
void LoadFunctionRow(SceneFunctionStatus sceneStatus)
|
{
|
if (sceneStatus == null)
|
return;
|
#region Row code
|
var row = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
};
|
contentView.AddChidren(row);
|
|
|
if (sceneStatus.key != FunctionAttributeKey.OnOff)
|
{
|
row.AddChidren(new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
|
}
|
Button btnRight = new Button()
|
{
|
X = Application.GetRealWidth(339),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetMinRealAverage(16),
|
Height = Application.GetMinRealAverage(16),
|
UnSelectedImagePath = "Public/Right.png",
|
};
|
row.AddChidren(btnRight);
|
|
var btnFunctionText = new Button()
|
{
|
Width = Application.GetRealWidth(330),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
Text = sceneStatus.GetValueText() + sceneStatus.GetUintString()
|
};
|
row.AddChidren(btnFunctionText);
|
if (sceneStatus.key == FunctionAttributeKey.OnOff)
|
{
|
btnOnText = btnFunctionText;
|
}
|
else if (sceneStatus.key == FunctionAttributeKey.Brightness || sceneStatus.key == FunctionAttributeKey.Percent)
|
{
|
btnBrightnessText = btnFunctionText;
|
}
|
|
var btnFunctionName = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
Text = sceneStatus.GetNameText()
|
};
|
row.AddChidren(btnFunctionName);
|
btnFunctionName.MouseUpEventHandler = (sender, e) =>
|
{
|
switch (sceneStatus.key)
|
{
|
case FunctionAttributeKey.OnOff:
|
LoadEditDialog_OnOff(sceneStatus, btnFunctionText);
|
break;
|
case FunctionAttributeKey.Brightness:
|
LoadEditDialog_Percent(sceneStatus, btnFunctionText);
|
break;
|
case FunctionAttributeKey.Mode:
|
var statusList = new List<string>();
|
var tr = sceneFunction.localFunction.attributes.Find((obj) => obj.key == FunctionAttributeKey.Mode);
|
foreach(var t in tr.value)
|
{
|
statusList.Add(t);
|
}
|
LoadEditDialog_FunctionPar(sceneStatus, btnFunctionText,statusList);
|
break;
|
case FunctionAttributeKey.FanSpeed:
|
var fanStatusList = new List<string>();
|
var tr1 = sceneFunction.localFunction.attributes.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed);
|
foreach (var t in tr1.value)
|
{
|
fanStatusList.Add(t);
|
}
|
LoadEditDialog_FunctionPar(sceneStatus, btnFunctionText, fanStatusList);
|
break;
|
case FunctionAttributeKey.SetTemp:
|
LoadEditDialog_Temp(sceneStatus, btnFunctionText);
|
break;
|
case FunctionAttributeKey.FadeTime:
|
|
break;
|
case "cct":
|
break;
|
case FunctionAttributeKey.Percent:
|
LoadEditDialog_Percent(sceneStatus, btnFunctionText);
|
break;
|
}
|
};
|
|
#endregion
|
}
|
|
|
#region 加载功能场景数据调节界面
|
/// <summary>
|
/// 加载延时Row
|
/// </summary>
|
void LoadDelayRow()
|
{
|
#region 延时row
|
FrameLayout delayRow = new FrameLayout()
|
{
|
Height = Application.GetRealWidth(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor
|
};
|
contentView.AddChidren(delayRow);
|
delayRow.AddChidren(new Button() { X = Application.GetRealWidth(16), Height = Application.GetRealHeight(1), Width = Application.GetRealWidth(343), BackgroundColor = CSS_Color.DividingLineColor });
|
|
Button btnDelayRight = new Button()
|
{
|
X = Application.GetRealWidth(339),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetMinRealAverage(16),
|
Height = Application.GetMinRealAverage(16),
|
UnSelectedImagePath = "Public/Right.png",
|
};
|
delayRow.AddChidren(btnDelayRight);
|
|
var btnDelayInfo = new Button()
|
{
|
Width = Application.GetRealWidth(327),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
Text = new Scene() { delay = sceneFunction.delay }.GetDelayText()
|
};
|
delayRow.AddChidren(btnDelayInfo);
|
|
Button btnSceneDelayTitle = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextID = StringId.Delay,
|
};
|
delayRow.AddChidren(btnSceneDelayTitle);
|
|
|
btnSceneDelayTitle.MouseUpEventHandler = (sender, e) => {
|
Action<string> action = (obj) => {
|
sceneFunction.delay = obj;
|
btnDelayInfo.Text = new Scene() { delay = sceneFunction.delay }.GetDelayText();
|
};
|
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(items,action,sceneFunction.delay);
|
};
|
#endregion
|
|
|
}
|
|
#endregion
|
|
#region 属性选择弹窗
|
/// <summary>
|
/// 加载开关选择弹窗
|
/// </summary>
|
/// <param name="function"></param>
|
/// <param name="btn"></param>
|
void LoadEditDialog_OnOff(SceneFunctionStatus trait, Button btn)
|
{
|
Dialog dialog = new Dialog();
|
|
var pView = new FrameLayout()
|
{
|
BackgroundColor = CSS_Color.DialogTransparentColor1,
|
};
|
dialog.AddChidren(pView);
|
|
var optionBaseView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(500),
|
Height = Application.GetRealHeight(160),
|
AnimateSpeed = 0.3f,
|
Animate = Animate.DownToUp,
|
};
|
pView.AddChidren(optionBaseView);
|
|
var optionView = new VerticalScrolViewLayout()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(100),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
ScrollEnabled = false,
|
};
|
optionBaseView.AddChidren(optionView);
|
|
var btnOn = new Button()
|
{
|
Height = Application.GetRealHeight(50),
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.TextualColor,
|
SelectedTextColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextID = StringId.On,
|
IsSelected = trait.value.ToString() == "on"
|
};
|
optionView.AddChidren(btnOn);
|
|
optionView.AddChidren(new Button() { Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
|
|
var btnOff = new Button()
|
{
|
Height = Application.GetRealHeight(50),
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.TextualColor,
|
SelectedTextColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextID = StringId.OFF,
|
IsSelected = trait.value.ToString() == "off"
|
};
|
optionView.AddChidren(btnOff);
|
|
var btnCancel = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(8) + optionView.Bottom,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
TextID = StringId.Cancel,
|
TextColor = CSS_Color.WarningColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
};
|
optionBaseView.AddChidren(btnCancel);
|
|
dialog.Show();
|
|
pView.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
};
|
|
btnCancel.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
};
|
btnOn.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
trait.value = "on";
|
sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = "on";
|
btn.Text = trait.GetValueText() + trait.GetUintString();
|
|
var temp = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness);
|
if (temp == null)
|
{
|
temp = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent);
|
}
|
if (temp != null)
|
{
|
if (temp.value == "0")
|
{
|
temp.value = "100";
|
}
|
btnBrightnessText.Text = temp.GetValueText() + "%";
|
}
|
};
|
btnOff.MouseUpEventHandler = (sender,e) =>{
|
dialog.Close();
|
trait.value = "off";
|
sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = "off";
|
btn.Text= trait.GetValueText() + trait.GetUintString();
|
|
var temp = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness);
|
if(temp == null)
|
{
|
temp = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent);
|
}
|
if (temp != null)
|
{
|
if (temp.value != "0")
|
{
|
temp.value = "0";
|
}
|
btnBrightnessText.Text = temp.GetValueText() + "%";
|
}
|
};
|
|
}
|
|
/// <summary>
|
/// 加载温度选择弹窗
|
/// </summary>
|
/// <param name="function"></param>
|
/// <param name="btn"></param>
|
void LoadEditDialog_Temp(SceneFunctionStatus trait, Button btn)
|
{
|
double temp = 16;
|
double.TryParse(trait.value, out temp);
|
trait.value = temp.ToString();
|
|
List<string> pickerItems = new List<string>();
|
if(trait == null)
|
{
|
return;
|
}
|
|
Dialog dialog = new Dialog();
|
|
var pView = new FrameLayout()
|
{
|
BackgroundColor = CSS_Color.DialogTransparentColor1,
|
};
|
dialog.AddChidren(pView);
|
|
var optionBaseView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(456-60),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(260),
|
AnimateSpeed = 0.3f,
|
Animate = Animate.DownToUp,
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
pView.AddChidren(optionBaseView);
|
|
var topView = new FrameLayout()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(40),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
optionBaseView.AddChidren(topView);
|
topView.AddChidren(new Button() {Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
|
|
var btnCancel = new Button()
|
{
|
X = Application.GetRealWidth(21),
|
Width = Application.GetRealWidth(100),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextID = StringId.Cancel,
|
};
|
topView.AddChidren(btnCancel);
|
|
var btnConfrim = new Button()
|
{
|
Width = Application.GetRealWidth(320),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextID = StringId.Confirm,
|
};
|
topView.AddChidren(btnConfrim);
|
|
UIPickerView uIPickerView = new UIPickerView()
|
{
|
Y = Application.GetRealHeight(40),
|
Height = Application.GetRealHeight(210),
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
for (int i = 16; i <= 32; i += 1)
|
{
|
pickerItems.Add(i.ToString() + trait.GetUintString());
|
}
|
uIPickerView.setNPicker(pickerItems, null, null);
|
optionBaseView.AddChidren(uIPickerView);
|
uIPickerView.setCurrentItems(pickerItems.IndexOf(trait.value.ToString()), 4, 5);
|
|
string selectItem = pickerItems[0];
|
if (pickerItems.Contains(trait.value + trait.GetUintString()))
|
{
|
selectItem = trait.value.ToString() + trait.GetUintString();
|
}
|
|
dialog.Show();
|
|
pView.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
};
|
|
btnCancel.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
};
|
uIPickerView.OnSelectChangeEvent = (int1, int2, int3) => {
|
selectItem = pickerItems[int1];
|
};
|
btnConfrim.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
btn.Text = selectItem;
|
//sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.value.ToString() ;
|
trait.value = selectItem.Replace(trait.GetUintString(),"");
|
};
|
|
}
|
|
/// <summary>
|
/// 加载亮度选择弹窗
|
/// </summary>
|
/// <param name="function"></param>
|
/// <param name="btn"></param>
|
void LoadEditDialog_Percent(SceneFunctionStatus trait, Button btn)
|
{
|
if (trait == null)
|
{
|
return;
|
}
|
|
Dialog dialog = new Dialog();
|
|
var pView = new FrameLayout()
|
{
|
BackgroundColor = CSS_Color.DialogTransparentColor1,
|
};
|
dialog.AddChidren(pView);
|
|
var optionBaseView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(467),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(180),
|
AnimateSpeed = 0.3f,
|
Animate = Animate.DownToUp,
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
pView.AddChidren(optionBaseView);
|
|
var topView = new FrameLayout()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(40),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
optionBaseView.AddChidren(topView);
|
topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
|
|
var btnTitle = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
TextAlignment = TextAlignment.Center,
|
Width = Application.GetRealWidth(100),
|
Text = trait.GetNameText(),
|
IsBold = true,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
};
|
topView.AddChidren(btnTitle);
|
|
var btnCancel = new Button()
|
{
|
X = Application.GetRealWidth(21),
|
Width = Application.GetRealWidth(100),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextID = StringId.Cancel,
|
};
|
topView.AddChidren(btnCancel);
|
|
var btnConfrim = new Button()
|
{
|
Width = Application.GetRealWidth(320),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextID = StringId.Confirm,
|
};
|
topView.AddChidren(btnConfrim);
|
|
Button btnMinusSignIcon = new Button()
|
{
|
X = Application.GetRealWidth(26),
|
Y = Application.GetRealHeight(118),
|
Width = Application.GetMinRealAverage(24),
|
Height = Application.GetMinRealAverage(24),
|
UnSelectedImagePath = "Public/MinusSignIcon.png",
|
};
|
optionBaseView.AddChidren(btnMinusSignIcon);
|
|
DiyImageSeekBar controlBar = new DiyImageSeekBar()
|
{
|
X = btnMinusSignIcon.Right + Application.GetRealWidth(12),
|
Y = Application.GetRealHeight(100),//414,设计数据
|
Width = Application.GetRealWidth(220),
|
Height = Application.GetRealHeight(54),
|
SeekBarViewHeight = Application.GetRealHeight(8),
|
ThumbImagePath = "Public/ThumbImage.png",
|
ThumbImageHeight = Application.GetRealHeight(54),
|
ProgressBarColor = CSS_Color.MainColor,
|
ProgressTextColor = CSS_Color.FirstLevelTitleColor,
|
ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
MaxValue = 100,
|
Progress = trait.value.ToString().Replace("{}", "") == "" ? 0 : Convert.ToInt32(trait.value.Replace("{}", "")),
|
SeekBarPadding = Application.GetRealWidth(20),
|
};
|
optionBaseView.AddChidren(controlBar);
|
|
Button btnPlusSgnIcon = new Button()
|
{
|
X = controlBar.Right + Application.GetRealWidth(12),
|
Y = Application.GetRealHeight(118),
|
Width = Application.GetMinRealAverage(24),
|
Height = Application.GetMinRealAverage(24),
|
UnSelectedImagePath = "Public/PlusSignIcon.png",
|
};
|
optionBaseView.AddChidren(btnPlusSgnIcon);
|
|
btnMinusSignIcon.MouseUpEventHandler = (sender, e) =>
|
{
|
controlBar.Progress--;
|
};
|
btnPlusSgnIcon.MouseUpEventHandler = (sender, e) =>
|
{
|
controlBar.Progress++;
|
};
|
|
dialog.Show();
|
pView.MouseUpEventHandler = (sender, e) =>
|
{
|
dialog.Close();
|
};
|
|
btnCancel.MouseUpEventHandler = (sender, e) =>
|
{
|
dialog.Close();
|
};
|
btnConfrim.MouseUpEventHandler = (sender, e) =>
|
{
|
dialog.Close();
|
trait.value = controlBar.Progress.ToString();
|
btn.Text = trait.value + trait.GetUintString();
|
|
var temp = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff);
|
if (temp != null)
|
{
|
if (controlBar.Progress > 0)
|
{
|
temp.value = "on";
|
}
|
else
|
{
|
temp.value = "off";
|
}
|
btnOnText.Text = temp.GetValueText();
|
}
|
};
|
}
|
|
|
/// <summary>
|
/// 加载变化速度选择弹窗
|
/// </summary>
|
/// <param name="function"></param>
|
/// <param name="btn"></param>
|
void LoadEditDialog_FadeTime(SceneFunctionStatus trait, Button btn)
|
{
|
if (trait == null)
|
{
|
return;
|
}
|
|
Dialog dialog = new Dialog();
|
|
var pView = new FrameLayout()
|
{
|
BackgroundColor = CSS_Color.DialogTransparentColor1,
|
};
|
dialog.AddChidren(pView);
|
|
var optionBaseView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(467),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(180),
|
AnimateSpeed = 0.3f,
|
Animate = Animate.DownToUp,
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
pView.AddChidren(optionBaseView);
|
|
var topView = new FrameLayout()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(40),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
optionBaseView.AddChidren(topView);
|
topView.AddChidren(new Button() { Y = Application.GetRealHeight(39), Height = Application.GetRealHeight(1), BackgroundColor = CSS_Color.DividingLineColor });
|
|
var btnTitle = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
TextAlignment = TextAlignment.Center,
|
Width = Application.GetRealWidth(100),
|
Text = trait.GetNameText(),
|
IsBold = true,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
};
|
topView.AddChidren(btnTitle);
|
|
var btnCancel = new Button()
|
{
|
X = Application.GetRealWidth(21),
|
Width = Application.GetRealWidth(100),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextID = StringId.Cancel,
|
};
|
topView.AddChidren(btnCancel);
|
|
var btnConfrim = new Button()
|
{
|
Width = Application.GetRealWidth(320),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextID = StringId.Confirm,
|
};
|
topView.AddChidren(btnConfrim);
|
|
Button btnMinusSignIcon = new Button()
|
{
|
X = Application.GetRealWidth(26),
|
Y = Application.GetRealHeight(118),
|
Width = Application.GetMinRealAverage(24),
|
Height = Application.GetMinRealAverage(24),
|
Text = "0s",
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
optionBaseView.AddChidren(btnMinusSignIcon);
|
|
DiyImageSeekBar controlBar = new DiyImageSeekBar()
|
{
|
X = btnMinusSignIcon.Right + Application.GetRealWidth(12),
|
Y = Application.GetRealHeight(100),//414,设计数据
|
Width = Application.GetRealWidth(220),
|
Height = Application.GetRealHeight(54),
|
SeekBarViewHeight = Application.GetRealHeight(8),
|
ThumbImagePath = "Public/ThumbImage.png",
|
ThumbImageHeight = Application.GetRealHeight(54),
|
ProgressBarColor = CSS_Color.MainColor,
|
ProgressTextColor = CSS_Color.FirstLevelTitleColor,
|
ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
MaxValue = 100,
|
Progress = trait.value.ToString().Replace("{}", "") == "" ? 0 : Convert.ToInt32(trait.value.Replace("{}", "")),
|
SeekBarPadding = Application.GetRealWidth(20),
|
};
|
optionBaseView.AddChidren(controlBar);
|
|
Button btnPlusSgnIcon = new Button()
|
{
|
X = controlBar.Right + Application.GetRealWidth(12),
|
Y = Application.GetRealHeight(118),
|
Width = Application.GetMinRealAverage(24),
|
Height = Application.GetMinRealAverage(24),
|
Text = "10s",
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
|
};
|
optionBaseView.AddChidren(btnPlusSgnIcon);
|
|
btnMinusSignIcon.MouseUpEventHandler = (sender, e) =>
|
{
|
controlBar.Progress--;
|
};
|
btnPlusSgnIcon.MouseUpEventHandler = (sender, e) =>
|
{
|
controlBar.Progress++;
|
};
|
|
dialog.Show();
|
pView.MouseUpEventHandler = (sender, e) =>
|
{
|
dialog.Close();
|
};
|
|
btnCancel.MouseUpEventHandler = (sender, e) =>
|
{
|
dialog.Close();
|
};
|
btnConfrim.MouseUpEventHandler = (sender, e) =>
|
{
|
dialog.Close();
|
trait.value = controlBar.Progress.ToString();
|
btn.Text = trait.value + trait.GetUintString();
|
};
|
}
|
|
|
/// <summary>
|
/// 加载功能属性数据选择弹窗
|
/// </summary>
|
void LoadEditDialog_FunctionPar(SceneFunctionStatus trait, Button btn,List<string> statusList)
|
{
|
Button lastButton = new Button();
|
var lastData = "";
|
var lastText = "";
|
Dialog dialog = new Dialog();
|
|
var pView = new FrameLayout()
|
{
|
BackgroundColor = CSS_Color.DialogTransparentColor1,
|
};
|
dialog.AddChidren(pView);
|
|
var optionBaseView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(579 - 50 * statusList.Count),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(50 * statusList.Count + 50),
|
AnimateSpeed = 0.3f,
|
Animate = Animate.DownToUp,
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
pView.AddChidren(optionBaseView);
|
|
var topView = new FrameLayout()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(343),
|
Height = Application.GetRealHeight(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
optionBaseView.AddChidren(topView);
|
|
var btnTitle = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
TextAlignment = TextAlignment.Center,
|
Width = Application.GetRealWidth(100),
|
Text = trait.GetNameText(),
|
IsBold = true,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
};
|
topView.AddChidren(btnTitle);
|
|
var btnCancel = new Button()
|
{
|
X = Application.GetRealWidth(21),
|
Width = Application.GetRealWidth(100),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.PromptingColor1,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextID = StringId.Cancel,
|
};
|
topView.AddChidren(btnCancel);
|
|
var btnConfrim = new Button()
|
{
|
Width = Application.GetRealWidth(320),
|
TextAlignment = TextAlignment.CenterRight,
|
TextColor = CSS_Color.MainColor,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextID = StringId.Complete,
|
};
|
topView.AddChidren(btnConfrim);
|
int hei = 1;
|
foreach (var m in statusList)
|
{
|
var row = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(50 * hei),
|
Height = Application.GetRealHeight(50),
|
};
|
optionBaseView.AddChidren(row);
|
if (statusList.Count > hei)
|
{
|
optionBaseView.AddChidren(new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = row.Bottom,
|
Width = Application.GetRealWidth(343),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
Height = 1,
|
});
|
}
|
hei++;
|
|
var btnChoose = new Button()
|
{
|
X = Application.GetRealWidth(303),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetMinRealAverage(28),
|
Height = Application.GetMinRealAverage(28),
|
UnSelectedImagePath = "Public/ChooseIcon.png",
|
SelectedImagePath = "Public/ChooseOnIcon.png",
|
|
};
|
row.AddChidren(btnChoose);
|
if (trait.value == m)
|
{
|
lastButton = btnChoose;
|
btnChoose.IsSelected = true;
|
}
|
var btnPropertyTitle = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextSize = CSS_FontSize.TextFontSize,
|
Tag = m,
|
Text = trait.GetValueText()
|
};
|
row.AddChidren(btnPropertyTitle);
|
|
btnPropertyTitle.MouseUpEventHandler = (sender, e) => {
|
btnChoose.IsSelected = true;
|
if (lastButton != null)
|
{
|
lastButton.IsSelected = false;
|
}
|
lastButton = btnChoose;
|
lastData = btnPropertyTitle.Tag.ToString();
|
lastText = btnPropertyTitle.Text;
|
};
|
}
|
|
|
|
|
dialog.Show();
|
|
pView.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
};
|
|
btnCancel.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
};
|
btnConfrim.MouseUpEventHandler = (sender, e) => {
|
dialog.Close();
|
trait.value = lastData;
|
//sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.OnOff).value = trait.curValue.ToString() ;
|
btn.Text = lastText;
|
};
|
|
}
|
|
#endregion
|
|
}
|
}
|