コード例 #1
0
        private DialogScreenResult ShowModal(IScreenFactory <IScreenBase> screenFactory)
        {
            _modal = true;

            DialogLifecycle dialogLifecycle = null;

            try {
                _screen = screenFactory.Create(
                    _aggregator,
                    s => {
                    dialogLifecycle = new DialogLifecycle(s);
                    s.Children.Add(dialogLifecycle);
                }
                    );

                Initialize();

                try {
                    _windowService.ShowWindow(_window, modal: true);
                } catch (Exception ex) {
                    // If an exception is thrown in the UI code of the dialog window (e.g. in
                    // a command handler or on a Dispatcher action), ShowDialog rethrows this
                    // exception but leaves the Window open and visible.
                    if (!ex.IsCritical() && _window.IsVisible)
                    {
                        CloseWindowImmediatately();
                    }

                    // It's possible that 'HandleClose' or 'HandleWindowClosed' was already executed
                    // but 'ShowDialog' still threw an exception. In that case we have to check the
                    // current state of the screen to prevent invalid state transitions.
                    // TODO: Write a Unit Test when it's known how to reproduce it!
                    CloseScreen(checkState: true);

                    throw;
                }

                if (_lastWindowHandlerException != null)
                {
                    throw _lastWindowHandlerException;
                }

                return(dialogLifecycle.ScreenResult ?? new DialogScreenResult(false));
            } finally {
                Disconnect();

                if (_screen != null)
                {
                    _screen
                    .Children
                    .Remove(dialogLifecycle);
                }

                if (_window.Owner != null)
                {
                    // Fix for http://stackoverflow.com/questions/3144004/wpf-app-loses-completely-focus-on-window-close
                    _window.Owner.Activate();
                }
            }
        }
コード例 #2
0
        public void TestInitialize()
        {
            ScreenFactory     = Substitute.For <IScreenFactory>();
            WindowManager     = Substitute.For <IWindowManagerEx>();
            QueueExplorer     = Substitute.For <IQueueExplorerViewModel>();
            EndpointExplorer  = Substitute.For <IEndpointExplorerViewModel>();
            MessageList       = Substitute.For <IMessageListViewModel>();
            NetworkOperations = Substitute.For <INetworkOperations>();
            ExceptionHandler  = Substitute.For <IExceptionHandler>();
            StatusbarManager  = Substitute.For <StatusBarManager>();
            EventAggregator   = Substitute.For <IEventAggregator>();
            MessageFlow       = Substitute.For <IMessageFlowViewModel>();
            MessageBodyView   = Substitute.For <IMessageBodyViewModel>();
            MessageProperties = Substitute.For <IMessagePropertiesViewModel>();
            View               = Substitute.For <IShellViewStub>();
            SettingsProvider   = Substitute.For <ISettingsProvider>();
            LicenseManager     = Substitute.For <ILicenseManager>();
            LogWindow          = Substitute.For <ILogWindowViewModel>();
            ConnectToViewModel = Substitute.For <ConnectToMachineViewModel>(NetworkOperations);
            SettingsProvider.GetSettings <ProfilerSettings>().Returns(DefaultAppSetting());
            App   = Substitute.For <IAppCommands>();
            shell = new ShellViewModel(App, ScreenFactory, WindowManager, QueueExplorer, EndpointExplorer, MessageList,
                                       StatusbarManager, EventAggregator, LicenseManager, MessageFlow, MessageBodyView,
                                       SettingsProvider, MessageProperties, LogWindow);

            ScreenFactory.CreateScreen <ConnectToMachineViewModel>().Returns(ConnectToViewModel);

            shell.AttachView(View, null);
        }
