public NavigationParameter(INavigationService navigationService, IViewModelLocator viewModelLocator, IEventAggregator eventAggregator, IViewModelStateManager viewModelStateManager)
 {
     this.NavigationService = navigationService;
     this.ViewModelLocator = viewModelLocator;
     this.EventAggregator = eventAggregator;
     this.ViewModelStateManager = viewModelStateManager;
 }
Esempio n. 2
0
 public ModuleManager(IViewModelLocator viewModelLocator, IViewLocator viewLocator, IStateSerializer viewModelStateSerializer, bool allowSaveRestoreLayout, bool isTestingMode, bool keepViewModelsAlive = false)
 {
     this.keepViewModelsAlive      = keepViewModelsAlive;
     this.allowSaveRestoreLayout   = allowSaveRestoreLayout;
     this.isTestingMode            = isTestingMode;
     this.viewModelLocator         = viewModelLocator;
     this.viewLocator              = viewLocator;
     this.viewModelStateSerializer = viewModelStateSerializer;
 }
Esempio n. 3
0
        /// <summary>
        /// Initializes static members of the <see cref="LogicBase"/> class.
        /// </summary>
        static LogicBase()
        {
            var dependencyResolver = IoCConfiguration.DefaultDependencyResolver;

            _viewModelLocator     = dependencyResolver.Resolve <IViewModelLocator>();
            _viewManager          = dependencyResolver.Resolve <IViewManager>();
            _viewPropertySelector = dependencyResolver.Resolve <IViewPropertySelector>();
            ViewLoadManager       = dependencyResolver.Resolve <IViewLoadManager>();
        }
Esempio n. 4
0
        /// <summary>
        /// Creates an instance of <see cref="WindowManager"/>.
        /// </summary>
        /// <param name="viewModelLocator">The view-model locator.</param>
        /// <param name="viewModelBinder">The view-model binder.</param>
        public WindowManager(IViewModelLocator viewModelLocator, IViewModelBinder viewModelBinder)
        {
            if (viewModelLocator == null)
                throw new ArgumentNullException(nameof(viewModelLocator));
            if (viewModelBinder == null)
                throw new ArgumentNullException(nameof(viewModelBinder));

            _viewModelLocator = viewModelLocator;
            _viewModelBinder = viewModelBinder;
        }
        public void LoadParameters(NavigationParameter navigationParameter)
        {
            this.view.EventAggregator = navigationParameter.EventAggregator;
            this.ViewModelLocator     = navigationParameter.ViewModelLocator;

            if (this.isGeneric)
            {
                this.navigationParameter = navigationParameter;
            }
        }
Esempio n. 6
0
 Region(string regionName, IViewModelLocator viewModelLocator, IViewLocator viewLocator, IStateSerializer stateSerializer)
 {
     LogicalSerializationMode = LogicalSerializationMode.Enabled;
     this.RegionName          = regionName;
     this.viewModelLocator    = viewModelLocator;
     this.viewLocator         = viewLocator;
     this.stateSerializer     = stateSerializer;
     this.serviceManager      = new WeakReferenceManager <IUIRegion>();
     this.items = new List <RegionItem>();
 }
Esempio n. 7
0
 public ResultsViewModel(IViewModelLocator viewModelLocator, IQuizInstanceRepository quizInstanceRepository)
 {
     if (viewModelLocator == null)
         throw new ArgumentNullException(nameof(viewModelLocator));
     if (quizInstanceRepository == null)
         throw new ArgumentNullException(nameof(quizInstanceRepository));
     _viewModelLocator = viewModelLocator;
     _quizInstanceRepository = quizInstanceRepository;
     Initialize();
 }
        public LifetimeEconomicValueViewModel(ISharedDataService sharedData, IViewModelLocator locator)
            : base(new Guid("6D2F7E48-8A1E-475C-8297-811D83F46CBE"))
        {
            Name = "Lifetime Economic Value";
            _person = sharedData.Person;

            AddToolPages(
                new Page1(_person, locator.Mode),
                new Page2(this, locator.Mode));
        }
Esempio n. 9
0
        public MainViewModel(IApplicationConfigurationService configurationService, IProcessManagementService processManagementService, IFileSystemService fileSystem, ISteamLocator steamLocator, IViewModelLocator vmLocator)
        {
            _configurationService     = configurationService ?? throw new ArgumentNullException(nameof(configurationService));
            _processManagementService = processManagementService ?? throw new ArgumentNullException(nameof(processManagementService));
            _fileSystem   = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
            _steamLocator = steamLocator ?? throw new ArgumentNullException(nameof(steamLocator));
            _vmLocator    = vmLocator ?? throw new ArgumentNullException(nameof(vmLocator));

            Servers = new ObservableCollection <ServerInformation>();
        }
