Inheritance: VAS.Core.Filters.EventsFilter
示例#1
0
        public void TestClearAll()
        {
            ProjectLongoMatch p = Utils.CreateProject ();

            try {
                EventsFilter filter = new EventsFilter (p);

                filter.FilterPlayer (p.LocalTeamTemplate.List [0], true);
                Assert.AreEqual (1, filter.VisiblePlays.Count);
                Assert.AreEqual (1, filter.VisiblePlayers.Count);
                filter.ClearAll ();
                Assert.AreEqual (3, filter.VisiblePlays.Count);
                Assert.AreEqual (10, filter.VisiblePlayers.Count);

                filter.FilterEventType (p.EventTypes [0], true);
                Assert.AreEqual (1, filter.VisiblePlays.Count);
                Assert.AreEqual (1, filter.VisibleEventTypes.Count);
                filter.ClearAll ();
                Assert.AreEqual (3, filter.VisiblePlays.Count);
                Assert.AreEqual (15, filter.VisibleEventTypes.Count);

                filter.FilterEventTag (p.EventTypes [0], (p.EventTypes [0] as AnalysisEventType).Tags [0], true);
                Assert.AreEqual (0, filter.VisiblePlays.Count);
                Assert.AreEqual (1, filter.VisibleEventTypes.Count);
                filter.ClearAll ();
                Assert.AreEqual (3, filter.VisiblePlays.Count);
                Assert.AreEqual (15, filter.VisibleEventTypes.Count);
            } finally {
                Utils.DeleteProject (p);
            }
        }
 public PlayerEventTypeStats(Project project, EventsFilter filter, Player player, EventType evType)
 {
     this.filter = filter;
     this.player = player;
     this.project = project;
     this.EventType = evType;
 }
 public void SetFilter(EventsFilter filter, ProjectLongoMatch project)
 {
     this.local = project.LocalTeamTemplate;
     this.visitor = project.VisitorTeamTemplate;
     localTeam.Name = local.TeamName;
     visitorTeam.Name = visitor.TeamName;
     this.filter = filter;
     FillTree ();
 }
示例#4
0
 public PlayerStats(ProjectLongoMatch project, EventsFilter filter, PlayerLongoMatch player)
 {
     this.project = project;
     this.filter = filter;
     this.Player = player;
     PlayerEventStats = new List<PlayerEventTypeStats> ();
     foreach (EventType evtType in project.EventTypes) {
         if (!(evtType is SubstitutionEventType)) {
             PlayerEventStats.Add (new PlayerEventTypeStats (project, filter, player, evtType));
         }
     }
     UpdateTimePlayed ();
 }
示例#5
0
        public void TestEmptyFilter()
        {
            ProjectLongoMatch p = Utils.CreateProject ();

            try {
                EventsFilter filter = new EventsFilter (p);

                Assert.AreEqual (15, filter.VisibleEventTypes.Count);
                Assert.AreEqual (10, filter.VisiblePlayers.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);
            } finally {
                Utils.DeleteProject (p);
            }
        }
示例#6
0
        public void TestFilterCategory()
        {
            ProjectLongoMatch p = Utils.CreateProject ();

            try {
                EventsFilter filter = new EventsFilter (p);

                filter.FilterEventType (p.EventTypes [0], true);
                Assert.AreEqual (1, filter.VisibleEventTypes.Count);
                Assert.AreEqual (1, filter.VisiblePlays.Count);

                filter.FilterEventType (p.EventTypes [1], true);
                Assert.AreEqual (2, filter.VisibleEventTypes.Count);
                Assert.AreEqual (2, filter.VisiblePlays.Count);

                filter.FilterEventType (p.EventTypes [2], true);
                Assert.AreEqual (3, filter.VisibleEventTypes.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);

                filter.FilterEventType (p.EventTypes [0], true);
                Assert.AreEqual (3, filter.VisibleEventTypes.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);

                filter.FilterEventType (p.EventTypes [0], false);
                Assert.AreEqual (2, filter.VisibleEventTypes.Count);
                Assert.AreEqual (2, filter.VisiblePlays.Count);

                filter.FilterEventType (p.EventTypes [1], false);
                Assert.AreEqual (1, filter.VisibleEventTypes.Count);
                Assert.AreEqual (1, filter.VisiblePlays.Count);

                filter.FilterEventType (p.EventTypes [2], false);
                Assert.AreEqual (15, filter.VisibleEventTypes.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);
            } finally {
                Utils.DeleteProject (p);
            }
        }