コード例 #3
0
        public const int AutoRefreshInterval = 15000; //TODO: Wire to configuration/settings

        public ShellViewModel(
            IScreenFactory screenFactory,
            IWindowManagerEx windowManager,
            IExplorerViewModel explorer,
            IMessageListViewModel messages,
            IStatusBarManager statusBarManager,
            IEventAggregator eventAggregator,
            IConversationViewModel conversation,
            IMessageBodyViewModel messageBodyViewer,
            IEnumerable <IHeaderInfoViewModel> headers)
        {
            _screenFactory   = screenFactory;
            _windowManager   = windowManager;
            _eventAggregator = eventAggregator;
            Headers          = headers;
            Conversation     = conversation;
            StatusBarManager = statusBarManager;
            Explorer         = explorer;
            MessageBody      = messageBodyViewer;
            Messages         = messages;

            Items.Add(messageBodyViewer);
            Items.Add(conversation);
            Items.Add(explorer);
            Items.Add(messages);

            InitializeAutoRefreshTimer();
        }
コード例 #4
0
 public WindowManagerEx(
     IViewLocator viewLocator,
     IViewModelBinder viewModelBinder,
     IScreenFactory screenFactory) : base(viewLocator, viewModelBinder)
 {
     _screenFactory = screenFactory;
 }
コード例 #5
0
 public void RegisterFactory(Guid guid, IScreenFactory screenFactory)
 {
     if (!_screenFactoryDictionary.ContainsKey(guid))
     {
         _screenFactoryDictionary.Add(guid, screenFactory);
     }
 }
コード例 #6
0
        protected override void setup()
        {
            _locator = MockRepository.GenerateMock <IScreenLocator>();

            // Let's say we have a ScreenCollection with open screens
            otherActiveScreen1 = MockRepository.GenerateMock <IScreen>();
            otherActiveScreen2 = MockRepository.GenerateMock <IScreen>();
            theActiveScreen    = MockRepository.GenerateMock <IScreen>();

            Screens.Active = theActiveScreen;
            Screens.Add(otherActiveScreen1);
            Screens.Add(otherActiveScreen2);
            Screens.Add(theActiveScreen);

            // and the requested ScreenSubject does not match any of the screens
            _locator.Expect(x => x.Matches(otherActiveScreen1)).Return(false);
            _locator.Expect(x => x.Matches(otherActiveScreen2)).Return(false);
            _locator.Expect(x => x.Matches(theActiveScreen)).Return(false);

            factory = MockFor <IScreenFactory>();

            newScreen = MockRepository.GenerateMock <IScreen>();
            _locator.Expect(x => x.CreateScreen(factory)).Return(newScreen);


            TheScreenConductor.OpenScreen(_locator);
        }
コード例 #7
0
        public void TestInitialize()
        {
            ScreenFactory     = Substitute.For <IScreenFactory>();
            WindowManager     = Substitute.For <IWindowManagerEx>();
            QueueExplorer     = Substitute.For <IQueueExplorerViewModel>();
            EndpointExplorer  = Substitute.For <IEndpointExplorerViewModel>();
            MessageList       = Substitute.For <IMessageListViewModel>();
            StatusbarManager  = Substitute.For <IStatusBarManager>();
            EventAggregator   = Substitute.For <IEventAggregator>();
            MessageFlow       = Substitute.For <IMessageFlowViewModel>();
            SagaWindow        = Substitute.For <ISagaWindowViewModel>();
            MessageBodyView   = Substitute.For <IMessageBodyViewModel>();
            MessageProperties = Substitute.For <IMessagePropertiesViewModel>();
            View               = Substitute.For <IShellViewStub>();
            HeaderView         = Substitute.For <IMessageHeadersViewModel>();
            SettingsProvider   = Substitute.For <ISettingsProvider>();
            LicenseManager     = Substitute.For <AppLicenseManager>();
            LogWindow          = Substitute.For <ILogWindowViewModel>();
            ConnectToViewModel = Substitute.For <IConnectToMachineViewModel>();
            SettingsProvider.GetSettings <ProfilerSettings>().Returns(DefaultAppSetting());
            App = Substitute.For <IAppCommands>();
            CommandLineArgParser = MockEmptyStartupOptions();

            shell = new ShellViewModel(App, ScreenFactory, WindowManager, QueueExplorer,
                                       EndpointExplorer, MessageList, StatusbarManager,
                                       EventAggregator, LicenseManager, MessageFlow, SagaWindow,
                                       MessageBodyView, HeaderView, SettingsProvider, MessageProperties,
                                       LogWindow, CommandLineArgParser);

            ScreenFactory.CreateScreen <IConnectToMachineViewModel>().Returns(ConnectToViewModel);

            shell.AttachView(View, null);
        }
