public void OpenQueueView(IQueue queue, bool setActiveView = true)
        {
            if (queue == null)
            {
                throw new ArgumentNullException(nameof(queue));
            }

            ShellService.WithGlobalBusy(() =>
            {
                if (!ViewService.DocumentViewExists(queue.UniqueId))
                {
                    var vm = CompositionHost.GetInstance <MessageListViewModel>();

                    vm.Title    = Invariant($"{queue.Name}@{queue.QueueManager.Name}");
                    vm.UniqueId = queue.UniqueId;
                    ViewService.AddDocumentView(vm, setActiveView);
                    vm.StartInitialize(queue);
                }
                else
                {
                    if (setActiveView)
                    {
                        ViewService.SetActiveDocumentView(queue.UniqueId);
                    }
                }
            });
        }
        public void Run()
        {
            System.Windows.Application.Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;

            var splash = new SplashScreenManager();

            splash.Show();

            InitMef();

            MainController = CompositionHost.GetInstance <IApplicationController>();
            IShellView shell = MainController.Run();

            if (shell != null && shell is ShellWindow)
            {
                System.Windows.Application.Current.MainWindow   = (ShellWindow)shell;
                System.Windows.Application.Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
                System.Windows.Application.Current.MainWindow.Show();
                splash.Close();
                System.Windows.Application.Current.MainWindow.Activate();
            }
            else
            {
                System.Windows.Application.Current.Shutdown();
            }
        }
Example #3
0
        public ShellViewModel(IShellView window, IApplicationController appController)
            : base(window, appController)
        {
            Title = ApplicationInfo.ProductName;

            _settings = App.UserSettings;

            WeakEventManager <UserSettings, EventArgs>
            .AddHandler(_settings, "OnSettingsChanged", _settings_OnSettingsChanged);


            WeakEventManager <IViewService, EventArgs>
            .AddHandler(App.ViewService, "ModalOpening", Modal_Opening);

            WeakEventManager <IViewService, EventArgs>
            .AddHandler(App.ViewService, "ModalClosing", Modal_Closing);

            WeakEventManager <IViewService, CountEventArgs>
            .AddHandler(App.ViewService, "DocumentsCountChanged", Documents_CountChanged);

            _welcomeContent = CompositionHost.GetInstance <WelcomeViewModel>();
            _mainContent    = CompositionHost.GetInstance <MainViewModel>();

            Content = _welcomeContent;
        }
        public void OpenPutMessageView(QueueInfo queue)
        {
            var pmvm = CompositionHost.GetInstance <PutMessageViewModel>();

            pmvm.Initialize(queue);

            ViewService.ShowModalView(pmvm);
        }
        private void ShowSettings()
        {
            var svm = CompositionHost.GetInstance <SettingsViewModel>();

            svm.Initialize(UserSettings);

            ViewService.ShowModalView(svm);
        }
        public void OpenChannelResolveParametersView(Action <ChannelResolveParameters> callback)
        {
            var vm = CompositionHost.GetInstance <ChannelResolveParametersViewModel>();

            ViewService.ShowModalView(vm, () =>
            {
                if (vm.Result == MessageBoxResult.OK)
                {
                    callback?.Invoke(vm.Parameters);
                }
            });
        }
 private void ShowParsingEditor()
 {
     if (!ViewService.DocumentViewExists(ParsingEditorViewModel.ID))
     {
         var vm = CompositionHost.GetInstance <ParsingEditorViewModel>();
         ViewService.AddDocumentView(vm, true);
     }
     else
     {
         ViewService.SetActiveDocumentView(ParsingEditorViewModel.ID);
     }
 }
        public void OpenExportMessagesSettingsView(QueueInfo queue, int messagesCount, Action <string, CsvExportSettings> callback)
        {
            var vm = CompositionHost.GetInstance <ExportMessagesSettingsViewModel>();

            vm.Initialize(queue, messagesCount);

            ViewService.ShowModalView(vm, () =>
            {
                if (vm.Result == MessageBoxResult.OK)
                {
                    callback?.Invoke(vm.Filename, vm.Settings);
                }
            });
        }
        public void OpenDumpLoadSettingsView(QueueInfo queue, Action <string, DumpLoadSettings> callback)
        {
            var vm = CompositionHost.GetInstance <DumpLoadSettingsViewModel>();

            vm.Initialize(queue);

            ViewService.ShowModalView(vm, () =>
            {
                if (vm.Result == MessageBoxResult.OK)
                {
                    callback?.Invoke(vm.Filename, vm.Settings);
                }
            });
        }
        private void SelectQueueManagerInternal(bool remote, bool showObjectFilter, RecentQueueManagerConnection rqmc, Action <IQueueManager, IObjectNameFilter> onOk)
        {
            var oqmvm = CompositionHost.GetInstance <OpenQueueManagerViewModel>();

            oqmvm.Initialize(remote, showObjectFilter, rqmc);


            ViewService.ShowModalView(oqmvm, () =>
            {
                if (oqmvm.Result == MessageBoxResult.OK)
                {
                    onOk?.Invoke(oqmvm.QueueManager, oqmvm.GetObjectNameFilter());
                }
            });
        }
        private void SelectQueueInternal(IQueueManager qm, IRecentQueueConnection rqc, Action <IQueue> onOk)
        {
            var oqvm = CompositionHost.GetInstance <OpenQueueViewModel>();

            oqvm.Initialize(qm);
            if (rqc != null)
            {
                oqvm.QueueName = rqc.QueueName;
            }

            ViewService.ShowModalView(oqvm, () =>
            {
                if (oqvm.Result == MessageBoxResult.OK)
                {
                    onOk?.Invoke(oqvm.SelectedQueue);
                }
            });
        }
        public void OpenQueueManagerView(IQueueManager qm, IObjectProvider objProvider)
        {
            if (qm == null)
            {
                throw new ArgumentNullException(nameof(qm));
            }
            if (objProvider == null)
            {
                throw new ArgumentNullException(nameof(objProvider));
            }


            ShellService.WithGlobalBusy(() =>
            {
                var filter = objProvider.Filter;
                var key    = string.Concat(qm.UniqueId, "!", filter.UniqueId);
                if (!ViewService.DocumentViewExists(key))
                {
                    var title = filter.NamePrefix == null || filter is StaticQueueList
                        ? qm.Name
                        : Invariant($"{qm.Name} ({filter.NamePrefix[0]}*)");

                    if (filter is StaticQueueList)
                    {
                        title = title + "(#)";
                    }

                    var vm      = CompositionHost.GetInstance <QueueManagerViewModel>();
                    vm.Title    = title;
                    vm.UniqueId = key;
                    ViewService.AddDocumentView(vm, true);
                    vm.StartInitialize(qm, objProvider);
                }
                else
                {
                    ViewService.SetActiveDocumentView(key);
                }
            });
        }
        private void ShowAbout()
        {
            var svm = CompositionHost.GetInstance <AboutViewModel>();

            ViewService.ShowModalView(svm);
        }