| | |
| | | using System; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.CSS; |
| | | using HDL_ON.UI.Music; |
| | | using Shared; |
| | | |
| | | namespace HDL_ON.UI |
| | |
| | | public partial class FunctionControlZone : FrameLayout |
| | | { |
| | | #region 区域控件 |
| | | FrameLayout bodyDiv; |
| | | static FrameLayout bodyDiv; |
| | | /// <summary> |
| | | /// 功能/场景icon |
| | | /// </summary> |
| | |
| | | |
| | | #region 区域变量 |
| | | Function function; |
| | | /// <summary> |
| | | /// 是否在调光 |
| | | /// </summary> |
| | | bool onDimmerBar; |
| | | #endregion |
| | | public FunctionControlZone(Function func) |
| | | { |
| | | bodyDiv = this; |
| | | bodyDiv.Tag = func.sid; |
| | | function = func; |
| | | } |
| | | |
| | |
| | | } |
| | | LoadDiv(); |
| | | |
| | | |
| | | if (function.functionCategory != FunctionType.Curtain)//窗帘没有开关按钮 |
| | | if (function.functionCategory == FunctionCategory.Curtain || function.functionCategory == FunctionCategory.Music || function.functionCategory == FunctionCategory.Scene)//窗帘没有开关按钮 |
| | | { |
| | | switch (function.functionCategory) |
| | | { |
| | | case FunctionCategory.Curtain: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png"; |
| | | CurtainFragment(); |
| | | break; |
| | | case FunctionCategory.Music: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Music/MusicThinIcon.png"; |
| | | MusicFragment(); |
| | | break; |
| | | case FunctionCategory.Scene: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png"; |
| | | if ((function as Scene).sceneType == SceneType.MovieScene) |
| | | { |
| | | var movieIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(52), |
| | | Y = Application.GetRealHeight(14), |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealWidth(16), |
| | | UnSelectedImagePath = "FunctionIcon/Scene/MovieMark.png", |
| | | }; |
| | | bodyDiv.AddChidren(movieIcon); |
| | | btnName.X = Application.GetRealWidth(52 + 16); |
| | | } |
| | | //加载场景控制事件 |
| | | LoadEvent_ControlScene(); |
| | | break; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | #region 加载开关按钮 |
| | | /// <summary> |
| | | /// 开关按钮 |
| | | /// </summary> |
| | | Button btnSwitch; |
| | | if (function.functionType == "RGB" || function.functionType == "Dimmer") |
| | | if (function.functionType == FunctionType.RGB || function.functionType == FunctionType.Dimmer) |
| | | { |
| | | btnSwitch = new Button() |
| | | { |
| | |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "Public/PowerClose.png", |
| | | SelectedImagePath = "Public/PowerOpen.png", |
| | | Tag = function.functionType + "_Switch_" + function.sid |
| | | IsSelected = function.trait_on_off.value.ToString() == "on", |
| | | Tag = function.sid + "_Switch", |
| | | }; |
| | | bodyDiv.AddChidren(btnSwitch); |
| | | } |
| | |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "Public/PowerClose.png", |
| | | SelectedImagePath = "Public/PowerOpen.png", |
| | | Tag = function.functionType + "_Switch_" + function.sid |
| | | IsSelected = function.trait_on_off.value.ToString() == "on", |
| | | Tag = function.sid + "_Switch", |
| | | }; |
| | | bodyDiv.AddChidren(btnSwitch); |
| | | } |
| | | //加载开关按钮事件 |
| | | LoadEvent_LightSwitch(btnSwitch); |
| | | LoadEvent_SwitchFunction(btnSwitch); |
| | | |
| | | switch (function.functionCategory) |
| | | { |
| | | case FunctionType.AC: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon.png"; |
| | | AcDiv(); |
| | | break; |
| | | case FunctionType.Light: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png"; |
| | | btnSwitch.IsSelected = (function as Light).on_off == 1; |
| | | LoadLightControl(); |
| | | break; |
| | | case FunctionType.FloorHeating: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png"; |
| | | FloorHeatingDiv(); |
| | | break; |
| | | case FunctionType.Scene: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png"; |
| | | if ((function as Scene).sceneType == SceneType.MovieScene) |
| | | case FunctionCategory.Thermostat: |
| | | switch (function.functionType) |
| | | { |
| | | var movieIcon = new Button() |
| | | { |
| | | X = Application.GetRealWidth(52), |
| | | Y = Application.GetRealHeight(14), |
| | | Width = Application.GetRealWidth(16), |
| | | Height = Application.GetRealWidth(16), |
| | | UnSelectedImagePath = "FunctionIcon/Scene/MovieMark.png", |
| | | }; |
| | | bodyDiv.AddChidren(movieIcon); |
| | | |
| | | btnName.X = movieIcon.Right; |
| | | case FunctionType.AC: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/AC/AcThinIcon1.png"; |
| | | LoadLastStatesButton(); |
| | | break; |
| | | case FunctionType.FloorHeating: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/FloorHeating/FloorHeatingThinIcon.png"; |
| | | LoadLastStatesButton(); |
| | | break; |
| | | } |
| | | break; |
| | | case FunctionCategory.Light: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Light/LightThinIcon.png"; |
| | | btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on"; |
| | | LoadLightControl(); |
| | | break; |
| | | case FunctionCategory.SwitchDevice: |
| | | switch (function.functionType) |
| | | { |
| | | case FunctionType.Socket: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Socket/SocketThinIcon.png"; |
| | | break; |
| | | } |
| | | btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on"; |
| | | break; |
| | | case FunctionCategory.Electrical: |
| | | switch (function.functionType) |
| | | { |
| | | case FunctionType.Fan: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/FanThinIcon.png"; |
| | | break; |
| | | case FunctionType.TV: |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Electrical/TVThinIcon.png"; |
| | | break; |
| | | } |
| | | btnSwitch.IsSelected = function.trait_on_off.value.ToString() == "on"; |
| | | break; |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | else |
| | | |
| | | if (function.functionCategory != FunctionCategory.Scene) |
| | | { |
| | | btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainThinIcon.png"; |
| | | CurtainFragment(); |
| | | |
| | | LoadEvent_DivSkipEvent(); |
| | | } |
| | | |
| | | LoadEvent_DivSkipEvent(); |
| | | LoadCollectionEvent(); |
| | | LoadEvent_FunctionCollection(); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | X = Application.GetRealWidth(10), |
| | | Y = Application.GetRealHeight(15), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | Width = Application.GetRealWidth(32), |
| | | Height = Application.GetRealWidth(32), |
| | | }; |
| | | bodyDiv.AddChidren(btnIcon); |
| | | |
| | | btnName = new Button() |
| | | { |
| | | X = btnIcon.Right + Application.GetRealWidth(8), |
| | | X = Application.GetRealWidth(8 +10 + 32), |
| | | Y = Application.GetRealHeight(10), |
| | | Width = Application.GetRealWidth(200), |
| | | Height = Application.GetRealHeight(24), |
| | |
| | | |
| | | btnFromFloor = new Button() |
| | | { |
| | | X = btnIcon.Right + Application.GetRealWidth(8), |
| | | Y = btnName.Bottom, |
| | | X = Application.GetRealWidth(8 + 10 + 32), |
| | | Y = Application.GetRealHeight(10 + 24), |
| | | Width = Application.GetRealWidth(200), |
| | | Height = Application.GetRealHeight(18), |
| | | Text = function.GetRoomListName(), |
| | |
| | | IsSelected = function.collection |
| | | }; |
| | | bodyDiv.AddChidren(btnCollectionIcon); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | switch (function.functionType) |
| | | { |
| | | case "Dimmer": |
| | | case "RGB": |
| | | case FunctionType.Dimmer: |
| | | case FunctionType.RGB: |
| | | #region Dimmer |
| | | var btnDimmerMinValues = new Button() |
| | | { |
| | |
| | | |
| | | var dimmerControlBar = new DiyImageSeekBar() |
| | | { |
| | | X = btnDimmerMinValues.Right, |
| | | X = Application.GetRealWidth(14 + 22), |
| | | Y = Application.GetRealHeight(68),//91,设计数据 |
| | | Width = Application.GetRealWidth(180), |
| | | Height = Application.GetRealHeight(54), |
| | | SeekBarViewHeight = Application.GetRealHeight(8), |
| | | ThumbImagePath = "Public/ThumbImage.png", |
| | | ThumbImageHeight = Application.GetRealHeight(54), |
| | | ProgressBarColor = CSS_Color.AuxiliaryColor1, |
| | | ProgressBarColor = function.trait_on_off.value.ToString() == "on" ? CSS_Color.AuxiliaryColor1 : CSS_Color.PromptingColor2, |
| | | ProgressTextColor = CSS_Color.FirstLevelTitleColor, |
| | | ProgressTextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | ProgressTextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, |
| | | MaxValue = 100, |
| | | Progress = (function as Light).brightness, |
| | | Tag = function.functionType + "_DimmerBar_" + function.sid |
| | | Tag = function.sid + "_DimmerBar", |
| | | SeekBarPadding = Application.GetRealWidth(20), |
| | | }; |
| | | bodyDiv.AddChidren(dimmerControlBar); |
| | | |
| | | var btnDimmerMaxValues = new Button() |
| | | { |
| | | X = dimmerControlBar.Right, |
| | | X = Application.GetRealWidth(14 + 22+180), |
| | | Y = Application.GetRealHeight(85), |
| | | Width = Application.GetRealWidth(35), |
| | | Height = Application.GetRealHeight(21), |
| | |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "FunctionIcon/Curtain/CurtainCloseIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Curtain/CurtainCloseOnIcon.png", |
| | | Tag = function.functionType + "_off_" + function.sid |
| | | }; |
| | | bodyDiv.AddChidren(btnCurtainClose); |
| | | |
| | |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "FunctionIcon/Curtain/CurtainOpenIcon.png", |
| | | SelectedImagePath = "FunctionIcon/Curtain/CurtainOpenOnIcon.png", |
| | | Tag = function.functionType + "_on_" + function.sid |
| | | }; |
| | | bodyDiv.AddChidren(btnCurtainOpen); |
| | | |
| | | |
| | | |
| | | LoadEvent_ControlCurtain(btnCurtainStop, btnCurtainOpen, btnCurtainClose, function as Curtain); |
| | | #endregion |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 加载空调功能控制卡片 |
| | | /// 加载音乐功能控制卡片 |
| | | /// </summary> |
| | | void AcDiv() |
| | | void MusicFragment() |
| | | { |
| | | #region AC |
| | | #region Music |
| | | var btnPrev = new Button() |
| | | { |
| | | X = Application.GetRealWidth(163), |
| | | Y = Application.GetRealHeight(58), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "MusicIcon/prev.png", |
| | | SelectedImagePath = "MusicIcon/prevSeletced.png", |
| | | }; |
| | | bodyDiv.AddChidren(btnPrev); |
| | | |
| | | var btnPlay = new Button() |
| | | { |
| | | X = Application.GetRealWidth(233), |
| | | Y = Application.GetRealHeight(58), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "MusicIcon/pause.png", |
| | | SelectedImagePath = "MusicIcon/play.png", |
| | | IsSelected = (function as A31MusicModel).A31PlayStatus.status == "play" , |
| | | Tag = function.functionType + "_State_" + function.sid |
| | | }; |
| | | bodyDiv.AddChidren(btnPlay); |
| | | |
| | | var btnNext = new Button() |
| | | { |
| | | X = Application.GetRealWidth(303), |
| | | Y = Application.GetRealHeight(58), |
| | | Width = Application.GetMinRealAverage(32), |
| | | Height = Application.GetMinRealAverage(32), |
| | | UnSelectedImagePath = "MusicIcon/next.png", |
| | | SelectedImagePath = "MusicIcon/nextSelected.png", |
| | | }; |
| | | bodyDiv.AddChidren(btnNext); |
| | | LoadEvent_ControlMusic(btnPlay, btnNext, btnPrev, function as A31MusicModel); |
| | | #endregion |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 加载地热功能控制卡片 |
| | | /// 加载功能状态信息按钮 |
| | | /// </summary> |
| | | void FloorHeatingDiv() |
| | | void LoadLastStatesButton() |
| | | { |
| | | #region 地热 |
| | | #endregion |
| | | var btnLastStates = new Button() |
| | | { |
| | | X = Application.GetRealWidth(10 + 32 + 8), |
| | | Y = Application.GetRealHeight(10 + 24 + 18), |
| | | Width = Application.GetRealWidth(200), |
| | | Height = Application.GetRealHeight(18), |
| | | Text = function.lastState, |
| | | TextAlignment = TextAlignment.CenterLeft, |
| | | SelectedTextColor = CSS_Color.PromptingColor1, |
| | | TextColor = 0x00000000, |
| | | TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel, |
| | | Tag = function.functionType + "_laststates_" + function.sid, |
| | | IsSelected = function.trait_on_off.value.ToString() == "on" |
| | | }; |
| | | bodyDiv.AddChidren(btnLastStates); |
| | | } |
| | | } |
| | | } |
| | | } |