public UpdateViewModel(IUpdateManager updateManager, ISettings settings, IDialogManager dialogManager, UpdateDownloadViewModel.Factory updateDownloadViewModelFactory, bool checkForUpdates) { _updateManager = updateManager; _settings = settings; _checkForUpdates = checkForUpdates; _releases = new ObservableCollection<ReleaseInfo>(); _updateCommand = new RelayCommand(() => { Close(); dialogManager.ShowDialog(updateDownloadViewModelFactory.Invoke(_releases.First())); }, () => CanUpdate); _cancelCommand = new RelayCommand(Close); var collectionView = CollectionViewSource.GetDefaultView(Releases); collectionView.Filter = item => ((ReleaseInfo)item).IsNew; BindingOperations.EnableCollectionSynchronization(_releases, _releases); }
public override void OnItemSelected(Item <Prepayment> item) { if (item == null) { return; } var data = item.GetData(); if (data == null) { return; } _dialogManager.ShowDialog <PayChannelPanel>(DialogName.PayChannelPanel, false, false, (dialog) => { dialog.ApplyData("shop", data); dialog.Show(); }); }
public void Execute() { IServerConnectionManager serverConnectionManager = ServiceRegistration.Get <IServerConnectionManager>(); SystemName homeServerSystem = serverConnectionManager.LastHomeServerSystem; bool localHomeServer = homeServerSystem != null && homeServerSystem.IsLocalSystem(); bool homeServerConnected = serverConnectionManager.IsHomeServerConnected; if (localHomeServer && !homeServerConnected) { // Our home server is local, i.e. all shares of this system must be configured at the server, but the server is not online at the moment. IDialogManager dialogManager = ServiceRegistration.Get <IDialogManager>(); dialogManager.ShowDialog(Consts.RES_CANNOT_ADD_SHARES_TITLE, Consts.RES_CANNOT_ADD_SHARE_LOCAL_HOME_SERVER_NOT_CONNECTED, DialogType.OkDialog, false, DialogButtonType.Ok); return; } IWorkflowManager workflowManager = ServiceRegistration.Get <IWorkflowManager>(); workflowManager.NavigatePush(Consts.WF_STATE_ID_SHARE_ADD_CHOOSE_SYSTEM); }
protected override void DoHandle(RaceAward content) { var raceAwardQueue = _raceAward.Read(); if (raceAwardQueue == null) { raceAwardQueue = new Queue <RaceAward>(); _raceAward.Write(raceAwardQueue, Time.time); } if (!raceAwardQueue.Contains(content)) { raceAwardQueue.Enqueue(content); } var cacheDialog = _dialogManager.GetCachedDialog(DialogName.RaceAwardsDialog); if (cacheDialog != null) { return; } if (raceAwardQueue.Count <= 0) { return; } var raceAward = raceAwardQueue.Dequeue(); if (raceAward == null) { return; } _dialogManager.ShowDialog <RaceAwardsDialog>(DialogName.RaceAwardsDialog, false, true, (dialog) => { dialog.Apply(raceAward); dialog.Show(); }); }
protected override void DoHandle(SAddFriendRequestToReceiver msg) { var friendIgnoreList = _friendIgnoreList.Read(); if (friendIgnoreList == null) { friendIgnoreList = new List <string>(); _friendIgnoreList.Write(friendIgnoreList, Time.time); } if (friendIgnoreList.Contains(msg.sender_username)) { return; } _dialogManager.ShowDialog <FriendRequestDialog>(DialogName.FriendRequestDialog, false, false, (dialog) => { dialog.ApplyData(msg.sender_username, msg.sender_nickname, msg.sender_sex); dialog.Show(); }); }
protected override void DoHandle(LeaveTableResult msg) { if (msg == null) { return; } _leaveTableResult.Write(msg, Time.time); if (msg.result == ResultCode.OK) { // 离桌成功,则清空选桌数据。 _chooseTableResult.ClearAndInvalidate(Time.time); // 离桌成功,清空开局和结算数据。 _startRound.ClearAndInvalidate(0); _roundEnd.ClearNotInvalidate(); _raceRoundEnd.ClearNotInvalidate(); } // 离桌不成功,则什么都不做。 _chooseTableResult.Invalidate(Time.time); if (msg.result == ResultCode.LEAVE_WILL_PUNISH) { var room = _currentRoom.Read(); _dialogManager.ShowDialog <PunishTipDialog>(DialogName.PunishTipDialog, false, false, (dialog) => { dialog.ApplyData( room, "依然退出", () => _remoteAPI.LeaveTable(true) ); dialog.Show(); }); } }
protected override void DoHandle(LeaveRoomResult res) { _leaveRoomResult.Write(res, Time.time); if (res == null) { return; } if (res.result == ResultCode.OK) { UpdateRoom(res.room); _chooseRoomResult.ClearNotInvalidate(); _chooseRoomFail.ClearNotInvalidate(); _gLoginResult.ClearAndInvalidate(Time.time); } if (res.result == ResultCode.LEAVE_WILL_PUNISH) { _dialogManager.ShowDialog <PunishTipDialog>(DialogName.PunishTipDialog, false, false, (dialog) => { dialog.ApplyData( _currentRoom.Read(), "依然退出", () => _remoteAPI.LeaveRoom(true) ); dialog.Show(); }); } if (_network.GetServer() == Server.GServer) { _network.StartConnectHServer(); } }
public void QueryDeleteAll(List <MediaItem> mediaItems) { if (mediaItems.Count == 0) { ServiceRegistration.Get <ILogger>().Error("DeleteAllRecordings: No items to delete"); return; } IDialogManager dialogManager = ServiceRegistration.Get <IDialogManager>(); string header = LocalizationHelper.Translate(Consts.RES_CONFIRM_HEADER); string text = LocalizationHelper.Translate("[SlimTvClient.DeleteAllRecordings.Confirmation]", mediaItems.Count); Guid handle = dialogManager.ShowDialog(header, text, DialogType.YesNoDialog, false, DialogButtonType.No); DialogCloseWatcher dialogCloseWatcher = null; dialogCloseWatcher = new DialogCloseWatcher(this, handle, async dialogResult => { dialogCloseWatcher?.Dispose(); if (dialogResult == DialogResult.Yes) { await DeleteList(mediaItems); } }); }
private async void LoadProjects(string path) { var oldRootPath = RootPath; RootPath = path; var fileScanningViewModel = _viewModelFactory.CreateFileScanningViewModel(path); var result = await _dialogManager.ShowDialog(fileScanningViewModel); if (result != null) { _settings.RootPath = path; _projectRepository.RootPath = path; _projectRepository.RootFolder = result.ProjectFolder; _mostRecentUsedFoldersRepository.SetCurrentFolder(path); Solution = _viewModelFactory.CreateSolutionViewModel(path, result.Projects); Show(String.Format("{0} projects loaded.", result.Projects.Count)); } else { RootPath = oldRootPath; } }
/// <inheritdoc /> public void ShowDialog(params DialogField[] fields) { // If no dialog Manager is given and not enough predefined options are available. if (_dialogManager == null && _options.Count - _optionIndex < fields.Length) { throw new InvalidOperationException("Not enough predefined dialog options."); } // Collect predefined options for each field var fieldIndex = 0; while (_optionIndex < _options.Count && fieldIndex < fields.Length) { var option = _options[_optionIndex++]; fields[fieldIndex++].Result = option; DialogOptions.Add(option); } // If all fields were already processed by predefined options if (fieldIndex >= fields.Length) { return; } // Collect results from dialog manager if predefined options are exhausted var subFields = fields.Skip(fieldIndex).ToArray(); _dialogManager?.ShowDialog(subFields); // Add results from the dialog Manager to the results foreach (var subField in subFields) { DialogOptions.Add(subField.Result); } }
public void ShowShop() { _dialogManager.ShowDialog <ShopPanel>(DialogName.ShopPanel, false, false, (shop) => { shop.Show(ShopPanel.ShopType.Commodity); }); }
public void SupportRequest() { dialogManager.ShowDialog(supportViewModel); }
public void Handle(ProtoMessage msg) { _appController.ClearAppStateData(); _dialogManager.ShowDialog <BeenReplacedDialog>(DialogName.BeenReplacedDialog, true, true); }
public void FindFriend() { _dialogManager.ShowDialog <FindFriendDialog>(DialogName.FindFriendDialog); }
public void ShowSettings() { _dialogManager.ShowDialog(new SettingsViewModel(_settings)); }
public void ShowExchange() { _dialogManager.ShowDialog <ShopPanel>(DialogName.ShopPanel, false, false, (shop) => { shop.Show(ShopPanel.ShopType.Exchange); }); }
Task ITvisionAppStartup.Startup(ITuiEngine tui) { var skin = _skinManager.CurrentSkin; var dvpf = _layoutManager.DynamicViewportFactory; var mainStackPanel = new TvStackPanel(tui.UI, "mainStackPanel"); mainStackPanel.AsComponent().AddViewport(dvpf.Create(vpf => vpf.FullViewport().Translate(new TvPoint(0, 1)).Grow(0, -3))); mainStackPanel.Layout.Add("*", "3"); var listFilesGrid = new TvGrid(tui.UI, new GridState(1, 2)); mainStackPanel.At(0).Add(listFilesGrid); tui.UI.Add(mainStackPanel); // TODO: Implement BorderedPanel // mainStackPanel.At(1).Add(new BorderedPanel()); var textbox = new TvTextbox(skin, null, new TextboxState()); //var left = new TvList<FileItem>(skin, new Viewport(new TvPoint(0, 0), 10, 1, 0), // new ListState<FileItem>(Enumerable.Empty<FileItem>(), f => new TvListItem() { Text = f.Name })); var actind = new TvActivityIndicator(skin, new Viewport(new TvPoint(0, 22), 1, 1, 0) , new ActivityIndicatorState()); tui.UI.Add(actind); var left = new TvList <FileItem>(skin, new Viewport(new TvPoint(0, 0), 10, 1, 0), ListState <FileItem> .From(Enumerable.Empty <FileItem>()) .AddFixedColumn(fi => fi.IsDirectory ? "*" : " ", width: 2) .AddColumn(fi => fi.Name) .Build()); left.StyleProvider .Use(Core.Colors.TvColor.Red, Core.Colors.TvColor.Blue) .When(f => (f.FileAttributes & System.IO.FileAttributes.Hidden) == System.IO.FileAttributes.Hidden) .AppliesToColumn(1); var right = new TvList <FileItem>(skin, new Viewport(new TvPoint(0, 0), 10, 1, 0), new ListState <FileItem>(Enumerable.Empty <FileItem>(), new TvListColumnSpec <FileItem>() { Transformer = f => f.Name })); right.StyleProvider .Use(Core.Colors.TvColor.Red, Core.Colors.TvColor.Blue) .When(f => (f.FileAttributes & System.IO.FileAttributes.Hidden) == System.IO.FileAttributes.Hidden) .AppliesToColumn(1); var menu = new TvMenuBar(skin, dvpf.Create(vpf => vpf.FullViewport().TakeRows(1, 0)), new MenuBarState(new[] { "Left", "Edit", "Command", "Options", "Help", "Right" }), opt => { opt.ItemsSpacedBy(4); }); //var window = new TvWindow(skin, vpf.FullViewport().CreateCentered(20, 10), new WindowState(tui.UI)); //var label = new TvLabel(skin, new Viewport(new TvPoint(0, 0), 9, 1, 0), new LabelState() { Text = "In Window" }); //window.State.UI.Add(label); var label = new TvLabel(skin, new Viewport(new TvPoint(0, 0), 9, 1, 0), new LabelState() { Text = "In Window" }); var dialog = _dialogManager.CreateDialog(dvpf.Create(vpf => vpf.FullViewport().CreateCentered(20, 10)), d => { d.State.UI.Add(label); }); var sleft = TvStatexControl.Wrap <TvList <FileItem>, ListState <FileItem>, FileList>(left, opt => { opt.UseStore("left"); opt.UseStatexTransformation((fl, cs) => { cs.Clear(); cs.AddRange(fl.Items); }); opt.On(c => c.OnItemClicked) .Dispatch((s, args) => new TvAction <string>("FETCH_DIR", args.FullName)) .When(f => f.IsDirectory); opt.OnKeyEvent(e => e.AsConsoleKeyInfo().Key == System.ConsoleKey.Enter) .Dispatch(s => new TvAction <FileItem>("FETCH_INFO", s[s.SelectedIndex])); opt.OnKeyEvent(e => e.AsConsoleKeyInfo().Key == System.ConsoleKey.Backspace) .Dispatch(s => new TvAction("FETCH_BACK")); }); var sright = TvStatexControl.Wrap <TvList <FileItem>, ListState <FileItem>, FileList>(right, opt => { opt.UseStore("right"); opt.UseStatexTransformation((fl, cs) => { cs.Clear(); cs.AddRange(fl.Items); }); opt.On(c => c.OnItemClicked) .Dispatch((s, args) => new TvAction <string>("FETCH_DIR", args.FullName)) .When(f => f.IsDirectory); }); listFilesGrid.Use(0, 0).Add(left); listFilesGrid.Use(0, 1).Add(right); var bottom = new TvStackPanel(tui.UI, "BottomContainer"); bottom.Layout.Add(new LayoutSize()); bottom.AsComponent().AddViewport(dvpf.Create(vpf => vpf.BottomViewport(2))); bottom.At(0).Add(textbox); tui.UI.Add(bottom); tui.UI.Add(menu); //tui.UI.Add(window); _dialogManager.ShowDialog(dialog); if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { _storeSelector.GetStore <FileList>("left").Dispatch(new TvAction <string>("FETCH_DIR", "/")); _storeSelector.GetStore <FileList>("right").Dispatch(new TvAction <string>("FETCH_DIR", "/home/eiximenis")); } else { _storeSelector.GetStore <FileList>("left").Dispatch(new TvAction <string>("FETCH_DIR", "C:\\")); _storeSelector.GetStore <FileList>("right").Dispatch(new TvAction <string>("FETCH_DIR", "D:\\")); } return(Task.CompletedTask); }
public static void ShowUserTaskDialog(this IDialogManager dialogManager, IAppContext context) { var dataRepository = context.GetDataRepository(); var userTaskListResult = dataRepository.GetContainer <UserTaskListResult>(DataKey.UserTaskListResult); dialogManager.RequestDialog <UserTaskDialog>(DialogName.UserTaskDialog, () => { var remoteApi = context.GetRemoteAPI(); userTaskListResult.ClearNotInvalidate(); remoteApi.RequestUserTaskList(); }, () => { var data = userTaskListResult.Read(); if (data == null) { return(null); } var res = data.res; if (res == null) { return(null); } if (res.code == ResultCode.OK) { var taskList = data.user_task_state; if (taskList == null || taskList.Count <= 0) { return(TaskResult.Fail(ResultCode.FAILED, "没有任务数据")); } return(TaskResult.Success()); } else { return(TaskResult.Fail(res.code, res.msg)); } }, () => { dialogManager.ShowDialog <UserTaskDialog>(DialogName.UserTaskDialog, false, false, (dialog) => { var data = userTaskListResult.Read(); if (data != null) { dialogManager.AddDialogToCacheDialog(DialogName.UserTaskDialog, dialog); dialog.Show(); } }); }, (errCode, errMsg) => { if (!string.IsNullOrEmpty(errMsg)) { dialogManager.ShowToast(errMsg, 3, true); } else { dialogManager.ShowToast("获取任务信息失败", 3, true); } }); }
protected void CheckPlayMenuInternal(MediaItem item) { IPlayerContextManager pcm = ServiceRegistration.Get <IPlayerContextManager>(); int numOpen = pcm.NumActivePlayerContexts; if (numOpen == 0) { // Asynchronously leave the current workflow state because we're called from a workflow model method IThreadPool threadPool = ServiceRegistration.Get <IThreadPool>(); threadPool.Add(() => { LeaveCheckQueryPlayActionSingleItemState(); CheckEdition(item); //CheckResumeAction(item); }); return; } _playMenuItems = new ItemsList(); AVType avType = pcm.GetTypeOfMediaItem(item); int numAudio = pcm.GetPlayerContextsByAVType(AVType.Audio).Count(); int numVideo = pcm.GetPlayerContextsByAVType(AVType.Video).Count(); switch (avType) { case AVType.Audio: { ListItem playItem = new ListItem(Consts.KEY_NAME, Consts.RES_PLAY_AUDIO_ITEM) { Command = new MethodDelegateCommand(() => { LeaveCheckQueryPlayActionSingleItemState(); CheckEdition(item); //CheckResumeAction(item); }) }; _playMenuItems.Add(playItem); if (numAudio > 0) { ListItem enqueueItem = new ListItem(Consts.KEY_NAME, Consts.RES_ENQUEUE_AUDIO_ITEM) { Command = new AsyncMethodDelegateCommand(() => { LeaveCheckQueryPlayActionSingleItemState(); return(PlayOrEnqueueItem(item, false, PlayerContextConcurrencyMode.None)); }) }; _playMenuItems.Add(enqueueItem); } if (numVideo > 0) { ListItem playItemConcurrently = new ListItem(Consts.KEY_NAME, Consts.RES_MUTE_VIDEO_PLAY_AUDIO_ITEM) { Command = new AsyncMethodDelegateCommand(() => { LeaveCheckQueryPlayActionSingleItemState(); return(PlayOrEnqueueItem(item, true, PlayerContextConcurrencyMode.ConcurrentVideo)); }) }; _playMenuItems.Add(playItemConcurrently); } } break; case AVType.Video: { ListItem playItem = new ListItem(Consts.KEY_NAME, Consts.RES_PLAY_VIDEO_IMAGE_ITEM) { Command = new MethodDelegateCommand(() => { LeaveCheckQueryPlayActionSingleItemState(); CheckEdition(item); //CheckResumeAction(item); }) }; _playMenuItems.Add(playItem); if (numVideo > 0) { ListItem enqueueItem = new ListItem(Consts.KEY_NAME, Consts.RES_ENQUEUE_VIDEO_IMAGE_ITEM) { Command = new AsyncMethodDelegateCommand(() => { LeaveCheckQueryPlayActionSingleItemState(); return(PlayOrEnqueueItem(item, false, PlayerContextConcurrencyMode.None)); }) }; _playMenuItems.Add(enqueueItem); } if (numAudio > 0) { ListItem playItem_A = new ListItem(Consts.KEY_NAME, Consts.RES_PLAY_VIDEO_IMAGE_ITEM_MUTED_CONCURRENT_AUDIO) { Command = new AsyncMethodDelegateCommand(() => { LeaveCheckQueryPlayActionSingleItemState(); return(PlayOrEnqueueItem(item, true, PlayerContextConcurrencyMode.ConcurrentAudio)); }) }; _playMenuItems.Add(playItem_A); } if (numVideo > 0) { ListItem playItem_V = new ListItem(Consts.KEY_NAME, Consts.RES_PLAY_VIDEO_IMAGE_ITEM_PIP) { Command = new AsyncMethodDelegateCommand(() => { LeaveCheckQueryPlayActionSingleItemState(); return(PlayOrEnqueueItem(item, true, PlayerContextConcurrencyMode.ConcurrentVideo)); }) }; _playMenuItems.Add(playItem_V); } } break; default: { IDialogManager dialogManager = ServiceRegistration.Get <IDialogManager>(); Guid dialogHandleId = dialogManager.ShowDialog(Consts.RES_SYSTEM_INFORMATION, Consts.RES_CANNOT_PLAY_ITEM_DIALOG_TEXT, DialogType.OkDialog, false, DialogButtonType.Ok); _dialogCloseWatcher = new DialogCloseWatcher(this, dialogHandleId, dialogResult => LeaveCheckQueryPlayActionSingleItemState()); } break; } IScreenManager screenManager = ServiceRegistration.Get <IScreenManager>(); screenManager.ShowDialog(Consts.DIALOG_PLAY_MENU, (dialogName, dialogInstanceId) => LeaveCheckQueryPlayActionSingleItemState()); }
public void AccountLogin() { _dialogManager.ShowDialog <LoginPanel>(DialogName.LoginPanel, true, true); }
protected void ShowServerNotConnectedDialog() { IDialogManager dialogManager = ServiceRegistration.Get <IDialogManager>(); dialogManager.ShowDialog(Consts.RES_SERVER_NOT_CONNECTED_DIALOG_HEADER, Consts.RES_SERVER_NOT_CONNECTED_DIALOG_TEXT, DialogType.OkDialog, false, null); }
/// <summary> /// Tries to build a player for the given <paramref name="mediaItem"/>. /// </summary> /// <param name="mediaItem">Media item to be played.</param> /// <param name="exceptions">All exceptions which have been thrown by any player builder which was tried.</param> /// <returns>Player which was built or <c>null</c>, if no player could be built for the given resource.</returns> internal IPlayer BuildPlayer_NoLock(MediaItem mediaItem, out ICollection <Exception> exceptions) { ICollection <IPlayerBuilder> builders; lock (_syncObj) builders = new List <IPlayerBuilder>(_playerBuilders.Values.OrderByDescending(w => w.Priority).ThenBy(w => w.Id).Select(w => w.PlayerBuilder)); exceptions = new List <Exception>(); if (mediaItem.IsStub) { MediaItem stubMI = null; if (mediaItem.Aspects.ContainsKey(MovieAspect.ASPECT_ID) || mediaItem.Aspects.ContainsKey(EpisodeAspect.ASPECT_ID)) { if (TryCreateInsertVideoMediaMediaItem(mediaItem, out stubMI)) { mediaItem = stubMI; } } else if (mediaItem.Aspects.ContainsKey(AudioAspect.ASPECT_ID)) { if (TryCreateInsertAudioMediaMediaItem(mediaItem, out stubMI)) { mediaItem = stubMI; } } if (stubMI == null) { string header = LocalizationHelper.Translate("[Media.Stub.Title]"); string text = LocalizationHelper.Translate("[Media.Stub.Message]"); if (mediaItem.Aspects.ContainsKey(StubAspect.ASPECT_ID)) { string message; if (MediaItemAspect.TryGetAttribute(mediaItem.Aspects, StubAspect.ATTR_MESSAGE, out message)) { text = message; } } IDialogManager dialogManager = ServiceRegistration.Get <IDialogManager>(); dialogManager.ShowDialog(header, text, DialogType.OkDialog, false, DialogButtonType.Ok); return(null); } } if (mediaItem.IsVirtual) { string header = LocalizationHelper.Translate("[Media.Virtual.Title]"); string text = LocalizationHelper.Translate("[Media.Virtual.Message]"); IDialogManager dialogManager = ServiceRegistration.Get <IDialogManager>(); dialogManager.ShowDialog(header, text, DialogType.OkDialog, false, DialogButtonType.Ok); return(null); } foreach (IPlayerBuilder playerBuilder in builders) { try { IPlayer player = playerBuilder.GetPlayer(mediaItem); if (player != null) { return(player); } } catch (Exception e) { ServiceRegistration.Get <ILogger>().Error("Unable to create media player for media item '{0}'", e, mediaItem); exceptions.Add(e); } } return(null); }