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); }
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()); }
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); }
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); }
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); }
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 }); } } }
public void RemoveTimelineEvent(LMTimelineEventVM timelineEventVM) { Objects.Remove(eventToView [timelineEventVM]); eventToView.Remove(timelineEventVM); }