Example #1
0
 public NewProjectVM()
 {
     TeamTagger = new LMTeamTaggerVM();
     TeamTagger.ShowSubstitutionButtons = false;
     TeamTagger.SubstitutionMode        = true;
     Project = new LMProjectVM();
 }
        public void Setup()
        {
            settings.EncodingSettings.OutputFile = Path.GetTempFileName();

            App.Current.DatabaseManager = new LocalDatabaseManager();

            project   = Utils.CreateProject();
            projectVM = new LMProjectVM {
                Model = project
            };
            LMProjectAnalysisVM viewModel = new LMProjectAnalysisVM();

            viewModel.VideoPlayer = videoPlayerVM;
            viewModel.Project     = projectVM;

            projectsManager = new ProjectAnalysisController();
            projectsManager.SetViewModel(viewModel);
            projectsManager.Start();

            KeyContext context = new KeyContext();

            foreach (KeyAction action in projectsManager.GetDefaultKeyActions())
            {
                context.AddAction(action);
            }
            App.Current.KeyContextManager.NewKeyContexts(new List <KeyContext> {
                context
            });
        }
        public void SetUp()
        {
            controller       = new LMEventsController();
            playerController = new Mock <IVideoPlayerController> ();
            videoPlayer      = new VideoPlayerVM {
                Player        = playerController.Object,
                CamerasConfig = new ObservableCollection <CameraConfig> ()
            };
            Mock <IVideoPlayer> playerMock = new Mock <IVideoPlayer> ();

            playerMock.SetupAllProperties();

            projectVM = new LMProjectVM {
                Model = Utils.CreateProject(true)
            };
            controller.SetViewModel(new LMProjectAnalysisVM {
                Project     = projectVM,
                VideoPlayer = videoPlayer
            });

            var mtkMock = new Mock <IMultimediaToolkit> ();

            mtkMock.Setup(m => m.GetPlayer()).Returns(playerMock.Object);
            App.Current.MultimediaToolkit = mtkMock.Object;

            controller.Start();
        }
        void LoadProject(LMProjectVM project)
        {
            gamedescriptionheader1.ViewModel = project;
            detailCtx.UpdateViewModel(project);

            foreach (VideoFileInfo vfi in videoFileInfos)
            {
                videofileinfo_vbox.Remove(vfi);
            }
            videoFileInfos.Clear();

            foreach (var mf in project.FileSet)
            {
                VideoFileInfo vfi = new VideoFileInfo();

                vfi.SetMediaFileSet(project.FileSet, mf);
                vfi.Changed += HandleChanged;

                vfi.ShowAll();

                videoFileInfos.Add(vfi);

                videofileinfo_vbox.PackStart(vfi, true, true, 0);
            }

            rbox.Visible = true;
        }
Example #5
0
        public override async Task <bool> LoadState(dynamic data)
        {
            LMProjectVM projectVM = data.Project;

            // FIXME: Load project asynchronously
            if (!projectVM.Model.IsLoaded)
            {
                try {
                    IBusyDialog busy = App.Current.Dialogs.BusyDialog(Catalog.GetString("Loading project..."), null);
                    busy.ShowSync(() => {
                        try {
                            projectVM.Model.Load();
                        } catch (Exception ex) {
                            Log.Exception(ex);
                            throw;
                        }
                    });
                } catch (Exception ex) {
                    Log.Exception(ex);
                    App.Current.Dialogs.ErrorMessage(Catalog.GetString("Could not load project:") + "\n" + ex.Message);
                    return(false);
                }
            }

            if (!await Initialize(data))
            {
                return(false);
            }

            return(await LoadProject());
        }
        public void LoadState_ViewModelFromPropDisposed_AssignOnlyModel()
        {
            // Arrange
            FakeLiveProjectAnalysisState state = new FakeLiveProjectAnalysisState();
            LMProject   project   = Utils.CreateProject();
            LMProjectVM projectVM = new LMProjectVM {
                Model = project
            };
            LMProjectAnalysisVM analysisVM = new LMProjectAnalysisVM {
                Project = projectVM
            };

            var panel = new Mock <Utils.IDummyCapturerPanel> ();

            panel.Setup(p => p.Capturer).Returns(capturerMock.Object);
            state.Panel = panel.Object;

            // Act
            state.LoadState(analysisVM);

            // Assert
            capturerMock.Verify(c => c.Run(It.IsAny <CaptureSettings> (), It.IsAny <MediaFile> ()), Times.Once);
            Assert.AreNotEqual(projectVM, state.ViewModel.Project);
            Assert.AreEqual(project, state.ViewModel.Project.Model);
        }
