using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using Shared.Phone.UserCenter.SmartSound.Util; namespace Shared.Phone.UserCenter.SmartSound.Forms { public class SmartSoundContentForDeviceChange : EditorCommonForm { /// /// 当前选中的房间 /// private SmartSound.Room CurrentRoom = null; private FrameLayout ContentLayout = null; private FrameLayout DeviceListViewFrameLayout = null; /// /// 场景 listView /// private VerticalListControl SceneListView = null; /// /// 设备 listView /// private VerticalListControl DeviceListView = null; /// /// 没有数据的时候,提示用 /// private FrameLayout TipLayout = null; private List TabList = new List() { Language.StringByID(R.MyInternationalizationString.uLight), Language.StringByID(R.MyInternationalizationString.uDeviceBelongId100), Language.StringByID(R.MyInternationalizationString.AC) }; private int CurrentSelectIndex = 0; private int imageWith = 683; private int imageHeight = 392; /// /// 选择房间中的设备 /// /// 当前房间 public SmartSoundContentForDeviceChange(SmartSound.Room _room) { this.CurrentRoom = _room; } /// /// 画面显示(底层会固定调用此方法,借以完成画面创建) /// public void ShowForm() { //设置标题信息 base.SetTitleText(CurrentRoom.RoomName); //初始化中部控件 this.InitMiddleFrame(); } private void InitMiddleFrame() { //1.场景、功能导航条 var switchContr = new SceneFunctionSwitchControl(); this.bodyFrameLayout.AddChidren(switchContr); switchContr.Gravity = Gravity.CenterVertical; switchContr.Width = Application.GetRealWidth(650); switchContr.Y = Application.GetRealHeight(40); ContentLayout = new FrameLayout(); this.bodyFrameLayout.AddChidren(ContentLayout); ContentLayout.Height = this.bodyFrameLayout.Height - switchContr.Height - Application.GetRealHeight(40); ContentLayout.Y = switchContr.Height + Application.GetRealHeight(40); var listTitle = new List(); listTitle.Add(Language.StringByID(R.MyInternationalizationString.uScence)); listTitle.Add(Language.StringByID(R.MyInternationalizationString.uFunction)); //设置初始值 switchContr.SetDefultIndex(0); //选择事件 switchContr.SelectTabEvent += (selectIndex) => { //刷新bodyView if (selectIndex == 0) { LoadSceneView(); } else { LoadFunction(); } }; //开始初始化 switchContr.InitControl(listTitle); } /// /// 加载场景界面 /// private void LoadSceneView() { try { //3.设备列表 ListView ContentLayout.RemoveAll(); var tipLayout = new FrameLayout(); ContentLayout.AddChidren(tipLayout); tipLayout.Visible = false; ShowNoFunctionTip(tipLayout); SceneListView = new VerticalListControl(); ContentLayout.AddChidren(SceneListView); SceneListView.Y = Application.GetRealHeight(40); SceneListView.RemoveAll(); for (int i = 0; i < CurrentRoom.SceneList.Count; i++) { SmartSound.Scene scene = CurrentRoom.SceneList[i]; var roomRowLayout = new SceneRowLayout(this, scene, i); SceneListView.AddChidren(roomRowLayout); roomRowLayout.InitControl(); } if (SceneListView.ChildrenCount > 5) { TextView textView = new TextView(); textView.Height = Application.GetRealHeight(127 * 3); SceneListView.AddChidren(textView); } if (SceneListView.ChildrenCount == 0) { tipLayout.Visible = true; } else { tipLayout.Visible = false; } } catch (Exception ex) { string eoor = ex.Message; } } private void LoadFunction() { try { ContentLayout.RemoveAll(); FrameLayout tab_layout = new FrameLayout(); ContentLayout.AddChidren(tab_layout); tab_layout.Height = Application.GetRealHeight(170); tab_layout.Y = 0; //添加 ListView 提示 TipLayout = new FrameLayout(); ContentLayout.AddChidren(TipLayout); TipLayout.Visible = false; TipLayout.Y = tab_layout.Height; ShowNoFunctionTip(TipLayout); Buttons.Clear(); //添加功能项 for (int i = 0; i < TabList.Count; i++) { Button button = new Button(); tab_layout.AddChidren(button); button.Width = Application.GetRealWidth(250); button.Height= Application.GetRealWidth(250); button.Text = TabList[i]; button.X = HdlControlResourse.XXLeft / 2 + i * button.Width; button.AddTag("Index", i); Buttons.Add(button); button.MouseUpEventHandler += (sender, e) => { Button btn = sender as Button; CurrentSelectIndex = (int)btn.GetTagByKey("Index"); RefreshButtonState(); RefreshFunctionListView(); }; } //添加 ListView DeviceListViewFrameLayout = new FrameLayout(); ContentLayout.AddChidren(DeviceListViewFrameLayout); DeviceListViewFrameLayout.Y = tab_layout.Height; DeviceListViewFrameLayout.Height = ContentLayout.Height - tab_layout.Height; RefreshButtonState(); RefreshFunctionListView(); } catch (Exception ex) { string error = ex.Message; } } private void RefreshFunctionListView() { try { DeviceListViewFrameLayout.RemoveAll(); DeviceListView = new VerticalListControl(); DeviceListViewFrameLayout.AddChidren(DeviceListView); DeviceListView.Height = DeviceListViewFrameLayout.Height; DeviceListView.RemoveAll(); switch (CurrentSelectIndex) { case 0:// 灯光 { int n = 0; for (int i = 0; i < CurrentRoom.DeviceList.Count; i++) { SmartSound.Device device = CurrentRoom.DeviceList[i]; //灯光 if (device.DeviceType == 1 || device.DeviceType == 2 || device.DeviceType == 3) { var deviceRowLayout = new DeviceRowLayout(this, device, n); DeviceListView.AddChidren(deviceRowLayout); deviceRowLayout.InitControl(); n++; } } } break; case 1: // 窗帘 { int n = 0; for (int i = 0; i < CurrentRoom.DeviceList.Count; i++) { SmartSound.Device device = CurrentRoom.DeviceList[i]; // if (device.DeviceType == 4 || device.DeviceType == 5 || device.DeviceType == 6) { var deviceRowLayout = new DeviceRowLayout(this, device, n); DeviceListView.AddChidren(deviceRowLayout); deviceRowLayout.InitControl(); n++; } } } break; case 2: // 空调 { int n = 0; for (int i = 0; i < CurrentRoom.DeviceList.Count; i++) { SmartSound.Device device = CurrentRoom.DeviceList[i]; // if (device.DeviceType == 7) { var deviceRowLayout = new DeviceRowLayout(this, device, n); DeviceListView.AddChidren(deviceRowLayout); deviceRowLayout.InitControl(); n++; } } } break; } if (DeviceListView.ChildrenCount > 5) { TextView textView = new TextView(); textView.Height = Application.GetRealHeight(127 * 3); DeviceListView.AddChidren(textView); } if (DeviceListView.ChildrenCount == 0) { TipLayout.Visible = true; } else { TipLayout.Visible = false; } } catch (Exception e) { string error = e.Message; } } /// /// 修改场景昵称 /// /// /// private void ShowSetNicknameDialog(SmartSound.Scene scene, SceneRowLayout sceneRowLayout) { //生成一个弹窗画面 var dialogForm = new DialogInputControl(); //编辑住宅 dialogForm.SetTitleText("自定义昵称"); //请输入住宅名称 dialogForm.SetTipText("请输入昵称"); dialogForm.Text = scene.NicksName; //按下确认按钮 dialogForm.ComfirmClickEvent += (async (textValue) => { scene.NicksName = textValue; string remark = scene.SceneName; if (scene.NicksName.Trim() != string.Empty) { remark += "(" + scene.NicksName + ")"; } sceneRowLayout.btnCaption.Text = remark; string json = await postBatchEdit(); //画面关闭 dialogForm.CloseDialog(); }); } /// /// 修改设备昵称 /// /// /// private void ShowSetNicknameDialog(SmartSound.Device device, DeviceRowLayout deviceRowLayout) { //生成一个弹窗画面 var dialogForm = new DialogInputControl(); //编辑住宅 dialogForm.SetTitleText("自定义昵称"); //请输入住宅名称 dialogForm.SetTipText("请输入昵称"); dialogForm.Text = device.NicksName; //按下确认按钮 dialogForm.ComfirmClickEvent += (async (textValue) => { device.NicksName = textValue; string remark = device.DeviceName; if (device.NicksName.Trim() != string.Empty) { remark += "(" + device.NicksName + ")"; } deviceRowLayout.btnCaption.Text = remark; string json = await postBatchEdit(); //画面关闭 dialogForm.CloseDialog(); }); } /// /// 场景删除 /// private void ShowSceneDelectDialog(SmartSound.Scene scene) { this.ShowMassage(ShowMsgType.Confirm, "确认删除该控制内容?", () => { HdlThreadLogic.Current.RunThread(async () => { this.ShowProgressBar(); CurrentRoom.SceneList.Remove(scene); string json = await postBatchEdit(); HdlThreadLogic.Current.RunMainInThread(() => { LoadSceneView(); this.CloseProgressBar(); }); }); }, Language.StringByID(R.MyInternationalizationString.OkMsg)); } /// /// 设备删除 /// private void ShowDeviceDelectDialog(SmartSound.Device device) { this.ShowMassage(ShowMsgType.Confirm, "确认删除该控制内容?", () => { HdlThreadLogic.Current.RunThread(async () => { this.ShowProgressBar(); CurrentRoom.DeviceList.Remove(device); string json = await postBatchEdit(); HdlThreadLogic.Current.RunMainInThread(() => { RefreshFunctionListView(); this.CloseProgressBar(); }); }); }, Language.StringByID(R.MyInternationalizationString.OkMsg)); } /// /// 提示没有功能 /// private void ShowNoFunctionTip(FrameLayout layout, string tip = "没有数据哦") { var noFunction = new Button() { Y = Application.GetRealHeight(320), Width = Application.GetMinRealAverage(757), Height = Application.GetMinRealAverage(435), UnSelectedImagePath = "Item/NoFunction.png", Gravity = Gravity.CenterHorizontal }; layout.AddChidren(noFunction); var noFunctionTip = new Button() { Y = noFunction.Bottom + Application.GetRealHeight(32), Height = Application.GetRealHeight(200), Width = Application.GetRealWidth(700), Gravity = Gravity.CenterHorizontal, Text = tip, TextColor = UserCenterColor.Current.TextGrayColor1, TextAlignment = TextAlignment.Center, IsMoreLines = true }; layout.AddChidren(noFunctionTip); } //为了方便更新状态,存起来 private List