コード例 #8
0
 internal override DialogScreenResult ProcessInvocation <T>(
     DialogServiceInvocation invocation,
     IScreenFactory <T> screen
     )
 {
     return(_dialogResult);
 }
コード例 #9
0
        public ShellViewModel(
            ISolutionManager solutionManager,
            IScreenFactory <DragViewModel> dragScreenFactory,
            IScreenFactory <ErrorViewModel> errorScreenFactory,
            IScreenFactory <SolutionViewModel> solutionScreenFactory)
        {
            _solutionManager       = solutionManager;
            _dragScreenFactory     = dragScreenFactory;
            _errorScreenFactory    = errorScreenFactory;
            _solutionScreenFactory = solutionScreenFactory;

            _solutionManager.PropertyChanged +=
                (_, args) =>
            {
                // TODO: WRITE SOMETHING THAT BINDS THE PROPERTYNAME TO AN EXPRESSION<T> OF SENDER, this kind of code with the switch(**MAGIC STRING**) is a piece of crap.
                switch (args.PropertyName)
                {
                case "HasError":
                    if (_solutionManager.HasError)
                    {
                        ActivateItem(_errorScreenFactory.Create());
                    }
                    break;

                case "CurrentSolution":
                    ActivateItem(_solutionScreenFactory.Create());
                    break;
                }
            };

            SwitchToDragView();
        }
コード例 #10
0
        private void Show(IScreenFactory <IScreenBase> screenFactory)
        {
            _modal = false;

            _screen = screenFactory.Create(_aggregator);
            Initialize();
            _windowService.ShowWindow(_window, modal: false);
        }
コード例 #11
0
        DialogScreenResult IDialogService.ShowDialog(IScreenFactory <IScreenBase> screen, IScreenBase parent, string title)
        {
            var invocation = new DialogServiceInvocation(DialogServiceMethod.OpenDialog);

            invocation.Caption.SetValue(title);
            invocation.Parent.SetValue(parent);
            return(DequeueResponder().ProcessScreenDialogInvocation(invocation, screen));
        }
コード例 #12
0
        public Game1()
        {
            _graphics             = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
            screenFactory         = new ScreenFactory(_graphics);

            CurrentScreen = ScreenManager.MainWindow;
        }
コード例 #13
0
 internal virtual bool ProcessScreenDialogInvocationCore <TScreen>(
     DialogServiceInvocation invocation,
     IScreenFactory <TScreen> screen,
     out DialogScreenResult result
     ) where TScreen : IScreenBase
 {
     result = null;
     return(false);
 }
コード例 #14
0
        public void ScreenFactoriesForConcreteScree_CanBeAssignedToScreenBaseFactoryVariable()
        {
            IScreenFactory <TestScreen>  concreteFactory = ScreenFactory.For <TestScreen>();
            IScreenFactory <IScreenBase> factory         = concreteFactory;

            IScreenBase screen = factory.Create(Aggregator);

            Assert.IsInstanceOfType(screen, typeof(TestScreen));
        }
コード例 #15
0
 public ScreenConductor(IEventAggregator events, IScreenCollection screens, IScreenObjectLocator screenObjectLocator, IMessageCreator messageBox, IShellService shellService, IScreenFactory factory)
 {
     _events              = events;
     _screens             = screens;
     _screenObjectLocator = screenObjectLocator;
     _messageBox          = messageBox;
     _shellService        = shellService;
     _factory             = factory;
 }