Example #7
0
 public NewProjectVM()
 {
     TeamTagger = new LMTeamTaggerVM();
     TeamTagger.ShowSubstitutionButtons = false;
     TeamTagger.SubstitutionMode        = true;
     Project    = new LMProjectVM();
     Dashboards = new DashboardsManagerVM();
     Teams      = new TeamsManagerVM();
 }
 public void SetUp()
 {
     model     = Utils.CreateProject(true);
     viewModel = new LMProjectVM {
         Model = model
     };
     model.IsChanged     = false;
     viewModel.IsChanged = false;
 }
        async Task ProjectSetUpAsync()
        {
            var viewModel = new PlayEditorVM();

            teamTagger        = viewModel.TeamTagger;
            viewModel.Project = new LMProjectVM {
                Model = Utils.CreateProject()
            };
            project = viewModel.Project;
            await ControllerSetUp(viewModel);
        }
        public void OpenProject_ExistingProject_NavigateToAnalyisWindow()
        {
            var project   = new LMProject();
            var projectVM = new LMProjectVM {
                Model = project
            };

            project.ProjectType = ProjectType.FileProject;

            LMStateHelper.OpenProject(projectVM);

            stateControllerMock.Verify(s => s.MoveTo(ProjectAnalysisState.NAME, It.IsAny <object> (), true, false));
        }
Example #11
0
 public void Setup()
 {
     state     = new ProjectAnalysisState();
     project   = Utils.CreateProject();
     projectVM = new LMProjectVM {
         Model = project
     };
     analysisVM = new LMProjectAnalysisVM {
         Project = projectVM
     };
     state.Panel = new Mock <IPanel> ().Object;
     gtkMock.Setup(g => g.SelectMediaFiles(It.IsAny <MediaFileSet> ())).Returns(true);
 }
        public void Setup()
        {
            state     = new LiveProjectAnalysisState();
            project   = Utils.CreateProject();
            projectVM = new LMProjectVM {
                Model = project
            };
            analysisVM = new LMProjectAnalysisVM {
                Project = projectVM
            };
            var panel = new Mock <Utils.IDummyCapturerPanel> ();

            panel.Setup(p => p.Capturer).Returns(capturerMock.Object);
            state.Panel = panel.Object;
        }
        public void TestSetProjectVM()
        {
            var project   = Utils.CreateProject(true);
            var projectVM = new LMProjectVM {
                Model = project
            };
            var view = new ProjectLocationsTaggerView(Mock.Of <IWidget> ())
            {
                Background = project.GetBackground(VAS.Core.Common.FieldPositionType.Field)
            };

            view.ViewModel = projectVM;

            Assert.AreEqual(project.Timeline.Count, view.Objects.Count);
        }
