public HallWindow() : base(Singleton <ApplicationViewModel> .Instance.HallWindowVM) { ShowInTaskbar = true; try { hallVM = Singleton <ApplicationViewModel> .Instance.HallWindowVM; hallVM.Load(AllWebPages.HallPage); hallVM.Initialize(); InitializeComponent(); Loaded += EssentialWindow_Loaded; Closing += HallWindow_Closing; } catch (Exception ex) { Helper.Logger.Error("Constructor of HallWindow", ex); } Helper.MainWindow = this; }
void webPage_LoadCompleted() { webPage.InvokeJavaScript("Init", new object[] { "<script type='text/javascript' >" + windowVM.WebPageVM.JavaScript + "</script>", "<style type='text/css' >" + windowVM.WebPageVM.Css + "</style>", windowVM.WebPageVM.Body }); if (windowVM is HallWindowViewModel) { HallWindowViewModel hallVM = windowVM as HallWindowViewModel; if (hallVM.ApplicationVM.ProfileVM.LastLoginVM != null) { if (hallVM.ApplicationVM.ProfileVM.LastLoginVM.Remember) { webPage.InvokeJavaScript(WebWindowAction.InitHallWithLogin.ToString(), hallVM.RoomGroupsJson, hallVM.ApplicationVM.ProfileVM.LastLoginVM.UserId, hallVM.ApplicationVM.ProfileVM.LastLoginVM.Password, hallVM.ApplicationVM.ProfileVM.LastLoginVM.Remember, hallVM.ApplicationVM.ProfileVM.AutoLogin); } else { webPage.InvokeJavaScript(WebWindowAction.InitHallWithLogin.ToString(), hallVM.RoomGroupsJson, hallVM.ApplicationVM.ProfileVM.LastLoginVM.UserId, string.Empty, hallVM.ApplicationVM.ProfileVM.LastLoginVM.Remember, hallVM.ApplicationVM.ProfileVM.AutoLogin); } } else { webPage.InvokeJavaScript(WebWindowAction.InitHall.ToString(), hallVM.RoomGroupsJson); } } else if (windowVM is RoomWindowViewModel) { RoomWindowViewModel roomVM = windowVM as RoomWindowViewModel; webPage.InvokeJavaScript(WebWindowAction.InitRoom.ToString(), roomVM.GiftGroupsJson, roomVM.Me.GetJson(true), webPage.ActualWidth, webPage.ActualHeight, roomVM.ApplicationVM.LocalCache.PublicChatMessageCount, roomVM.ApplicationVM.LocalCache.PrivateChatMessageCount, roomVM.ApplicationVM.LocalCache.MessagePerSecond); } windowVM.LoadAsync(); }
protected override void ProcessMessage(Common.Notification.EnumNotificationMessage <object, ViewModel.HallWindowAction> message) { HallWindowViewModel hallWindowVM = DataContext as HallWindowViewModel; switch (message.Action) { case HallWindowAction.ApplicationShutdown: if (webWindow != null) { CloseWebWindow(webWindow); webWindow = null; } if (roomWindow != null) { roomWindow.Close(); } if (registerWindow != null) { registerWindow.Close(); } Close(); break; case HallWindowAction.CloseRoomWindow: if (roomWindow != null) { roomWindow.Close(); } break; case HallWindowAction.AlreadyInRoom: ShowWebWindow(webWindow, false); if (MessageBox.Show(Messages.AlreadyInRoom, Text.Warning, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { if (roomWindow != null) { roomWindow.Close(); hallVM.Me.RoomWindowVM = null; } int roomId = (int)message.Content; if (roomId != null) { hallVM.EnterRoom(roomId); } } ShowWebWindow(webWindow, true); break; case HallWindowAction.EnterRoomSucceeded: RoomWindowViewModel roomWindowVM = message.Content as RoomWindowViewModel; roomWindow = new RoomWindow(roomWindowVM, this) as RoomWindow; roomWindow.Closed += roomWindow_Closed; roomWindow.StateChanged += roomWindow_StateChanged; roomWindow.Show(); //Hide(); //ShowWebWindow(webWindow, false); break; case HallWindowAction.EnterRoomFailed: MessageBox.Show(Messages.EnterRoomFailed); break; case HallWindowAction.Register: RegisterWindowViewModel vm = message.Content as RegisterWindowViewModel; if (vm != null) { registerWindow = new RegisterWindow(vm) { Owner = this }; ShowWebWindow(webWindow, false); registerWindow.ShowDialog(); ShowWebWindow(webWindow, true); } break; case HallWindowAction.RegisterUserIdNotAvailable: ShowWebWindow(webWindow, false); MessageBox.Show(Messages.NoRegisterUserIdAvailable); ShowWebWindow(webWindow, true); break; case HallWindowAction.RegisterSuccess: if (registerWindow != null) { registerWindow.Close(); } User user = message.Content as User; if (user != null) { webWindow.CallJavaScript("SetLoginUser", user.Id, user.Password); } ShowWebWindow(webWindow, true); break; case HallWindowAction.RegisterCancel: if (registerWindow != null) { registerWindow.Close(); } ShowWebWindow(webWindow, true); break; case HallWindowAction.OpenConfigurationWindow: hallWindowVM.ApplicationVM.ConfigurationWindowVM = new ConfigurationWindowViewModel(); ShowWebWindow(webWindow, false); ConfigurationWindow configurationWindow = new ConfigurationWindow(hallWindowVM.ApplicationVM.ConfigurationWindowVM); configurationWindow.Owner = this; configurationWindow.ShowDialog(); ShowWebWindow(webWindow, true); break; case HallWindowAction.SwitchUser: ShowWebWindow(webWindow, false); if (MessageBox.Show(Text.SwitchUserConfirm, Text.Prompt, MessageBoxButton.YesNo) == MessageBoxResult.Yes) { hallWindowVM.ApplicationVM.SwitchUser(); webWindow.CallJavaScript("SwitchUser"); } ShowWebWindow(webWindow, true); break; default: break; } }