コード例 #16
0
        public void Create_ScreenFactoryForInstance_CallsInitialize()
        {
            var expected = new InitializableScreen(Aggregator);

            IScreenFactory <InitializableScreen> factory = ScreenFactory.For <InitializableScreen>(Locator);

            var actual = factory.Create(Aggregator);

            Assert.IsTrue(actual.InitializeWasCalled);
        }
コード例 #17
0
        public void Create_ScreenFactoryForInstance_ReturnsThisInstance()
        {
            var expected = new InitializableScreen(Aggregator);

            IScreenFactory <InitializableScreen> factory = ScreenFactory.For(expected);

            var actual = factory.Create(Aggregator);

            Assert.AreEqual(expected, actual);
        }
コード例 #18
0
        public TScreen AddScreen <TScreen>(IScreenFactory <TScreen> screen)
            where TScreen : T, IScreenBase
        {
            TScreen s = screen.Create(_aggregator);

            // The screen is added AFTER it was initialized by the screen
            // factory.
            Attach(s);

            return(s);
        }
        public IScreenFactory Get(ScreenKeyType screenType)
        {
            IScreenFactory screenFactory = null;

            if (this.HasFactory(screenType))
            {
                Type registeredScreenFactory = ScreenFactoryCollection[screenType];
                screenFactory = (IScreenFactory)Container.Resolve(registeredScreenFactory);
            }
            return(screenFactory);
        }
コード例 #20
0
        private ScreenCreationBehavior GetCreationBehavior(IScreenFactory <IScreenBase> screenFactory)
        {
            var attr = (ScreenCreationBehaviorAttribute)Attribute.GetCustomAttribute(
                screenFactory.ScreenType,
                typeof(ScreenCreationBehaviorAttribute)
                );

            return(attr != null ?
                   attr.CreationBehavior :
                   ScreenCreationBehavior.MultipleInstances);
        }
コード例 #21
0
        public TestScreenResult ShowDialog <TScreen>(
            IScreenFactory <TScreen> screen
            ) where TScreen : IScreenBase
        {
            IScreenBase s         = screen.Create(_aggregator);
            var         lifecycle = new DialogLifecycle(s);

            s.Children.Add(lifecycle);
            s.Children.Add(new ScreenCloseHandler(_ => { })); // TODO: Remove code duplication between here and responder
            return(new TestScreenResult(lifecycle));
        }
コード例 #22
0
        protected override void setup()
        {
            Screens.Active.ShouldBeNull();
            _locator  = MockRepository.GenerateMock <IScreenLocator>();
            newScreen = MockRepository.GenerateMock <IScreen>();

            factory = MockFor <IScreenFactory>();

            _locator.Expect(x => x.CreateScreen(factory)).Return(newScreen);

            TheScreenConductor.OpenScreen(_locator);
        }
コード例 #23
0
ファイル: MainMenuScreen.cs プロジェクト: zakvdm/Frenetic
        /// <summary>
        /// Constructs a new MainMenu object.
        /// </summary>
        public MainMenuScreen(Viewport viewport, SpriteBatch spriteBatch, SpriteFont font, IGameSessionFactory gameSessionFactory, IScreenFactory screenFactory, Quitter quitter) 
            : base(viewport, spriteBatch, font)
        {
            // TODO: There must be a way to reduce the number of parameters here???
            _gameSessionFactory = gameSessionFactory;
            _screenFactory = screenFactory;
            _quitter = quitter;

            // set the transition times
            TransitionOnTime = TimeSpan.FromSeconds(1.0);
            TransitionOffTime = TimeSpan.FromSeconds(0.0);
        }
コード例 #24
0
        protected override void setup()
        {
            _locator  = MockRepository.GenerateMock <IScreenLocator>();
            theScreen = MockRepository.GenerateMock <IScreen>();

            Screens.Active = theScreen;
            _locator.Expect(x => x.Matches(theScreen)).Return(true);

            factory = MockRepository.GenerateMock <IScreenFactory>();

            TheScreenConductor.OpenScreen(_locator);
        }
