public PieChart(DashboardHelper dashboardHelper, PieChartParameters parameters, List<XYColumnChartData> dataList) { InitializeComponent(); PieChartParameters = parameters; this.DashboardHelper = dashboardHelper; SetChartProperties(); SetChartData(dataList); xyChart.Legend.BorderBrush = Brushes.Gray; }
/// <summary> /// Copy Constructor /// </summary> public PieChartParameters(PieChartParameters parameters) : base(parameters) { ColumnNames = parameters.ColumnNames; InputVariableList = parameters.InputVariableList; CustomFilter = parameters.CustomFilter; CustomSortColumnName = parameters.CustomSortColumnName; IncludeFullSummaryStatistics = parameters.IncludeFullSummaryStatistics; ShowAllListValues = parameters.ShowAllListValues; ShowCommentLegalLabels = parameters.ShowCommentLegalLabels; SortHighToLow = parameters.SortHighToLow; IncludeMissing = parameters.IncludeMissing; CrosstabVariableName = parameters.CrosstabVariableName; WeightVariableName = parameters.WeightVariableName; IgnoreRowLimits = parameters.IgnoreRowLimits; SortVariables = parameters.SortVariables; //from ChartGadgetParametersBase //Advanced options ChartWidth = parameters.ChartWidth; ChartHeight = parameters.ChartHeight; //Display options // Color and styles PieChartKind = parameters.PieChartKind; UseRefValues = parameters.UseRefValues; ShowAnnotations = parameters.ShowAnnotations; ShowAnnotationLabel = parameters.ShowAnnotationLabel; ShowAnnotationValue = parameters.ShowAnnotationValue; ShowAnnotationPercent = parameters.ShowAnnotationPercent; AnnotationPercent = parameters.AnnotationPercent; Palette = parameters.Palette; // Labels ChartTitle = parameters.ChartTitle; ChartSubTitle = parameters.ChartSubTitle; ChartStrataTitle = parameters.ChartStrataTitle; // Legend ShowLegend = parameters.ShowLegend; ShowLegendBorder = parameters.ShowLegendBorder; ShowLegendVarNames = parameters.ShowLegendVarNames; LegendFontSize = parameters.LegendFontSize; LegendDock = parameters.LegendDock; PaletteColors = parameters.PaletteColors; }
/// <summary> /// Copy Constructor /// </summary> public PieChartParameters(PieChartParameters parameters) : base(parameters) { ColumnNames = parameters.ColumnNames; InputVariableList = parameters.InputVariableList; CustomFilter = parameters.CustomFilter; CustomSortColumnName = parameters.CustomSortColumnName; IncludeFullSummaryStatistics = parameters.IncludeFullSummaryStatistics; ShowAllListValues = parameters.ShowAllListValues; ShowCommentLegalLabels = parameters.ShowCommentLegalLabels; SortHighToLow = parameters.SortHighToLow; IncludeMissing = parameters.IncludeMissing; CrosstabVariableName = parameters.CrosstabVariableName; WeightVariableName = parameters.WeightVariableName; IgnoreRowLimits = parameters.IgnoreRowLimits; SortVariables = parameters.SortVariables; //from ChartGadgetParametersBase //Advanced options ChartWidth = parameters.ChartWidth; ChartHeight = parameters.ChartHeight; //Display options // Color and styles PieChartKind = parameters.PieChartKind; UseRefValues = parameters.UseRefValues; ShowAnnotations = parameters.ShowAnnotations; ShowAnnotationLabel = parameters.ShowAnnotationLabel; ShowAnnotationValue = parameters.ShowAnnotationValue; ShowAnnotationPercent = parameters.ShowAnnotationPercent; AnnotationPercent = parameters.AnnotationPercent; Palette = parameters.Palette; // Labels ChartTitle = parameters.ChartTitle; ChartSubTitle = parameters.ChartSubTitle; ChartStrataTitle = parameters.ChartStrataTitle; // Legend ShowLegend = parameters.ShowLegend; ShowLegendBorder = parameters.ShowLegendBorder; ShowLegendVarNames = parameters.ShowLegendVarNames; LegendFontSize = parameters.LegendFontSize; LegendDock = parameters.LegendDock; }
public PieChartProperties( DashboardHelper dashboardHelper, IGadget gadget, PieChartParameters parameters, List<Grid> strataGridList ) { InitializeComponent(); this.DashboardHelper = dashboardHelper; this.Gadget = gadget; this.Parameters = parameters; this.StrataGridList = strataGridList; List<string> fields = new List<string>(); List<string> weightFields = new List<string>(); List<string> strataItems = new List<string>(); //Variable fields fields.Add(String.Empty); ColumnDataType columnDataType = ColumnDataType.Boolean | ColumnDataType.DateTime | ColumnDataType.Numeric | ColumnDataType.Text | ColumnDataType.UserDefined; foreach (string fieldName in DashboardHelper.GetFieldsAsList(columnDataType)) { if (DashboardHelper.IsUsingEpiProject) { if (!(fieldName == "RecStatus")) fields.Add(fieldName); } else { fields.Add(fieldName); } } cmbField.ItemsSource = fields; //Weight Fields weightFields.Add(String.Empty); columnDataType = ColumnDataType.Numeric | ColumnDataType.UserDefined; foreach (string fieldName in DashboardHelper.GetFieldsAsList(columnDataType)) { if (DashboardHelper.IsUsingEpiProject) { if (!(fieldName == "RecStatus")) weightFields.Add(fieldName); } else { weightFields.Add(fieldName); } } weightFields.Sort(); cmbFieldWeight.ItemsSource = weightFields; //Strata Fields strataItems.Add(String.Empty); columnDataType = ColumnDataType.Numeric | ColumnDataType.Boolean | ColumnDataType.Text | ColumnDataType.UserDefined; foreach (string fieldName in DashboardHelper.GetFieldsAsList(columnDataType)) { if (DashboardHelper.IsUsingEpiProject) { if (!(fieldName == "RecStatus" || fieldName == "FKEY" || fieldName == "GlobalRecordId")) strataItems.Add(fieldName); } else { strataItems.Add(fieldName); } } cmbFieldCrosstab.ItemsSource = strataItems; cmbLegendDock.SelectedIndex = 1; CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(cmbField.ItemsSource); PropertyGroupDescription groupDescription = new PropertyGroupDescription("VariableCategory"); view.GroupDescriptions.Add(groupDescription); RowFilterControl = new RowFilterControl(this.DashboardHelper, Dialogs.FilterDialogMode.ConditionalMode, (gadget as PieChartGadget).DataFilters, true); RowFilterControl.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; panelFilters.Children.Add(RowFilterControl); txtWidth.PreviewKeyDown += new KeyEventHandler(txtInput_PositiveIntegerOnly_PreviewKeyDown); txtHeight.PreviewKeyDown += new KeyEventHandler(txtInput_PositiveIntegerOnly_PreviewKeyDown); txtLegendFontSize.PreviewKeyDown += new KeyEventHandler(txtInput_PositiveIntegerOnly_PreviewKeyDown); txtAnnotationPercent.PreviewKeyDown += new KeyEventHandler(txtInput_PositiveIntegerOnly_PreviewKeyDown); #region Translation #endregion // Translation }
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)); PieChartParameters chtParameters = (PieChartParameters)Parameters; string freqVar = chtParameters.ColumnNames[0]; string weightVar = chtParameters.WeightVariableName; string strataVar = string.Empty; string crosstabVar = chtParameters.CrosstabVariableName; bool includeMissing = chtParameters.IncludeMissing; List<string> stratas = new List<string>(); if (!string.IsNullOrEmpty(strataVar)) { stratas.Add(strataVar); } try { RequestUpdateStatusDelegate requestUpdateStatus = new RequestUpdateStatusDelegate(RequestUpdateStatusMessage); CheckForCancellationDelegate checkForCancellation = new CheckForCancellationDelegate(IsCancelled); chtParameters.GadgetStatusUpdate += new GadgetStatusUpdateHandler(requestUpdateStatus); chtParameters.GadgetCheckForCancellation += new GadgetCheckForCancellationHandler(checkForCancellation); if (this.DataFilters != null && this.DataFilters.Count > 0) { chtParameters.CustomFilter = this.DataFilters.GenerateDataFilterString(false); } else { chtParameters.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)) { PieChartParameters parameters = new PieChartParameters(chtParameters); if (!string.IsNullOrEmpty(chtParameters.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(100); } } else { Dictionary<DataTable, List<DescriptiveStatistics>> stratifiedFrequencyTables = DashboardHelper.GenerateFrequencyTable(chtParameters); GenerateChartData(stratifiedFrequencyTables); } this.Dispatcher.BeginInvoke(new SimpleCallback(RenderFinish)); } catch (Exception ex) { this.Dispatcher.BeginInvoke(new RenderFinishWithErrorDelegate(RenderFinishWithError), ex.Message); } finally { stopwatch.Stop(); Debug.Print("Pie chart gadget took " + stopwatch.Elapsed.ToString() + " seconds to complete."); Debug.Print(DashboardHelper.DataFilters.GenerateDataFilterString()); } } }