Example #1
0
        void FillTags(LMProject project, LMTimelineEventVM eventVM)
        {
            Dictionary <string, List <Tag> > tagsByGroup;
            SizeGroup sgroup = new SizeGroup(SizeGroupMode.Horizontal);

            if (eventVM.EventType is AnalysisEventType)
            {
                tagsByGroup = (eventVM.EventType as AnalysisEventType).TagsByGroup;
            }
            else
            {
                tagsByGroup = new Dictionary <string, List <Tag> > ();
            }

            tagsvbox.PackStart(new HSeparator());
            foreach (var kv in project.Dashboard.CommonTagsByGroup)
            {
                AddTagsGroup(eventVM, kv.Key, kv.Value, sgroup);
            }
            foreach (var kv in tagsByGroup)
            {
                AddTagsGroup(eventVM, kv.Key, kv.Value, sgroup);
            }
            tagsvbox.ShowAll();
        }
        public void TestEventDrawWhenPointChanges()
        {
            int redrawCount = 0;
            Mock <IDrawingToolkit> tkMock = new Mock <IDrawingToolkit> ();
            var timelineEvent             = new LMTimelineEvent {
                EventType = new EventType()
            };
            var timelineEventVM = new LMTimelineEventVM {
                Model = timelineEvent
            };
            TimelineEventLocationView view = new TimelineEventLocationView {
                FieldPosition    = FieldPositionType.Field,
                BackgroundWidth  = 100,
                BackgroundHeight = 100,
            };

            view.SetViewModel(timelineEventVM);
            view.RedrawEvent += (co, area) => redrawCount++;

            timelineEvent.EventType.TagFieldPosition = true;
            timelineEvent.AddDefaultPositions();

            view.Points = timelineEvent.FieldPosition.Points;
            view.Draw(tkMock.Object, null);

            Assert.Greater(redrawCount, 1);
            tkMock.Verify(tk => tk.DrawCircle(It.IsAny <Point> (), It.IsAny <double> ()), Times.Once());
        }
        public void TestSetEventVMWithCoordinates()
        {
            Mock <IDrawingToolkit> tkMock = new Mock <IDrawingToolkit> ();
            var timelineEvent             = new LMTimelineEvent {
                EventType = new EventType()
            };

            timelineEvent.EventType.TagFieldPosition = true;
            timelineEvent.AddDefaultPositions();
            var timelineEventVM = new LMTimelineEventVM {
                Model = timelineEvent
            };

            TimelineEventLocationView view = new TimelineEventLocationView {
                FieldPosition    = FieldPositionType.Field,
                BackgroundWidth  = 100,
                BackgroundHeight = 100,
            };

            view.SetViewModel(timelineEventVM);

            view.Draw(tkMock.Object, null);

            tkMock.Verify(tk => tk.DrawCircle(It.IsAny <Point> (), It.IsAny <double> ()), Times.Once());
        }
        public void HandleViewModelPropertyChanged_TimeChanged_RedrawNotTriggered()
        {
            int redrawCount = 0;
            Mock <IDrawingToolkit> tkMock = new Mock <IDrawingToolkit> ();
            var timelineEvent             = new LMTimelineEvent {
                EventType = new EventType()
            };
            var timelineEventVM = new LMTimelineEventVM {
                Model = timelineEvent
            };
            TimelineEventLocationView view = new TimelineEventLocationView {
                FieldPosition    = FieldPositionType.Field,
                BackgroundWidth  = 100,
                BackgroundHeight = 100,
            };

            view.SetViewModel(timelineEventVM);
            timelineEvent.EventType.TagFieldPosition = true;
            timelineEvent.AddDefaultPositions();
            view.RedrawEvent += (co, area) => redrawCount++;

            timelineEventVM.Start = new Time();

            Assert.AreEqual(0, redrawCount);
        }
