Exemplo n.º 1
0
        private bool ExecuteCommandIfPresent(List <TypeKeyedActionCommand> commands, string commandName, StreamTreeNode streamTreeNode)
        {
            // Check if the command is in the list
            TypeKeyedActionCommand command = commands.Find(o => o.DisplayName.Equals(commandName, StringComparison.Ordinal));

            if (command != null)
            {
                VisualizationContainer visualizationContainer = this.DataContext as VisualizationContainer;

                // If we're adding the stream to an existing Visualization Panel, then make sure it's the selected panel first.
                // Otherwise, make sure the last current panel is selected so that the new panel is created at the bottom.
                if (this.hitTestResult != null)
                {
                    VisualizationPanel visualizationPanel = this.hitTestResult.DataContext as VisualizationPanel;
                    visualizationContainer.CurrentPanel = visualizationPanel;
                }
                else if (visualizationContainer.Panels.Count > 0)
                {
                    visualizationContainer.CurrentPanel = visualizationContainer.Panels[visualizationContainer.Panels.Count - 1];
                }

                // Execute the command
                command.Execute(streamTreeNode);
                return(true);
            }

            return(false);
        }
Exemplo n.º 2
0
 /// <inheritdoc/>
 public override void SetParentContainer(VisualizationContainer container)
 {
     base.SetParentContainer(container);
     foreach (VisualizationPanel panel in this.Panels)
     {
         panel.SetParentContainer(container);
         panel.ParentPanel = this;
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RunBatchProcessingTaskWindowViewModel"/> class.
 /// </summary>
 /// <param name="visualizationContainer">The visualization container.</param>
 /// <param name="sessionViewModel">The dataset view model.</param>
 /// <param name="batchProcessingTaskMetadata">The batch processing task metadata.</param>
 public RunBatchProcessingTaskWindowViewModel(VisualizationContainer visualizationContainer, SessionViewModel sessionViewModel, BatchProcessingTaskMetadata batchProcessingTaskMetadata)
 {
     this.visualizationContainer      = visualizationContainer;
     this.sessionViewModel            = sessionViewModel;
     this.batchProcessingTaskMetadata = batchProcessingTaskMetadata;
     this.Name          = batchProcessingTaskMetadata.Name;
     this.Description   = batchProcessingTaskMetadata.Description;
     this.Target        = sessionViewModel.Name;
     this.DataSize      = TimeSpanFormatHelper.FormatTimeSpanApproximate(sessionViewModel.OriginatingTimeInterval.Span);
     this.Configuration = batchProcessingTaskMetadata.GetDefaultConfiguration();
 }
Exemplo n.º 4
0
 /// <summary>
 /// Initializes a new instance of the <see cref="RunBatchProcessingTaskWindowViewModel"/> class.
 /// </summary>
 /// <param name="visualizationContainer">The visualization container.</param>
 /// <param name="datasetViewModel">The dataset view model.</param>
 /// <param name="batchProcessingTaskMetadata">The batch processing task metadata.</param>
 public RunBatchProcessingTaskWindowViewModel(VisualizationContainer visualizationContainer, DatasetViewModel datasetViewModel, BatchProcessingTaskMetadata batchProcessingTaskMetadata)
 {
     this.visualizationContainer      = visualizationContainer;
     this.datasetViewModel            = datasetViewModel;
     this.batchProcessingTaskMetadata = batchProcessingTaskMetadata;
     this.Name        = batchProcessingTaskMetadata.Name;
     this.Description = batchProcessingTaskMetadata.Description;
     this.Target      = datasetViewModel.Name;
     this.DataSize    = TimeSpanFormatHelper.FormatTimeSpanApproximate(
         new TimeSpan(datasetViewModel.SessionViewModels.Sum(svm => svm.OriginatingTimeInterval.Span.Ticks)));
     this.Configuration = batchProcessingTaskMetadata.GetDefaultConfiguration();
 }
Exemplo n.º 5
0
        /// <summary>
        /// Called internally by the VisualizationContainer to connect the parent chain.
        /// </summary>
        /// <param name="container">Container to connect this visualization panel to.</param>
        internal void SetParentContainer(VisualizationContainer container)
        {
            if (this.Container != null)
            {
                this.Container.PropertyChanged -= this.Container_PropertyChanged;
            }

            this.Container = container;
            if (this.Container != null)
            {
                this.Container.PropertyChanged += this.Container_PropertyChanged;
            }

            foreach (var visualizationObject in this.VisualizationObjects)
            {
                visualizationObject.AddToPanel(this);
            }
        }
Exemplo n.º 6
0
        private int FindPanelMoveIndices(VisualizationPanel droppedPanel, int panelVerticalCenter, out int currentPanelIndex)
        {
            // Find the index of the panel whose vertical center is closest the panel being dragged's vertical center
            VisualizationContainer visualizationContainer = droppedPanel.Container;

            currentPanelIndex = -1;

            // Work out which Visualization Panel's vertical center is closest to the vertical center of the panel being dropped
            double currentVerticalCenter = 0;
            double minDelta    = double.MaxValue;
            int    targetIndex = -1;

            for (int index = 0; index < visualizationContainer.Panels.Count; index++)
            {
                VisualizationPanel visualizationPanel = visualizationContainer.Panels[index];

                // If this is the panel we're dropping, we need that info too
                if (visualizationPanel == droppedPanel)
                {
                    currentPanelIndex = index;
                }

                // Is this panel's vertical center closer to our panel's vertical center
                currentVerticalCenter += visualizationPanel.Height / 2;
                double deltaY = Math.Abs(panelVerticalCenter - currentVerticalCenter);
                if (deltaY < minDelta)
                {
                    targetIndex = index;
                    minDelta    = deltaY;
                }

                currentVerticalCenter += visualizationPanel.Height / 2;
            }

            return(targetIndex);
        }