Inheritance: IIDObject
コード例 #1
0
 public PlayerEventTypeStats(Project project, EventsFilter filter, Player player, EventType evType)
 {
     this.filter = filter;
     this.player = player;
     this.project = project;
     this.EventType = evType;
 }
コード例 #2
0
ファイル: TestTimelineEvent.cs プロジェクト: GNOME/longomatch
        public TimelineEvent CreateTimelineEvent()
        {
            TimelineEvent evt = new TimelineEvent ();
            evtType1 = new EventType { Name = "Cat1" };

            evt.EventType = evtType1;
            evt.Notes = "notes";
            evt.Selected = true;
            evt.Team = TeamType.LOCAL;
            evt.FieldPosition = new Coordinates ();
            evt.FieldPosition.Points.Add (new Point (1, 2));
            evt.HalfFieldPosition = new Coordinates ();
            evt.HalfFieldPosition.Points.Add (new Point (4, 5));
            evt.GoalPosition = new Coordinates ();
            evt.GoalPosition.Points.Add (new Point (6, 7));
            evt.Rate = 1.5f;
            evt.Name = "Play";
            evt.Start = new Time (1000);
            evt.EventTime = new Time (1500);
            evt.Stop = new Time (2000);
            evt.Rate = 2.3f;

            evt.Tags.Add (new Tag ("test"));
            return evt;
        }
コード例 #3
0
        public TimelineEventLongoMatch CreateTimelineEvent()
        {
            TimelineEventLongoMatch evt = new TimelineEventLongoMatch ();
            evtType1 = new EventType { Name = "Cat1" };

            evt.EventType = evtType1;
            evt.Notes = "notes";
            evt.Playing = true;
            evt.Teams.Add (new SportsTeam ());
            evt.FieldPosition = new Coordinates ();
            evt.FieldPosition.Points.Add (new Point (1, 2));
            evt.HalfFieldPosition = new Coordinates ();
            evt.HalfFieldPosition.Points.Add (new Point (4, 5));
            evt.GoalPosition = new Coordinates ();
            evt.GoalPosition.Points.Add (new Point (6, 7));
            evt.Rate = 1.5f;
            evt.Name = "Play";
            evt.Start = new Time (1000);
            evt.EventTime = new Time (1500);
            evt.Stop = new Time (2000);
            evt.Rate = 2.3f;

            evt.Tags.Add (new Tag ("test"));
            return evt;
        }
コード例 #4
0
 public EditCategoryDialog(ProjectLongoMatch project, EventType eventType, Window parent)
 {
     TransientFor = parent;
     this.Build ();
     timenodeproperties2.EventType = eventType;
     timenodeproperties2.Dashboard = project.Dashboard;
 }
コード例 #5
0
ファイル: EventTypeStats.cs プロジェクト: GNOME/longomatch
 public EventTypeStats(Project project, EventsFilter filter, EventType evType)
 {
     Name = evType.Name;
     events = new List<TimelineEvent> ();
     this.project = project;
     this.filter = filter;
     this.eventType = evType;
 }
コード例 #6
0
        public void ShowMenu(ProjectLongoMatch project, EventType eventType,
							  IList<TimelineEventLongoMatch> events)
        {
            this.eventType = eventType;
            this.events = events;
            SetupSortMenu ();
            MenuHelpers.FillAddToPlaylistMenu (addToPlaylistMenuItem, project.Playlists, events);
            MenuHelpers.FillExportToVideoFileMenu (exportToVideoFileItem, project, events, Catalog.GetString ("Export to video file"));
            Popup ();
        }