Example #5
0
        void AddTagsGroup(LMTimelineEventVM evt, string grp, List <Tag> tags, SizeGroup sgroup)
        {
            HBox        box       = new HBox();
            Label       label     = new Label(String.IsNullOrEmpty(grp) ? Catalog.GetString("Common tags") : grp);
            Table       tagstable = new Table((uint)(tags.Count / TAGS_PER_ROW), TAGS_PER_ROW, true);
            RadioButton first     = null;
            Tag         noneTag   = new Tag(Catalog.GetString("None"));

            label.WidthRequest = 200;
            if (!String.IsNullOrEmpty(grp))
            {
                tags.Insert(0, noneTag);
            }
            for (int i = 0; i < tags.Count; i++)
            {
                uint        row_top, row_bottom, col_left, col_right;
                Tag         t = tags [i];
                CheckButton tb;
                if (String.IsNullOrEmpty(grp))
                {
                    tb = new CheckButton(t.Value);
                }
                else
                {
                    if (first == null)
                    {
                        tb = first = new RadioButton(t.Value);
                    }
                    else
                    {
                        tb = new RadioButton(first, t.Value);
                    }
                }
                tb.Active   = evt.Tags.Contains(t);
                tb.Toggled += (sender, e) => {
                    if (tb.Active && t != noneTag)
                    {
                        evt.Tags.Add(t);
                    }
                    else
                    {
                        evt.Tags.Remove(t);
                    }
                };
                row_top    = (uint)(i / tagstable.NColumns);
                row_bottom = (uint)row_top + 1;
                col_left   = (uint)i % tagstable.NColumns;
                col_right  = (uint)col_left + 1;
                tagstable.Attach(tb, col_left, col_right, row_top, row_bottom);
            }
            sgroup.AddWidget(label);
            box.PackStart(label, false, true, 0);
            box.PackEnd(tagstable, true, true, 0);
            box.Spacing = 5;
            tagsvbox.PackStart(box, false, true, 0);
            tagsvbox.PackStart(new HSeparator());
        }
Example #6
0
 void LoadTimelineEvent(LMTimelineEventVM evt)
 {
     fieldDrawingarea.Visible  = evt.EventType.TagFieldPosition;
     hfieldDrawingarea.Visible = evt.EventType.TagHalfFieldPosition;
     goalDrawingarea.Visible   = evt.EventType.TagGoalPosition;
     field.SetViewModel(evt);
     hfield.SetViewModel(evt);
     goal.SetViewModel(evt);
 }
Example #7
0
        public void AddTimelineEvent(LMTimelineEventVM timelineEventVM)
        {
            var po = new TimelineEventLocationView {
                BackgroundWidth  = Background.Width,
                BackgroundHeight = Background.Height,
                FieldPosition    = FieldPosition
            };

            po.SetViewModel(timelineEventVM);
            eventToView [timelineEventVM] = po;
            AddObject(po);
        }
Example #8
0
        void LoadTimelineEvent(LMTimelineEvent timelineEvent)
        {
            var viewModel = new LMTimelineEventVM {
                Model = timelineEvent
            };

            fieldDrawingarea.Visible  = timelineEvent.EventType.TagFieldPosition;
            hfieldDrawingarea.Visible = timelineEvent.EventType.TagHalfFieldPosition;
            goalDrawingarea.Visible   = timelineEvent.EventType.TagGoalPosition;
            field.SetViewModel(viewModel);
            hfield.SetViewModel(viewModel);
            goal.SetViewModel(viewModel);
        }
Example #9
0
 protected override void SelectionChanged(List <Selection> selections)
 {
     if (selections.Count > 0)
     {
         LMTimelineEventVM p = (selections.Last().Drawable as TimelineEventLocationView).ViewModel;
         if (EmitSignals)
         {
             // FIXME: Use a ViewModel command
             App.Current.EventsBroker.Publish(new LoadEventEvent {
                 TimelineEvent = p.Model
             });
         }
     }
 }
Example #10
0
 public void RemoveTimelineEvent(LMTimelineEventVM timelineEventVM)
 {
     Objects.Remove(eventToView [timelineEventVM]);
     eventToView.Remove(timelineEventVM);
 }