コード例 #25
0
        public void OpenScreen_WithBaseClassScreenFactory_DoesNotOpenScreenIfActualTypesMatch()
        {
            ScreenConductor c = CreateConductor();

            c.OpenScreen(ScreenFactory.For <SingleInstanceScreen>(Locator));

            IScreenFactory <IScreenBase> baseFactory = ScreenFactory
                                                       .For <SingleInstanceScreen>(Locator);

            c.OpenScreen(baseFactory);

            Assert.AreEqual(1, c.Screens.Count());
        }
コード例 #26
0
        public ShellViewModel(IConnectionService connectionService, IScreenFactory screenFactory,
                              IDialogService dialogService, IConcurrencyService concurrencyService,
                              IWorkspaceFactory workspaceFactory, ISelectionService selectionService)
        {
            DisplayName = "Reactivity Monitor";

            var concreteDialogService = (DialogService)dialogService;

            WhenActivated(disposables =>
            {
                connectionService.WhenConnectionChanges
                .ObserveOnDispatcher()
                .Select(GetViewModelForConnection)
                .Subscribe(ActivateItem)
                .DisposeWith(disposables);

                this.ObservableForProperty(x => x.ActiveItem).Value()
                .Select(item => item.WhenAnyValue(x => x.DisplayName))
                .Switch()
                .Select(itemTitle => $"{itemTitle} - Reactivity Monitor")
                .Subscribe(title => DisplayName = title)
                .DisposeWith(disposables);

                this.WhenAnyValue(x => x.ActiveItem)
                .Subscribe(item => selectionService.ChangeSelection(s => s.SetWorkspace((item as IHomeScreen)?.Workspace)))
                .DisposeWith(disposables);

                Disposable.Create(connectionService.Close).DisposeWith(disposables);

                concreteDialogService.WhenDialogViewModelChanges
                .ObserveOn(concurrencyService.DispatcherRxScheduler)
                .Subscribe(vm => DialogViewModel = vm)
                .DisposeWith(disposables);
            });

            CancelDialogCommand = ReactiveCommand.Create(concreteDialogService.CancelActiveDialog);

            IScreen GetViewModelForConnection(IConnectionModel conn)
            {
                if (conn == null)
                {
                    return(screenFactory.CreateConnectionScreen());
                }
                else
                {
                    var workspace  = workspaceFactory.CreateWorkspace(conn);
                    var homeScreen = screenFactory.CreateHomeScreen(workspace);
                    return(homeScreen);
                }
            }
        }
コード例 #27
0
        internal DialogScreenResult ProcessScreenDialogInvocation <TScreen>(
            DialogServiceInvocation invocation,
            IScreenFactory <TScreen> screen
            ) where TScreen : IScreenBase
        {
            DialogScreenResult dialogResult;

            if (!ProcessScreenDialogInvocationCore(invocation, screen, out dialogResult))
            {
                ThrowAssertionException(invocation);
            }

            return(dialogResult);
        }
コード例 #28
0
 public virtual DialogScreenResult Show(
     Window window,
     IScreenFactory <IScreenBase> screen,
     bool modal
     )
 {
     return(WindowLifecycle.Show(
                _aggregator,
                _windowService,
                window,
                screen,
                modal
                ));
 }