コード例 #7
0
        override protected bool OnButtonPressEvent(Gdk.EventButton evnt)
        {
            TreePath[] paths = Selection.GetSelectedRows();

            if (Misc.RightButtonClicked(evnt))
            {
                // We don't want to unselect the play when several
                // plays are selected and we clik the right button
                // For multiedition
                if (paths.Length <= 1)
                {
                    base.OnButtonPressEvent(evnt);
                    paths = Selection.GetSelectedRows();
                }

                if (paths.Length == 1)
                {
                    TimeNode selectedTimeNode = GetValueFromPath(paths [0]) as TimeNode;

                    if (selectedTimeNode != null)
                    {
                        ShowMenu();
                    }
                    else
                    {
                        EventType eventType = GetValueFromPath(paths [0]) as EventType;
                        SetupSortMenu(eventType.SortMethod);
                        categoriesMenu.Popup();
                    }
                }
                else if (paths.Length > 1)
                {
                    ShowMenu();
                }
                return(true);
            }
            else if ((evnt.Type == Gdk.EventType.ButtonPress) && (evnt.Button == 1))
            {
                base.OnButtonPressEvent(evnt);
                paths = Selection.GetSelectedRows();
                if (paths.Length == 1 && GetValueFromPath(paths [0]) is EventType)
                {
                    dragging    = true;
                    catClicked  = true;
                    dragStarted = false;
                    startX      = (int)evnt.X;
                    startY      = (int)evnt.Y;
                }
                return(true);
            }
            else
            {
                return(base.OnButtonPressEvent(evnt));
            }
        }
コード例 #8
0
        public static void RenderAnalysisCategory(EventType cat, int count, bool isExpanded, IDrawingToolkit tk,
		                                           IContext context, Area backgroundArea, Area cellArea)
        {
            Point textP = new Point (StyleConf.ListTextOffset, cellArea.Start.Y);
            tk.Context = context;
            tk.Begin ();
            RenderBackgroundAndText (isExpanded, tk, backgroundArea, textP, cellArea.Width - textP.X, cat.Name);
            RenderCount (isExpanded, cat.Color, count, tk, backgroundArea, cellArea);
            RenderSeparationLine (tk, context, backgroundArea);
            tk.End ();
        }
