Beispiel #1
0
        public async Task <string> ShowSimpleDialogAsync(string header, string defaultText = null)
        {
            var viewModel = _dialogFactory.CreateSimpleDialogViewModel();

            viewModel.Header = header;
            viewModel.Answer = defaultText;

            var view = _viewManager.CreateAndBindViewForModelIfNecessary(viewModel);

            return((string)await DialogHost.Show(view));
        }
        public async void OnCreatePF()
        {
            if (CurrentDeviceData == null)
            {
                return;
            }
            var model = _dialogModelFactory.CreateAddPfDialogViewModel();
            //DialogContent = _viewManager.CreateAndBindViewForModelIfNecessary(model);
            //IsDialogOpen = true;

            var view = _viewManager.CreateAndBindViewForModelIfNecessary(model);
            //_windowManager.ShowDialog(view);
            //DialogHost.Show(view, "RootDialog", ExtendedOpenedEventHandler, ExtendedClosingEventHandler);
            //AdbClient.Instance.CreateForward();

            //var window = (Window)View.GetSelfAndAncestors().FirstOrDefault(a => a is Window);
            var window = Window.GetWindow(View);
            var result = await DialogHostEx.ShowDialog(window, view, ExtendedOpenedEventHandler, ExtendedClosingEventHandler);

            if ((bool)result)
            {
                Console.WriteLine(model.Local);
                Console.WriteLine(model.Remote);

                try
                {
                    AdbClient.Instance.CreateForward(CurrentDeviceData, model.Local, model.Remote);
                }
                catch (Exception e)
                {
                }

                GetPortForwardingInfo();
            }
        }
Beispiel #3
0
        public void SwitchPage(String PageIndex)
        {
            var f = this.GetType().GetField("frame" + PageIndex, BindingFlags.NonPublic | BindingFlags.Instance);

            if (f == null)
            {
                return;
            }
            var    fVal = f.GetValue(this);
            Screen vm   = null;

            if (fVal == null)
            {
                switch (PageIndex)
                {
                case "0":
                {
                    vm = IoC.Get <HomeViewModel>();
                    break;
                }

                case "1":
                {
                    vm = IoC.Get <QueryViewModel>();
                    break;
                }

                case "2":
                {
                    vm = IoC.Get <SystemViewModel>();
                    break;
                }

                case "3":
                {
                    vm = IoC.Get <RunLogViewModel>();
                    break;
                }
                }
                var pv = viewManager.CreateAndBindViewForModelIfNecessary(vm);

                pv.SetValue(System.Windows.Controls.Page.DataContextProperty, vm);
                fVal = new System.Windows.Controls.Frame();
                f.SetValue(this, fVal);
                (fVal as System.Windows.Controls.Frame).Content = pv;
            }

            if (SwitchPageEvent != null)
            {
                SwitchPageEvent(fVal, new EventArgs());
            }
        }
Beispiel #4
0
        protected override void Launch()
        {
            ILogger      logger      = Kernel.Get <ILogger>();
            IViewManager viewManager = Kernel.Get <IViewManager>();

            StartupArguments = Args.ToList();
            CreateDataDirectory(logger);

            // Create the Artemis core
            try
            {
                _core = Kernel.Get <ICoreService>();
            }
            catch (Exception e)
            {
                HandleFatalException(e, logger);
                throw;
            }

            // Ensure WPF uses the right culture in binding converters
            FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

            // Create and bind the root view, this is a tray icon so don't show it with the window manager
            Execute.OnUIThread(() => viewManager.CreateAndBindViewForModelIfNecessary(RootViewModel));

            // Initialize the core async so the UI can show the progress
            Task.Run(async() =>
            {
                try
                {
                    if (StartupArguments.Contains("--autorun"))
                    {
                        logger.Information("Sleeping for 15 seconds on auto run to allow applications like iCUE and LGS to start");
                        await Task.Delay(TimeSpan.FromSeconds(15));
                    }

                    _core.StartupArguments = StartupArguments;
                    _core.Initialize();
                }
                catch (Exception e)
                {
                    HandleFatalException(e, logger);
                    throw;
                }
            });
        }
Beispiel #5
0
        protected override void OnViewLoaded()
        {
            base.OnViewLoaded();
            var list = this.View.GetControls <Frame>();

            foreach (var item in list)
            {
                var index = Convert.ToByte(item.Tag);
                BJParameterViewModel VM = IoC.Get <BJParameterViewModel>();
                VM.BJIndex = index;

                if (VM != null)
                {
                    var pv = viewManager.CreateAndBindViewForModelIfNecessary(VM);
                    item.SetValue(Frame.ContentProperty, pv);
                }
            }
        }
Beispiel #6
0
        public async ValueTask <T> ShowDialogAsync <T>(DialogScreen <T> dialogScreen)
        {
            var view = _viewManager.CreateAndBindViewForModelIfNecessary(dialogScreen);

            void OnDialogOpened(object?sender, DialogOpenedEventArgs openArgs)
            {
                void OnScreenClosed(object?o, EventArgs closeArgs)
                {
                    openArgs.Session.Close();
                    dialogScreen.Closed -= OnScreenClosed;
                }

                dialogScreen.Closed += OnScreenClosed;
            }

            await DialogHost.Show(view, OnDialogOpened);

            return(dialogScreen.DialogResult);
        }