コード例 #29
0
        public void OpenScreen <TScreen>(IScreenFactory <TScreen> factory)
            where TScreen : class, IScreenBase
        {
            ScreenCreationBehavior creationBehavior  = GetCreationBehavior(factory);
            IScreenBase            alreadyOpenScreen = null;

            switch (creationBehavior)
            {
            case ScreenCreationBehavior.MultipleInstances:
                break;

            case ScreenCreationBehavior.SingleInstance:
                alreadyOpenScreen = _screens
                                    .SingleOrDefault(x => x.GetType() == factory.ScreenType);
                break;

            case ScreenCreationBehavior.UseScreenLocation:
                alreadyOpenScreen = Screens
                                    .FirstOrDefault(x => factory.CreatesScreensEquivalentTo(x));
                break;
            }

            bool wasAlreadyOpen = alreadyOpenScreen != null;

            IScreenBase s;

            if (wasAlreadyOpen)
            {
                s = alreadyOpenScreen;
            }
            else
            {
                // If the constructor or Initialize handler of the screen throws an
                // exception we exit here and 'ActiveScreen' is not changed. The screen
                // itself makes sure that is consistently closed in case of an exception.
                s = _screens.AddScreen(factory);
                s.Children
                .Add(new ScreenCloseHandler(requestClose => CloseScreen(s, requestClose)));
            }

            // Activate does handle exceptions correctly and rethrows them, so we skip
            // the publishing of the 'ScreenOpenedEvent'.
            ActiveScreen = s;

            _eventAggregator.Publish(
                ScreenOpenedEvent,
                new ScreenOpenedEventArgs(this, s, wasAlreadyOpen)
                );
        }
コード例 #30
0
ファイル: GameplayScreen.cs プロジェクト: zakvdm/Frenetic
        public GameplayScreen(GameSessionControllerAndView clientGameSessionCandV, GameSessionControllerAndView serverGameSessionCandV, IScreenFactory screenFactory)
        {
            _clientGameSessionController = clientGameSessionCandV.GameSessionController;
            _clientGameSessionView = clientGameSessionCandV.GameSessionView;
            if (serverGameSessionCandV != null)
            {
                _serverGameSessionController = serverGameSessionCandV.GameSessionController;
                _serverGameSessionView = serverGameSessionCandV.GameSessionView;
            }

            _screenFactory = screenFactory;

            // set the transition times
            TransitionOnTime = TimeSpan.FromSeconds(1.0);
            TransitionOffTime = TimeSpan.FromSeconds(1.0);
        }
コード例 #31
0
ファイル: ShellView.xaml.cs プロジェクト: SharpNesla/Laundry
        public ShellViewModel(IEventAggregator eventAggregator, Visibilities visibilities,
                              ConnectionLostDialogViewModel connectionLostDialog, IModel model, IScreenFactory factory)
        {
            Visibilities = visibilities;
            eventAggregator.Subscribe(this);

            //_employeeCard = employeeCard;
            this._factory = factory;
            this._connectionLostDialog = connectionLostDialog;
            _model = model;
            this.Handle(Screens.Login);
            _paletteHelper = new PaletteHelper();

            model.Connected      += OnConnected;
            model.ConnectionLost += OnConnectionLost;
        }
コード例 #32
0
        public ShellViewModel(
            IAppCommands appCommander,
            IScreenFactory screenFactory,
            IWindowManagerEx windowManager,
            IQueueExplorerViewModel queueExplorer,
            IEndpointExplorerViewModel endpointExplorer,
            IMessageListViewModel messages,
            IStatusBarManager statusBarManager,
            IEventAggregator eventAggregator,
            AppLicenseManager licenseManager,
            IMessageFlowViewModel messageFlow,
            ISagaWindowViewModel sagaWindow,
            IMessageBodyViewModel messageBodyViewer,
            IMessageHeadersViewModel messageHeadersViewer,
            ISettingsProvider settingsProvider,
            IMessagePropertiesViewModel messageProperties,
            ILogWindowViewModel logWindow,
            ICommandLineArgParser comandLineArgParser)
        {
            _appCommander        = appCommander;
            _screenFactory       = screenFactory;
            _windowManager       = windowManager;
            _eventAggregator     = eventAggregator;
            _licenseManager      = licenseManager;
            _settingsProvider    = settingsProvider;
            _comandLineArgParser = comandLineArgParser;
            MessageProperties    = messageProperties;
            MessageFlow          = messageFlow;
            SagaWindow           = sagaWindow;
            StatusBarManager     = statusBarManager;
            QueueExplorer        = queueExplorer;
            EndpointExplorer     = endpointExplorer;
            MessageHeaders       = messageHeadersViewer;
            MessageBody          = messageBodyViewer;
            Messages             = messages;
            LogWindow            = logWindow;

            Items.Add(queueExplorer);
            Items.Add(endpointExplorer);
            Items.Add(messages);
            Items.Add(messageHeadersViewer);
            Items.Add(messageBodyViewer);
            Items.Add(messageFlow);

            InitializeAutoRefreshTimer();
            InitializeIdleTimer();
        }
