Пример #1
0
        /// <inheritdoc/>
        public void UnregisterStreamValueSubscriber <TTarget>(Guid registrationToken)
        {
            lock (this.publishers)
            {
                foreach (var epsilonTimeIntervalPublishers in this.publishers.Values)
                {
                    foreach (var publisher in epsilonTimeIntervalPublishers)
                    {
                        if (publisher.HasSubscriber(registrationToken))
                        {
                            publisher.UnregisterSubscriber(registrationToken);
                        }
                    }

                    epsilonTimeIntervalPublishers.RemoveAll(publisher => !publisher.HasSubscribers);
                }

                foreach (var epsilonTimeInterval in this.publishers.Keys.ToArray())
                {
                    if (!this.publishers[epsilonTimeInterval].Any())
                    {
                        this.publishers.Remove(epsilonTimeInterval);
                    }
                }
            }

            // If no publishers remain, remove the index view
            if (!this.publishers.Any())
            {
                this.indexView      = null;
                this.indexViewRange = new NavigatorRange(DateTime.MinValue, DateTime.MinValue);
            }
        }
        private void DoDragTimeline(Point mousePosition)
        {
            // Calculate how far we dragged the panel (timewise)
            double         percent   = (mousePosition.X - this.lastMousePosition.X) / this.ActualWidth;
            NavigatorRange viewRange = this.VisualizationPanel.Navigator.ViewRange;
            TimeSpan       timeMoved = TimeSpan.FromTicks((long)((double)viewRange.Duration.Ticks * percent));

            // Scroll the view
            viewRange.ScrollBy(-timeMoved);
        }
Пример #3
0
        /// <inheritdoc />
        public void UnregisterInstantDataTarget(Guid registrationToken)
        {
            this.InternalUnregisterInstantDataTarget(registrationToken);

            // If no instant visualization objects are now using
            // this stream reader, remove the instant index view
            if (this.instantStreamReaders.Count <= 0)
            {
                this.instantIndexView      = null;
                this.currentIndexViewRange = new NavigatorRange(DateTime.MinValue, DateTime.MinValue);
            }
        }