示例#7
0
        public void TestFilterPlayersDuplicated()
        {
            ProjectLongoMatch p = Utils.CreateProject ();
            p.VisitorTeamTemplate = p.LocalTeamTemplate;

            try {
                EventsFilter filter = new EventsFilter (p);

                Assert.AreEqual (5, filter.VisiblePlayers.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);

                foreach (PlayerLongoMatch player in p.LocalTeamTemplate.List) {
                    filter.FilterPlayer (player, true);
                }
                Assert.AreEqual (5, filter.VisiblePlayers.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);

                foreach (PlayerLongoMatch player in p.VisitorTeamTemplate.List) {
                    filter.FilterPlayer (player, true);
                }
                Assert.AreEqual (5, filter.VisiblePlayers.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);

                filter.ClearAll ();
                Assert.AreEqual (5, filter.VisiblePlayers.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);
            } finally {
                Utils.DeleteProject (p);
            }
        }
示例#8
0
        public void TestFilterPlayers()
        {
            ProjectLongoMatch p = Utils.CreateProject ();

            try {
                EventsFilter filter = new EventsFilter (p);

                Assert.AreEqual (10, filter.VisiblePlayers.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);
                filter.FilterPlayer (p.LocalTeamTemplate.List [4], true);
                Assert.AreEqual (0, filter.VisiblePlays.Count);
                Assert.AreEqual (1, filter.VisiblePlayers.Count);
                filter.FilterPlayer (p.LocalTeamTemplate.List [0], true);
                Assert.AreEqual (1, filter.VisiblePlays.Count);
                Assert.AreEqual (2, filter.VisiblePlayers.Count);
                filter.FilterPlayer (p.LocalTeamTemplate.List [0], true);
                Assert.AreEqual (1, filter.VisiblePlays.Count);
                Assert.AreEqual (2, filter.VisiblePlayers.Count);
                filter.FilterPlayer (p.LocalTeamTemplate.List [0], false);
                Assert.AreEqual (0, filter.VisiblePlays.Count);
                Assert.AreEqual (1, filter.VisiblePlayers.Count);
                filter.FilterPlayer (p.LocalTeamTemplate.List [4], false);
                Assert.AreEqual (10, filter.VisiblePlayers.Count);
                Assert.AreEqual (3, filter.VisiblePlays.Count);
            } finally {
                Utils.DeleteProject (p);
            }
        }
示例#9
0
        public void TestFilterCategoryTags()
        {
            ProjectLongoMatch p = Utils.CreateProject ();

            try {
                EventsFilter filter = new EventsFilter (p);
                AnalysisEventType a;

                Assert.AreEqual (3, filter.VisiblePlays.Count);

                a = p.EventTypes [0] as AnalysisEventType;
                filter.FilterEventTag (a, a.Tags [0], true);
                Assert.AreEqual (1, filter.VisibleEventTypes.Count);
                Assert.AreEqual (0, filter.VisiblePlays.Count);

                a = p.EventTypes [1] as AnalysisEventType;
                filter.FilterEventTag (a, a.Tags [0], true);
                Assert.AreEqual (2, filter.VisibleEventTypes.Count);
                Assert.AreEqual (1, filter.VisiblePlays.Count);

                a = p.EventTypes [2] as AnalysisEventType;
                filter.FilterEventTag (a, a.Tags [0], true);
                Assert.AreEqual (3, filter.VisibleEventTypes.Count);
                Assert.AreEqual (1, filter.VisiblePlays.Count);

                filter.FilterEventTag (a, a.Tags [1], true);
                Assert.AreEqual (2, filter.VisiblePlays.Count);

                a = p.EventTypes [0] as AnalysisEventType;
                filter.FilterEventTag (a, a.Tags [0], false);
                Assert.AreEqual (3, filter.VisiblePlays.Count);

                a = p.EventTypes [1] as AnalysisEventType;
                filter.FilterEventTag (a, a.Tags [0], false);
                filter.FilterEventTag (a, a.Tags [1], true);
                Assert.AreEqual (2, filter.VisiblePlays.Count);
                Assert.AreEqual (p.Timeline [0], filter.VisiblePlays [0]);
                Assert.AreEqual (p.Timeline [2], filter.VisiblePlays [1]);

                /* One tag filtered now, but not the one of this play */
                a = p.EventTypes [2] as AnalysisEventType;
                filter.FilterEventTag (a, a.Tags [1], false);
                Assert.AreEqual (1, filter.VisiblePlays.Count);
                Assert.AreEqual (p.Timeline [0], filter.VisiblePlays [0]);
                /* No more tags filtered, if the category matches we are ok */
                filter.FilterEventTag (a, a.Tags [0], false);
                Assert.AreEqual (2, filter.VisiblePlays.Count);
                Assert.AreEqual (p.Timeline [0], filter.VisiblePlays [0]);
                Assert.AreEqual (p.Timeline [2], filter.VisiblePlays [1]);

                filter.ClearAll ();
                Assert.AreEqual (3, filter.VisiblePlays.Count);
            } finally {
                Utils.DeleteProject (p);
            }
        }
 public void SetFilter(EventsFilter filter, ProjectLongoMatch project)
 {
     this.project = project;
     this.filter = filter;
     FillTree ();
 }
