/// <summary> /// Constructs the gadget /// </summary> protected virtual void Construct() { strataGridList = new List <Grid>(); strataPanelList = new List <StackPanel>(); strataExpanderList = new List <Expander>(); strataCount = 0; GadgetOptions = new GadgetParameters(); GadgetOptions.InputVariableList = new Dictionary <string, string>(); GadgetOptions.ShouldIncludeFullSummaryStatistics = false; GadgetOptions.ShouldIncludeMissing = false; GadgetOptions.ShouldSortHighToLow = false; GadgetOptions.ShouldUseAllPossibleValues = false; GadgetOptions.StrataVariableNames = new List <string>(); GadgetOptions.PSUVariableName = string.Empty; GadgetOptions.CustomFilter = string.Empty; if (this.DashboardHelper != null) { this.dataFilters = new Epi.WPF.Dashboard.DataFilters(this.DashboardHelper); } object el = this.FindName("headerPanel"); if (el != null) { Controls.GadgetHeaderPanel headerPanel = el as Controls.GadgetHeaderPanel; headerPanel.GadgetCloseButtonClicked += new GadgetCloseButtonHandler(CloseGadget); headerPanel.GadgetOutputCollapseButtonClicked += new GadgetOutputCollapseButtonHandler(CollapseOutput); headerPanel.GadgetOutputExpandButtonClicked += new GadgetOutputExpandButtonHandler(ExpandOutput); headerPanel.GadgetConfigButtonClicked += new GadgetConfigButtonHandler(ShowHideConfigPanel); headerPanel.GadgetDescriptionButtonClicked += new GadgetDescriptionButtonHandler(ShowHideDescriptionPanel); headerPanel.GadgetFilterButtonClicked += new GadgetFilterButtonHandler(ShowCustomFilterDialog); } el = this.FindName("messagePanel"); if (el != null) { Controls.GadgetMessagePanel messagePanel = el as Controls.GadgetMessagePanel; messagePanel.MessagePanelType = Controls.MessagePanelType.StatusPanel; messagePanel.Text = string.Empty; messagePanel.Visibility = System.Windows.Visibility.Collapsed; } el = this.FindName("descriptionPanel"); if (el != null) { Controls.GadgetDescriptionPanel descriptionPanel = el as Controls.GadgetDescriptionPanel; if (!string.IsNullOrEmpty(CustomOutputDescription) && !CustomOutputHeading.Equals("(none)")) { descriptionPanel.Text = CustomOutputDescription; descriptionPanel.PanelMode = Controls.GadgetDescriptionPanel.DescriptionPanelMode.DisplayMode; } else { descriptionPanel.PanelMode = Controls.GadgetDescriptionPanel.DescriptionPanelMode.Collapsed; } } }
protected override void Construct() { if (!string.IsNullOrEmpty(CustomOutputHeading) && !CustomOutputHeading.Equals("(none)")) { headerPanel.Text = CustomOutputHeading; } strataGridList = new List <Grid>(); gridLabelsList = new List <TextBlock>(); FillComboboxes(); mnuCopyData.Click += new RoutedEventHandler(mnuCopyData_Click); mnuSendDataToHTML.Click += new RoutedEventHandler(mnuSendDataToHTML_Click); #if LINUX_BUILD mnuSendDataToExcel.Visibility = Visibility.Collapsed; #else mnuSendDataToExcel.Visibility = Visibility.Visible; Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.ClassesRoot; Microsoft.Win32.RegistryKey excelKey = key.OpenSubKey("Excel.Application"); bool excelInstalled = excelKey == null ? false : true; key = Microsoft.Win32.Registry.ClassesRoot; excelKey = key.OpenSubKey("Excel.Application"); excelInstalled = excelKey == null ? false : true; if (!excelInstalled) { mnuSendDataToExcel.Visibility = Visibility.Collapsed; } else { mnuSendDataToExcel.Click += new RoutedEventHandler(mnuSendDataToExcel_Click); } #endif mnuSendToBack.Click += new RoutedEventHandler(mnuSendToBack_Click); mnuClose.Click += new RoutedEventHandler(mnuClose_Click); this.IsProcessing = false; base.Construct(); #region Translation ConfigExpandedTitle.Text = DashboardSharedStrings.GADGET_CONFIG_TITLE_COMBINED_FREQUENCY; tblockGroupField.Text = DashboardSharedStrings.GADGET_GROUP_VARIABLE; expanderAdvancedOptions.Header = DashboardSharedStrings.GADGET_ADVANCED_OPTIONS; checkboxSortHighLow.Content = DashboardSharedStrings.GADGET_SORT_HI_LOW; checkboxShowDenominator.Content = DashboardSharedStrings.GADGET_SHOW_DENOMINATOR; #endregion // Translation }
protected override void Construct() { this.Parameters = new AberrationDetectionChartParameters(); if (!string.IsNullOrEmpty(CustomOutputHeading) && !CustomOutputHeading.Equals("(none)")) { headerPanel.Text = CustomOutputHeading; } StrataGridList = new List <Grid>(); StrataExpanderList = new List <Expander>(); mnuCopy.Click += new RoutedEventHandler(mnuCopy_Click); mnuSendDataToHTML.Click += new RoutedEventHandler(mnuSendDataToHTML_Click); #if LINUX_BUILD mnuSendDataToExcel.Visibility = Visibility.Collapsed; #else mnuSendDataToExcel.Visibility = Visibility.Visible; Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.ClassesRoot; Microsoft.Win32.RegistryKey excelKey = key.OpenSubKey("Excel.Application"); bool excelInstalled = excelKey == null ? false : true; key = Microsoft.Win32.Registry.ClassesRoot; excelKey = key.OpenSubKey("Excel.Application"); excelInstalled = excelKey == null ? false : true; if (!excelInstalled) { mnuSendDataToExcel.Visibility = Visibility.Collapsed; } else { mnuSendDataToExcel.Click += new RoutedEventHandler(mnuSendDataToExcel_Click); } #endif mnuSendToBack.Click += new RoutedEventHandler(mnuSendToBack_Click); mnuClose.Click += new RoutedEventHandler(mnuClose_Click); this.IsProcessing = false; this.GadgetStatusUpdate += new GadgetStatusUpdateHandler(RequestUpdateStatusMessage); this.GadgetCheckForCancellation += new GadgetCheckForCancellationHandler(IsCancelled); base.Construct(); }
/// <summary> /// Construct /// </summary> protected override void Construct() { if (!string.IsNullOrEmpty(CustomOutputHeading) && !CustomOutputHeading.Equals("(none)")) { headerPanel.Text = CustomOutputHeading; } mnuCopyData.Click += new RoutedEventHandler(mnuCopyData_Click); mnuSendDataToHTML.Click += new RoutedEventHandler(mnuSendDataToHTML_Click); #if LINUX_BUILD mnuSendDataToExcel.Visibility = Visibility.Collapsed; #else mnuSendDataToExcel.Visibility = Visibility.Visible; Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.ClassesRoot; Microsoft.Win32.RegistryKey excelKey = key.OpenSubKey("Excel.Application"); bool excelInstalled = excelKey == null ? false : true; key = Microsoft.Win32.Registry.ClassesRoot; excelKey = key.OpenSubKey("Excel.Application"); excelInstalled = excelKey == null ? false : true; if (!excelInstalled) { mnuSendDataToExcel.Visibility = Visibility.Collapsed; } else { mnuSendDataToExcel.Click += new RoutedEventHandler(mnuSendDataToExcel_Click); } #endif mnuSendToBack.Click += new RoutedEventHandler(mnuSendToBack_Click); mnuClose.Click += new RoutedEventHandler(mnuClose_Click); this.IsProcessing = false; base.Construct(); this.Parameters = new CombinedFrequencyParameters(); }
/// <summary> /// Creates the frequency gadget from an Xml element loaded from a canvas saved in 7.1.1.14 or earlier. /// </summary> /// <param name="element">The element from which to create the gadget</param> private void CreateFromLegacyXml(XmlElement element) { this.LoadingCombos = true; foreach (XmlElement child in element.ChildNodes) { switch (child.Name.ToLowerInvariant()) { case "mainvariable": if (this.Parameters.ColumnNames.Count > 0) { ((AberrationDetectionChartParameters)Parameters).ColumnNames[0] = child.InnerText.Replace("<", "<"); } else { ((AberrationDetectionChartParameters)Parameters).ColumnNames.Add(child.InnerText.Replace("<", "<")); } break; case "stratavariable": if (((AberrationDetectionChartParameters)Parameters).StrataVariableNames.Count > 0) { ((AberrationDetectionChartParameters)Parameters).StrataVariableNames[0] = child.InnerText.Replace("<", "<"); } else { ((AberrationDetectionChartParameters)Parameters).StrataVariableNames.Add(child.InnerText.Replace("<", "<")); } break; case "weightvariable": ((AberrationDetectionChartParameters)Parameters).WeightVariableName = child.InnerText.Replace("<", "<"); break; case "lagtime": ((AberrationDetectionChartParameters)Parameters).LagTime = child.InnerText.Replace("<", "<"); break; case "deviations": ((AberrationDetectionChartParameters)Parameters).Deviations = child.InnerText.Replace("<", "<"); break; case "timeperiod": ((AberrationDetectionChartParameters)Parameters).TimePeriod = child.InnerText.Replace("<", "<"); break; case "datafilters": this.DataFilters = new DataFilters(this.DashboardHelper); this.DataFilters.CreateFromXml(child); break; case "customheading": if (!child.InnerText.Equals("(none)")) { this.Parameters.GadgetTitle = child.InnerText.Replace("<", "<"); this.CustomOutputHeading = child.InnerText.Replace("<", "<"); } else { this.CustomOutputHeading = string.Empty; this.Parameters.GadgetTitle = string.Empty; } break; case "customdescription": if (!child.InnerText.Equals("(none)")) { this.CustomOutputDescription = child.InnerText.Replace("<", "<"); this.Parameters.GadgetDescription = child.InnerText.Replace("<", "<"); if (!string.IsNullOrEmpty(CustomOutputDescription) && !CustomOutputHeading.Equals("(none)")) { descriptionPanel.Text = CustomOutputDescription; descriptionPanel.PanelMode = EpiDashboard.Controls.GadgetDescriptionPanel.DescriptionPanelMode.DisplayMode; } else { descriptionPanel.PanelMode = EpiDashboard.Controls.GadgetDescriptionPanel.DescriptionPanelMode.Collapsed; } } break; } } base.CreateFromXml(element); this.LoadingCombos = false; RefreshResults(); HideConfigPanel(); }
public override void CreateFromXml(XmlElement element) { this.LoadingCombos = true; infoPanel.Visibility = System.Windows.Visibility.Collapsed; messagePanel.Visibility = System.Windows.Visibility.Collapsed; if (element.Name.Equals("aberrationGadget") || element.Name.Equals("AberrationControl")) { CreateFromLegacyXml(element); } else { foreach (XmlElement child in element.ChildNodes) { if (!string.IsNullOrEmpty(child.InnerText)) { switch (child.Name.ToLowerInvariant()) { case "mainvariable": if (this.Parameters.ColumnNames.Count > 0) { ((AberrationDetectionChartParameters)Parameters).ColumnNames[0] = child.InnerText.Replace("<", "<"); } else { ((AberrationDetectionChartParameters)Parameters).ColumnNames.Add(child.InnerText.Replace("<", "<")); } break; case "stratavariable": if (((AberrationDetectionChartParameters)Parameters).StrataVariableNames.Count > 0) { ((AberrationDetectionChartParameters)Parameters).StrataVariableNames[0] = child.InnerText.Replace("<", "<"); } else { ((AberrationDetectionChartParameters)Parameters).StrataVariableNames.Add(child.InnerText.Replace("<", "<")); } break; case "stratavariables": foreach (XmlElement field in child.ChildNodes) { List <string> fields = new List <string>(); if (field.Name.ToLowerInvariant().Equals("stratavariable")) { ((AberrationDetectionChartParameters)Parameters).StrataVariableNames.Add(field.InnerText.Replace("<", "<")); } } break; case "weightvariable": ((AberrationDetectionChartParameters)Parameters).WeightVariableName = child.InnerText.Replace("<", "<"); break; case "customheading": if (!child.InnerText.Equals("(none)")) { this.Parameters.GadgetTitle = child.InnerText.Replace("<", "<"); this.CustomOutputHeading = child.InnerText.Replace("<", "<"); } else { this.CustomOutputHeading = string.Empty; this.Parameters.GadgetTitle = string.Empty; } break; case "customdescription": if (!child.InnerText.Equals("(none)")) { this.CustomOutputDescription = child.InnerText.Replace("<", "<"); this.Parameters.GadgetDescription = child.InnerText.Replace("<", "<"); if (!string.IsNullOrEmpty(CustomOutputDescription) && !CustomOutputHeading.Equals("(none)")) { descriptionPanel.Text = CustomOutputDescription; descriptionPanel.PanelMode = EpiDashboard.Controls.GadgetDescriptionPanel.DescriptionPanelMode.DisplayMode; } else { descriptionPanel.PanelMode = EpiDashboard.Controls.GadgetDescriptionPanel.DescriptionPanelMode.Collapsed; } } break; case "customcaption": this.CustomOutputCaption = child.InnerText; break; case "datafilters": this.DataFilters = new DataFilters(this.DashboardHelper); this.DataFilters.CreateFromXml(child); break; case "width": ((AberrationDetectionChartParameters)Parameters).ChartWidth = int.Parse(child.InnerText.Replace("<", "<")); break; case "height": ((AberrationDetectionChartParameters)Parameters).ChartHeight = int.Parse(child.InnerText.Replace("<", "<")); break; case "charttitle": ((AberrationDetectionChartParameters)Parameters).ChartTitle = child.InnerText.Replace("<", "<"); break; case "lagtime": ((AberrationDetectionChartParameters)Parameters).LagTime = child.InnerText.Replace("<", "<"); break; case "deviations": ((AberrationDetectionChartParameters)Parameters).Deviations = child.InnerText.Replace("<", "<"); break; case "timeperiod": ((AberrationDetectionChartParameters)Parameters).TimePeriod = child.InnerText.Replace("<", "<"); break; case "yaxislabel": ((AberrationDetectionChartParameters)Parameters).YAxisLabel = child.InnerText.Replace("<", "<"); break; case "xaxislabeltype": ((AberrationDetectionChartParameters)Parameters).XAxisLabelType = int.Parse(child.InnerText); break; case "xaxislabel": ((AberrationDetectionChartParameters)Parameters).XAxisLabel = child.InnerText; break; //EI-98 case "yaxislabelfontsize": ((AberrationDetectionChartParameters)Parameters).YAxisLabelFontSize = double.Parse(child.InnerText); break; case "xaxislabelfontsize": ((AberrationDetectionChartParameters)Parameters).XAxisLabelFontSize = double.Parse(child.InnerText); break; case "yaxisfontsize": ((AberrationDetectionChartParameters)Parameters).YAxisFontSize = double.Parse(child.InnerText); break; case "xaxisfontsize": ((AberrationDetectionChartParameters)Parameters).XAxisFontSize = double.Parse(child.InnerText); break; } } } } base.CreateFromXml(element); this.LoadingCombos = false; RefreshResults(); HideConfigPanel(); }
/// <summary> /// Generates Xml representation of this gadget /// </summary> /// <param name="doc">The Xml docment</param> /// <returns>XmlNode</returns> public override XmlNode Serialize(XmlDocument doc) { CreateInputVariableList(); Dictionary <string, string> inputVariableList = GadgetOptions.InputVariableList; string freqVar = GadgetOptions.MainVariableName; string strataVar = string.Empty; string crosstabVar = GadgetOptions.CrosstabVariableName; string sort = string.Empty; bool showDenominator = true; if (checkboxShowDenominator.IsChecked == false) { showDenominator = false; } if (inputVariableList.ContainsKey("sort")) { sort = inputVariableList["sort"]; } CustomOutputHeading = headerPanel.Text; CustomOutputDescription = descriptionPanel.Text; string combineMode = "automatic"; switch (cmbCombineMode.SelectedIndex) { case 1: combineMode = "boolean"; break; case 2: combineMode = "categorical"; break; case 0: default: combineMode = "automatic"; break; } string xmlString = "<mainVariable>" + freqVar + "</mainVariable>" + "<sort>" + sort + "</sort>" + "<combineMode>" + combineMode + "</combineMode>" + "<trueValue>" + txtTrueValue.Text + "</trueValue>" + "<showDenominator>" + showDenominator + "</showDenominator>" + "<customHeading>" + CustomOutputHeading.Replace("<", "<") + "</customHeading>" + "<customDescription>" + CustomOutputDescription.Replace("<", "<") + "</customDescription>"; System.Xml.XmlElement element = doc.CreateElement("combinedFrequencyGadget"); element.InnerXml = xmlString; element.AppendChild(SerializeFilters(doc)); System.Xml.XmlAttribute locationY = doc.CreateAttribute("top"); System.Xml.XmlAttribute locationX = doc.CreateAttribute("left"); System.Xml.XmlAttribute collapsed = doc.CreateAttribute("collapsed"); System.Xml.XmlAttribute type = doc.CreateAttribute("gadgetType"); locationY.Value = Canvas.GetTop(this).ToString("F0"); locationX.Value = Canvas.GetLeft(this).ToString("F0"); collapsed.Value = "false"; // currently no way to collapse the gadget, so leave this 'false' for now type.Value = "EpiDashboard.CombinedFrequencyControl"; element.Attributes.Append(locationY); element.Attributes.Append(locationX); element.Attributes.Append(collapsed); element.Attributes.Append(type); return(element); }
/// <summary> /// Converts the gadget's output to Html /// </summary> /// <returns></returns> public override string ToHTML(string htmlFileName = "", int count = 0) { StringBuilder htmlBuilder = new StringBuilder(); CustomOutputHeading = headerPanel.Text; CustomOutputDescription = descriptionPanel.Text; if (CustomOutputHeading == null || (string.IsNullOrEmpty(CustomOutputHeading) && !CustomOutputHeading.Equals("(none)"))) { htmlBuilder.AppendLine("<h2 class=\"gadgetHeading\">Combined Frequency</h2>"); } else if (CustomOutputHeading != "(none)") { htmlBuilder.AppendLine("<h2 class=\"gadgetHeading\">" + CustomOutputHeading + "</h2>"); } htmlBuilder.AppendLine("<p class=\"gadgetOptions\"><small>"); htmlBuilder.AppendLine("<em>Group variable:</em> <strong>" + cbxField.Text + "</strong>"); htmlBuilder.AppendLine("<br />"); if (cmbFieldStrata.SelectedIndex >= 0) { htmlBuilder.AppendLine("<em>Strata variable:</em> <strong>" + cmbFieldStrata.Text + "</strong>"); htmlBuilder.AppendLine("<br />"); } htmlBuilder.AppendLine("<em>Combine mode:</em> <strong>" + cmbCombineMode.Text + "</strong>"); htmlBuilder.AppendLine("<br />"); //htmlBuilder.AppendLine("<em>Include missing:</em> <strong>" + checkboxIncludeMissing.IsChecked.ToString() + "</strong>"); //htmlBuilder.AppendLine("<br />"); htmlBuilder.AppendLine("</small></p>"); if (!string.IsNullOrEmpty(CustomOutputDescription)) { htmlBuilder.AppendLine("<p class=\"gadgetsummary\">" + CustomOutputDescription + "</p>"); } if (!string.IsNullOrEmpty(messagePanel.Text) && messagePanel.Visibility == System.Windows.Visibility.Visible) { htmlBuilder.AppendLine("<p><small><strong>" + messagePanel.Text + "</strong></small></p>"); } if (!string.IsNullOrEmpty(infoPanel.Text) && infoPanel.Visibility == Visibility.Visible) { htmlBuilder.AppendLine("<p><small><strong>" + infoPanel.Text + "</strong></small></p>"); } foreach (Grid grid in this.strataGridList) { string gridName = grid.Tag.ToString(); htmlBuilder.AppendLine("<div style=\"height: 7px;\"></div>"); htmlBuilder.AppendLine("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); htmlBuilder.AppendLine("<caption>" + gridName + "</caption>"); foreach (UIElement control in grid.Children) { if (control is TextBlock) { int rowNumber = Grid.GetRow(control); int columnNumber = Grid.GetColumn(control); string tableDataTagOpen = "<td>"; string tableDataTagClose = "</td>"; if (rowNumber == 0) { tableDataTagOpen = "<th>"; tableDataTagClose = "</th>"; } if (columnNumber == 0) { if (((double)rowNumber) % 2.0 == 1) { htmlBuilder.AppendLine("<tr class=\"altcolor\">"); } else { htmlBuilder.AppendLine("<tr>"); } } if (columnNumber == 0 && rowNumber > 0) { tableDataTagOpen = "<td class=\"value\">"; } string value = ((TextBlock)control).Text; string formattedValue = value; htmlBuilder.AppendLine(tableDataTagOpen + formattedValue + tableDataTagClose); if (columnNumber >= grid.ColumnDefinitions.Count - 1) { htmlBuilder.AppendLine("</tr>"); } } } htmlBuilder.AppendLine("</table>"); } // TODO: Update if this gadget ever implements stratas foreach (UIElement element in panelMain.Children) { if (element is TextBlock) { TextBlock tblock = element as TextBlock; htmlBuilder.AppendLine("<p>"); htmlBuilder.AppendLine(tblock.Text); htmlBuilder.AppendLine("</p>"); } } return(htmlBuilder.ToString()); }
/// <summary> /// Creates the frequency gadget from an Xml element /// </summary> /// <param name="element">The element from which to create the gadget</param> public override void CreateFromXml(XmlElement element) { this.loadingCombos = true; foreach (XmlElement child in element.ChildNodes) { switch (child.Name.ToLower()) { case "mainvariable": cbxField.Text = child.InnerText; break; case "stratavariable": cmbFieldStrata.Text = child.InnerText; break; case "truevalue": txtTrueValue.Text = child.InnerText; break; case "combinemode": switch (child.InnerText.ToLower()) { case "boolean": case "bool": cmbCombineMode.SelectedIndex = 1; break; case "categorical": cmbCombineMode.SelectedIndex = 2; break; case "automatic": case "auto": default: cmbCombineMode.SelectedIndex = 0; break; } break; case "sort": if (child.InnerText.ToLower().Equals("hightolow") || child.InnerText.ToLower().Equals("highlow")) { checkboxSortHighLow.IsChecked = true; } else { checkboxSortHighLow.IsChecked = false; } break; case "customheading": if (!string.IsNullOrEmpty(child.InnerText) && !child.InnerText.Equals("(none)")) { this.CustomOutputHeading = child.InnerText.Replace("<", "<");; } break; case "customdescription": if (!string.IsNullOrEmpty(child.InnerText) && !child.InnerText.Equals("(none)")) { this.CustomOutputDescription = child.InnerText.Replace("<", "<"); if (!string.IsNullOrEmpty(CustomOutputDescription) && !CustomOutputHeading.Equals("(none)")) { descriptionPanel.Text = CustomOutputDescription; descriptionPanel.PanelMode = Controls.GadgetDescriptionPanel.DescriptionPanelMode.DisplayMode; } else { descriptionPanel.PanelMode = Controls.GadgetDescriptionPanel.DescriptionPanelMode.Collapsed; } } break; case "showdenominator": bool showDenom = false; bool.TryParse(child.InnerText, out showDenom); checkboxShowDenominator.IsChecked = showDenom; break; case "datafilters": this.dataFilters = new DataFilters(this.dashboardHelper); this.DataFilters.CreateFromXml(child); break; } } SetPositionFromXml(element); this.loadingCombos = false; RefreshResults(); HideConfigPanel(); }
/// <summary> /// Converts the gadget's output to Html /// </summary> /// <returns></returns> public override string ToHTML(string htmlFileName = "", int count = 0, bool useAlternatingColors = false) { if (IsCollapsed) { return(string.Empty); } StringBuilder htmlBuilder = new StringBuilder(); CustomOutputHeading = headerPanel.Text; CustomOutputDescription = descriptionPanel.Text; if (CustomOutputHeading == null || (string.IsNullOrEmpty(CustomOutputHeading) && !CustomOutputHeading.Equals("(none)"))) { htmlBuilder.AppendLine("<h2 class=\"gadgetHeading\">Combined Frequency</h2>"); } else if (CustomOutputHeading != "(none)") { htmlBuilder.AppendLine("<h2 class=\"gadgetHeading\">" + CustomOutputHeading + "</h2>"); } htmlBuilder.AppendLine("<p class=\"gadgetOptions\"><small>"); // TODO: Update this with columns selected //htmlBuilder.AppendLine("<em>Group variable:</em> <strong>" + GadgetOptions.MainVariableName + "</strong>"); htmlBuilder.AppendLine("<br />"); //if (cmbFieldStrata.SelectedIndex >= 0) //{ // htmlBuilder.AppendLine("<em>Strata variable:</em> <strong>" + cmbFieldStrata.Text + "</strong>"); // htmlBuilder.AppendLine("<br />"); //} //htmlBuilder.AppendLine("<em>Combine mode:</em> <strong>" + cmbCombineMode.Text + "</strong>"); htmlBuilder.AppendLine("<br />"); htmlBuilder.AppendLine("</small></p>"); if (!string.IsNullOrEmpty(CustomOutputDescription)) { htmlBuilder.AppendLine("<p class=\"gadgetsummary\">" + CustomOutputDescription + "</p>"); } if (!string.IsNullOrEmpty(messagePanel.Text) && messagePanel.Visibility == System.Windows.Visibility.Visible) { htmlBuilder.AppendLine("<p><small><strong>" + messagePanel.Text + "</strong></small></p>"); } if (!string.IsNullOrEmpty(infoPanel.Text) && infoPanel.Visibility == Visibility.Visible) { htmlBuilder.AppendLine("<p><small><strong>" + infoPanel.Text + "</strong></small></p>"); } DataGrid dg = GetDataGrid(); if (dg != null && dg.ItemsSource != null) { htmlBuilder.AppendLine("<div style=\"height: 7px;\"></div>"); htmlBuilder.AppendLine("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); htmlBuilder.AppendLine(Common.ConvertDataViewToHtmlString(dg.ItemsSource as DataView, useAlternatingColors)); htmlBuilder.AppendLine("</table>"); } // TODO: Update if this gadget ever implements stratas foreach (UIElement element in panelMain.Children) { if (element is TextBlock) { TextBlock tblock = element as TextBlock; htmlBuilder.AppendLine("<p>"); htmlBuilder.AppendLine(tblock.Text); htmlBuilder.AppendLine("</p>"); } } return(htmlBuilder.ToString()); }
/// <summary> /// Creates the frequency gadget from an Xml element /// </summary> /// <param name="element">The element from which to create the gadget</param> public override void CreateFromXml(XmlElement element) { this.LoadingCombos = true; this.Parameters = new CombinedFrequencyParameters(); HideConfigPanel(); infoPanel.Visibility = System.Windows.Visibility.Collapsed; messagePanel.Visibility = System.Windows.Visibility.Collapsed; foreach (XmlElement child in element.ChildNodes) { switch (child.Name.ToLowerInvariant()) { case "mainvariable": ((CombinedFrequencyParameters)Parameters).ColumnNames.Add(child.InnerText.Replace("<", "<")); break; case "groupfields": foreach (XmlElement field in child.ChildNodes) { List <string> fields = new List <string>(); if (field.Name.ToLowerInvariant().Equals("groupfield")) { ((CombinedFrequencyParameters)Parameters).ColumnNames.Add(field.InnerText.Replace("<", "<")); } } break; case "combinemode": if (!String.IsNullOrEmpty(child.InnerText.Trim())) { switch (child.InnerText.ToString().ToLowerInvariant()) { case "boolean": ((CombinedFrequencyParameters)Parameters).CombineMode = CombineModeTypes.Boolean; break; case "categorical": ((CombinedFrequencyParameters)Parameters).CombineMode = CombineModeTypes.Categorical; break; case "automatic": default: ((CombinedFrequencyParameters)Parameters).CombineMode = CombineModeTypes.Automatic; break; } } break; case "truevalue": //txtTrueValue.Text = child.InnerText; if (!String.IsNullOrEmpty(child.InnerText.Trim())) { ((CombinedFrequencyParameters)Parameters).TrueValue = child.InnerText.Replace("<", "<").ToString(); } break; case "sort": if (child.InnerText.ToLowerInvariant().Equals("hightolow") || child.InnerText.ToLowerInvariant().Equals("highlow")) { ((CombinedFrequencyParameters)Parameters).SortHighToLow = true; } else { ((CombinedFrequencyParameters)Parameters).SortHighToLow = false; } break; case "customheading": if (!string.IsNullOrEmpty(child.InnerText) && !child.InnerText.Equals("(none)")) { this.CustomOutputHeading = child.InnerText.Replace("<", "<"); Parameters.GadgetTitle = CustomOutputHeading; } break; case "customdescription": if (!string.IsNullOrEmpty(child.InnerText) && !child.InnerText.Equals("(none)")) { this.CustomOutputDescription = child.InnerText.Replace("<", "<"); Parameters.GadgetDescription = CustomOutputDescription; if (!string.IsNullOrEmpty(CustomOutputDescription) && !CustomOutputHeading.Equals("(none)")) { descriptionPanel.Text = CustomOutputDescription; descriptionPanel.PanelMode = Controls.GadgetDescriptionPanel.DescriptionPanelMode.DisplayMode; } else { descriptionPanel.PanelMode = Controls.GadgetDescriptionPanel.DescriptionPanelMode.Collapsed; } } break; case "showdenominator": bool showDenom = false; bool.TryParse(child.InnerText, out showDenom); ((CombinedFrequencyParameters)Parameters).ShowDenominator = showDenom; break; case "datafilters": this.DataFilters = new DataFilters(this.DashboardHelper); this.DataFilters.CreateFromXml(child); break; } } base.CreateFromXml(element); this.LoadingCombos = false; RefreshResults(); HideConfigPanel(); }
/// <summary> /// Converts the gadget's output to Html /// </summary> /// <returns></returns> public override string ToHTML(string htmlFileName = "", int count = 0, bool useAlternatingColors = false, bool ForWeb = false) { if (IsCollapsed) { return(string.Empty); } StringBuilder htmlBuilder = new StringBuilder(); CustomOutputHeading = headerPanel.Text; CustomOutputDescription = descriptionPanel.Text; if (CustomOutputHeading == null || (string.IsNullOrEmpty(CustomOutputHeading) && !CustomOutputHeading.Equals("(none)"))) { htmlBuilder.AppendLine("<h2 class=\"gadgetHeading\">Combined Frequency</h2>"); } else if (CustomOutputHeading != "(none)") { htmlBuilder.AppendLine("<h2 class=\"gadgetHeading\">" + CustomOutputHeading + "</h2>"); } htmlBuilder.AppendLine("<p class=\"gadgetOptions\"><small>"); // TODO: Update this with columns selected //htmlBuilder.AppendLine("<em>Group variable:</em> <strong>" + GadgetOptions.MainVariableName + "</strong>"); htmlBuilder.AppendLine("<br />"); //if (cmbFieldStrata.SelectedIndex >= 0) //{ // htmlBuilder.AppendLine("<em>Strata variable:</em> <strong>" + cmbFieldStrata.Text + "</strong>"); // htmlBuilder.AppendLine("<br />"); //} //htmlBuilder.AppendLine("<em>Combine mode:</em> <strong>" + cmbCombineMode.Text + "</strong>"); htmlBuilder.AppendLine("<br />"); htmlBuilder.AppendLine("</small></p>"); if (!string.IsNullOrEmpty(CustomOutputDescription)) { htmlBuilder.AppendLine("<p class=\"gadgetsummary\">" + CustomOutputDescription + "</p>"); } if (!string.IsNullOrEmpty(messagePanel.Text) && messagePanel.Visibility == System.Windows.Visibility.Visible) { htmlBuilder.AppendLine("<p><small><strong>" + messagePanel.Text + "</strong></small></p>"); } if (!string.IsNullOrEmpty(infoPanel.Text) && infoPanel.Visibility == Visibility.Visible) { htmlBuilder.AppendLine("<p><small><strong>" + infoPanel.Text + "</strong></small></p>"); } DataGrid dg = GetDataGrid(); if (dg != null && dg.ItemsSource != null) { htmlBuilder.AppendLine("<div style=\"height: 7px;\"></div>"); htmlBuilder.AppendLine("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); System.Data.DataTable sddt = ((System.Data.DataView)dg.ItemsSource).Table.Copy(); System.Data.DataView sddv = new System.Data.DataView(sddt); foreach (System.Data.DataRowView drv in sddv) { try { double proportion = (double)drv.Row["Percent"]; drv.Row[2] = Math.Round(100.0 * proportion, 2); } catch (InvalidCastException excep) { continue; } try { double llccll = (double)drv.Row["LCL"]; drv.Row[3] = Math.Round(100.0 * llccll, 2); } catch (InvalidCastException excep) { } try { double uuccll = (double)drv.Row["UCL"]; drv.Row[4] = Math.Round(100.0 * uuccll, 2); } catch (InvalidCastException excep) { } } htmlBuilder.AppendLine(Common.ConvertDataViewToHtmlString(sddv as DataView, useAlternatingColors)); htmlBuilder.AppendLine("</table>"); } // TODO: Update if this gadget ever implements stratas foreach (UIElement element in panelMain.Children) { if (element is TextBlock) { TextBlock tblock = element as TextBlock; htmlBuilder.AppendLine("<p>"); htmlBuilder.AppendLine(tblock.Text); htmlBuilder.AppendLine("</p>"); } } return(htmlBuilder.ToString()); }