コード例 #33
0
ファイル: Game.cs プロジェクト: TensAndTwenties/Robs_RPG
        //Controls
        public Quarantine()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";

            this.IsMouseVisible = true;
            graphics.PreferredBackBufferWidth = 1440;
            graphics.PreferredBackBufferHeight = 900;
            graphics.ApplyChanges();

            // Create the screen factory and add it to the Services
            screenFactory = new ScreenFactory();
            Services.AddService(typeof(IScreenFactory), screenFactory);

            // Create the screen manager component.
            screenManager = new ScreenManager(this);
            Components.Add(screenManager);

            AddInitialScreens();
        }
コード例 #34
0
ファイル: GameManager.cs プロジェクト: zunath/MMXEngine
 public GameManager(
     EntityWorld world,
     SpriteBatch spriteBatch,
     IGraphicsManager graphicsManager,
     ISystemLoader systemLoader,
     IScreenManager screenManager,
     IScreenFactory screenFactory,
     IInputManager inputManager,
     ICameraManager cameraManager,
     IScriptManager scriptManager
     )
 {
     _world = world;
     _spriteBatch = spriteBatch;
     _graphicsManager = graphicsManager;
     _systemLoader = systemLoader;
     _screenManager = screenManager;
     _screenFactory = screenFactory;
     _inputManager = inputManager;
     _cameraManager = cameraManager;
     _scriptManager = scriptManager;
 }
コード例 #35
0
        private MessageFlowViewModel CreateSUT()
        {
            _serviceControl = Substitute.For<IServiceControl>();
            _eventAggregator = Substitute.For<IEventAggregator>();
            _clipboard = Substitute.For<IClipboard>();
            _windowManager = Substitute.For<IWindowManagerEx>();
            _screenFactory = Substitute.For<IScreenFactory>();
            _searchBar = Substitute.For<ISearchBarViewModel>();
            _messageList = Substitute.For<IMessageListViewModel>();
            _settingProvider = Substitute.For<ISettingsProvider>();
            _endpointExplorer = Substitute.For<IEndpointExplorerViewModel>();

            return new MessageFlowViewModel(_serviceControl,
                                            _eventAggregator,
                                            _clipboard,
                                            _windowManager,
                                            _screenFactory,
                                            _searchBar,
                                            _messageList,
                                            _settingProvider,
                                            _endpointExplorer);
        }
コード例 #36
0
 public ScreenConductor(IScreenCollection screenCollection, IScreenFactory screenFactory, IScreenObjectRegistry screenObjectRegistry)
 {
     _screens = screenCollection;
     _screenFactory = screenFactory;
     _screenObjectRegistry = screenObjectRegistry;
 }