Example #14
0
        public void SetUp()
        {
            project = Utils.CreateProject(true);
            project.Periods.Add(new Period());
            projectVM = new LMProjectVM {
                Model = project
            };
            widgetMock = new Mock <IWidget> ();
            widgetMock.SetupAllProperties();
            timeline = new LMPlaysTimeline(widgetMock.Object);
            LMProjectAnalysisVM viewModel = new LMProjectAnalysisVM {
                Project = projectVM
            };

            timeline.ViewModel = viewModel;
        }
        public void TestDispose()
        {
            var project   = Utils.CreateProject(true);
            var projectVM = new LMProjectVM {
                Model = project
            };
            var view = new ProjectLocationsTaggerView(Mock.Of <IWidget> ())
            {
                Background = project.GetBackground(VAS.Core.Common.FieldPositionType.Field)
            };

            view.ViewModel = projectVM;

            view.Dispose();

            Assert.IsNull(view.Objects);
        }
        public void TestAddEvent()
        {
            var project   = Utils.CreateProject(false);
            var projectVM = new LMProjectVM {
                Model = project
            };
            var view = new ProjectLocationsTaggerView(Mock.Of <IWidget> ())
            {
                Background = project.GetBackground(VAS.Core.Common.FieldPositionType.Field)
            };

            view.ViewModel = projectVM;

            project.AddEvent(project.EventTypes [0], new Time(0), new Time(0), new Time(0), null);

            Assert.AreEqual(1, view.Objects.Count);
        }
        public void OpenProject_ExistingFakeLive_NavigateToAnalyisWindow()
        {
            var project   = new LMProject();
            var projectVM = new LMProjectVM {
                Model = project
            };

            project.ProjectType         = ProjectType.FileProject;
            project.Description         = new ProjectDescription();
            project.Description.FileSet = new MediaFileSet();
            project.Description.FileSet.Add(new MediaFile());
            project.Description.FileSet [0].FilePath = Constants.FAKE_PROJECT;

            LMStateHelper.OpenProject(projectVM);

            stateControllerMock.Verify(s => s.MoveTo(NewProjectState.NAME, projectVM, false, false));
        }
Example #18
0
        public void OpenProject_NotifiesProjectOpened_Ok()
        {
            // Arrange
            bool        projectOpened = false;
            LMProjectVM viewmodel     = new LMProjectVM();

            viewmodel.Model = new LMProject();
            CaptureSettings settings = new CaptureSettings();

            App.Current.EventsBroker.Subscribe <OpenedProjectEvent> (e => projectOpened = true);

            // Act
            LMStateHelper.OpenProject(viewmodel, settings);

            // Assert
            Assert.True(projectOpened);
        }
        public void OpenProject_NewFakeLive_NavigateToAnalyisWindow()
        {
            var project   = new LMProject();
            var projectVM = new LMProjectVM {
                Model = project
            };

            project.ProjectType = ProjectType.FakeCaptureProject;

            project.Description         = new ProjectDescription();
            project.Description.FileSet = new MediaFileSet();
            project.Description.FileSet.Add(new MediaFile());
            project.Description.FileSet [0].FilePath = Constants.FAKE_PROJECT;

            LMStateHelper.OpenProject(projectVM);

            stateControllerMock.Verify(s => s.MoveTo(FakeLiveProjectAnalysisState.NAME, It.IsAny <object> (), true, false));
        }
        public void OpenProject_NotNew_NotSendsProjectCreatedEvent()
        {
            bool projectCreatedEvent = false;

            var project   = new LMProject();
            var projectVM = new LMProjectVM {
                Model = project
            };

            project.ProjectType         = ProjectType.FileProject;
            project.Description         = new ProjectDescription();
            project.Description.FileSet = new MediaFileSet();
            project.Description.FileSet.Add(new MediaFile());
            project.Description.FileSet [0].FilePath = Constants.FAKE_PROJECT;

            App.Current.EventsBroker.Subscribe <ProjectCreatedEvent> (evt => projectCreatedEvent = true);

            LMStateHelper.OpenProject(projectVM, newPoject: false);

            Assert.IsFalse(projectCreatedEvent);
        }
Example #21
0
        public async Task Setup()
        {
            App.Current.GUIToolkit = mockGuiToolkit.Object;
            videoPlayerController  = new Mock <IVideoPlayerController> ();
            videoPlayerVM          = new VideoPlayerVM();
            videoPlayerVM.Player   = videoPlayerController.Object;
            LMProject project = Utils.CreateProject(true);

            project.ProjectType = ProjectType.FileProject;
            projectVM           = new LMProjectVM {
                Model = project
            };
            playlistCollectionVM = projectVM.Playlists;
            LMProjectAnalysisVM viewModel = new LMProjectAnalysisVM();

            viewModel.Project     = projectVM;
            viewModel.VideoPlayer = videoPlayerVM;
            sut = new LMPlaylistController();
            sut.SetViewModel(viewModel);
            await sut.Start();
        }