コード例 #9
0
        protected override bool OnDragMotion(DragContext context, int x, int y, uint time)
        {
            TreePath             path;
            TreeViewDropPosition pos;

            if (GetDestRowAtPos(x, y, out path, out pos))
            {
                EventType ev = GetValueFromPath(path) as EventType;
                if (ev != null)
                {
                    DisableDragInto(path, context, time, pos);
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            return(false);
        }
コード例 #10
0
ファイル: TestEventType.cs プロジェクト: GNOME/longomatch
        public void TestEvntType()
        {
            string jsonString;
            EventType evType;
            MemoryStream stream;
            StreamReader reader;

            evType = new EventType();
            evType.Color = new Color (255, 0, 0);
            evType.Name = "test";
            evType.SortMethod = SortMethodType.SortByDuration;
            evType.TagFieldPosition = true;
            evType.TagGoalPosition = true;
            evType.TagHalfFieldPosition = true;
            evType.FieldPositionIsDistance = true;
            evType.HalfFieldPositionIsDistance = false;

            Utils.CheckSerialization (evType);

            stream = new MemoryStream ();
            Serializer.Save (evType, stream, SerializationType.Json);
            stream.Seek (0, SeekOrigin.Begin);
            reader = new StreamReader (stream);
            jsonString = reader.ReadToEnd();
            Assert.IsFalse (jsonString.Contains ("SortMethodString"));
            stream.Seek (0, SeekOrigin.Begin);
            EventType newEventType = Serializer.Load<EventType> (stream, SerializationType.Json);

            Assert.AreEqual (evType.ID, newEventType.ID);
            Assert.AreEqual (evType.Name, newEventType.Name);
            Assert.AreEqual (evType.SortMethod, newEventType.SortMethod);
            Assert.AreEqual (evType.TagFieldPosition, newEventType.TagFieldPosition);
            Assert.AreEqual (evType.TagGoalPosition, newEventType.TagGoalPosition);
            Assert.AreEqual (evType.TagHalfFieldPosition, newEventType.TagHalfFieldPosition);
            Assert.AreEqual (evType.FieldPositionIsDistance, newEventType.FieldPositionIsDistance);
            Assert.AreEqual (evType.HalfFieldPositionIsDistance, newEventType.HalfFieldPositionIsDistance);
            Assert.AreEqual (255, newEventType.Color.R);
            Assert.AreEqual (0, newEventType.Color.G);
            Assert.AreEqual (0, newEventType.Color.B);
        }
コード例 #11
0
        protected override void OnDragBegin(DragContext context)
        {
            TreePath       path;
            TreeViewColumn col;
            int            cellX, cellY;

            GetPathAtPos(startX, startY, out path, out col, out cellX, out cellY);
            draggedEventType = GetValueFromPath(path) as EventType;


            if (draggedEventType != null)
            {
                GetPathAtPos(startX, startY, out path, out col, out cellX, out cellY);
                Model.GetIter(out srcIter, path);
                Pixmap rowPix = CreateRowDragIcon(path);
                Gtk.Drag.SetIconPixmap(context, rowPix.Colormap, rowPix, null, startX + 1, cellY + 1);
            }
            else
            {
                Gtk.Drag.Finish(context, false, false, context.StartTime);
            }
        }
コード例 #12
0
ファイル: EventsFilter.cs プロジェクト: GNOME/longomatch
 public void FilterEventType(EventType evType, bool visible)
 {
     if (visible) {
         if (!eventsFilter.ContainsKey (evType))
             eventsFilter [evType] = new List<Tag> ();
     } else {
         if (eventsFilter.ContainsKey (evType))
             eventsFilter.Remove (evType);
     }
     Update ();
 }
コード例 #13
0
ファイル: EventsFilter.cs プロジェクト: GNOME/longomatch
        public void FilterEventTag(EventType evType, Tag tag, bool visible)
        {
            List<Tag> tags;

            if (visible) {
                FilterEventType (evType, true);
                tags = eventsFilter [evType];
                if (!tags.Contains (tag))
                    tags.Add (tag);
            } else {
                if (eventsFilter.ContainsKey (evType)) {
                    tags = eventsFilter [evType];
                    if (tags.Contains (tag))
                        tags.Remove (tag);
                }
            }
            Update ();
        }
コード例 #14
0
        void HandleNewTagEvent(EventType evntType, List<Player> players, ObservableCollection<Team> teams, List<Tag> tags,
		                        Time start, Time stop, Time eventTime, DashboardButton btn)
        {
            /* Forward event until we have players integrted in the dashboard layout */
            if (NewTagEvent != null) {
                NewTagEvent (evntType, players, teams, tags, start, stop, eventTime, btn);
            }
        }
コード例 #15
0
ファイル: PlaysTreeView.cs プロジェクト: GNOME/longomatch
        protected override void OnDragBegin(DragContext context)
        {
            TreePath path;
            TreeViewColumn col;
            int cellX, cellY;

            GetPathAtPos (startX, startY, out path, out col, out cellX, out cellY);
            draggedEventType = GetValueFromPath (path) as EventType;

            if (draggedEventType != null) {
                GetPathAtPos (startX, startY, out path, out col, out cellX, out cellY);
                Model.GetIter (out srcIter, path);
                Pixmap rowPix = CreateRowDragIcon (path);
                Gtk.Drag.SetIconPixmap (context, rowPix.Colormap, rowPix, null, startX + 1, cellY + 1);
            } else {
                Gtk.Drag.Finish (context, false, false, context.StartTime);
            }
        }
コード例 #16
0
        public override TimelineEvent AddEvent(EventType type, Time start, Time stop, Time eventTime, Image miniature,
		                                        bool addToTimeline = true)
        {
            TimelineEventLongoMatch evt;
            string count;
            string name;

            count = String.Format ("{0:000}", EventsByType (type).Count + 1);
            name = String.Format ("{0} {1}", type.Name, count);
            evt = new TimelineEventLongoMatch ();

            evt.Name = name;
            evt.Start = start;
            evt.Stop = stop;
            evt.EventTime = eventTime;
            evt.EventType = type;
            evt.Notes = "";
            evt.Miniature = miniature;
            evt.CamerasConfig = new ObservableCollection<CameraConfig> { new CameraConfig (0) };
            evt.FileSet = Description.FileSet;
            evt.Project = this;

            if (addToTimeline) {
                Timeline.Add (evt);
            }

            if (addToTimeline) {
                if (evt.EventType is ScoreEventType) {
                    UpdateScore ();
                }
            }
            return evt;
        }
コード例 #17
0
 protected virtual void OnEditProperties(EventType eventType)
 {
     EditCategoryDialog dialog = new EditCategoryDialog (project, eventType,
         this.Toplevel as Window);
     dialog.Run ();
     dialog.Destroy ();
 }
コード例 #18
0
ファイル: EventsBroker.cs プロジェクト: GNOME/longomatch
        public void EmitNewEvent(EventType eventType, List<Player> players = null, TeamType team = TeamType.NONE,
		                          List<Tag> tags = null, Time start = null, Time stop = null,
		                          Time eventTime = null, Score score = null, PenaltyCard card = null)
        {
            if (NewEventEvent != null)
                NewEventEvent (eventType, players, team, tags, start, stop, eventTime, score, card, null);
        }
コード例 #19
0
        protected override void PrepareMenu(Project project, IEnumerable<TimelineEvent> plays, EventType eventType, Time time,
										 IList<EventType> eventTypes, bool editableName)
        {
            bool isLineup = false, isSubstitution = false;

            this.plays = plays.ToList ();
            this.eventType = eventType;
            this.time = time;
            this.project = project;

            if (eventType != null) {
                string label = String.Format ("{0} in {1}", Catalog.GetString ("Add new event"), eventType.Name);
                newPlay.SetLabel (label);
                newPlay.Visible = true;
            } else {
                newPlay.Visible = false;
            }

            if (plays == null) {
                plays = new List<TimelineEvent> ();
            } else if (plays.Count () == 1) {
                isLineup = plays.FirstOrDefault () is LineupEvent;
                isSubstitution = plays.FirstOrDefault () is SubstitutionEvent;
            }

            if (isLineup || isSubstitution) {
                edit.Visible = true;
                del.Visible = isSubstitution;
                snapshot.Visible = moveCat.Visible = drawings.Visible =
                    addPLN.Visible = render.Visible = duplicate.Visible = false;
            } else {
                edit.Visible = editableName && this.plays.Count == 1;
                snapshot.Visible = this.plays.Count == 1;
                drawings.Visible = this.plays.Count == 1 && this.plays.FirstOrDefault ().Drawings.Count > 0;
                moveCat.Visible = del.Visible = addPLN.Visible = duplicate.Visible = this.plays.Any ();
            }

            MenuHelpers.FillExportToVideoFileMenu (render, project, plays, Catalog.GetString ("Export to video file"));

            if (plays.Count () > 0) {
                string label = String.Format ("{0} ({1})", Catalog.GetString ("Delete"), plays.Count ());
                del.SetLabel (label);
                label = String.Format ("{0} ({1})", Catalog.GetString ("Duplicate "), plays.Count ());
                duplicate.SetLabel (label);
            }

            if (moveCat.Visible) {
                Menu catMenu = new Menu ();
                foreach (EventType c in eventTypes) {
                    if (plays.Any (p => p.EventType == c))
                        continue;
                    var item = new MenuItem (c.Name);
                    catMenu.Append (item);
                    item.Activated += (sender, e) => {
                        App.Current.EventsBroker.Publish<MoveToEventTypeEvent> (
                            new MoveToEventTypeEvent {
                                TimelineEvents = plays.ToList (),
                                EventType = c
                            }
                        );
                    };
                }
                catMenu.ShowAll ();
                moveCat.Submenu = catMenu;
            }

            if (drawings.Visible) {
                Menu drawingsMenu = new Menu ();
                for (int i = 0; i < plays.FirstOrDefault ().Drawings.Count; i++) {
                    int index = i;
                    MenuItem drawingItem = new MenuItem (Catalog.GetString ("Drawing ") + (i + 1));
                    MenuItem editItem = new MenuItem (Catalog.GetString ("Edit"));
                    MenuItem deleteItem = new MenuItem (Catalog.GetString ("Delete"));
                    Menu drawingMenu = new Menu ();

                    drawingsMenu.Append (drawingItem);
                    drawingMenu.Append (editItem);
                    drawingMenu.Append (deleteItem);
                    editItem.Activated += (sender, e) => {
                        App.Current.EventsBroker.Publish<DrawFrameEvent> (
                            new DrawFrameEvent {
                                Play = plays.FirstOrDefault (),
                                DrawingIndex = index,
                                CamConfig = plays.FirstOrDefault ().Drawings [index].CameraConfig,
                                Current = false
                            }
                        );
                    };
                    deleteItem.Activated += (sender, e) => {
                        plays.FirstOrDefault ().Drawings.RemoveAt (index);
                        plays.FirstOrDefault ().UpdateMiniature ();
                    };
                    drawingItem.Submenu = drawingMenu;
                    drawingMenu.ShowAll ();
                }
                drawingsMenu.ShowAll ();
                drawings.Submenu = drawingsMenu;
            }

            if (!IsLineupEvent ()) {
                MenuHelpers.FillAddToPlaylistMenu (addPLN, project.Playlists, this.plays);
            }
        }
コード例 #20
0
ファイル: DashboardWidget.cs プロジェクト: GNOME/longomatch
        void HandleNewTagEvent(EventType evntType, List<Player> players, TeamType team, List<Tag> tags,
		                        Time start, Time stop, Time eventTime, Score score, PenaltyCard card, DashboardButton btn)
        {
            /* Forward event until we have players integrted in the dashboard layout */
            if (NewTagEvent != null) {
                NewTagEvent (evntType, players, team, tags, start, stop, eventTime, score, card, btn);
            }
            //Config.EventsBroker.EmitNewTag (button, players, tags, start, stop);
        }
コード例 #21
0
ファイル: EventsManager.cs プロジェクト: GNOME/longomatch
 protected virtual void OnPlayCategoryChanged(TimelineEvent play, EventType evType)
 {
     var newplay = Cloner.Clone (play);
     newplay.ID = Guid.NewGuid ();
     newplay.EventType = evType;
     newplay.Players = play.Players;
     DeletePlays (new List<TimelineEvent> { play }, false);
     openedProject.AddEvent (newplay);
     analysisWindow.AddPlay (newplay);
     Save (openedProject);
     filter.Update ();
 }
コード例 #22
0
ファイル: EventsManager.cs プロジェクト: GNOME/longomatch
        public void OnNewTag(EventType evType, List<Player> players, TeamType team, List<Tag> tags,
		                      Time start, Time stop, Time eventTime, Score score, PenaltyCard card, DashboardButton btn)
        {
            if (player == null || openedProject == null)
                return;

            if (projectType == ProjectType.CaptureProject ||
                projectType == ProjectType.URICaptureProject) {
                if (!capturer.Capturing) {
                    guiToolkit.WarningMessage (Catalog.GetString ("Video capture is stopped"));
                    return;
                }
            }
            Log.Debug (String.Format ("New play created start:{0} stop:{1} category:{2}",
                start.ToMSecondsString (), stop.ToMSecondsString (),
                evType.Name));
            /* Add the new created play to the project and update the GUI*/
            var play = openedProject.AddEvent (evType, start, stop, eventTime, null, score, card);
            play.Team = team;
            if (players != null) {
                play.Players = players;
            }
            if (tags != null) {
                play.Tags = tags;
            }
            AddNewPlay (play);
        }
コード例 #23
0
ファイル: PlaysMenu.cs プロジェクト: GNOME/longomatch
        private void ShowMenu(Project project, List<TimelineEvent> plays, EventType eventType, Time time,
		                       List<EventType> eventTypes, bool editableName)
        {
            bool isLineup = false, isSubstitution = false;

            this.plays = plays;
            this.eventType = eventType;
            this.time = time;
            this.project = project;

            if (eventType != null) {
                string label = String.Format ("{0} in {1}", Catalog.GetString ("Add new event"), eventType.Name);
                newPlay.SetLabel (label);
                newPlay.Visible = true;
            } else {
                newPlay.Visible = false;
            }

            if (plays == null) {
                plays = new List<TimelineEvent> ();
            } else if (plays.Count == 1) {
                isLineup = plays [0] is LineupEvent;
                isSubstitution = plays [0] is SubstitutionEvent;
            }

            if (isLineup || isSubstitution) {
                edit.Visible = true;
                del.Visible = isSubstitution;
                snapshot.Visible = moveCat.Visible = drawings.Visible =
                    addPLN.Visible = render.Visible = duplicate.Visible = false;
            } else {
                edit.Visible = editableName && plays.Count == 1;
                snapshot.Visible = plays.Count == 1;
                moveCat.Visible = plays.Count == 1 && eventTypes != null;
                drawings.Visible = plays.Count == 1 && plays [0].Drawings.Count > 0;
                del.Visible = plays.Count > 0;
                addPLN.Visible = plays.Count > 0;
                render.Visible = plays.Count > 0;
                duplicate.Visible = plays.Count > 0;
            }

            if (plays.Count > 0) {
                string label = String.Format ("{0} ({1})", Catalog.GetString ("Delete"), plays.Count);
                del.SetLabel (label);
                label = String.Format ("{0} ({1})", Catalog.GetString ("Add to playlist"), plays.Count);
                addPLN.SetLabel (label);
                label = String.Format ("{0} ({1})", Catalog.GetString ("Export to video file"), plays.Count);
                render.SetLabel (label);
                label = String.Format ("{0} ({1})", Catalog.GetString ("Duplicate "), plays.Count);
                duplicate.SetLabel (label);
            }

            if (moveCat.Visible) {
                Menu catMenu = new Menu ();
                foreach (EventType c in eventTypes) {
                    if (plays [0].EventType == c)
                        continue;
                    var item = new MenuItem (c.Name);
                    catMenu.Append (item);
                    item.Activated += (sender, e) => {
                        Config.EventsBroker.EmitMoveToEventType (plays [0], c);
                    };
                }
                catMenu.ShowAll ();
                moveCat.Submenu = catMenu;
            }

            if (drawings.Visible) {
                Menu drawingsMenu = new Menu ();
                for (int i = 0; i < plays [0].Drawings.Count; i++) {
                    int index = i;
                    MenuItem drawingItem = new MenuItem (Catalog.GetString ("Drawing ") + (i + 1));
                    MenuItem editItem = new MenuItem (Catalog.GetString ("Edit"));
                    MenuItem deleteItem = new MenuItem (Catalog.GetString ("Delete"));
                    Menu drawingMenu = new Menu ();

                    drawingsMenu.Append (drawingItem);
                    drawingMenu.Append (editItem);
                    drawingMenu.Append (deleteItem);
                    editItem.Activated += (sender, e) => {
                        Config.EventsBroker.EmitDrawFrame (plays [0], index,
                            plays [0].Drawings [index].CameraConfig, false);
                    };
                    deleteItem.Activated += (sender, e) => {
                        plays [0].Drawings.RemoveAt (index);
                        plays [0].UpdateMiniature ();
                    };
                    drawingItem.Submenu = drawingMenu;
                    drawingMenu.ShowAll ();
                }
                drawingsMenu.ShowAll ();
                drawings.Submenu = drawingsMenu;
            }

            if (project.Playlists != null) {
                Menu plMenu = new Menu ();
                MenuItem item;

                foreach (Playlist pl in project.Playlists) {
                    item = new MenuItem (pl.Name);
                    plMenu.Append (item);
                    item.Activated += (sender, e) => {
                        IEnumerable<IPlaylistElement> elements;

                        elements = plays.Select (p => new PlaylistPlayElement (p, project.Description.FileSet));
                        Config.EventsBroker.EmitAddPlaylistElement (pl, elements.ToList ());
                    };
                }

                item = new MenuItem (Catalog.GetString ("Create new playlist..."));
                plMenu.Append (item);
                item.Activated += (sender, e) => {
                    IEnumerable<IPlaylistElement> elements;
                    elements = plays.Select (p => new PlaylistPlayElement (p, project.Description.FileSet));
                    Config.EventsBroker.EmitAddPlaylistElement (null, elements.ToList ());
                };

                plMenu.ShowAll ();
                addPLN.Submenu = plMenu;
            }

            Popup ();
        }
コード例 #24
0
ファイル: PlaysMenu.cs プロジェクト: GNOME/longomatch
 public void ShowTimelineMenu(Project project, List<TimelineEvent> plays, EventType eventType, Time time)
 {
     ShowMenu (project, plays, eventType, time, null, false);
 }
コード例 #25
0
ファイル: EventsBroker.cs プロジェクト: GNOME/longomatch
 public virtual void EmitMoveToEventType(TimelineEvent evnt, EventType eventType)
 {
     if (MoveToEventTypeEvent != null)
         MoveToEventTypeEvent (evnt, eventType);
 }
コード例 #26
0
ファイル: CodingWidget.cs プロジェクト: LongoMatch/longomatch
        void HandleNewTagEvent(EventType eventType, List<Player> players, ObservableCollection<Team> teams, List<Tag> tags,
		                        Time start, Time stop, Time eventTime, DashboardButton btn)
        {
            TimelineEventLongoMatch play = project.AddEvent (eventType, start, stop, eventTime,
                                               null, false) as TimelineEventLongoMatch;
            play.Teams = new ObservableCollection<Team> (teamtagger.SelectedTeams);
            if (selectedPlayers != null) {
                play.Players = new ObservableCollection<Player> (selectedPlayers);
            } else {
                play.Players = new ObservableCollection<Player> ();
            }
            if (tags != null) {
                play.Tags = new ObservableCollection <Tag> (tags);
            } else {
                play.Tags = new ObservableCollection<Tag> ();
            }
            teamtagger.ResetSelection ();
            selectedPlayers = null;
            App.Current.EventsBroker.Publish<NewDashboardEvent> (
                new NewDashboardEvent {
                    TimelineEvent = play,
                    DashboardButton = btn,
                    Edit = true,
                    DashboardButtons = null
                }
            );
        }
コード例 #27
0
ファイル: CSVExporter.cs プロジェクト: GNOME/longomatch
        void ExportCategory(EventType evt)
        {
            string headers;
            List<TimelineEvent> plays;

            output.Add ("CATEGORY: " + evt.Name);
            plays = project.EventsByType (evt);

            /* Write Headers for this category */
            headers = "Name;Time;Start;Stop;Team;Player";
            if (evt is ScoreEventType) {
                headers += ";Score";
            }
            if (evt is AnalysisEventType) {
                foreach (Tag tag in (evt as AnalysisEventType).Tags) {
                    headers += String.Format (";{0}", tag.Value);
                }
            }
            output.Add (headers);

            foreach (TimelineEvent play in plays.OrderBy(p=>p.Start)) {
                string line;

                line = String.Format ("{0};{1};{2};{3};{4};{5}", play.Name,
                    play.EventTime == null ? "" : play.EventTime.ToMSecondsString (),
                    play.Start.ToMSecondsString (),
                    play.Stop.ToMSecondsString (),
                    TeamName (project.EventTaggedTeam (play)),
                    String.Join (" | ", play.Players));

                if (evt is ScoreEventType) {
                    line += ";" + (play as ScoreEvent).Score.Points;
                }

                /* Strings Tags */
                if (evt is AnalysisEventType) {
                    foreach (Tag tag in (evt as AnalysisEventType).Tags) {
                        line += ";" + (play.Tags.Contains (tag) ? "1" : "0");
                    }
                }
                output.Add (line);
            }
            output.Add ("");
        }
コード例 #28
0
        protected new void ShowMenu(Project project, IEnumerable<TimelineEvent> plays, EventType eventType, Time time,
										  IList<EventType> eventTypes, bool editableName)
        {
            PrepareMenu (project, plays, eventType, time, eventTypes, editableName);
            Popup ();
        }