コード例 #37
0
        public void TestInitialize()
        {
            ScreenFactory = Substitute.For<IScreenFactory>();
            WindowManager = Substitute.For<IWindowManagerEx>();
            QueueExplorer = Substitute.For<IQueueExplorerViewModel>();
            EndpointExplorer = Substitute.For<IEndpointExplorerViewModel>();
            MessageList = Substitute.For<IMessageListViewModel>();
            NetworkOperations = Substitute.For<INetworkOperations>();
            ExceptionHandler = Substitute.For<IExceptionHandler>();
            StatusbarManager = Substitute.For<StatusBarManager>();
            EventAggregator = Substitute.For<IEventAggregator>();
            MessageFlow = Substitute.For<IMessageFlowViewModel>();
            MessageBodyView = Substitute.For<IMessageBodyViewModel>();
            MessageProperties = Substitute.For<IMessagePropertiesViewModel>();
            View = Substitute.For<IShellViewStub>();
            SettingsProvider = Substitute.For<ISettingsProvider>();
            LicenseManager = Substitute.For<ILicenseManager>();
            LogWindow = Substitute.For<ILogWindowViewModel>();
            ConnectToViewModel = Substitute.For<ConnectToMachineViewModel>(NetworkOperations);
            SettingsProvider.GetSettings<ProfilerSettings>().Returns(DefaultAppSetting());
            App = Substitute.For<IAppCommands>();
            shell = new ShellViewModel(App, ScreenFactory, WindowManager, QueueExplorer, EndpointExplorer, MessageList,
                                       StatusbarManager, EventAggregator, LicenseManager, MessageFlow, MessageBodyView,
                                       SettingsProvider, MessageProperties, LogWindow);

            ScreenFactory.CreateScreen<ConnectToMachineViewModel>().Returns(ConnectToViewModel);

            shell.AttachView(View, null);
        }
コード例 #38
0
 public void Setup()
 {
     stubGameSessionFactory = MockRepository.GenerateStub<IGameSessionFactory>();
     stubScreenFactory = MockRepository.GenerateStub<IScreenFactory>();
     mainMenuScreen = new MainMenuScreen(new Viewport(), null, null, stubGameSessionFactory, stubScreenFactory, null);
 }
コード例 #39
0
        public void TestInitialize()
        {
            ScreenFactory = Substitute.For<IScreenFactory>();
            WindowManager = Substitute.For<IWindowManagerEx>();
            QueueExplorer = Substitute.For<IQueueExplorerViewModel>();
            EndpointExplorer = Substitute.For<IEndpointExplorerViewModel>();
            MessageList = Substitute.For<IMessageListViewModel>();
            StatusbarManager = Substitute.For<IStatusBarManager>();
            EventAggregator = Substitute.For<IEventAggregator>();
            MessageFlow = Substitute.For<IMessageFlowViewModel>();
            SagaWindow = Substitute.For<ISagaWindowViewModel>();
            MessageBodyView = Substitute.For<IMessageBodyViewModel>();
            MessageProperties = Substitute.For<IMessagePropertiesViewModel>();
            View = Substitute.For<IShellViewStub>();
            HeaderView = Substitute.For<IMessageHeadersViewModel>();
            SettingsProvider = Substitute.For<ISettingsProvider>();
            LicenseManager = Substitute.For<AppLicenseManager>();
            LogWindow = Substitute.For<ILogWindowViewModel>();
            ConnectToViewModel = Substitute.For<IConnectToMachineViewModel>();
            SettingsProvider.GetSettings<ProfilerSettings>().Returns(DefaultAppSetting());
            App = Substitute.For<IAppCommands>();
            CommandLineArgParser = MockEmptyStartupOptions();

            shell = new ShellViewModel(App, ScreenFactory, WindowManager, QueueExplorer,
                                       EndpointExplorer, MessageList, StatusbarManager,
                                       EventAggregator, LicenseManager, MessageFlow, SagaWindow,
                                       MessageBodyView, HeaderView, SettingsProvider, MessageProperties,
                                       LogWindow, CommandLineArgParser);

            ScreenFactory.CreateScreen<IConnectToMachineViewModel>().Returns(ConnectToViewModel);

            shell.AttachView(View, null);
        }
コード例 #40
0
        public void SetUp()
        {
            ProjectPersistor.DeleteHistoryFile();
            Bootstrapper.Restart();

            _objectLocator = ObjectFactory.GetInstance<IScreenObjectLocator>();
            factory = ObjectFactory.GetInstance<IScreenFactory>();

            DataMother.LoadMathProject();
        }