Example #22
0
        public async Task SetUp()
        {
            timelineVM = new LMTimelineVM(homeTeam, awayTeam);
            timelineVM.CreateTeamsTimelines(new List <TeamVM> {
                homeTeam, awayTeam
            });
            var dealer    = new DummyProjectDealer();
            var projectvm = new LMProjectVM {
                Model = Utils.CreateProject()
            };

            timelineVM.CreateEventTypeTimelines(projectvm.EventTypes);
            dealer.Project  = projectvm;
            dealer.Timeline = timelineVM;

            eventsFilterController.SetViewModel(dealer);

            CreateEvents();

            await eventsFilterController.Start();
        }
Example #23
0
        public async Task SetUp()
        {
            mockToolkit = new Mock <IGUIToolkit> ();
            mockToolkit.SetupGet(o => o.DeviceScaleFactor).Returns(1.0f);
            App.Current.GUIToolkit = mockToolkit.Object;

            controller       = new LMEventsController();
            playerController = new Mock <IVideoPlayerController> ();
            videoPlayer      = new VideoPlayerVM {
                Player        = playerController.Object,
                CamerasConfig = new ObservableCollection <CameraConfig> ()
            };
            Mock <IVideoPlayer> playerMock = new Mock <IVideoPlayer> ();

            playerMock.SetupAllProperties();

            projectVM = new LMProjectVM {
                Model = Utils.CreateProject(true, true)
            };
            controller.SetViewModel(new LMProjectAnalysisVM {
                Project     = projectVM,
                VideoPlayer = videoPlayer
            });

            mockLimitationService = new Mock <ILicenseLimitationsService> ();
            mockLimitationService.Setup(ls => ls.CanExecute(It.IsAny <string> ())).Returns(true);
            App.Current.LicenseLimitationsService = mockLimitationService.Object;

            var mtkMock = new Mock <IMultimediaToolkit> ();

            mtkMock.Setup(m => m.GetPlayer()).Returns(playerMock.Object);
            App.Current.MultimediaToolkit = mtkMock.Object;

            mockDialogs         = new Mock <IDialogs> ();
            App.Current.Dialogs = mockDialogs.Object;
            mockDialogs.Setup(m => m.QuestionMessage(It.IsAny <string> (), null, It.IsAny <object> ())).Returns(AsyncHelpers.Return(true));

            await controller.Start();
        }
        public void Setup()
        {
            VideoPlayerVM videoPlayer = new VideoPlayerVM {
                CamerasConfig = new ObservableCollection <CameraConfig> ()
            };

            LMProject project = Utils.CreateProject();

            player1 = new PlayerVM {
                Model = new Utils.PlayerDummy()
            };
            player2 = new PlayerVM {
                Model = new Utils.PlayerDummy()
            };

            team1 = new TeamVM();
            team1.ViewModels.Add(player1);
            team1.ViewModels.Add(player2);

            teams = new List <TeamVM> {
                team1
            };

            projectVM = new LMProjectVM {
                Model = project
            };

            controller = new LMTaggingController();
            controller.SetViewModel(new ProjectAnalysisVM <LMProjectVM> {
                VideoPlayer = videoPlayer, Project = projectVM
            });
            controller.Start();

            mockToolkit            = new Mock <IGUIToolkit> ();
            App.Current.GUIToolkit = mockToolkit.Object;
            timer = new Mock <ITimer> ();
            App.Current.DependencyRegistry.Register <ITimer> (timer.Object, 1);
        }