Beispiel #7
0
        public async Task ShowDialogAsync(DialogScreen dialogScreen)
        {
            // Get the view that renders this viewmodel
            var view = _viewManager.CreateAndBindViewForModelIfNecessary(dialogScreen);

            // Set up event routing that will close the view when called from viewmodel
            DialogOpenedEventHandler onDialogOpened = (sender, e) =>
            {
                // Delegate to close the dialog and unregister event handler
                void OnScreenClosed(object o, CloseEventArgs args)
                {
                    e.Session.Close();
                    dialogScreen.Closed -= OnScreenClosed;
                }

                dialogScreen.Closed += OnScreenClosed;
            };

            // Show view
            await DialogHost.Show(view, onDialogOpened);
        }
        public async Task <T> ShowDialogAsync <T>(DialogScreen <T> dialogScreen)
        {
            // Get the view that renders this viewmodel
            var view = _viewManager.CreateAndBindViewForModelIfNecessary(dialogScreen);

            // Set up event routing that will close the view when called from viewmodel
            void OnDialogOpened(object openSender, DialogOpenedEventArgs openArgs)
            {
                // Delegate to close the dialog and unregister event handler
                void OnScreenClosed(object closeSender, CloseEventArgs closeArgs)
                {
                    openArgs.Session.Close();
                    dialogScreen.Closed -= OnScreenClosed;
                }

                dialogScreen.Closed += OnScreenClosed;
            }

            // Show view
            await DialogHost.Show(view, OnDialogOpened);

            // Return the result
            return(dialogScreen.DialogResult);
        }
Beispiel #9
0
        public UIElement GetViewForDialogScreen <T>(DialogScreen <T> dialogScreen)
        {
            var dialogScreenType = dialogScreen.GetType();

            if (_dialogScreenViewCache.TryGetValue(dialogScreenType, out var cachedView))
            {
                _viewManager.BindViewToModel(cachedView, dialogScreen);
                return(cachedView);
            }
            else
            {
                var view = _viewManager.CreateAndBindViewForModelIfNecessary(dialogScreen);

                // This warms up the view and triggers all bindings.
                // We need to do this, as the view may have nested model-bound ContentControls
                // which take a very long time to load.
                // By pre-loading them as early as possible, we avoid doing it when the dialog
                // actually pops up, which improves user experience.
                // Ideally, the whole view cache should be populated at application startup.
                view.Arrange(new Rect(0, 0, 500, 500));

                return(_dialogScreenViewCache[dialogScreenType] = view);
            }
        }
        protected override void OnViewLoaded()
        {
            base.OnViewLoaded();
            var list = this.View.GetControls <Frame>();

            foreach (var item in list)
            {
                var index = Convert.ToInt16(item.Tag);
                if (index <= 0)
                {
                    (item.Parent as TabItem).Visibility = System.Windows.Visibility.Collapsed;
                    superList.Add(item);
                }
                Stylet.Screen VM = null;
                switch (index)
                {
                case -3:
                {
                    VM = IoC.Get <CommunicationSettingViewModel>();
                    break;
                }

                case -2:
                {
                    VM = IoC.Get <GlobalSettingViewModel>();
                    break;
                }

                case -1:
                {
                    VM = IoC.Get <JYQParameterViewModel>();
                    break;
                }

                case 0:
                {
                    //VM = IoC.Get<JYQViewModel>();
                    break;
                }

                case 1:
                {
                    VM = IoC.Get <JYQViewModel>();
                    break;
                }

                case 2:
                {
                    VM = IoC.Get <MachineHandViewModel>();
                    break;
                }

                case 3:
                {
                    VM = IoC.Get <CentrifugeViewModel>();
                    break;
                }

                case 4:
                {
                    VM = IoC.Get <MixerAndCouveuseViewModel>();
                    break;
                }

                case 5:
                {
                    VM = IoC.Get <PiercerViewModel>();
                    break;
                }

                case 6:
                {
                    VM = IoC.Get <ScanerViewModel>();
                    break;
                }
                }
                if (VM != null)
                {
                    var pv = viewManager.CreateAndBindViewForModelIfNecessary(VM);
                    item.SetValue(Frame.ContentProperty, pv);
                    VM_list.Add(VM);
                }
            }
        }
Beispiel #11
0
        protected override void Launch()
        {
            _applicationStateManager = new ApplicationStateManager(Kernel, Args);
            Core.Utilities.PrepareFirstLaunch();

            ILogger logger = Kernel.Get <ILogger>();

            if (_applicationStateManager.FocusExistingInstance())
            {
                logger.Information("Shutting down because a different instance is already running.");
                Application.Current.Shutdown(1);
                return;
            }

            IViewManager viewManager = Kernel.Get <IViewManager>();

            StartupArguments = Args.ToList();

            // Create the Artemis core
            try
            {
                _core = Kernel.Get <ICoreService>();
            }
            catch (Exception e)
            {
                HandleFatalException(e, logger);
                throw;
            }

            // Ensure WPF uses the right culture in binding converters
            FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));

            // Create and bind the root view, this is a tray icon so don't show it with the window manager
            Execute.OnUIThreadSync(() =>
            {
                UIElement view = viewManager.CreateAndBindViewForModelIfNecessary(RootViewModel);
                ((TrayViewModel)RootViewModel).SetTaskbarIcon(view);
            });

            // Initialize the core async so the UI can show the progress
            Task.Run(() =>
            {
                try
                {
                    _core.StartupArguments = StartupArguments;
                    _core.IsElevated       = _applicationStateManager.IsElevated;
                    _core.Initialize();
                }
                catch (Exception e)
                {
                    HandleFatalException(e, logger);
                    throw;
                }
            });

            IRegistrationService registrationService = Kernel.Get <IRegistrationService>();

            registrationService.RegisterInputProvider();
            registrationService.RegisterControllers();

            Execute.OnUIThreadSync(() => { registrationService.ApplyPreferredGraphicsContext(); });

            // Initialize background services
            Kernel.Get <IDeviceLayoutService>();
        }