Esempio n. 10
0
        public void LoadParameters(NavigationParameter navigationParameter)
        {
            this.view.EventAggregator = navigationParameter.EventAggregator;
            this.ViewModelLocator = navigationParameter.ViewModelLocator;

            if (this.isGeneric)
            {
                this.navigationParameter = navigationParameter;
            }
        }
        public LifetimeEconomicValueViewModel(ISharedDataService sharedData, IViewModelLocator locator)
            : base(new Guid("6D2F7E48-8A1E-475C-8297-811D83F46CBE"))
        {
            Name    = "Lifetime Economic Value";
            _person = sharedData.Person;

            AddToolPages(
                new Page1(_person, locator.Mode),
                new Page2(this, locator.Mode));
        }
        public BasicInformationToolViewModel(ISharedDataService dataService, IViewModelLocator locator)
            : base(new Guid("74EF5D9B-E6D1-4218-8755-C8349157FAAE"))
        {
            _person = dataService.Person;
            Name = "Basic Information";

            AddToolPages(
                new Page1(this, locator.Mode),
                new Page2(this, locator.Mode),
                new Page3(this, locator.Mode));
        }
 public static void Register(IViewModelLocator locatorToRegister)
 {
     StaticViewModelLocator.logger.Log($"StaticViewModelLocator.Register(): entered with parameter type '{locatorToRegister.GetType()}'");
     if (locatorToRegister == null)
     {
         StaticViewModelLocator.logger.Log($"StaticViewModelLocator.Register(): locatorToRegister is null", Contracts.Logger.Enums.LogLevel.Error);
         throw new ArgumentNullException("locatorToRegister");
     }
     StaticViewModelLocator.locator = locatorToRegister;
     StaticViewModelLocator.logger.Log($"StaticViewModelLocator.Register(): exited");
 }
        public void ClassSetup()
        {
            navigationServiceMock = new Mock <INavigationService>();
            homeTextServiceMock   = new Mock <IHomeTextService>();
            colorServiceMock      = new Mock <IColorService>();

            AttributeServiceSetup();
            DependencyContainerSetup();

            viewModelLocator = new ViewModelLocator(dependencyContainerMock.Object, attributeServiceMock.Object);
        }
        public BasicInformationToolViewModel(ISharedDataService dataService, IViewModelLocator locator)
            : base(new Guid("74EF5D9B-E6D1-4218-8755-C8349157FAAE"))
        {
            _person = dataService.Person;
            Name    = "Basic Information";

            AddToolPages(
                new Page1(this, locator.Mode),
                new Page2(this, locator.Mode),
                new Page3(this, locator.Mode));
        }