示例#11
0
        bool SetProject(ProjectLongoMatch project, ProjectType projectType, CaptureSettings props)
        {
            if (OpenedProject != null) {
                CloseOpenedProject (true);
            }

            Log.Debug ("Loading project " + project.ID + " " + projectType);

            PlaysFilter = new EventsFilter (project);
            project.CleanupTimers ();
            project.ProjectType = projectType;
            guiToolkit.OpenProject (project, projectType, props, PlaysFilter,
                out analysisWindow);
            Player = analysisWindow.Player;
            Capturer = analysisWindow.Capturer;
            OpenedProject = project;
            OpenedProjectType = projectType;

            if (projectType == ProjectType.FileProject) {
                // Check if the file associated to the project exists
                if (!project.Description.FileSet.CheckFiles ()) {
                    if (!guiToolkit.SelectMediaFiles (project.Description.FileSet)) {
                        CloseOpenedProject (true);
                        return false;
                    }
                }
                try {
                    Player.Open (project.Description.FileSet);
                } catch (Exception ex) {
                    Log.Exception (ex);
                    App.Current.Dialogs.ErrorMessage (Catalog.GetString ("An error occurred opening this project:") + "\n" + ex.Message);
                    CloseOpenedProject (false);
                    return false;
                }

            } else if (projectType == ProjectType.CaptureProject ||
                       projectType == ProjectType.URICaptureProject ||
                       projectType == ProjectType.FakeCaptureProject) {
                try {
                    Capturer.Run (props, project.Description.FileSet.First ());
                } catch (Exception ex) {
                    Log.Exception (ex);
                    App.Current.Dialogs.ErrorMessage (ex.Message);
                    CloseOpenedProject (false);
                    return false;
                }
            }

            EmitProjectChanged ();
            return true;
        }
示例#12
0
		public IAnalysisWindow SetProject (ProjectLongoMatch project, ProjectType projectType, CaptureSettings props, EventsFilter filter)
		{
			ExportProjectAction1.Sensitive = true;

			this.projectType = projectType;
			openedProject = project;
			if (projectType == ProjectType.FileProject) {
				Title = openedProject.Description.Title +
				" - " + Constants.SOFTWARE_NAME;
			} else {
				Title = Constants.SOFTWARE_NAME;
			}
			MakeActionsSensitive (true, projectType);
			if (projectType == ProjectType.FakeCaptureProject) {
				analysisWindow = new FakeAnalysisComponent ();
			} else {
				analysisWindow = new AnalysisComponent ();
			}
			SetPanel (analysisWindow);
			analysisWindow.SetProject (project, projectType, props, filter);
			return analysisWindow;
		}
 public void SetProject(ProjectLongoMatch project, EventsFilter filter)
 {
     eventslistwidget.SetProject (project, filter);
     playersfilter.SetFilter (filter, project);
     categoriesfilter.SetFilter (filter, project);
     playlistwidget.Project = project;
 }