using System;
using Shared;
using System.Collections.Generic;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
public class TargetDeviceFunList : FrameLayout
{
public TargetDeviceFunList()
{
Tag = "Logic";
}
///
/// 定义一个记录选中设备状态列表;
///
private List> dicSateteList = new List>();
///
/// 定义一个变量,记录选中状态
///
private string selectedState = "unknown";
public void Show(Entity.Function device, int index, bool edit)
{
#region 界面布局
this.BackgroundColor = CSS.CSS_Color.viewMiddle;
LogicView.TopView topView = new LogicView.TopView();
this.AddChidren(topView.FLayoutView());
topView.clickBackBtn.MouseUpEventHandler += (e, sen) =>
{
RemoveFromParent();
};
topView.topNameBtn.Text = device.name;
FrameLayout fLayout = new FrameLayout
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(667 - 64),
};
this.AddChidren(fLayout);
///保存View
LogicView.SaveView saveView = new LogicView.SaveView();
saveView.frameLayout.SetCornerWithSameRadius(Application.GetRealHeight(24), HDLUtils.RectCornerTopLeft | HDLUtils.RectCornerTopRight);
saveView.btnSave.TextID = StringId.completeLogic;
this.AddChidren(saveView.FLayoutView());
#endregion
#region 编辑设备状态
switch (device.functionType)
{
//开关灯光 light.Switch
case FunctionType.Dimmer:
case FunctionType.RGB:
case FunctionType.RGBW:
case FunctionType.ColorTemperature:
{
//2表示(开,关)功能
SwitchBrightnessView(fLayout, device, index, edit, 2);
}
break;
case FunctionType.Relay:
{
//2表示(开,关)功能
SwitchView(fLayout, device, index, edit, 2);
}
break;
//窗帘
case FunctionType.Curtain:
{
//3表示(开,关,暂停)功能
SwitchView(fLayout, device, index, edit, 3);
}
break;
case FunctionType.MotorCurtain:
case FunctionType.RollingShutter:
{
//3表示(开,关,暂停)功能
SwitchBrightnessView(fLayout, device, index, edit, 3);
}
break;
case FunctionType.AC:
{
#region 界面
///开关
LogicView.FunTypeView acSwitchVie = new LogicView.FunTypeView();
acSwitchVie.btnText.TextID = StringId.switchLogic;
fLayout.AddChidren(acSwitchVie.FLayoutView());
///温度
LogicView.FunTypeView temperatureView = new LogicView.FunTypeView();
temperatureView.frameLayout.Y = acSwitchVie.frameLayout.Bottom;
temperatureView.btnText.TextID = StringId.temperatureLogic;
fLayout.AddChidren(temperatureView.FLayoutView());
///模式
LogicView.FunTypeView acModehView = new LogicView.FunTypeView();
acModehView.frameLayout.Y = temperatureView.frameLayout.Bottom;
acModehView.btnText.TextID = StringId.modeLogic;
fLayout.AddChidren(acModehView.FLayoutView());
///风速
LogicView.FunTypeView acSpeedView = new LogicView.FunTypeView();
acSpeedView.frameLayout.Y = acModehView.frameLayout.Bottom;
acSpeedView.btnText.TextID = StringId.speedLogic;
fLayout.AddChidren(acSpeedView.FLayoutView());
#endregion
#region 点击事件
///开关点击事件
acSwitchVie.btnClick.MouseUpEventHandler += (sender, e) =>
{
SwitchViewMethod(device, acSwitchVie.btnState, 2);
};
///温度点击事件
temperatureView.btnClick.MouseUpEventHandler += (sender, e) =>
{
FrameLayout frame = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
this.AddChidren(frame);
LogicView.TimeView view = new LogicView.TimeView();
view.FLayoutView(frame);
EventHandler removefLayout = (sender1, e1) =>
{
//移除fLayout界面
frame.RemoveFromParent();
};
//取消点击事件
view.btnCancel.MouseUpEventHandler += removefLayout;
//初始化列表
var temperatureList = new List();
for (int i = 16; i < 32; i++)
{
//添加数据
temperatureList.Add(i.ToString() + "℃");
temperatureList.Add((i + 0.5).ToString() + "℃");
}
//加载数据界面的设置方法(列表互不联动)
view.mUIPickerView.setNPicker(temperatureList, null, null);
//默认初始选中状态
view.mUIPickerView.setCurrentItems(9, 0, 0);
//定义一个局部变量记录选中时间
string temperature = "25℃";
for (int i = 0; i < temperatureList.Count; i++)
{
if (temperatureList[i] == temperatureView.btnState.Text)
{
//更新状态
view.mUIPickerView.setCurrentItems(i, 0, 0);
//更新状态
temperature = temperatureList[i];
break;
}
}
//选中时间回调方法,时间变化一次回调一次
view.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) =>
{
temperature = temperatureList[index1];
};
//确定点击事件
view.btnConfirm.MouseUpEventHandler += (sender2, e2) =>
{
Dictionary dic = new Dictionary();
LogicMethod.dictionary(dic, "key", "set_temp");
string keyVlaue = "set_temp";
string set_temp_value = temperature.Replace("℃", "");
LogicMethod.dictionary(dic, "value", set_temp_value);
selectedState = device.functionType + "_set_temp";
AddDictionaryData(dicSateteList, keyVlaue, dic);
RemView(frame);
temperatureView.btnState.Text = temperature;
};
};
///模式点击事件
acModehView.btnClick.MouseUpEventHandler += (sender, e) =>
{
List modeStr = new List {
Language.StringByID(StringId.coolLogic),
Language.StringByID(StringId.heatingLogic),
Language.StringByID(StringId.autoLogic),
Language.StringByID(StringId.dehumidifyLogic),
};
FrameLayout frame = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
this.AddChidren(frame);
LogicView.DateView modeView = new LogicView.DateView();
modeView.btnTitle.TextID = StringId.modeLogic;
modeView.FLayoutView(frame, modeStr.Count);
modeView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
{
frame.RemoveFromParent();
};
///定义一个Btn记录选中状态
Button checkBtn = new Button
{
Tag = "unknown",
};
for (int i = 0; i < modeStr.Count; i++)
{
LogicView.CheckView modeTypeView = new LogicView.CheckView();
modeTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
modeView.frameLayout.AddChidren(modeTypeView.FLayoutView());
modeTypeView.btnText.Text = modeStr[i];
modeTypeView.btnClick.Tag = modeStr[i];//标记
if (acModehView.btnState.Text == modeStr[i])
{
//显示之前的选中状态
checkBtn.IsSelected = false;
modeTypeView.btnCheckIcon.IsSelected = true;
checkBtn = modeTypeView.btnCheckIcon;
checkBtn.Tag = modeTypeView.btnClick.Tag.ToString();
}
//星期的点击事件
modeTypeView.btnClick.MouseUpEventHandler += (sender1, e1) =>
{
checkBtn.IsSelected = false;
modeTypeView.btnCheckIcon.IsSelected = true;
checkBtn = modeTypeView.btnCheckIcon;
checkBtn.Tag = modeTypeView.btnClick.Tag.ToString();
};
}
modeView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
{
if (checkBtn.Tag.ToString() == "unknown")
{
return;
}
Dictionary dic = new Dictionary();
LogicMethod.dictionary(dic, "key", "mode");
string keyVlaue = "mode";
LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), keyVlaue));
acModehView.btnState.Text = checkBtn.Tag.ToString();
selectedState = device.functionType + "_mode";
AddDictionaryData(dicSateteList, keyVlaue, dic);
RemView(frame);
};
};
///风速点击事件
acSpeedView.btnClick.MouseUpEventHandler += (sender, e) =>
{
List speedStr = new List {
Language.StringByID(StringId.LowWindSpeed),
Language.StringByID(StringId.MiddleWindSpeed),
Language.StringByID(StringId.HighWindSpeed),
Language.StringByID(StringId.Auto),
};
FrameLayout frame = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
this.AddChidren(frame);
LogicView.DateView speedView = new LogicView.DateView();
speedView.btnTitle.TextID = StringId.modeLogic;
speedView.FLayoutView(frame, speedStr.Count);
speedView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
{
frame.RemoveFromParent();
};
///定义一个Btn记录选中状态
Button checkBtn = new Button
{
Tag = "unknown",
};
for (int i = 0; i < speedStr.Count; i++)
{
LogicView.CheckView speedTypeView = new LogicView.CheckView();
speedTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
speedView.frameLayout.AddChidren(speedTypeView.FLayoutView());
speedTypeView.btnText.Text = speedStr[i];
speedTypeView.btnClick.Tag = speedStr[i];//标记
if (acSpeedView.btnState.Text == speedStr[i])
{
//显示之前的选中状态
checkBtn.IsSelected = false;
speedTypeView.btnCheckIcon.IsSelected = true;
checkBtn = speedTypeView.btnCheckIcon;
checkBtn.Tag = speedTypeView.btnClick.Tag.ToString();
}
//星期的点击事件
speedTypeView.btnClick.MouseUpEventHandler += (sender1, e1) =>
{
checkBtn.IsSelected = false;
speedTypeView.btnCheckIcon.IsSelected = true;
checkBtn = speedTypeView.btnCheckIcon;
checkBtn.Tag = speedTypeView.btnClick.Tag.ToString();
};
}
speedView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
{
if (checkBtn.Tag.ToString() == "unknown")
{
return;
}
Dictionary dic = new Dictionary();
LogicMethod.dictionary(dic, "key", "fan");
string keyVlaue = "fan";
LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), keyVlaue));
acSpeedView.btnState.Text = checkBtn.Tag.ToString();
selectedState = device.functionType + "_fan";
AddDictionaryData(dicSateteList, keyVlaue, dic);
RemView(frame);
};
};
if (edit)
{
GetEditState(device, index, acSwitchVie.btnState, temperatureView.btnState, acModehView.btnState, acSpeedView.btnState);
}
#endregion
}
break;
case FunctionType.FloorHeating:
{
#region 界面
///开关
LogicView.FunTypeView floorHeatingSwitchVie = new LogicView.FunTypeView();
floorHeatingSwitchVie.btnText.TextID = StringId.switchLogic;
fLayout.AddChidren(floorHeatingSwitchVie.FLayoutView());
///温度
LogicView.FunTypeView temperatureView = new LogicView.FunTypeView();
temperatureView.frameLayout.Y = floorHeatingSwitchVie.frameLayout.Bottom;
temperatureView.btnText.TextID = StringId.temperatureLogic;
fLayout.AddChidren(temperatureView.FLayoutView());
///模式
LogicView.FunTypeView floorHeatingModehView = new LogicView.FunTypeView();
floorHeatingModehView.frameLayout.Y = temperatureView.frameLayout.Bottom;
floorHeatingModehView.btnText.TextID = StringId.modeLogic;
fLayout.AddChidren(floorHeatingModehView.FLayoutView());
#endregion
#region 点击事件
///开关点击事件
floorHeatingSwitchVie.btnClick.MouseUpEventHandler += (sender, e) =>
{
SwitchViewMethod(device, floorHeatingSwitchVie.btnState, 2);
};
///温度点击事件
temperatureView.btnClick.MouseUpEventHandler += (sender, e) =>
{
FrameLayout frame = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
this.AddChidren(frame);
LogicView.TimeView view = new LogicView.TimeView();
view.FLayoutView(frame);
EventHandler removefLayout = (sender1, e1) =>
{
//移除fLayout界面
frame.RemoveFromParent();
};
//取消点击事件
view.btnCancel.MouseUpEventHandler += removefLayout;
//初始化列表
var temperatureList = new List();
for (int i = 16; i < 32; i++)
{
//添加数据
temperatureList.Add(i.ToString() + "℃");
temperatureList.Add((i + 0.5).ToString() + "℃");
}
//加载数据界面的设置方法(列表互不联动)
view.mUIPickerView.setNPicker(temperatureList, null, null);
//默认初始选中状态
view.mUIPickerView.setCurrentItems(9, 0, 0);
//定义一个局部变量记录选中时间
string temperature = "25℃";
for (int i = 0; i < temperatureList.Count; i++)
{
if (temperatureList[i] == temperatureView.btnState.Text)
{
//更新状态
view.mUIPickerView.setCurrentItems(i, 0, 0);
//更新状态
temperature = temperatureList[i];
break;
}
}
//选中时间回调方法,时间变化一次回调一次
view.mUIPickerView.OnSelectChangeEvent += (index1, index2, index3) =>
{
temperature = temperatureList[index1];
};
//确定点击事件
view.btnConfirm.MouseUpEventHandler += (sender2, e2) =>
{
Dictionary dic = new Dictionary();
LogicMethod.dictionary(dic, "key", "set_temp");
string keyVlaue = "set_temp";
string set_temp_value = temperature.Replace("℃", "");
LogicMethod.dictionary(dic, "value", set_temp_value);
selectedState = device.functionType + "_set_temp";
AddDictionaryData(dicSateteList, keyVlaue, dic);
RemView(frame);
temperatureView.btnState.Text = temperature;
};
};
///模式点击事件
floorHeatingModehView.btnClick.MouseUpEventHandler += (sender, e) =>
{
List modeStr = new List {
Language.StringByID(StringId.dayMode),
Language.StringByID(StringId.nightMode),
Language.StringByID(StringId.leaveMode),
Language.StringByID(StringId.ordinaryMode),
Language.StringByID(StringId.timeMode),
};
FrameLayout frame = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
this.AddChidren(frame);
LogicView.DateView modeView = new LogicView.DateView();
modeView.btnTitle.TextID = StringId.modeLogic;
modeView.FLayoutView(frame, modeStr.Count);
modeView.btnCancel.MouseUpEventHandler += (sender2, e2) =>
{
frame.RemoveFromParent();
};
///定义一个Btn记录选中状态
Button checkBtn = new Button
{
Tag = "unknown",
};
for (int i = 0; i < modeStr.Count; i++)
{
LogicView.CheckView modeTypeView = new LogicView.CheckView();
modeTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i);
modeView.frameLayout.AddChidren(modeTypeView.FLayoutView());
modeTypeView.btnText.Text = modeStr[i];
modeTypeView.btnClick.Tag = modeStr[i];//标记
if (floorHeatingModehView.btnState.Text == modeStr[i])
{
//显示之前的选中状态
checkBtn.IsSelected = false;
modeTypeView.btnCheckIcon.IsSelected = true;
checkBtn = modeTypeView.btnCheckIcon;
checkBtn.Tag = modeTypeView.btnClick.Tag.ToString();
}
//星期的点击事件
modeTypeView.btnClick.MouseUpEventHandler += (sender1, e1) =>
{
checkBtn.IsSelected = false;
modeTypeView.btnCheckIcon.IsSelected = true;
checkBtn = modeTypeView.btnCheckIcon;
checkBtn.Tag = modeTypeView.btnClick.Tag.ToString();
};
}
modeView.btnConfirm.MouseUpEventHandler += (sender1, e1) =>
{
if (checkBtn.Tag.ToString() == "unknown")
{
return;
}
Dictionary dic = new Dictionary();
LogicMethod.dictionary(dic, "key", "mode");
string keyVlaue = "mode";
LogicMethod.dictionary(dic, "value", GetModeValueString(checkBtn.Tag.ToString(), "FloorHeating"));
floorHeatingModehView.btnState.Text = checkBtn.Tag.ToString();
selectedState = device.functionType + "_mode";
AddDictionaryData(dicSateteList, keyVlaue, dic);
RemView(frame);
};
};
if (edit)
{
GetEditState(device, index, floorHeatingSwitchVie.btnState, temperatureView.btnState, floorHeatingModehView.btnState, null);
}
#endregion
}
break;
}
#endregion
#region 保存点击时间
saveView.btnClick.MouseUpEventHandler += (sen, e) =>
{
if (selectedState != "unknown")
{
Output outputDevice = new Output();
outputDevice.target_type = "1";
outputDevice.sid = device.sid;
switch (device.functionType)
{
case FunctionType.Dimmer:
case FunctionType.RGB:
case FunctionType.RGBW:
case FunctionType.ColorTemperature:
{
//调光做了一个特殊处理;
if (dicSateteList.Count > 1)
{
foreach (var dictionary in dicSateteList)
{
if (dictionary["key"] == "on_off")
{
if (dictionary["value"] == "off")
{
//移除列表所有数据
dicSateteList.Clear();
//重新添加开光属性数据
Dictionary diction = new Dictionary();
diction.Add("key", "on_off");
diction.Add("value", "on_off");
dicSateteList.Add(diction);
break;
}
}
}
}
break;
}
}
outputDevice.status = dicSateteList;
if (edit)
{
//移除旧数据
Logic.currlogic.output.RemoveAt(index);
//新数据插入旧数据的位置;
Logic.currlogic.output.Insert(index, outputDevice);
}
else
{
//添加一个条件
AddTarget(outputDevice);
}
}
else
{
if (!edit)
{
//提示用户
return;
}
this.RemoveFromParent();
return;
}
LogicMethod.RemoveAllView();
AddLogic addLogic = new AddLogic();
MainPage.BasePageView.AddChidren(addLogic);
addLogic.Show();
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
#endregion
}
///
/// 获取模式/风速键值
///
///
///
///
private string GetModeValueString(string text, string type)
{
string str = "";
switch (type)
{
case "mode":
{
if (text == Language.StringByID(StringId.coolLogic))
{
str = "cool";
}
else if (text == Language.StringByID(StringId.heatingLogic))
{
str = "heat";
}
else if (text == Language.StringByID(StringId.autoLogic))
{
str = "auto";
}
else if (text == Language.StringByID(StringId.dehumidifyLogic))
{
str = "dry";
}
}
break;
case "fan":
{
if (text == Language.StringByID(StringId.HighWindSpeed))
{
str = "high";
}
else if (text == Language.StringByID(StringId.MiddleWindSpeed))
{
str = "medium";
}
else if (text == Language.StringByID(StringId.LowWindSpeed))
{
str = "low";
}
else if (text == Language.StringByID(StringId.Auto))
{
str = "auto";
}
}
break;
case "FloorHeating":
{
if (text == Language.StringByID(StringId.dayMode))
{
str = "day";
}
else if (text == Language.StringByID(StringId.nightMode))
{
str = "night";
}
else if (text == Language.StringByID(StringId.leaveMode))
{
str = "away";
}
else if (text == Language.StringByID(StringId.ordinaryMode))
{
str = "normal";
}
else if (text == Language.StringByID(StringId.timeMode))
{
str = "timer";
}
}
break;
}
return str;
}
///
///开关=界面
///
///
///
///
///
/// 选中View的数量
private void SwitchView(FrameLayout fLayout, Entity.Function device, int index, bool edit, int intView)
{
#region 界面
///开关
LogicView.FunTypeView curtainSwitchView = new LogicView.FunTypeView();
curtainSwitchView.btnText.TextID = StringId.switchLogic;
fLayout.AddChidren(curtainSwitchView.FLayoutView());
#endregion
#region 点击事件
///开关点击事件
curtainSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
{
SwitchViewMethod(device, curtainSwitchView.btnState, intView);
};
if (edit)
{
GetEditState(device, index, curtainSwitchView.btnState, null, null, null);
}
#endregion
}
///
///(开关+亮度/百分比)界面
///
///
///
///
///
/// 选中View的数量
private void SwitchBrightnessView(FrameLayout fLayout, Entity.Function device, int index, bool edit, int intView)
{
#region 界面
///开关
LogicView.FunTypeView lightSwitchView = new LogicView.FunTypeView();
lightSwitchView.btnText.TextID = StringId.switchLogic;
fLayout.AddChidren(lightSwitchView.FLayoutView());
///亮度
LogicView.FunTypeView brightnessView = new LogicView.FunTypeView();
brightnessView.frameLayout.Y = lightSwitchView.frameLayout.Bottom;
if (device.functionType == FunctionType.MotorCurtain || device.functionType == FunctionType.RollingShutter)
{
brightnessView.btnText.TextID = StringId.percentum;
}
else
{
brightnessView.btnText.TextID = StringId.brightnesLogic;
}
fLayout.AddChidren(brightnessView.FLayoutView());
#endregion
#region 点击事件
///开关点击事件
lightSwitchView.btnClick.MouseUpEventHandler += (sender, e) =>
{
SwitchViewMethod(device, lightSwitchView.btnState, intView);
};
///亮度点击事件
brightnessView.btnClick.MouseUpEventHandler += (sender, e) =>
{
BrightnessMethod(device, brightnessView.btnState, brightnessView.btnText.Text);
};
if (edit)
{
GetEditState(device, index, lightSwitchView.btnState, brightnessView.btnState, null, null);
}
#endregion
}
///
/// 开关=功能下一级界面
///
///
///
/// 显示选择View数量
private void SwitchViewMethod(Entity.Function device, Button button, int len)
{
#region 界面
FrameLayout frame = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
this.AddChidren(frame);
LogicView.SwitchView switchView = new LogicView.SwitchView();
switchView.FLayoutView(frame, len);
#endregion
#region 点击事件
Dictionary dic = new Dictionary();
LogicMethod.dictionary(dic, "key", "on_off");
string keyVlaue = "on_off";
//开-点击事件
switchView.btnOn.MouseUpEventHandler += (sender2, e2) =>
{
LogicMethod.dictionary(dic, "value", "on");
button.TextID = StringId.onLogic;
selectedState = device.functionType + "_on";
AddDictionaryData(dicSateteList, keyVlaue, dic);
RemView(frame);
};
//关-点击事件
switchView.btnOff.MouseUpEventHandler += (sender3, e3) =>
{
LogicMethod.dictionary(dic, "value", "off");
button.TextID = StringId.offLogic;
selectedState = device.functionType + "_off";
AddDictionaryData(dicSateteList, keyVlaue, dic);
RemView(frame);
};
//暂停-点击事件
switchView.btnStop.MouseUpEventHandler += (sender3, e3) =>
{
LogicMethod.dictionary(dic, "value", "stop");
button.TextID = StringId.stop;
selectedState = device.functionType + "_stop";
AddDictionaryData(dicSateteList, keyVlaue, dic);
RemView(frame);
};
///显示之前状态
if (button.Text != "")
{
if (button.Text == switchView.btnOn.Text)
{
switchView.btnOn.TextColor = CSS.CSS_Color.textConfirmColor;
}
else if (button.Text == switchView.btnOff.Text)
{
switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
}
else if (button.Text == switchView.btnStop.Text)
{
switchView.btnOff.TextColor = CSS.CSS_Color.textConfirmColor;
}
}
#endregion
}
///
/// 亮度/百分比=功能下一级界面
///
///
///
private void BrightnessMethod(Entity.Function device, Button button, string titleName)
{
#region 界面
FrameLayout frame = new FrameLayout
{
BackgroundColor = CSS.CSS_Color.viewTrans60lucence,
};
this.AddChidren(frame);
LogicView.BrightnessView brightness = new LogicView.BrightnessView();
brightness.btnTitle.Text = titleName;
brightness.FLayoutView(frame);
#endregion
#region 点击事件
int brightnesValue = 0;
Dictionary dic = new Dictionary();
LogicMethod.dictionary(dic, "key", "brightness");
string keyVlaue = "brightness";
//—点击事件
brightness.btn_subtract_click.MouseUpEventHandler += (sender2, e2) =>
{
if (brightnesValue > 0)
{
brightnesValue -= 1;
brightness.seekBarVol.Progress = brightnesValue;
}
};
//+点击事件
brightness.btn_add_click.MouseUpEventHandler += (sende2, e2) =>
{
if (brightnesValue < 100)
{
brightnesValue += 1;
brightness.seekBarVol.Progress = brightnesValue;
}
};
//进度条滑动点击事件
EventHandler progressclick = (sender2, e2) =>
{
brightnesValue = brightness.seekBarVol.Progress;
};
brightness.seekBarVol.OnProgressChangedEvent += progressclick;
brightness.seekBarVol.OnStopTrackingTouchEvent += progressclick;
//确定点击事件
brightness.btnConfirm.MouseUpEventHandler += (sende2, e2) =>
{
if (brightnesValue == 0)
{
return;
}
LogicMethod.dictionary(dic, "value", brightnesValue.ToString());
selectedState = device.functionType + brightnesValue.ToString();
AddDictionaryData(dicSateteList, keyVlaue, dic);
button.Text = brightnesValue.ToString();
RemView(frame);
};
//显示之前状态
if (button.Text != "")
{
brightnesValue = int.Parse(button.Text);
brightness.seekBarVol.Progress = brightnesValue;
}
#endregion
}
///
/// 移除控件
///
///
private void RemView(FrameLayout frame)
{
frame.RemoveFromParent();
}
///
/// 显示编辑之前的设备状态
///
/// 编辑设备
/// 编辑数据的索引
/// 显示Btn
/// 显示Btn
/// 显示Btn
/// 显示Btn
private void GetEditState(Entity.Function device, int index, Button button1, Button button2, Button button3, Button button4)
{
Output outputs = Logic.currlogic.output[index];
var dicList = outputs.status as List>;
//清除之前旧数据
dicSateteList.Clear();
if (dicList.Count != 0)
{
//有数据重新赋值
dicSateteList = dicList;
}
switch (device.functionType)
{
//开关灯光
case FunctionType.Relay:
{
foreach (var dic in dicList)
{
string value = dic["value"];
if (value == "on")
{
button1.Text = Language.StringByID(StringId.onLogic);
}
else
{
button1.Text = Language.StringByID(StringId.offLogic);
}
}
}
break;
case FunctionType.Dimmer:
case FunctionType.RGB:
case FunctionType.RGBW:
case FunctionType.ColorTemperature:
{
foreach (var dic in dicList)
{
string value = dic["value"];
switch (dic["key"])
{
case "on_off":
{
if (value == "on")
{
button1.Text = Language.StringByID(StringId.onLogic);
}
else
{
button1.Text = Language.StringByID(StringId.offLogic);
}
}
break;
case "brightness":
{
button2.Text = value;
}
break;
}
}
}
break;
case FunctionType.Curtain:
{
foreach (var dic in dicList)
{
string value = dic["value"];
switch (value)
{
case "on":
{
button1.Text = Language.StringByID(StringId.onLogic);
}
break;
case "off":
{
button1.Text = Language.StringByID(StringId.offLogic);
}
break;
case "stop":
{
button1.Text = Language.StringByID(StringId.stop);
}
break;
}
}
}
break;
case FunctionType.MotorCurtain:
case FunctionType.RollingShutter:
{
foreach (var dic in dicList)
{
string value = dic["value"];
switch (dic["key"])
{
case "on_off":
{
switch (value)
{
case "on":
{
button1.Text = Language.StringByID(StringId.onLogic);
}
break;
case "off":
{
button1.Text = Language.StringByID(StringId.offLogic);
}
break;
case "stop":
{
button1.Text = Language.StringByID(StringId.stop);
}
break;
}
}
break;
case "brightness":
{
button2.Text = value;
}
break;
}
}
}
break;
case FunctionType.AC:
{
foreach (var dic in dicList)
{
string value = dic["value"];
switch (dic["key"])
{
case "on_off":
{
switch (value)
{
case "on":
{
button1.Text = Language.StringByID(StringId.onLogic);
}
break;
case "off":
{
button1.Text = Language.StringByID(StringId.offLogic);
}
break;
}
}
break;
case "set_temp":
{
button2.Text = value + "℃";
}
break;
case "mode":
{
switch (value)
{
case "cool":
{
button3.Text = Language.StringByID(StringId.coolLogic);
}
break;
case "heat":
{
button3.Text = Language.StringByID(StringId.heatingLogic);
}
break;
case "auto":
{
button3.Text = Language.StringByID(StringId.autoLogic);
}
break;
case "dry":
{
button3.Text = Language.StringByID(StringId.dehumidifyLogic);
}
break;
}
}
break;
case "fan":
{
switch (value)
{
case "high":
{
button4.Text = Language.StringByID(StringId.HighWindSpeed);
}
break;
case "medium":
{
button4.Text = Language.StringByID(StringId.MiddleWindSpeed);
}
break;
case "low":
{
button4.Text = Language.StringByID(StringId.LowWindSpeed);
}
break;
case "auto":
{
button4.Text = Language.StringByID(StringId.Auto);
}
break;
}
}
break;
}
}
}
break;
case FunctionType.FloorHeating:
{
foreach (var dic in dicList)
{
string value = dic["value"];
switch (dic["key"])
{
case "on_off":
{
switch (value)
{
case "on":
{
button1.Text = Language.StringByID(StringId.onLogic);
}
break;
case "off":
{
button1.Text = Language.StringByID(StringId.offLogic);
}
break;
}
}
break;
case "set_temp":
{
button2.Text = value + "℃";
}
break;
case "mode":
{
switch (value)
{
case "day":
{
button3.Text = Language.StringByID(StringId.dayMode);
}
break;
case "night":
{
button3.Text = Language.StringByID(StringId.nightMode);
}
break;
case "away":
{
button3.Text = Language.StringByID(StringId.leaveMode);
}
break;
case "normal":
{
button3.Text = Language.StringByID(StringId.ordinaryMode);
}
break;
case "timer":
{
button3.Text = Language.StringByID(StringId.timeMode);
}
break;
}
}
break;
}
}
}
break;
}
}
///
/// 添加处理选中数据
///
/// 存储数据列表
/// 识别设备
/// 选中数据
///
private void AddDictionaryData(List> dicList, string keyValue, Dictionary dictionary)
{
int indexValue = -1;
for (int i = 0; i < dicList.Count; i++)
{
var dic = dicList[i];
if (dic.ContainsValue(keyValue))
{
//判断是否存在
indexValue = i;
break;
}
}
if (indexValue != -1)
{
//存在移除
dicList.RemoveAt(indexValue);
//重新添加
dicList.Insert(indexValue, dictionary);
}
else
{
//新添加
dicList.Add(dictionary);
}
}
///
/// 添加目标
///
///
private void AddTarget(Output target)
{
int indexValue = -1;
for (int i = 0; i < Logic.currlogic.output.Count; i++)
{
if (Logic.currlogic.output[i].sid == target.sid)
{
indexValue = i;
break;
}
}
if (indexValue != -1)
{
Logic.currlogic.output.RemoveAt(indexValue);
Logic.currlogic.output.Insert(indexValue, target);
}
else
{
Logic.currlogic.output.Add(target);
}
}
}
}