Example #25
0
        public void Setup()
        {
            mockDialogs            = new Mock <IDialogs> ();
            App.Current.GUIToolkit = mockGuiToolkit.Object;
            App.Current.Dialogs    = mockDialogs.Object;
            videoPlayerController  = new Mock <IVideoPlayerController> ();
            videoPlayerVM          = new VideoPlayerVM();
            videoPlayerVM.Player   = videoPlayerController.Object;
            LMProject project = Utils.CreateProject(true);

            project.ProjectType = ProjectType.FileProject;
            projectVM           = new LMProjectVM {
                Model = project
            };
            playlistCollectionVM = projectVM.Playlists;
            LMProjectAnalysisVM viewModel = new LMProjectAnalysisVM();

            viewModel.Project     = projectVM;
            viewModel.VideoPlayer = videoPlayerVM;
            controller            = new LMPlaylistController();
            controller.SetViewModel(viewModel);
            controller.Start();
        }
        public async Task Setup()
        {
            App.Current.HotkeysService = new HotkeysService();
            LMGeneralUIHotkeys.RegisterDefaultHotkeys();
            mockToolkit = new Mock <IGUIToolkit> ();
            mockToolkit.SetupGet(o => o.DeviceScaleFactor).Returns(1.0f);
            App.Current.GUIToolkit = mockToolkit.Object;

            VideoPlayerVM videoPlayer = new VideoPlayerVM {
                CamerasConfig = new RangeObservableCollection <CameraConfig> ()
            };

            LMProject project = Utils.CreateProject();

            projectVM = new LMProjectVM {
                Model = project
            };

            var projectAnalysisVM = new LMProjectAnalysisVM {
                VideoPlayer = videoPlayer, Project = projectVM
            };

            controller = new LMTaggingController();
            controller.SetViewModel(projectAnalysisVM);
            await controller.Start();

            teamController = new LMTeamTaggerController();
            teamController.SetViewModel(projectAnalysisVM);
            await teamController.Start();

            resetEvent = new AutoResetEvent(false);
            mockToolkit.Setup(x => x.Invoke(It.IsAny <EventHandler> ())).Callback((EventHandler e) => {
                Task actionExecution = Task.Factory.StartNew(() => e(null, null));
                actionExecution.Wait();
                resetEvent.Set();
            });
        }
        async Task SetUpState()
        {
            dynamic data      = new ExpandoObject();
            var     projectVM = new LMProjectVM {
                Model = new LMProject()
            };

            projectVM.Model.LocalTeamTemplate   = LMTeam.DefaultTemplate(10);
            projectVM.Model.VisitorTeamTemplate = LMTeam.DefaultTemplate(10);

            data.project  = projectVM;
            data.settings = new PlayEventEditionSettings();
            data.play     = new LMTimelineEventVM {
                Model = new LMTimelineEvent {
                    Name = "Event1"
                }
            };

            await state.LoadState(data);

            await state.ShowState();

            viewModel = state.ViewModel;
        }
        async Task AnalysisSetUpAsync()
        {
            var viewModel = new LMProjectAnalysisVM();

            viewModel.VideoPlayer = new VideoPlayerVM();
            videoPlayer           = viewModel.VideoPlayer;
            teamTagger            = viewModel.TeamTagger;
            projectVM             = new LMProjectVM {
                Model = Utils.CreateProject()
            };
            viewModel.Project = projectVM;
            await ControllerSetUp(viewModel);

            eventsController = new LMEventsController();
            eventsController.SetViewModel(viewModel);
            await eventsController.Start();


            taggingController = new LMTaggingController();
            taggingController.SetViewModel(new ProjectAnalysisVM <LMProjectVM> {
                VideoPlayer = videoPlayer, Project = projectVM
            });
            await taggingController.Start();
        }
Example #29
0
 /// <summary>
 /// Resets the team tagger based on a ProjectVM
 /// </summary>
 /// <param name="project">Project View Model</param>
 public void ResetTeamTagger(LMProjectVM project)
 {
     AwayTeam   = project.AwayTeam;
     HomeTeam   = project.HomeTeam;
     Background = project.Dashboard.Model?.FieldBackground;
 }