public static Grid FixtureWithNoLabel(FixtureClass fixtureClass) { Grid grid = new Grid(); grid.Margin = new Thickness(1, 1, 1, 1); RowDefinition rowdef = new RowDefinition(); rowdef.Height = new GridLength(1, GridUnitType.Star); grid.RowDefinitions.Add(rowdef); rowdef = new RowDefinition(); rowdef.Height = GridLength.Auto; grid.RowDefinitions.Add(rowdef); Image image = new Image(); image.Style = (Style)ResourceLocator.FindResource("ImageStyle"); image.Source = TwGui.GetImage(fixtureClass.ImageFilename); Border border = new Border(); border.Style = (Style)ResourceLocator.FindResource("FixtureBorderStyle"); border.Background = TwBrushes.FrozenSolidColorBrush(fixtureClass.Color); border.Child = image; Grid.SetRow(border, 1); grid.Children.Add(border); grid.ToolTip = fixtureClass.FriendlyName; return(grid); }
UIElement CreateTabItemHeader(AnalysisPanel analysisPanel, string fileNameIn) { string fileName = string.IsNullOrEmpty(analysisPanel.SaveFileName) ? fileNameIn : analysisPanel.SaveFileName; StackPanel stackPanel = new StackPanel(); stackPanel.Orientation = Orientation.Horizontal; stackPanel.Margin = new Thickness(2, 1, 0, 0); Image image = new Image(); image.Style = (Style)FindResource("ImageStyle"); image.Source = TwGui.GetImage("trace.png"); image.Margin = new Thickness(0); stackPanel.Children.Add(image); TextBlock textBlock = new TextBlock(); textBlock.Margin = new Thickness(4, 0, 0, 0); textBlock.Text = System.IO.Path.GetFileNameWithoutExtension(fileName); stackPanel.Children.Add(textBlock); stackPanel.ToolTip = fileName; return(stackPanel); }
void CompareAnalysesExecuted(object sender, ExecutedRoutedEventArgs e) { string fileNameAnalysisLower = TwFile.GetAnalysisFile(); if (fileNameAnalysisLower == null || fileNameAnalysisLower == string.Empty) { return; } string fileNameAnalysisUpper = TwFile.GetAnalysisFile(); if (fileNameAnalysisUpper == null || fileNameAnalysisUpper == string.Empty) { return; } UpdateAnalysisFolder(fileNameAnalysisUpper); Mouse.OverrideCursor = Cursors.Wait; var analysisLower = TwServices.CreateAnalysis(fileNameAnalysisLower); var analysisUpper = TwServices.CreateAnalysis(fileNameAnalysisUpper); var compareAnalysesPanel = new CompareAnalysesPanel(); compareAnalysesPanel.AnalysisLower = analysisLower; compareAnalysesPanel.AnalysisUpper = analysisUpper; compareAnalysesPanel.Initialize(); AddTab(CreateTabItemHeader("Compare", TwGui.GetImage("traces2.png"), CreateCompareAnalysesHeaderToolTip(fileNameAnalysisUpper, fileNameAnalysisLower)), compareAnalysesPanel, compareAnalysesPanel.StyledEventsViewerUpper.EventsViewer.ScrollViewer, false); Mouse.OverrideCursor = null; }
AnalysisPanel CreateAnalysisPanel(Analysis analysis, string fileName, Disaggregator disaggregator, bool showAnalyzer, double viewportSeconds, double viewportVolume) { var toolTip = TwGui.CreateAnalyzerToolTip(disaggregator.GetType(), disaggregator); return(CreateAnalysisPanel(analysis, fileName, showAnalyzer ? disaggregator.Name : null, toolTip)); }
void PopulateRowHeaderNoText(FixtureClass fixtureClass, int iColumn) { Grid grid = TwGui.FixtureWithNoLabel(fixtureClass); Grid.SetRow(grid, gridOuter.RowDefinitions.Count - 1); Grid.SetColumn(grid, iColumn); gridOuter.Children.Add(grid); }
MenuItem CreateFixtureMenuItemLow(FixtureClass fixtureClass) { var menuItem = new MenuItem(); menuItem.Header = TwGui.FixtureWithImageLeftMenu(fixtureClass); menuItem.Tag = Polygon; menuItem.InputGestureText = fixtureClass.Character.ToString(); return(menuItem); }
public void Initialize() { Image.Source = TwGui.GetImage(FixtureClass.ImageFilename); this.Content = Image; this.Tag = FixtureClass; this.Background = TwBrushes.FrozenSolidColorBrush(FixtureClass.Color); this.Style = (Style)ResourceLocator.FindResource(FixtureClass.LowFrequency ? "ToolBarFixtureLowFrequencyButtonStyle" : "ToolBarFixtureButtonStyle"); this.ToolTip = "Classify as " + FixtureClass.FriendlyName + " (" + FixtureClass.Character + ")"; this.ContextMenu = FixtureButtonContextMenu(); this.CommandParameter = FixtureClass; }
UIElement CreateFixtureClass(FixtureClass fixtureClass) { var checkBox = new CheckBox(); checkBox.IsChecked = true; // checkBox.Content = fixtureClass.FriendlyName; checkBox.Content = TwGui.FixtureWithImageLeft(fixtureClass); checkBox.Tag = fixtureClass; checkBox.Margin = new Thickness(3); return(checkBox); }
void Initialize() { Border.Child = TwGui.FixtureWithImageLeft(fixtureClass, FontWeights.Bold); if (byInstances) { Label.Text = "Number of " + fixtureClass.FriendlyName + " Events: " + data + " \r\nPercentage of Events that are " + fixtureClass.FriendlyName + " Events: " + (percent * 100.0).ToString("0.0") + "%"; } else { Label.Text = "Total Volume of " + fixtureClass.FriendlyName + " Events: " + data + " \r\nPercentage of Total Volume Attributed to " + fixtureClass.FriendlyName + " Events: " + (percent * 100.0).ToString("0.0") + "%"; } }
void PopulateRowHeader(FixtureClass fixtureClass) { RowDefinition rowDefinition = new RowDefinition(); rowDefinition.Height = new GridLength(1, GridUnitType.Star); gridOuter.RowDefinitions.Add(rowDefinition); Grid grid = TwGui.FixtureWithImageRight(fixtureClass); Grid.SetRow(grid, gridOuter.RowDefinitions.Count - 1); Grid.SetColumn(grid, 1); gridOuter.Children.Add(grid); }
void ExecuteConfusionMatrix(List <Classifier> classifiers, Adopter adopter) { List <string> files = TwFile.GetAnalysisFilesIncludingZipped(); if (files.Count > 0) { foreach (var classifier in classifiers) { var panel = LoadConfusionMatrix(files, classifier, adopter); AddTab(CreateTabItemHeader("Confusion Matrix: " + classifier.Name, TwGui.GetImage("confusionmatrix.png")), panel, null, true); } } }
public static Border FixtureImage(FixtureClass fixtureClass) { Image image = new Image(); image.Style = (Style)ResourceLocator.FindResource("ImageStyle"); image.Source = TwGui.GetImage(fixtureClass.ImageFilename); Border border = new Border(); border.Style = (Style)ResourceLocator.FindResource("FixtureBorderStyle"); border.Background = TwSingletonBrushes.Instance.FrozenSolidColorBrush(fixtureClass.Color); border.Child = image; return(border); }
void Initialize(FeatureLevel featureLevel) { Title = "About " + TwAssembly.CompanyAndTitle(); ImageIcon.Source = TwGui.GetIcon32(); LabelTitle.Text = TwAssembly.CompanyAndTitle(); LabelVersion.Text = TwAssembly.CompleteVersion() + " " + featureLevel.Text; LabelCopyright.Text = TwAssembly.Copyright(); var hyperlink = new Hyperlink(); hyperlink.NavigateUri = new System.Uri(TwEnvironment.WebSite); hyperlink.RequestNavigate += new RequestNavigateEventHandler(HyperlinkAbout_RequestNavigate); hyperlink.Inlines.Add(TwEnvironment.WebSite); LabelHyperlink.Inlines.Add(hyperlink); }
public static Grid FixtureWithImageLeftMenu(FixtureClass fixtureClass) { Grid grid = new Grid(); grid.Margin = new Thickness(1, 0, 1, 0); grid.Tag = fixtureClass; ColumnDefinition columnDefinition = new ColumnDefinition(); columnDefinition.Width = GridLength.Auto; grid.ColumnDefinitions.Add(columnDefinition); columnDefinition = new ColumnDefinition(); columnDefinition.Width = new GridLength(1, GridUnitType.Star); grid.ColumnDefinitions.Add(columnDefinition); Image image = new Image(); image.Style = (Style)ResourceLocator.FindResource("ImageStyle"); image.Source = TwGui.GetImage(fixtureClass.ImageFilename); Border border = new Border(); border.Style = (Style)ResourceLocator.FindResource("FixtureBorderStyle"); border.Background = TwBrushes.FrozenSolidColorBrush(fixtureClass.Color); border.Child = image; Grid.SetColumn(border, 0); grid.Children.Add(border); var label = new Label(); label.Content = fixtureClass.LabelName; label.FontWeight = FontWeights.Normal; label.HorizontalAlignment = HorizontalAlignment.Left; label.VerticalAlignment = VerticalAlignment.Top; label.Padding = new Thickness(1, 0, 1, 0); label.Margin = new Thickness(5, 0, 5, 0); Grid.SetColumn(label, 1); grid.Children.Add(label); return(grid); }
void ButtonMoreFixtures_Click(object sender, RoutedEventArgs e) { if (showingMoreFixtures) { // AnalysisPanel.SetVisibility(panelFixturesLowFrequency, Visibility.Collapsed); panelFixturesLowFrequency.Visibility = Visibility.Collapsed; ButtonMoreFixtures.ToolTip = "Show More Fixtures"; ImageMoreFixtures.Source = TwGui.GetImage("arrowright.png"); } else { panelFixturesLowFrequency.Visibility = Visibility.Visible; ButtonMoreFixtures.ToolTip = "Hide More Fixtures"; ImageMoreFixtures.Source = TwGui.GetImage("arrowleft.png"); } showingMoreFixtures = !showingMoreFixtures; }
void Populate() { var classifiers = TwClassifiers.CreateClassifiers(); for (int i = 0; i < classifiers.Count; i++) { var classifier = classifiers[i]; int column = 0; grid.RowDefinitions.Add(new RowDefinition()); var button = new CheckBox(); button.Padding = new Thickness(4, 0, 4, 4); button.Margin = new Thickness(4); button.VerticalAlignment = VerticalAlignment.Top; button.VerticalContentAlignment = VerticalAlignment.Top; button.Tag = classifier; button.Content = classifier.Name; button.ToolTip = TwGui.CreateAnalyzerToolTip(classifier.GetType(), classifier); if (!TwClassifiers.CanLoad(classifier) || classifier is FixtureListClassifier) { button.IsEnabled = false; } Grid.SetRow(button, i); Grid.SetColumn(button, column++); grid.Children.Add(button); var description = new TextBlock(); description.TextWrapping = TextWrapping.Wrap; description.MaxWidth = 200; description.Padding = new Thickness(4, 0, 4, 4); description.Margin = new Thickness(4); description.VerticalAlignment = VerticalAlignment.Top; description.Text = classifier.Description; Grid.SetRow(description, i); Grid.SetColumn(description, column++); grid.Children.Add(description); } }
public static Grid FixtureWithImageRight(FixtureClass fixtureClass) { Grid grid = new Grid(); grid.Margin = new Thickness(1, 1, 1, 1); var coldefImage = new ColumnDefinition(); coldefImage.Width = new GridLength(1, GridUnitType.Star); grid.ColumnDefinitions.Add(coldefImage); var coldefText = new ColumnDefinition(); coldefText.Width = GridLength.Auto; grid.ColumnDefinitions.Add(coldefText); Image image = new Image(); image.Style = (Style)ResourceLocator.FindResource("ImageStyle"); image.Source = TwGui.GetImage(fixtureClass.ImageFilename); Border border = new Border(); border.Style = (Style)ResourceLocator.FindResource("FixtureBorderStyle"); border.Background = TwBrushes.FrozenSolidColorBrush(fixtureClass.Color); border.Child = image; Grid.SetColumn(border, 1); grid.Children.Add(border); TextBlock textBlock = new TextBlock(); textBlock.Text = fixtureClass.FriendlyName; textBlock.Margin = new Thickness(0, 0, 6, 0); textBlock.TextAlignment = TextAlignment.Right; textBlock.HorizontalAlignment = HorizontalAlignment.Right; textBlock.VerticalAlignment = VerticalAlignment.Center; Grid.SetColumn(textBlock, 0); grid.Children.Add(textBlock); return(grid); }
MenuItem FixtureButtonContextMenuItem(string label, RoutedUICommand command) { var menuItem = new MenuItem(); menuItem.Header = label + " " + FixtureClass.FriendlyName; var image = new Image(); image.Source = TwGui.GetImage(FixtureClass.ImageFilename); var border = new Border(); border.Padding = new Thickness(2); border.Background = TwBrushes.FrozenSolidColorBrush(FixtureClass.Color); border.Child = image; menuItem.Icon = border; menuItem.Command = command; menuItem.CommandParameter = FixtureClass; return(menuItem); }
public void Load(Traces traces) { Traces = traces; InitUserControl(); DockPanel dockPanel = new DockPanel(); dockPanel.Background = Brushes.White; DockPanel.SetDock(aggregatePanel = CreateAggregatePanel(), Dock.Bottom); dockPanel.Children.Add(aggregatePanel); DockPanel.SetDock(gridOuter = CreateGrid(), Dock.Bottom); dockPanel.Children.Add(gridOuter); this.Content = WrapWithLabel(dockPanel, traces.Classifier.Name, TwGui.CreateAnalyzerToolTip(traces.Classifier.GetType(), traces.Classifier), traces.Adopter.Name, TwGui.CreateAnalyzerToolTip(traces.Adopter.GetType(), traces.Adopter), System.IO.Path.GetDirectoryName(traces.FilesLoaded[0]), CreateElementFiles(traces.FilesLoaded)); PopulateRowLabel(); PopulateColumnLabel(); CreateDisplayModeSelector(); CreateRowAndColumnHeaders(); PopulateRowHeaders(); PopulateColumnHeaders(); PopulateRows(); RenderRows(); PopulateFixturesColumnNoText(); PopulateFixturesRowNoText(); PopulateStatistics(); PopulateAggregatePanel(); }
void PopulateColumnHeaderStatistic(string text, UIElement toolTip) { ColumnDefinition columnDefinition = new ColumnDefinition(); gridOuter.ColumnDefinitions.Add(columnDefinition); Grid grid = TwGui.FixtureWithNoImageBottom(text); Border borderOuter = new Border(); borderOuter.BorderBrush = Brushes.LightGray; borderOuter.BorderThickness = new Thickness(0, 0, 0, 1); borderOuter.Child = grid; borderOuter.ToolTip = toolTip; Grid.SetRow(borderOuter, 1); Grid.SetColumn(borderOuter, gridOuter.ColumnDefinitions.Count - 1); gridOuter.Children.Add(borderOuter); }
void PopulateRowHeaderStatistic(string text) { RowDefinition rowDefinition = new RowDefinition(); rowDefinition.Height = new GridLength(1, GridUnitType.Star); gridOuter.RowDefinitions.Add(rowDefinition); Grid grid = TwGui.FixtureWithNoImageRight(text); Border borderOuter = new Border(); borderOuter.BorderBrush = Brushes.LightGray; borderOuter.BorderThickness = new Thickness(0, 0, 1, 0); borderOuter.Child = grid; Grid.SetRow(borderOuter, gridOuter.RowDefinitions.Count - 1); Grid.SetColumn(borderOuter, 1); gridOuter.Children.Add(borderOuter); }
void Initialize() { if (FixtureClass != null) { if (CanDrag) { this.PreviewMouseLeftButtonDown += new MouseButtonEventHandler(previewMouseLeftButtonDown); this.PreviewMouseLeftButtonUp += new MouseButtonEventHandler(previewMouseLeftButtonUp); this.PreviewMouseMove += new MouseEventHandler(previewMouseMove); } Image.Source = TwGui.GetImage(FixtureClass.ImageFilename); Border.Background = TwBrushes.FrozenSolidColorBrush(FixtureClass.Color); Tag = FixtureClass; LabelFixtureName.Text = FixtureClass.ShortName; if (manuallyClassified) { LabelFixtureName.Text += "*"; LabelFixtureName.ToolTip = "* Manually classified as " + fixtureClass.FriendlyName + " by user. Will not be overridden by machine classification."; } LabelFirstCycle.ToolTip = "Manually classified as 1st Cycle"; if (firstCycleManuallyClassified) { LabelFirstCycle.Text += "*"; LabelFirstCycle.ToolTip = "* Manually classified as 1st Cycle by user. Will not be overridden by machine classification."; } } else if (!string.IsNullOrEmpty(Label)) { LabelFixtureName.Text = Label; } LabelFirstCycle.Visibility = firstCycle ? Visibility.Visible : Visibility.Collapsed; Border.HorizontalAlignment = HorizontalImageAlignment; LabelFixtureName.HorizontalAlignment = HorizontalImageAlignment; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { return(TwGui.GetImage(((FixtureClass)value).ImageFilename)); }
public void AddTab(UIElement content, string iconFile, string keyCode) { AddTab(CreateTabItemHeader(keyCode, TwGui.GetImage(iconFile)), content, content, true); }
public StyledFixtureLabel(FixtureClass fixtureClass, FontWeight fontWeight, bool showKey, bool manuallyClassified, bool firstCycle, bool firstCycleManuallyClassified, bool showFriendlyName, bool singleRow, bool showHasNotes) { this.Focusable = false; this.IsTabStop = false; this.InputBindings.Add(new MouseBinding(AnalysisPanel.BringSelectedEventIntoViewCommand, new MouseGesture(MouseAction.LeftDoubleClick, ModifierKeys.None))); FixtureClass = fixtureClass; Grid grid = new Grid(); ColumnDefinition coldefText = new ColumnDefinition(); coldefText.Width = GridLength.Auto; grid.ColumnDefinitions.Add(coldefText); ColumnDefinition coldefImage = new ColumnDefinition(); coldefImage.Width = new GridLength(1, GridUnitType.Star); grid.ColumnDefinitions.Add(coldefImage); Image image = new Image(); image.Style = (Style)ResourceLocator.FindResource("ImageStyle"); image.Source = TwGui.GetImage(fixtureClass.ImageFilename); Border border = new Border(); border.Style = (Style)ResourceLocator.FindResource("FixtureBorderStyle"); border.Background = TwBrushes.FrozenSolidColorBrush(fixtureClass.Color); border.VerticalAlignment = VerticalAlignment.Top; border.Child = image; Grid.SetColumn(border, 0); grid.Children.Add(border); var stackPanel = new StackPanel(); var label = new TextBlock(); var name = showFriendlyName ? fixtureClass.FriendlyName : fixtureClass.ShortName; if (showKey) { label.Text = name + " (" + fixtureClass.Character + ")"; } else { label.Text = name; } if (singleRow) { grid.ToolTip = "Selected Event is " + fixtureClass.FriendlyName; } if (manuallyClassified) { label.Text += "*"; if (singleRow) { grid.ToolTip += "\r\n* = Manually classified"; } } label.Margin = new Thickness(6, 0, 0, 0); label.FontWeight = fontWeight; label.HorizontalAlignment = HorizontalAlignment.Left; label.VerticalAlignment = VerticalAlignment.Center; stackPanel.Children.Add(label); if (firstCycle) { label = new TextBlock(); label.Text = "(1st Cycle)"; label.Margin = new Thickness(6, 0, 0, 0); label.FontWeight = fontWeight; label.HorizontalAlignment = HorizontalAlignment.Left; label.VerticalAlignment = VerticalAlignment.Center; stackPanel.Children.Add(label); if (singleRow) { stackPanel.Orientation = Orientation.Horizontal; label.Text = "1"; if (singleRow) { grid.ToolTip += "\r\n1 = 1st Cycle"; } } if (firstCycleManuallyClassified) { label.Text += "*"; } } if (showHasNotes) { label = new TextBlock(); label.Text = "Notes"; label.Margin = new Thickness(6, 0, 0, 0); label.FontWeight = fontWeight; label.HorizontalAlignment = HorizontalAlignment.Left; label.VerticalAlignment = VerticalAlignment.Center; stackPanel.Children.Add(label); if (singleRow) { stackPanel.Orientation = Orientation.Horizontal; label.Text = "N"; grid.ToolTip += "\r\nN = Has User Notes"; } } Grid.SetColumn(stackPanel, 1); grid.Children.Add(stackPanel); this.Content = grid; }
public StyledFixtureLabel(Event @event, bool showFriendlyName, bool activateCommand) { this.Focusable = false; this.IsTabStop = false; if (activateCommand) { this.InputBindings.Add(new MouseBinding(AnalysisPanel.BringSelectedEventIntoViewCommand, new MouseGesture(MouseAction.LeftDoubleClick, ModifierKeys.None))); } FixtureClass = @event.FixtureClass; this.ToolTip = BuildToolTip(@event); var panel = new StackPanel(); panel.Orientation = Orientation.Horizontal; var panelTicks = new StackPanel(); { var tick = new ClassificationTick(); tick.Padding = new Thickness(0, 1, 4, 1); tick.VerticalAlignment = VerticalAlignment.Center; if (@event.ManuallyClassified) { tick.TickClassifiedUsingFixtureList.Visibility = Visibility.Collapsed; tick.TickClassifiedUsingMachineLearning.Visibility = Visibility.Collapsed; } else if (@event.ClassifiedUsingFixtureList) { tick.TickManuallyClassified.Visibility = Visibility.Collapsed; tick.TickClassifiedUsingMachineLearning.Visibility = Visibility.Collapsed; } else { tick.TickManuallyClassified.Visibility = Visibility.Collapsed; tick.TickClassifiedUsingFixtureList.Visibility = Visibility.Collapsed; } panelTicks.Children.Add(tick); } if (@event.ManuallyApproved) { var tick = new ApprovalTick(); tick.Padding = new Thickness(0, 1, 4, 1); tick.VerticalAlignment = VerticalAlignment.Center; panelTicks.Children.Add(tick); } panel.Children.Add(panelTicks); Image image = new Image(); image.Style = (Style)ResourceLocator.FindResource("ImageStyle"); image.Source = TwGui.GetImage(@event.FixtureClass.ImageFilename); Border border = new Border(); border.Margin = new Thickness(3, 0, 0, 0); border.Style = (Style)ResourceLocator.FindResource("FixtureBorderStyle"); border.Background = TwBrushes.FrozenSolidColorBrush(@event.FixtureClass.Color); border.VerticalAlignment = VerticalAlignment.Top; border.Child = image; panel.Children.Add(border); var label = new TextBlock(); label.Text = showFriendlyName ? @event.FixtureClass.FriendlyName : @event.FixtureClass.ShortName; label.Padding = new Thickness(3, 0, 0, 0); panel.Children.Add(label); if (@event.FirstCycle) { label = new TextBlock(); label.FontSize = 8; label.BaselineOffset = 10; label.Text = "1"; if ([email protected]) { label.FontStyle = FontStyles.Italic; } label.Padding = new Thickness(3, 0, 0, 0); panel.Children.Add(label); } else if (@event.ManuallyClassifiedFirstCycle) { label = new TextBlock(); label.FontSize = 8; label.BaselineOffset = 10; label.Text = "0"; label.Padding = new Thickness(3, 0, 0, 0); panel.Children.Add(label); } //if (!string.IsNullOrEmpty(@event.UserNotes)) { // label = new TextBlock(); // label.Padding = new Thickness(3, 0, 0, 0); // label.Text = "N"; // panel.Children.Add(label); //} this.Content = panel; }
public void Initialize() { LabelFixture.Child = TwGui.FixtureWithImageRight(FixtureSummary.FixtureClass); LabelCount.Text = ByInstances ? FixtureSummary.Count.ToString() : FixtureSummary.Volume.ToString("0.0"); LabelPercent.Text = ByInstances ? (FixtureSummary.PercentCount * 100).ToString("0.0") + "%" : (FixtureSummary.PercentVolume * 100).ToString("0.0") + "%"; }
void Update() { Image.Source = TwGui.GetImage(Event.FixtureClass.ImageFilename); Border.Background = TwSingletonBrushes.Instance.FrozenSolidColorBrush(Event.FixtureClass.Color); }
public void CreateEventsProperties(FixtureClass fixtureClassPredicted, string fixtureClassPredictedLabel, FixtureClass fixtureClassActual, string fixtureClassActualLabel, Events events, int count, int cycles, bool showKey) { for (int i = 0; i < 10; i++) { this.RowDefinitions.Add(new RowDefinition()); } for (int i = 0; i < 6; i++) { this.ColumnDefinitions.Add(new ColumnDefinition()); } int row = 0; TextBlock txt; HorizontalAlignment = HorizontalAlignment.Left; if (fixtureClassPredicted != null) { txt = new TextBlock(); txt.Padding = new Thickness(0, 0, 6, 0); if (!string.IsNullOrEmpty(fixtureClassPredictedLabel)) { txt.Text = fixtureClassPredictedLabel + ": "; } txt.HorizontalAlignment = HorizontalAlignment.Left; txt.VerticalAlignment = VerticalAlignment.Center; Grid.SetRow(txt, row); Grid.SetColumn(txt, 0); this.Children.Add(txt); var fixtureImage = TwGui.FixtureWithImageLeft(fixtureClassPredicted, showKey); fixtureImage.HorizontalAlignment = HorizontalAlignment.Left; Grid.SetRow(fixtureImage, row); Grid.SetColumn(fixtureImage, 0); Grid.SetColumnSpan(fixtureImage, 2); this.Children.Add(fixtureImage); } txt = new TextBlock(); txt.Padding = new Thickness(0, 0, 6, 0); txt.Text = "Events: " + count.ToString(); txt.HorizontalAlignment = HorizontalAlignment.Right; txt.VerticalAlignment = VerticalAlignment.Top; Grid.SetRow(txt, row); Grid.SetColumn(txt, 2); Grid.SetColumnSpan(txt, 2); this.Children.Add(txt); txt = new TextBlock(); txt.HorizontalAlignment = HorizontalAlignment.Right; txt.VerticalAlignment = VerticalAlignment.Top; txt.Padding = new Thickness(0, 0, 6, 0); txt.Text = "1st Cycles: " + cycles.ToString(); Grid.SetRow(txt, row++); Grid.SetColumn(txt, 4); Grid.SetColumnSpan(txt, 2); this.Children.Add(txt); if (cycles == 0) { txt.Visibility = Visibility.Hidden; } WriteHorizontalSeparator(row++); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "Min"; txt.HorizontalAlignment = HorizontalAlignment.Right; txt.VerticalAlignment = VerticalAlignment.Center; Grid.SetRow(txt, row); Grid.SetColumn(txt, 1); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "10%"; txt.HorizontalAlignment = HorizontalAlignment.Right; txt.VerticalAlignment = VerticalAlignment.Center; Grid.SetRow(txt, row); Grid.SetColumn(txt, 2); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "50%"; txt.HorizontalAlignment = HorizontalAlignment.Right; txt.VerticalAlignment = VerticalAlignment.Center; Grid.SetRow(txt, row); Grid.SetColumn(txt, 3); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "90%"; txt.HorizontalAlignment = HorizontalAlignment.Right; txt.VerticalAlignment = VerticalAlignment.Center; Grid.SetRow(txt, row); Grid.SetColumn(txt, 4); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "Max"; txt.HorizontalAlignment = HorizontalAlignment.Right; txt.VerticalAlignment = VerticalAlignment.Center; Grid.SetRow(txt, row++); Grid.SetColumn(txt, 5); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "Vol:"; txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 0); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = Math.Round(events.MinVolume, 2).ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 1); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = Math.Round(events.LowerLimitVolume, 2).ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 2); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = Math.Round(events.MedianVolume, 2).ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 3); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = Math.Round(events.UpperLimitVolume, 2).ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 4); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = Math.Round(events.MaxVolume, 2).ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row++); Grid.SetColumn(txt, 5); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "Peak:"; txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 0); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.MinPeak.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 1); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.LowerLimitPeak.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 2); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.MedianPeak.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 3); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.UpperLimitPeak.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 4); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.MaxPeak.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row++); Grid.SetColumn(txt, 5); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "Mode:"; txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 0); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.MinMode.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 1); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.LowerLimitMode.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 2); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.MedianMode.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 3); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.UpperLimitMode.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 4); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = events.MaxMode.ToString("0.00"); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row++); Grid.SetColumn(txt, 5); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = "Dur:"; txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 0); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = ((string)(new FriendlyDurationConverter()).Convert(events.MinDuration, null, null, null)).Trim(); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 1); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = ((string)(new FriendlyDurationConverter()).Convert(events.LowerLimitDuration, null, null, null)).Trim(); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 2); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = ((string)(new FriendlyDurationConverter()).Convert(events.MedianDuration, null, null, null)).Trim(); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 3); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = ((string)(new FriendlyDurationConverter()).Convert(events.UpperLimitDuration, null, null, null)).Trim(); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row); Grid.SetColumn(txt, 4); this.Children.Add(txt); txt = new TextBlock(); txt.Padding = new Thickness(6, 0, 6, 0); txt.Text = ((string)(new FriendlyDurationConverter()).Convert(events.MaxDuration, null, null, null)).Trim(); txt.HorizontalAlignment = HorizontalAlignment.Right; Grid.SetRow(txt, row++); Grid.SetColumn(txt, 5); this.Children.Add(txt); }