Esempio n. 16
0
        protected App(INavigationService navigationService, IDialogService dialogService)
        {
            Container        = new UnityContainer();
            ViewModelLocator = new ViewModelLocator(Container);
            ServiceLocator   = new UnityServiceLocator(Container);
            Microsoft.Practices.ServiceLocation.ServiceLocator.SetLocatorProvider(() => ServiceLocator);

            Container.RegisterInstance(navigationService);
            Container.RegisterInstance(dialogService);

            SetupContainer(Container);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="NavigationService"/> class.
        /// </summary>
        /// <param name="statePersistor"> The state persistor. </param>
        /// <param name="viewModelLocator"> The ViewModel instance locator. </param>
        /// <param name="viewLocator"> The ViewLocator</param>
        /// <param name="platformNavigator"> The platform navigator. </param>
        public NavigationService(
            IViewLocator viewLocator, 
            IViewModelLocator viewModelLocator, 
            IStatePersistor statePersistor, 
            IPlatformNavigator platformNavigator) 
        {
            this.viewModelLocator = viewModelLocator;
            this.viewLocator = viewLocator;
            this.statePersistor = statePersistor;
            this.platformNavigator = platformNavigator;

            this.platformNavigator.BackNavigationRequested += this.PlatformBackNavigationRequested;
        }
Esempio n. 18
0
        /// <summary>
        /// Initializes a new instance of the <see cref="NavigationService"/> class.
        /// </summary>
        /// <param name="statePersistor"> The state persistor. </param>
        /// <param name="viewModelLocator"> The ViewModel instance locator. </param>
        /// <param name="viewLocator"> The ViewLocator</param>
        /// <param name="platformNavigator"> The platform navigator. </param>
        public NavigationService(
            IViewLocator viewLocator,
            IViewModelLocator viewModelLocator,
            IStatePersistor statePersistor,
            IPlatformNavigator platformNavigator)
        {
            this.viewModelLocator  = viewModelLocator;
            this.viewLocator       = viewLocator;
            this.statePersistor    = statePersistor;
            this.platformNavigator = platformNavigator;

            this.platformNavigator.BackNavigationRequested += this.PlatformBackNavigationRequested;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="NavigationService" /> class.
        /// </summary>
        /// <param name="typeFactory">The type factory.</param>
        /// <param name="viewLocator">The view locator.</param>
        /// <param name="viewModelLocator">The view model locator.</param>
        /// <param name="viewModelFactory">The viewmodel factory.</param>
        public NavigationService(ITypeFactory typeFactory, IViewLocator viewLocator, IViewModelLocator viewModelLocator, IViewModelFactory viewModelFactory)
        {
            Argument.IsNotNull(() => typeFactory);
            Argument.IsNotNull(() => viewLocator);
            Argument.IsNotNull(() => viewModelLocator);

            _typeFactory      = typeFactory;
            _viewLocator      = viewLocator;
            _viewModelFactory = viewModelFactory;
            _viewModelLocator = viewModelLocator;

            Initialize();
        }
Esempio n. 20
0
        public MainWindowViewModel(IModelBuilder modelBuilder,
                                   IEventAggregator eventAggregator,
                                   ITestManager testManager,
                                   IViewModelStateSerializer viewModelStateSerializer,
                                   IViewModelLocator viewModelLocator)
        {
            if (modelBuilder == null)
            {
                throw new ArgumentNullException("modelBuilder");
            }

            if (eventAggregator == null)
            {
                throw new ArgumentNullException("eventAggregator");
            }

            if (testManager == null)
            {
                throw new ArgumentNullException("testManager");
            }

            if (viewModelStateSerializer == null)
            {
                throw new ArgumentNullException("viewModelStateSerializer");
            }

            if (viewModelLocator == null)
            {
                throw new ArgumentNullException("viewModelLocator");
            }

            _modelBuilder             = modelBuilder;
            _eventAggregator          = eventAggregator;
            _testManager              = testManager;
            _viewModelStateSerializer = viewModelStateSerializer;
            _viewModelLocator         = viewModelLocator;

            InitializeCommands();

            _eventAggregator.GetEvent <ModelAddRequestEvent>().Subscribe(OnAddModelRequest);
            _cameraSubscriptionToken = _eventAggregator.GetEvent <CameraPositionChangedEvent>().Subscribe(OnCameraChange);

            _fieldModel = _modelBuilder.BuildModel <Field>();

            State = TestState.NotConfigured;

            _models = new ObservableCollectionEx <IModel>();
            ((INotifyPropertyChanged)_models).PropertyChanged += (sender, args) => RaisePropertyChanged(() => Models3D);

            Configuration = new TestConfiguration(_eventAggregator);
        }
Esempio n. 21
0
        public PlatformNavigator(IApplicationFrameProvider frameProvider, IViewModelLocator viewModelLocator, IEnumerable <INavigationInterceptor> navigationInterceptors)
        {
            this.frameProvider          = frameProvider;
            this.viewModelLocator       = viewModelLocator;
            this.navigationInterceptors = navigationInterceptors;
            this.interceptedViewTypes   = new List <Type>();

            this.InterceptBackNavigation = true;

            foreach (var interceptor in this.navigationInterceptors)
            {
                interceptor.ConditionChanged += this.InterceptorConditionChanged;
            }
        }
        public PlatformNavigator(IApplicationFrameProvider frameProvider, IViewModelLocator viewModelLocator, IEnumerable<INavigationInterceptor> navigationInterceptors)
        {
            this.frameProvider = frameProvider;
            this.viewModelLocator = viewModelLocator;
            this.navigationInterceptors = navigationInterceptors;
            this.interceptedViewTypes = new List<Type>();

            this.InterceptBackNavigation = true;

            foreach (var interceptor in this.navigationInterceptors)
            {
                interceptor.ConditionChanged += this.InterceptorConditionChanged;
            }
        }
Esempio n. 23
0
        /// <summary>
        /// Creates an instance of <see cref="WindowManager"/>.
        /// </summary>
        /// <param name="viewModelLocator">The view-model locator.</param>
        /// <param name="viewModelBinder">The view-model binder.</param>
        public WindowManager(IViewModelLocator viewModelLocator, IViewModelBinder viewModelBinder)
        {
            if (viewModelLocator == null)
            {
                throw new ArgumentNullException(nameof(viewModelLocator));
            }
            if (viewModelBinder == null)
            {
                throw new ArgumentNullException(nameof(viewModelBinder));
            }

            _viewModelLocator = viewModelLocator;
            _viewModelBinder  = viewModelBinder;
        }
        private void InitializeViewModelPaths()
        {
            //
            // ViewModels
            IViewModelLocator viewModelLocator = _serviceLocator.ResolveType <IViewModelLocator>();

            viewModelLocator.NamingConventions.Add(
                "Sidekick.Windows.ViewModels.DataTemplates.[VW]ViewModel");
            viewModelLocator.NamingConventions.Add(
                "Sidekick.Windows.ViewModels.Settings.[VW]ViewModel");
            viewModelLocator.NamingConventions.Add(
                "Sidekick.Windows.ViewModels.SpacedRepetition.[VW]ViewModel");

            viewModelLocator.NamingConventions.Add("Sidekick.MVVM.ViewModels.[VW]ViewModel");
            viewModelLocator.NamingConventions.Add(
                "Sidekick.MVVM.ViewModels.SpacedRepetition.[VW]ViewModel");
        }
Esempio n. 25
0
        public PlayViewModel(IViewModelLocator viewModelLocator, IQuizInstanceRepository quizInstanceRepository,
            IQuestionInstanceRepository questionInstanceRepository, IAnswerInstanceRepository answerInstanceRepository)
        {
            if (viewModelLocator == null)
                throw new ArgumentNullException(nameof(viewModelLocator));
            if (quizInstanceRepository == null)
                throw new ArgumentNullException(nameof(quizInstanceRepository));
            if (questionInstanceRepository == null)
                throw new ArgumentNullException(nameof(questionInstanceRepository));
            if (answerInstanceRepository == null)
                throw new ArgumentNullException(nameof(answerInstanceRepository));
            _viewModelLocator = viewModelLocator;
            _quizInstanceRepository = quizInstanceRepository;
            _questionInstanceRepository = questionInstanceRepository;
            _answerInstanceRepository = answerInstanceRepository;

            Initialize();
        }
Esempio n. 26
0
        /// <summary>
        /// Called when the ViewModelKey property is changed on an UI element.
        /// </summary>
        /// <param name="d"></param>
        /// <param name="e"></param>
        private static void OnViewModelKeyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            FrameworkElement fe = d as FrameworkElement;

            if (fe != null)
            {
                string key = e.NewValue as string;
                if (!string.IsNullOrEmpty(key))
                {
                    IViewModelLocator vmLocator = ServiceLocator.Instance.Resolve <IViewModelLocator>();
                    object            viewModel;
                    if (vmLocator.TryLocate(key, out viewModel) && viewModel != null)
                    {
                        fe.DataContext = viewModel;
                    }
                }
            }
        }
Esempio n. 27
0
 public HomeViewModel(IViewModelLocator viewModelLocator, IQuizRepository quizRepository,
     ICategoryRepository categoryRepository,
     IQuestionRepository questionRepository)
 {
     if (viewModelLocator == null)
         throw new ArgumentNullException(nameof(viewModelLocator));
     if (quizRepository == null)
         throw new ArgumentNullException(nameof(quizRepository));
     if (categoryRepository == null)
         throw new ArgumentNullException(nameof(categoryRepository));
     if (questionRepository == null)
         throw new ArgumentNullException(nameof(questionRepository));
     _viewModelLocator = viewModelLocator;
     _quizRepository = quizRepository;
     _categoryRepository = categoryRepository;
     _questionRepository = questionRepository;
     Initialize();
 }
Esempio n. 28
0
        public ExampleNuGetExplorerInitializationService(
            ILanguageService languageService,
            ICredentialProviderLoaderService credentialProviderLoaderService,
            INuGetProjectUpgradeService nuGetProjectUpgradeService,
            INuGetConfigurationService nuGetConfigurationService,
            IViewModelLocator vmLocator,
            ITypeFactory typeFactory,
            IExtensibleProjectLocator projectLocator,
            IAccentColorService accentColorService)
            : base(languageService, credentialProviderLoaderService, nuGetProjectUpgradeService, nuGetConfigurationService, vmLocator, typeFactory)
        {
            Argument.IsNotNull(() => projectLocator);
            Argument.IsNotNull(() => accentColorService);

            var serviceLocator = ServiceLocator.Default;

            // Example: override default project
            serviceLocator.RegisterType <IDefaultExtensibleProjectProvider, NuGetProjectProvider>();

            serviceLocator.RegisterType <INuGetConfigurationResetService, ExampleNuGetConfigurationResetService>();

            // initialize theme
            accentColorService.SetAccentColor(Colors.Orange);

            // add loggers
            serviceLocator.RegisterTypeAndInstantiate <SimpleLogListener>();
            var catelListener = serviceLocator.RegisterTypeAndInstantiate <CatelLogListener>();

            LogManager.AddListener(catelListener);

            // add upgrade listener
            serviceLocator.RegisterTypeAndInstantiate <ExampleUpgradeListener>();

            // IApiPackageRegistry testing
            var apiRegistry = serviceLocator.ResolveType <IApiPackageRegistry>();

            //apiRegistry.Register("PackageName.Api", "1.0.0-version");

            // Example: changing storage for Credentials
            //credentialProviderLoaderService.SetCredentialPolicy(Enums.CredentialStoragePolicy.WindowsVaultConfigurationFallback);

            // Override size of packages queries
            nuGetConfigurationService.SetPackageQuerySize(40);
        }
Esempio n. 29
0
            RegionItem(IViewModelLocator viewModelLocator, IViewLocator viewLocator, IStateSerializer stateSerializer,
                       string key, Func <object> factory, string viewModelName, string viewName, Type viewType, object parameter)
            {
                this.viewModelLocator = viewModelLocator;
                this.viewLocator      = viewLocator;
                this.stateSerializer  = stateSerializer;

                Key     = key;
                Factory = factory;
                if (Factory == null)
                {
                    ViewModelName = viewModelName;
                }
                ViewType = viewType;
                if (ViewType == null)
                {
                    ViewName = viewName;
                }
                Parameter = parameter;
            }
Esempio n. 30
0
        protected override void OnStartup(StartupEventArgs e)
        {
#if DEBUG
            LogManager.AddDebugListener();
#endif
            ServiceLocator.Default.RegisterType <Company.DataAccess.If.IDbConfigruation, Config>();
            ServiceLocator.Default.RegisterType <Company.DataAccess.If.IDataAccess, Company.DataAccess.Ef.EfContext>(RegistrationType.Transient);
            ServiceLocator.Default.RegisterType <Company.DataQueries.If.IUnitOfWork, Company.DataQueries.Repositories.UnitOfWork>(RegistrationType.Transient);

            // TODO : Über Namesnkonvention regeln
            IViewModelLocator viewModelLocator = ServiceLocator.Default.ResolveType <IViewModelLocator>();
            viewModelLocator.Register(typeof(Company.UI.Views.Main), typeof(Company.Core.ViewModels.MainVm));
            viewModelLocator.Register(typeof(Company.UI.Views.Home), typeof(Company.Core.ViewModels.HomeVm));
            viewModelLocator.Register(typeof(Company.UI.Views.Customer), typeof(Company.Core.ViewModels.CustomerVm));

            base.OnStartup(e);

            // TODO : Themen die jetzt nicht beachtet wurden
            // Save und Cancel über IEdit abbilden (macht glaube ich auch Catel schon)
            // Mehrsprachenfähigkeit
            // ReadOnly bei keinem Schreibrecht
            // Das hinzufügen neuer Elemente
        }
Esempio n. 31
0
        /// <summary>
        /// Creates an instance of <see cref="FrameAdapter" />.
        /// </summary>
        /// <param name="frame">The frame to represent as a <see cref="INavigationService" />.</param>
        /// <param name="viewModelLocator">The view-model locator.</param>
        /// <param name="viewModelBinder">The view-model binder.</param>
        /// <param name="viewModelTypeResolver">The view-model type resolver.</param>
        public FrameAdapter(Frame frame, IViewModelLocator viewModelLocator, IViewModelBinder viewModelBinder, IViewModelTypeResolver viewModelTypeResolver)
        {
            if (frame == null)
                throw new ArgumentNullException(nameof(frame));
            if (viewModelLocator == null)
                throw new ArgumentNullException(nameof(viewModelLocator));
            if (viewModelBinder == null)
                throw new ArgumentNullException(nameof(viewModelBinder));
            if (viewModelTypeResolver == null)
                throw new ArgumentNullException(nameof(viewModelTypeResolver));

            _frame = frame;
            _viewModelLocator = viewModelLocator;
            _viewModelBinder = viewModelBinder;
            _viewModelTypeResolver = viewModelTypeResolver;

            _frame.Navigating += OnNavigating;
            _frame.Navigated += OnNavigated;

            // This could leak memory if we're creating and destorying navigation services regularly.
            var navigationManager = SystemNavigationManager.GetForCurrentView();
            navigationManager.BackRequested += OnBackRequested;
        }
Esempio n. 32
0
        protected override void OnStartup(StartupEventArgs e)
        {
#if DEBUG
            //LogManager.AddDebugListener();
#endif

            Log.Info("Starting application");

            // Want to improve performance? Uncomment the lines below. Note though that this will disable
            // some features.
            //
            // For more information, see http://docs.catelproject.com/vnext/faq/performance-considerations/

            // Log.Info("Improving performance");
            // Catel.Windows.Controls.UserControl.DefaultCreateWarningAndErrorValidatorForViewModelValue = false;
            // Catel.Windows.Controls.UserControl.DefaultSkipSearchingForInfoBarMessageControlValue = true;

            // TODO: Register custom types in the ServiceLocator
            //Log.Info("Registering custom types");
            //var serviceLocator = ServiceLocator.Default;
            //serviceLocator.RegisterType<IMyInterface, IMyClass>();

            // To auto-forward styles, check out Orchestra (see https://github.com/wildgums/orchestra)
            // StyleHelper.CreateStyleForwardersForDefaultStyles();


            IViewModelLocator viewModelLocator = ServiceLocator.Default.ResolveType <IViewModelLocator>();

            viewModelLocator.Register(typeof(Views.MainWindow), typeof(MainWindowViewModel));
            viewModelLocator.Register(typeof(Views.PersonView), typeof(PersonViewModel));
            viewModelLocator.Register(typeof(Views.PersonTreeView), typeof(PersonTreeViewModel));

            Log.Info("Calling base.OnStartup");

            base.OnStartup(e);
        }
 public MeetingViewModelFactory(IViewModelLocator locator, ISharedDataService sharedDataService)
 {
     _locator = locator;
     _sharedDataService = sharedDataService;
 }
Esempio n. 34
0
 public RegionItem(IViewModelLocator viewModelLocator, IViewLocator viewLocator, IStateSerializer stateSerializer, RegionItemInfo info)
     : this(viewModelLocator, viewLocator, stateSerializer, info.Key, null, info.ViewModelName, info.ViewName, null, null)
 {
     SetViewModelState(info.ViewModelState.With(x => x.State), info.ViewModelStateType);
 }
Esempio n. 35
0
 /// <summary>
 /// Finds an instance of the given ViewModel
 /// </summary>
 /// <typeparam name="TViewModel"> Type of ViewModel</typeparam>
 /// <param name="locator"> The locator </param>
 /// <returns> ViewModel instance </returns>
 public static async Task <TViewModel> GetInstanceAsync <TViewModel>(this IViewModelLocator locator)
 {
     return((TViewModel)(await locator.GetInstanceAsync(typeof(TViewModel))));
 }
Esempio n. 36
0
 public static new void InitializeDocumentType(IUIVisualizerService uiVisualizerService, IViewModelLocator viewModelLocator)
 {
     Splat.Locator.CurrentMutable.Register(() => new DialogueResponseNodeView(), typeof(IViewFor <DialogueResponseNode>));
 }
Esempio n. 37
0
 public static T ResolveViewModel <T>(this IViewModelLocator vml) => (T)vml?.ResolveViewModel(typeof(T).Name);
Esempio n. 38
0
        /// <summary>
        /// Initializes static members of the <see cref="UserControl"/> class.
        /// </summary>
        static UserControl()
        {
            var dependencyResolver = IoCConfiguration.DefaultDependencyResolver;

            ViewModelLocator = dependencyResolver.Resolve<IViewModelLocator>();
        }
        public NavigationService(ISettings settings,
                                 IViewModelLocator locator)
        {
            _settings = settings;
            _locator = locator;

            _viewModelLocator.Add(Screen.Login, () => locator.LoginViewModel);
            _viewModelLocator.Add(Screen.AgentMeeting, () => locator.AgentMeetingViewModel);
            _viewModelLocator.Add(Screen.MeetingList, () => locator.MeetingListViewModel);
            _viewModelLocator.Add(Screen.ClientMeeting, () => locator.ClientMeetingViewModel);
            _viewModelLocator.Add(Screen.Lobby, () => locator.LobbyViewModel);


            // Setup the backstack

            var stackChanged = Observable.FromEventPattern<NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs>(
                h => _navigationStack.CollectionChanged += h,
                h => _navigationStack.CollectionChanged -= h).Select(p => p.EventArgs);

            var count = stackChanged.Select(_ => _navigationStack.Count);

            var backCmd = new ReactiveCommand(count.Select(v => v > 1));
            _backCmdSub = backCmd.RegisterAsyncAction(_ => _navigationStack.Pop(), Scheduler.Immediate).Subscribe();
            BackCommand = backCmd;

            var latestAfterPop = stackChanged
                .Where(args => args.Action == NotifyCollectionChangedAction.Remove)
                .Select(a => new
                {
                    Popped = (Tuple<Screen, IScreenViewModel>)a.OldItems[0],
                    Latest = _navigationStack.Peek()
                });


            _poppedSub = latestAfterPop
                .ObserveOn(RxApp.MainThreadScheduler)
                .Subscribe(t =>
                           {
                               // Navigate away from the prev one
                               t.Popped.Item2.OnNavigatedAway();

                               // Nav to the prev one
                               t.Latest.Item2.OnNavigatedTo(NavigateDirection.Back);

                               CurrentViewModel = t.Latest.Item2;
                               Screen = t.Latest.Item1;

                               // Cleanup
                               t.Popped.Item2.Dispose();
                           });


            var added = stackChanged
               .Where(args => args.Action == NotifyCollectionChangedAction.Add)
               .Select(a =>
                       {
                           var t = (Tuple<Screen, IScreenViewModel>)a.NewItems[0];
                           return Tuple.Create(t.Item1, t.Item2, NavigateDirection.Forward);
                       });


            var removed = latestAfterPop.Select(t => Tuple.Create(t.Latest.Item1, t.Latest.Item2, NavigateDirection.Back));



            var connectable = added.Merge(removed).Publish();
            _currentScreenSub = connectable.Connect(); // make it hot

            CurrentScreen = connectable;
        }
        public static void InitializeDocumentType(IUIVisualizerService uiVisualizerService, IViewModelLocator viewModelLocator)
        {
#pragma warning restore IDE0060 // Remove unused parameter
        }
Esempio n. 41
0
        /// <summary>
        /// Initializes static members of the <see cref="UIViewController"/> class.
        /// </summary>
        static UIViewController()
        {
            var dependencyResolver = IoCConfiguration.DefaultDependencyResolver;

            _viewModelLocator = dependencyResolver.Resolve <IViewModelLocator>();
        }
Esempio n. 42
0
        public NavigationService(ISettings settings,
                                 IViewModelLocator locator)
        {
            _settings = settings;
            _locator  = locator;

            _viewModelLocator.Add(Screen.Login, () => locator.LoginViewModel);
            _viewModelLocator.Add(Screen.AgentMeeting, () => locator.AgentMeetingViewModel);
            _viewModelLocator.Add(Screen.MeetingList, () => locator.MeetingListViewModel);
            _viewModelLocator.Add(Screen.ClientMeeting, () => locator.ClientMeetingViewModel);
            _viewModelLocator.Add(Screen.Lobby, () => locator.LobbyViewModel);


            // Setup the backstack

            var stackChanged = Observable.FromEventPattern <NotifyCollectionChangedEventHandler, NotifyCollectionChangedEventArgs>(
                h => _navigationStack.CollectionChanged += h,
                h => _navigationStack.CollectionChanged -= h).Select(p => p.EventArgs);

            var count = stackChanged.Select(_ => _navigationStack.Count);

            var backCmd = new ReactiveCommand(count.Select(v => v > 1));

            _backCmdSub = backCmd.RegisterAsyncAction(_ => _navigationStack.Pop(), Scheduler.Immediate).Subscribe();
            BackCommand = backCmd;

            var latestAfterPop = stackChanged
                                 .Where(args => args.Action == NotifyCollectionChangedAction.Remove)
                                 .Select(a => new
            {
                Popped = (Tuple <Screen, IScreenViewModel>)a.OldItems[0],
                Latest = _navigationStack.Peek()
            });


            _poppedSub = latestAfterPop
                         .ObserveOn(RxApp.MainThreadScheduler)
                         .Subscribe(t =>
            {
                // Navigate away from the prev one
                t.Popped.Item2.OnNavigatedAway();

                // Nav to the prev one
                t.Latest.Item2.OnNavigatedTo(NavigateDirection.Back);

                CurrentViewModel = t.Latest.Item2;
                Screen           = t.Latest.Item1;

                // Cleanup
                t.Popped.Item2.Dispose();
            });


            var added = stackChanged
                        .Where(args => args.Action == NotifyCollectionChangedAction.Add)
                        .Select(a =>
            {
                var t = (Tuple <Screen, IScreenViewModel>)a.NewItems[0];
                return(Tuple.Create(t.Item1, t.Item2, NavigateDirection.Forward));
            });


            var removed = latestAfterPop.Select(t => Tuple.Create(t.Latest.Item1, t.Latest.Item2, NavigateDirection.Back));



            var connectable = added.Merge(removed).Publish();

            _currentScreenSub = connectable.Connect(); // make it hot

            CurrentScreen = connectable;
        }
Esempio n. 43
0
        /// <summary>
        /// Initializes static members of the <see cref="PhoneApplicationPage"/> class.
        /// </summary>
        static PhoneApplicationPage()
        {
            var dependencyResolver = IoCConfiguration.DefaultDependencyResolver;

            _viewModelLocator = dependencyResolver.Resolve<IViewModelLocator>();
        }
        public AgentMeetingViewModel(
            IAgentConnection agentConnection, 
            ISharedDataService sharedDataService,
            INavigationService navigation,
            IViewModelLocator locator,
            IPlatformServices platformServices)
        {
            _sharedDataService = sharedDataService;
            _agentConnection = agentConnection;
            NavigationPane = locator.NavigationPaneViewModel;

            var startcmd = new ReactiveCommand(this.WhenAnyValue(vm => vm.MeetingStarted, vm => vm.Meeting.VideoConf.VideoInitCompleted, vm => vm.Meeting, (started, video, mtg) => !started && mtg != null));
            _startMeetingSub = startcmd.RegisterAsyncTask(async _ =>
                                                                {
                                    MeetingStarted = true;
                                    Meeting.VideoConf.Config = await _agentConnection.StartMeeting(Meeting.Id);
                                }).Subscribe();

            var endcmd = new ReactiveCommand(this.WhenAnyValue(vm => vm.MeetingStarted, vm => vm.Meeting.VideoConf.VideoInitCompleted, (meetingStarted, videoStarted) => meetingStarted && videoStarted));
            _endMeetingSub = endcmd.RegisterAsyncAction(_ => navigation.BackCommand.Execute(null)).Subscribe();

            StartMeetingCommand = startcmd;
            EndMeetingCommand = endcmd;

            _agentConnection.ClientInMeeting.ToProperty(this, t => t.IsClientInMeeting, out _isClientInMeeting);

            
            var savePdfCmd = new ReactiveCommand(this.WhenAnyValue(vm => vm.MeetingStarted, vm => vm.Meeting.VideoConf.VideoInitCompleted, (meetingStarted, videoStarted) => meetingStarted && videoStarted));
            _pdfSub = savePdfCmd.RegisterAsyncTask(async _ =>
                                                         {
                                                            await _agentConnection.GenerateIllustration(Meeting.Id, _sharedDataService.Person);
                                               }).Subscribe();

            _pdfAvailableSub = _agentConnection.PdfAvailable.ObserveOn(RxApp.MainThreadScheduler).Subscribe(async p =>
                                                    {
                                                        var result = await _agentConnection.GetIllustrationPdfAsync(p);
                                                        await platformServices.SaveAndLaunchFile(new System.IO.MemoryStream(result), "pdf");
                                                    });

            SavePdfCommand = savePdfCmd;


            _titleSub = this.WhenAnyValue(
                vm => vm.Meeting.Client,
                (client) =>
                string.Format("Meeting with {0}",
                              client.FullName)
                )
                            .ObserveOn(RxApp.MainThreadScheduler)
                            .Subscribe(t => Title = t);

            MeetingStatus = GetMeetingStatusString(IsClientInMeeting, MeetingStarted);
            _meetingStatusSub = this.WhenAnyValue(
                         vm => vm.MeetingStarted,
                         vm => vm.IsClientInMeeting,
                         (started, clientIn) => GetMeetingStatusString(clientIn, started))
                         .ObserveOn(RxApp.MainThreadScheduler)
                         .Subscribe(t => MeetingStatus = t);

            //_titleSub = this.WhenAnyValue(
            //             vm => vm.Meeting.Client,
            //             vm => vm.MeetingStarted,
            //             vm => vm.IsClientInMeeting,
            //             (client, started, clientIn) =>
            //                 string.Format("Meeting with {0}. Started: {1} Client Joined: {2}",
            //                    client.FullName, started, clientIn)
            //             )
            //             .ObserveOn(RxApp.MainThreadScheduler)
            //             .Subscribe(t => Title = t);


            // When the meeting's active tool changes, set the Tool and page number
            // into the shared state so it'll be propagated.

            // Get an observable for the currently set tool
            var activeToolObs = this.WhenAnyValue(vm => vm.Meeting.ActiveTool)
                .Where(t => t != null);

            // Every time the tool changes, watch the new tool's CurrentPageNumber
            // for changes.
            //
            // When we get a change, convert that into a ToolIdAndPageNumber, bringing in
            // the owning tool id.
            var pageChangedObs = activeToolObs
                 .Select(t => t.WhenAnyValue(v => v.CurrentPageNumber, 
                                    p => new ToolIdAndPageNumber { ToolId = t.ToolId, PageNumber = p})
                        )
                 .Switch() // Only listen to the most recent sequence of property changes (active tool)
                 .Log(this, "Current Page Changed", t => string.Format("Tool: {0}, Page: {1}", t.ToolId, t.PageNumber));
         
            // Every time the tool changes, select the tool id and current page number
            var toolChangedObs = activeToolObs
                .Select(t => new ToolIdAndPageNumber { ToolId = t.ToolId, PageNumber = t.CurrentPageNumber })
                .Log(this, "Tool Changed", t => string.Format("Tool: {0}, Page: {1}", t.ToolId, t.PageNumber));

            
            // Merge them together - tool changes and current page of the tool
            _meetingStateSub = toolChangedObs
                .Merge(pageChangedObs)
                .Subscribe(t => sharedDataService.MeetingState.State = t);

        }
Esempio n. 45
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DataWindow"/> class.
        /// <para />
        /// Registers the <see cref="IViewModelLocator"/> in the <see cref="IServiceLocator"/> if it is not yet registered.
        /// </summary>
        static DataWindow()
        {
            var dependencyResolver = IoCConfiguration.DefaultDependencyResolver;

            _viewModelLocator = dependencyResolver.Resolve<IViewModelLocator>();
        }
Esempio n. 46
0
        /// <summary>
        /// Initializes static members of the <see cref="LogicBase"/> class.
        /// </summary>
        static LogicBase()
        {
            var dependencyResolver = IoCConfiguration.DefaultDependencyResolver;

            _viewModelLocator = dependencyResolver.Resolve<IViewModelLocator>();
            _viewManager = dependencyResolver.Resolve<IViewManager>();
            _viewPropertySelector = dependencyResolver.Resolve<IViewPropertySelector>();
            ViewLoadManager = dependencyResolver.Resolve<IViewLoadManager>();
        }
Esempio n. 47
0
 public RegionItem(IViewModelLocator viewModelLocator, IViewLocator viewLocator, IStateSerializer stateSerializer, IModule module, object parameter)
     : this(viewModelLocator, viewLocator, stateSerializer, module.Key, module.ViewModelFactory, module.ViewModelName, module.ViewName, module.ViewType, parameter)
 {
 }
Esempio n. 48
0
        /// <summary>
        /// Initializes static members of the <see cref="PhoneApplicationPage"/> class.
        /// </summary>
        static PhoneApplicationPage()
        {
            var dependencyResolver = IoCConfiguration.DefaultDependencyResolver;

            _viewModelLocator = dependencyResolver.Resolve <IViewModelLocator>();
        }