示例#1
0
        void HandlePropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (sender is TimeNodeVM)
            {
                TimeNodeVM timenode = sender as TimeNodeVM;
                Time       seekTime = null;

                if (e.PropertyName == nameof(TimeNode.Start))
                {
                    seekTime = timenode.Start;
                }
                else if (e.PropertyName == nameof(TimeNode.Stop))
                {
                    seekTime = timenode.Stop;
                }
                if (seekTime != null)
                {
                    videoPlayerVM.PauseCommand.Execute(false);
                    videoPlayerVM.SeekCommand.Execute(new VideoPlayerSeekOptions(seekTime));
                }
            }
            if (sender is MediaFileVM)
            {
                if (e.PropertyName == nameof(MediaFile.Offset))
                {
                    videoPlayerVM.PauseCommand.Execute(false);
                    videoPlayerVM.SeekCommand.Execute(new VideoPlayerSeekOptions(videoPlayerVM.CurrentTime, true));
                }
            }
        }
示例#2
0
        /// <summary>
        /// Removes a node from the timeline.
        /// </summary>
        /// <param name="node">Node.</param>
        protected void RemoveNode(TimeNodeVM node)
        {
            TimeNodeView to;

            to = this.OfType <TimeNodeView> ().FirstOrDefault(n => n.TimeNode == node);
            if (to != null)
            {
                Remove(to);
            }
        }
示例#3
0
        public void TestChangeModel()
        {
            int        eventCount = 0;
            TimeNode   timeNode   = new TimeNode();
            TimeNodeVM viewModel  = new TimeNodeVM();

            viewModel.Model            = null;
            viewModel.Model            = timeNode;
            viewModel.PropertyChanged += (sender, e) => eventCount++;

            timeNode.EventTime = new Time(0);

            Assert.AreEqual(1, eventCount);
        }
示例#4
0
        void AddTimeNode(TimeNodeVM timeNodeVM, TimerVM timerVM)
        {
            TimerTimeNodeView to = new TimerTimeNodeView();

            to.ViewModel       = timeNodeVM;
            to.Timer           = timerVM;
            to.OffsetY         = OffsetY;
            to.Height          = Height;
            to.SecondsPerPixel = SecondsPerPixel;
            to.MaxTime         = Duration;
            to.DraggingMode    = DraggingMode;
            to.ShowName        = true;
            to.LineColor       = LineColor;
            AddNode(to);
        }
示例#5
0
        public void TestForwardProperties()
        {
            int count = 0;
            var model = new TimeNode {
                Name = "Event"
            };
            var viewModel = new TimeNodeVM {
                Model = model,
            };

            viewModel.PropertyChanged += (sender, e) => count++;
            viewModel.Name             = "Event2";

            Assert.AreEqual(2, count);
        }
示例#6
0
        public void TestProperties()
        {
            var model = new TimeNode {
                Start = new Time(0),
                Stop  = new Time(10), EventTime = new Time(5),
                Name  = "Event"
            };
            var viewModel = new TimeNodeVM {
                Model = model,
            };

            Assert.AreEqual("Event", viewModel.Name);
            Assert.AreEqual(new Time(0), viewModel.Start);
            Assert.AreEqual(new Time(10), viewModel.Stop);
            Assert.AreEqual(new Time(5), viewModel.EventTime);
        }
示例#7
0
        public void TestForwardProperty()
        {
            // Arrange
            int        eventCount         = 0;
            bool       senderIsTimeNodeVM = false;
            TimeNode   timeNode           = new TimeNode();
            TimeNodeVM viewModel          = new TimeNodeVM();

            viewModel.Model            = timeNode;
            viewModel.PropertyChanged += (sender, e) => {
                eventCount++;
                senderIsTimeNodeVM = sender is TimeNodeVM;
            };

            // Action
            timeNode.EventTime = new Time(0);

            // Assert
            Assert.AreEqual(1, eventCount, $"PropertyChanged was called {eventCount} instead of once");
            Assert.IsTrue(senderIsTimeNodeVM, "Sender is not a ViewModel");
        }
示例#8
0
        protected override void SelectionMoved(Selection sel)
        {
            Time         moveTime;
            CanvasObject co;

            co = (sel.Drawable as CanvasObject);

            if (co is CameraView)
            {
                TimeNodeVM to = (co as CameraView).TimeNode;

                if (sel.Position == SelectionPosition.Right)
                {
                    moveTime = to.Stop;
                }
                else
                {
                    moveTime = to.Start;
                }
                Player?.Seek(moveTime, true);
            }
        }
示例#9
0
 void RemoveTimeNode(TimeNodeVM timeNodeVM)
 {
     Remove(viewModelToView [timeNodeVM]);
     viewModelToView.Remove(timeNodeVM);
 }