public ColumnChart(DashboardHelper dashboardHelper, GadgetParameters parameters, ColumnChartSettings settings, List<XYColumnChartData> dataList) { InitializeComponent(); this.Settings = settings; this.ColumnChartSettings = settings; this.Parameters = parameters; this.DashboardHelper = dashboardHelper; SetChartProperties(); SetChartData(dataList); xyChart.Legend.BorderBrush = Brushes.Gray; }
/// <summary> /// Copy Constructor /// </summary> public GadgetParameters(GadgetParameters parameters) { MainVariableNames = parameters.MainVariableNames; MainVariableName = parameters.MainVariableName; ColumnNames = parameters.ColumnNames; GadgetStatusUpdate = parameters.GadgetStatusUpdate; InputVariableList = parameters.InputVariableList; CustomFilter = parameters.CustomFilter; CustomSortColumnName = parameters.CustomSortColumnName; ShouldIncludeFullSummaryStatistics = parameters.ShouldIncludeFullSummaryStatistics; ShouldUseAllPossibleValues = parameters.ShouldUseAllPossibleValues; ShouldShowCommentLegalLabels = parameters.ShouldShowCommentLegalLabels; ShouldSortHighToLow = parameters.ShouldSortHighToLow; ShouldIncludeMissing = parameters.ShouldIncludeMissing; CrosstabVariableName = parameters.CrosstabVariableName; WeightVariableName = parameters.WeightVariableName; StrataVariableNames = parameters.StrataVariableNames; ShouldIgnoreRowLimits = parameters.ShouldIgnoreRowLimits; }
/// <summary> /// Copy Constructor /// </summary> public GadgetParameters(GadgetParameters parameters) { MainVariableNames = parameters.MainVariableNames; MainVariableName = parameters.MainVariableName; ColumnNames = parameters.ColumnNames; GadgetStatusUpdate = parameters.GadgetStatusUpdate; InputVariableList = parameters.InputVariableList; CustomFilter = parameters.CustomFilter; CustomSortColumnName = parameters.CustomSortColumnName; ShouldIncludeFullSummaryStatistics = parameters.ShouldIncludeFullSummaryStatistics; ShouldUseAllPossibleValues = parameters.ShouldUseAllPossibleValues; ShouldShowCommentLegalLabels = parameters.ShouldShowCommentLegalLabels; ShouldSortHighToLow = parameters.ShouldSortHighToLow; ShouldIncludeMissing = parameters.ShouldIncludeMissing; CrosstabVariableName = parameters.CrosstabVariableName; WeightVariableName = parameters.WeightVariableName; StrataVariableNames = parameters.StrataVariableNames; ShouldIgnoreRowLimits = parameters.ShouldIgnoreRowLimits; SortVariables = parameters.SortVariables; }
private void Construct() { SetReference(); SetMeasurement(); grpHeader.Text = string.Empty; plotter.Visibility = System.Windows.Visibility.Collapsed; ConfigCollapsedTriangle.MouseLeftButtonUp += new MouseButtonEventHandler(Triangle_MouseLeftButtonUp); ConfigExpandedTriangle.MouseLeftButtonUp += new MouseButtonEventHandler(Triangle_MouseLeftButtonUp); mnuSave.Click += new RoutedEventHandler(mnuSave_Click); mnuLabel.Click += new RoutedEventHandler(mnuLabel_Click); imgClose.MouseEnter += new MouseEventHandler(imgClose_MouseEnter); imgClose.MouseLeave += new MouseEventHandler(imgClose_MouseLeave); imgClose.MouseDown += new MouseButtonEventHandler(imgClose_MouseDown); FillComboboxes(); //cbxGrowthReference.SelectionChanged += new SelectionChangedEventHandler(cbxGrowthReference_SelectionChanged); //cbxMeasurement.SelectionChanged += new SelectionChangedEventHandler(cbxMeasurement_SelectionChanged); cbxPatientId.SelectionChanged += new SelectionChangedEventHandler(cbxPatientId_SelectionChanged); cbxPatientIdField.SelectionChanged += new SelectionChangedEventHandler(cbxPatientIdField_SelectionChanged); this.IsProcessing = false; this.isMetric = false; //this.GadgetStatusUpdate += new GadgetStatusUpdateHandler(RequestUpdateStatusMessage); //this.GadgetCheckForCancellation += new GadgetCheckForCancellationHandler(IsCancelled); gadgetOptions = new GadgetParameters(); gadgetOptions.ShouldIncludeFullSummaryStatistics = false; gadgetOptions.ShouldIncludeMissing = false; gadgetOptions.ShouldSortHighToLow = false; gadgetOptions.ShouldUseAllPossibleValues = false; gadgetOptions.StrataVariableNames = new List<string>(); }
/// <summary> /// Constructs the gadget /// </summary> protected virtual void Construct() { IsCollapsed = false; 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; this.MouseEnter += new MouseEventHandler(GadgetBase_MouseEnter); this.MouseLeave += new MouseEventHandler(GadgetBase_MouseLeave); if (this.DashboardHelper != null) { this.DataFilters = new EpiDashboard.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; } } }
public GadgetPropertiesPopupRequestedEventArgs(GadgetParameters parameters) { this.Parameters = parameters; }
protected override void worker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { lock (syncLock) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); this.Dispatcher.BeginInvoke(new SimpleCallback(SetGadgetToProcessingState)); this.Dispatcher.BeginInvoke(new SimpleCallback(ClearResults)); string freqVar = GadgetOptions.MainVariableName; string weightVar = GadgetOptions.WeightVariableName; string strataVar = string.Empty; string crosstabVar = GadgetOptions.CrosstabVariableName; bool includeMissing = GadgetOptions.ShouldIncludeMissing; List<string> stratas = new List<string>(); if (!string.IsNullOrEmpty(strataVar)) { stratas.Add(strataVar); } try { RequestUpdateStatusDelegate requestUpdateStatus = new RequestUpdateStatusDelegate(RequestUpdateStatusMessage); CheckForCancellationDelegate checkForCancellation = new CheckForCancellationDelegate(IsCancelled); GadgetOptions.GadgetStatusUpdate += new GadgetStatusUpdateHandler(requestUpdateStatus); GadgetOptions.GadgetCheckForCancellation += new GadgetCheckForCancellationHandler(checkForCancellation); if (this.DataFilters != null && this.DataFilters.Count > 0) { GadgetOptions.CustomFilter = this.DataFilters.GenerateDataFilterString(false); } else { GadgetOptions.CustomFilter = string.Empty; } if (!string.IsNullOrEmpty(crosstabVar.Trim())) { List<string> crosstabVarList = new List<string>(); crosstabVarList.Add(crosstabVar); foreach (Strata strata in DashboardHelper.GetStrataValuesAsDictionary(crosstabVarList, false, false)) { GadgetParameters parameters = new GadgetParameters(GadgetOptions); if (!string.IsNullOrEmpty(GadgetOptions.CustomFilter)) { parameters.CustomFilter = "(" + parameters.CustomFilter + ") AND " + strata.SafeFilter; } else { parameters.CustomFilter = strata.SafeFilter; } parameters.CrosstabVariableName = string.Empty; Dictionary<DataTable, List<DescriptiveStatistics>> stratifiedFrequencyTables = DashboardHelper.GenerateFrequencyTable(parameters); GenerateChartData(stratifiedFrequencyTables, strata); System.Threading.Thread.Sleep(200); } } else { Dictionary<DataTable, List<DescriptiveStatistics>> stratifiedFrequencyTables = DashboardHelper.GenerateFrequencyTable(GadgetOptions); GenerateChartData(stratifiedFrequencyTables); } this.Dispatcher.BeginInvoke(new SimpleCallback(RenderFinish)); } catch (Exception ex) { this.Dispatcher.BeginInvoke(new RenderFinishWithErrorDelegate(RenderFinishWithError), ex.Message); } finally { stopwatch.Stop(); Debug.Print("Column chart gadget took " + stopwatch.Elapsed.ToString() + " seconds to complete."); Debug.Print(DashboardHelper.DataFilters.GenerateDataFilterString()); } } }
protected override void worker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { lock (syncLock) { Dictionary<string, string> inputVariableList = ((GadgetParameters)e.Argument).InputVariableList; //Stopwatch stopwatch = new Stopwatch(); //stopwatch.Start(); this.Dispatcher.BeginInvoke(new SimpleCallback(SetGadgetToProcessingState)); this.Dispatcher.BeginInvoke(new SimpleCallback(ClearResults)); AddFreqGridDelegate addGrid = new AddFreqGridDelegate(AddFreqGrid); SetGridTextDelegate setText = new SetGridTextDelegate(SetGridText); AddGridRowDelegate addRow = new AddGridRowDelegate(AddGridRow); RenderFrequencyHeaderDelegate renderHeader = new RenderFrequencyHeaderDelegate(RenderFrequencyHeader); DrawFrequencyBordersDelegate drawBorders = new DrawFrequencyBordersDelegate(DrawOutputGridBorders); string freqVar = string.Empty; string weightVar = string.Empty; string strataVar = string.Empty; string crosstabVar = string.Empty; bool includeMissing = false; bool outcomeContinuous = false; bool showStrataSummaryOnly = false; if (inputVariableList.ContainsKey("freqvar")) { freqVar = inputVariableList["freqvar"]; } if (inputVariableList.ContainsKey("crosstabvar")) { crosstabVar = inputVariableList["crosstabvar"]; } if (inputVariableList.ContainsKey("weightvar")) { weightVar = inputVariableList["weightvar"]; } if (inputVariableList.ContainsKey("stratavar")) { strataVar = inputVariableList["stratavar"]; } if (inputVariableList.ContainsKey("includemissing")) { if (inputVariableList["includemissing"].Equals("true")) { includeMissing = true; } } if (inputVariableList.ContainsKey("stratasummaryonly")) { if (inputVariableList["stratasummaryonly"].Equals("true")) { showStrataSummaryOnly = true; } } if (inputVariableList.ContainsKey("treatoutcomeascontinuous")) { if (inputVariableList["treatoutcomeascontinuous"].Equals("true")) { outcomeContinuous = true; } } List<string> stratas = new List<string>(); if (!string.IsNullOrEmpty(strataVar)) { stratas.Add(strataVar); } try { GadgetOptions.GadgetStatusUpdate += new GadgetStatusUpdateHandler(requestUpdateStatus); GadgetOptions.GadgetCheckForCancellation += new GadgetCheckForCancellationHandler(checkForCancellation); if (this.DataFilters != null && this.DataFilters.Count > 0) { GadgetOptions.CustomFilter = this.DataFilters.GenerateDataFilterString(false); } else { GadgetOptions.CustomFilter = string.Empty; } bool runGroup = false; Dictionary<DataTable, List<DescriptiveStatistics>> stratifiedFrequencyTables = new Dictionary<DataTable, List<DescriptiveStatistics>>(); List<string> allGroupFields = DashboardHelper.GetAllGroupsAsList(); if (GadgetOptions.MainVariableNames != null && GadgetOptions.MainVariableNames.Count > 0) { Dictionary<DataTable, List<DescriptiveStatistics>> grpTables = new Dictionary<DataTable, List<DescriptiveStatistics>>(); foreach (string mainVariableName in GadgetOptions.MainVariableNames) { GadgetParameters newOptions = new GadgetParameters(GadgetOptions); newOptions.MainVariableNames = null; newOptions.MainVariableName = mainVariableName; grpTables = DashboardHelper.GenerateFrequencyTable(newOptions); foreach (KeyValuePair<DataTable, List<DescriptiveStatistics>> kvp in grpTables) { stratifiedFrequencyTables.Add(kvp.Key, kvp.Value); } } runGroup = true; } else if (allGroupFields.Contains(GadgetOptions.MainVariableName)) { Dictionary<DataTable, List<DescriptiveStatistics>> grpTables = new Dictionary<DataTable, List<DescriptiveStatistics>>(); foreach (string variableName in DashboardHelper.GetVariablesInGroup(GadgetOptions.MainVariableName)) { if (!allGroupFields.Contains(variableName) && DashboardHelper.TableColumnNames.ContainsKey(variableName)) { GadgetParameters newOptions = new GadgetParameters(GadgetOptions); newOptions.MainVariableNames = null; newOptions.MainVariableName = variableName; grpTables = DashboardHelper.GenerateFrequencyTable(newOptions); foreach (KeyValuePair<DataTable, List<DescriptiveStatistics>> kvp in grpTables) { stratifiedFrequencyTables.Add(kvp.Key, kvp.Value); } } } runGroup = true; } else { stratifiedFrequencyTables = DashboardHelper.GenerateFrequencyTable(GadgetOptions/*, freqVar, weightVar, stratas, crosstabVar, useAllPossibleValues, sortHighLow, includeMissing, false*/); runGroup = false; } if (runGroup) showStrataSummaryOnly = false; if (stratifiedFrequencyTables == null || stratifiedFrequencyTables.Count == 0) { this.Dispatcher.BeginInvoke(new RenderFinishWithErrorDelegate(RenderFinishWithError), DashboardSharedStrings.GADGET_MSG_NO_DATA); this.Dispatcher.BeginInvoke(new SimpleCallback(SetGadgetToFinishedState)); return; } else if (worker.CancellationPending) { this.Dispatcher.BeginInvoke(new RenderFinishWithErrorDelegate(RenderFinishWithError), SharedStrings.DASHBOARD_GADGET_STATUS_OPERATION_CANCELLED); this.Dispatcher.BeginInvoke(new SimpleCallback(SetGadgetToFinishedState)); //Debug.Print("Thread cancelled"); return; } else { string formatString = string.Empty; this.plusPlus = 0.0; this.plusMinus = 0.0; this.minusPlus = 0.0; this.minusMinus = 0.0; this.noCases = 0.0; this.extraCases = 0.0; this.noControls = 0.0; this.extraControls = 0.0; foreach (KeyValuePair<DataTable, List<DescriptiveStatistics>> tableKvp in stratifiedFrequencyTables) { SmartTable(tableKvp.Key); string strataValue = tableKvp.Key.TableName; double count = 0; foreach (DescriptiveStatistics ds in tableKvp.Value) { count = count + ds.observations; } if (count == 0 && stratifiedFrequencyTables.Count == 1) { // this is the only table and there are no records, so let the user know this.Dispatcher.BeginInvoke(new RenderFinishWithErrorDelegate(RenderFinishWithError), SharedStrings.NO_RECORDS_SELECTED); this.Dispatcher.BeginInvoke(new SimpleCallback(SetGadgetToFinishedState)); return; } else if (count == 0) { continue; } DataTable frequencies = tableKvp.Key; if (YesValues.Count > 0 && NoValues.Count > 0) { frequencies = ApplyRowValueMappings(frequencies); frequencies = ApplyColumnValueMappings(frequencies); } if (frequencies.Rows.Count == 0) { continue; } if (outcomeContinuous) { if (frequencies.Columns.Count <= 128) { int min; int max; if (int.TryParse(frequencies.Columns[1].ColumnName, out min) && int.TryParse(frequencies.Columns[frequencies.Columns.Count - 1].ColumnName, out max)) { bool addedColumns = false; for (int i = min; i <= max; i++) { if (!frequencies.Columns.Contains(i.ToString())) { DataColumn newColumn = new DataColumn(i.ToString(), typeof(double)); newColumn.DefaultValue = 0; frequencies.Columns.Add(newColumn); addedColumns = true; } } if (addedColumns) { int ordinal = 1; for (int i = min; i <= max; i++) { if (frequencies.Columns.Contains(i.ToString())) { frequencies.Columns[i.ToString()].SetOrdinal(ordinal); ordinal++; } } } } } } this.Dispatcher.BeginInvoke(addGrid, strataVar, frequencies.TableName, crosstabVar, frequencies.Columns[0].ToString(), frequencies); } foreach (KeyValuePair<DataTable, List<DescriptiveStatistics>> tableKvp in stratifiedFrequencyTables) { if (runGroup) { freqVar = tableKvp.Key.Columns[0].ColumnName; } string strataValue = tableKvp.Key.TableName; double count = 0; foreach (DescriptiveStatistics ds in tableKvp.Value) { count = count + ds.observations; } if (count == 0) { continue; } DataTable frequencies = tableKvp.Key; if (YesValues.Count > 0 && NoValues.Count > 0) { frequencies = ApplyRowValueMappings(frequencies); frequencies = ApplyColumnValueMappings(frequencies); } if (frequencies.Rows.Count == 0) { continue; } string tableHeading = tableKvp.Key.TableName; if (stratifiedFrequencyTables.Count > 1) { tableHeading = freqVar; } this.Dispatcher.BeginInvoke(renderHeader, strataValue, tableHeading, frequencies.Columns); rowCount = 1; int[] totals = new int[frequencies.Columns.Count - 1]; columnCount = 1; DataRow[] SortedRows = new DataRow[frequencies.Rows.Count]; int rowcounter = 0; foreach (System.Data.DataRow row in frequencies.Rows) { SortedRows[rowcounter++] = row; if (!row[freqVar].Equals(DBNull.Value) || (row[freqVar].Equals(DBNull.Value) && includeMissing == true)) { this.Dispatcher.Invoke(addRow, strataValue, -1); string displayValue = row[freqVar].ToString(); if (DashboardHelper.IsUserDefinedColumn(freqVar)) { displayValue = DashboardHelper.GetFormattedOutput(freqVar, row[freqVar]); } else { if (DashboardHelper.IsUsingEpiProject && View.Fields[freqVar] is YesNoField) { if (row[freqVar].ToString().Equals("1")) displayValue = "Yes"; else if (row[freqVar].ToString().Equals("0")) displayValue = "No"; } else if (DashboardHelper.IsUsingEpiProject && View.Fields[freqVar] is DateField) { displayValue = string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0:d}", row[freqVar]); } else if (DashboardHelper.IsUsingEpiProject && View.Fields[freqVar] is TimeField) { displayValue = string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0:T}", row[freqVar]); } else { displayValue = DashboardHelper.GetFormattedOutput(freqVar, row[freqVar]); } } if (string.IsNullOrEmpty(displayValue)) { Configuration config = DashboardHelper.Config; displayValue = config.Settings.RepresentationOfMissing; } this.Dispatcher.BeginInvoke(setText, strataValue, new TextBlockConfig(displayValue, new Thickness(4, 0, 4, 0), VerticalAlignment.Center, HorizontalAlignment.Left, TextAlignment.Left, rowCount, 0, System.Windows.Visibility.Visible), FontWeights.Normal); int rowTotal = 0; columnCount = 1; foreach (DataColumn column in frequencies.Columns) { if (column.ColumnName.Equals(freqVar)) { continue; } this.Dispatcher.BeginInvoke(setText, strataValue, new TextBlockConfig(row[column.ColumnName].ToString(), new Thickness(4, 0, 4, 0), VerticalAlignment.Center, HorizontalAlignment.Right, TextAlignment.Right, rowCount, columnCount, System.Windows.Visibility.Visible), FontWeights.Normal); columnCount++; int rowValue = 0; bool success = int.TryParse(row[column.ColumnName].ToString(), out rowValue); if (success) { totals[columnCount - 2] = totals[columnCount - 2] + rowValue; rowTotal = rowTotal + rowValue; } } this.Dispatcher.BeginInvoke(setText, strataValue, new TextBlockConfig(rowTotal.ToString(), new Thickness(4, 0, 4, 0), VerticalAlignment.Center, HorizontalAlignment.Right, TextAlignment.Right, rowCount, columnCount, System.Windows.Visibility.Visible), FontWeights.Bold); rowCount++; } } double[] tableChiSq = Epi.Statistics.SingleMxN.CalcChiSq(SortedRows, false); double tableChiSqDF = (double)(SortedRows.Length - 1) * (SortedRows[0].ItemArray.Length - 2); double tableChiSqP = Epi.Statistics.SharedResources.PValFromChiSq(tableChiSq[0], tableChiSqDF); String disclaimer = ""; if (tableChiSq[1] == 1.0) disclaimer = SharedStrings.TABLES_CHI_SQUARE_NOT_VALID; this.Dispatcher.BeginInvoke(new AddChiSquareDelegate(RenderChiSquare), tableChiSq[0], tableChiSqDF, tableChiSqP, disclaimer, strataValue); this.Dispatcher.BeginInvoke(new AddGridFooterDelegate(RenderFrequencyFooter), strataValue, rowCount, totals); this.Dispatcher.BeginInvoke(drawBorders, strataValue); } } this.Dispatcher.BeginInvoke(new SimpleCallback(RenderFinish)); this.Dispatcher.BeginInvoke(new SimpleCallback(SetGadgetToFinishedState)); // check for existence of 2x2 table... if (rowCount == 3 && columnCount == 3) { } stratifiedFrequencyTables.Clear(); } catch (Exception ex) { this.Dispatcher.BeginInvoke(new RenderFinishWithErrorDelegate(RenderFinishWithError), ex.Message); this.Dispatcher.BeginInvoke(new SimpleCallback(SetGadgetToFinishedState)); } finally { //stopwatch.Stop(); //Debug.Print("Crosstab gadget took " + stopwatch.Elapsed.ToString() + " seconds to complete with " + dashboardHelper.RecordCount.ToString() + " records and the following filters:"); //Debug.Print(dashboardHelper.DataFilters.GenerateDataFilterString()); } } }
protected override void Construct() { if (!string.IsNullOrEmpty(CustomOutputHeading) && !CustomOutputHeading.Equals("(none)")) { headerPanel.Text = CustomOutputHeading; } this.IsProcessing = false; this.GadgetStatusUpdate += new GadgetStatusUpdateHandler(RequestUpdateStatusMessage); this.GadgetCheckForCancellation += new GadgetCheckForCancellationHandler(IsCancelled); cbxFields.SelectionChanged += new SelectionChangedEventHandler(cbxFields_SelectionChanged); mnuSendToBack.Click += new RoutedEventHandler(mnuSendToBack_Click); mnuClose.Click += new RoutedEventHandler(mnuClose_Click); // Init gadget parameters with default values GadgetOptions = new GadgetParameters(); GadgetOptions.ShouldIncludeFullSummaryStatistics = true; GadgetOptions.ShouldIncludeMissing = false; GadgetOptions.ShouldSortHighToLow = false; GadgetOptions.ShouldUseAllPossibleValues = false; GadgetOptions.StrataVariableNames = new List<string>(); base.Construct(); }
/// <summary> /// Handles the DoWorker event for the worker /// </summary> /// <param name="sender">Object that fired the event</param> /// <param name="e">.NET supplied event parameters</param> private void worker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) { bool needsRefresh = false; if (e != null && e.Argument is bool) { needsRefresh = !((bool)e.Argument); } IsPopulatingDataSet = true; RequestUpdateStatusDelegate requestUpdateStatus = new RequestUpdateStatusDelegate(RequestUpdateStatusMessage); CheckForCancellationDelegate checkForCancellation = new CheckForCancellationDelegate(IsCancelled); SetGadgetStatusHandler setGadgetProgress = new SetGadgetStatusHandler(RequestProgressUpdate); GadgetParameters inputs = new GadgetParameters(); inputs.GadgetStatusUpdate += new GadgetStatusUpdateHandler(requestUpdateStatus); inputs.GadgetCheckForCancellation += new GadgetCheckForCancellationHandler(checkForCancellation); inputs.GadgetCheckForProgress += new SetGadgetStatusHandler(setGadgetProgress); try { DashboardHelper.UserVarsNeedUpdating = true; DashboardHelper.PopulateDataSet(inputs); } catch (System.Data.EvaluateException) { this.Dispatcher.BeginInvoke(new SendNotificationMessageHandler(SendNotificationMessage), DashboardSharedStrings.ERROR_FILTER_NO_LONGER_VALID, true, NotificationButtonType.OK, true, 10); } catch (Exception ex) { Epi.Windows.MsgBox.ShowException(ex); } e.Result = needsRefresh; }