/// <summary> /// Set the color and icon columns visibility /// </summary> /// <param name="showColorCol"></param> void SetColumnVisibilityForColoringStyle(CondFormatStyle coloringStyle) { RepositoryItemImageComboBox riie = IconImageRepositoryColumnEdit as RepositoryItemImageComboBox; bool allowMultipleRules = true; if (coloringStyle == CondFormatStyle.ColorSet) { BackColor1.Visible = true; IconImage.Visible = false; } else if (coloringStyle == CondFormatStyle.ColorScale) { BackColor1.Visible = false; IconImage.Visible = true; IconImage.Caption = "Color Scale"; SetupImageComboBox(Bitmaps.I.ColorScaleImages); riie.LargeImages = Bitmaps.I.ColorScaleImages; riie.SmallImages = null; allowMultipleRules = false; } else if (coloringStyle == CondFormatStyle.DataBar) { BackColor1.Visible = false; IconImage.Visible = true; IconImage.Caption = "Color"; SetupImageComboBox(Bitmaps.I.DataBarsImages); riie.LargeImages = Bitmaps.I.DataBarsImages; riie.SmallImages = null; allowMultipleRules = false; } else if (coloringStyle == CondFormatStyle.IconSet) { BackColor1.Visible = false; IconImage.Visible = true; IconImage.Caption = "Icon"; SetupImageComboBox(Bitmaps.I.IconSetImages); riie.SmallImages = Bitmaps.I.IconSetImages; riie.LargeImages = null; } //V.OptionsView.NewItemRowPosition = // allow new rows? // (allowMultipleRules ? NewItemRowPosition.Bottom : NewItemRowPosition.None); return; }
private void ColorColumnSelector_EditValueChanged(object sender, EventArgs e) { #if false if (InSetup) { return; } InSetup = true; QueryColumn qc = ColorColumnSelector.QueryColumn; ColorBy.QueryColumn = qc; if (qc != null) { // setup for this column ColorByColumn.Checked = true; if (qc.CondFormat == null || qc.CondFormat.Rules.Count == 0) { // define default rules qc.CondFormat = new CondFormat(); ResultsField rfld = View.ResultsFormat.GetResultsField(qc); if (rfld != null) { CondFormatStyle cfStyle = qc.CondFormat.Rules.ColoringStyle; ColorRulesControl.SetupControl(rfld.QueryColumn.MetaColumn.DataType, cfStyle, rfld); //ColorRulesControl.SetupForResultsField(rfld, qc.CondFormat.Rules.ColoringStyle); } InitializeRulesBasedOnDataValues(); qc.CondFormat.Rules = ColorRulesControl.GetRules(); // get rules back } ResetBackgroundColors(ColorBy.QueryColumn); SetupColorSchemeGrid(ColorBy.QueryColumn, View); } else { ColorByFixedColor.Checked = true; // no col selected, goto fixed mode } InSetup = false; FireEditValueChanged(ColorColumnSelector); #endif return; }
void SetupCondFormatRulesFromColorCodingItems( TrellisCardBarChartControl cc, List <ColorCodingItemMsx> ccl, CondFormatStyle cfStyle) { CondFormatRules rules = new CondFormatRules(cfStyle); foreach (ColorCodingItemMsx i in ccl) { CondFormatRule r = new CondFormatRule(); r.Name = i.ColumnName; string suffix = ""; if (cfStyle == CondFormatStyle.ColorSet) { r.BackColor1 = i.BackColor; } else // Gradient { int ruleCnt = i.SubRules.Count; List <string> subruleText = new List <string>(); foreach (ColorCodingSubRuleMsx ccr in i.SubRules) { string txt = ccr.Value; if (ccr.CalcType != ValueCalcTypeEnumMsx.Value) { txt += " (" + ccr.CalcType + ")"; } subruleText.Add(txt); } List <Color> colors = new List <Color>(); if (ruleCnt > 0) { r.Value = subruleText[0]; colors.Add(i.SubRules[0].Color); } if (ruleCnt > 2) { r.Value2 = subruleText[2]; // max rule text colors.Add(i.SubRules[1].Color); // avg color colors.Add(i.SubRules[2].Color); // max color } else if (ruleCnt > 1) { r.Value2 = subruleText[1]; colors.Add(i.SubRules[1].Color); } string scaleName = Bitmaps.GetColorScaleNameFromColorset(colors.ToArray()); if (Lex.IsUndefined(scaleName)) { scaleName = CondFormat.DefaultColorScale; } r.ImageName = scaleName; } rules.Add(r); } cc.Setup(SVP, rules, EditValueChanged); return; }
/// <summary> /// Add to the content of the rules control /// </summary> /// <param name="rules"></param> public void LoadDataTableFromCondFormatRules( CondFormatRules rules) { DataTable dt = DataTable; DataRow dr; InSetup = true; //bool saveEnabled = dt.EnableDataChangedEventHandlers(false); // turn off change events while filling // Setup for CF coloring style CondFormatStyle colorStyle = rules.ColoringStyle; if (colorStyle == CondFormatStyle.ColorScale) { //ColorStyleDropDown.Text = "Continuous Colors"; ColumnImageCollection = Bitmaps.I.ColorScaleImages; } else if (colorStyle == CondFormatStyle.DataBar) { //ColorStyleDropDown.Text = "Data Bars"; ColumnImageCollection = Bitmaps.I.DataBarsImages; } else if (colorStyle == CondFormatStyle.IconSet) { //ColorStyleDropDown.Text = "Icon Set"; ColumnImageCollection = Bitmaps.I.IconSetImages; } else { //ColorStyleDropDown.Text = "Discrete Colors"; ColumnImageCollection = null; } // Setup rules for color style if (rules == null) { InSetup = false; return; } for (int ri = 0; ri < rules.Count; ri++) // fill in the grid { CondFormatRule r = rules[ri]; dr = dt.NewRow(); dt.Rows.InsertAt(dr, ri); dr[LabelCol] = r.Name; dr[OpCol] = r.Op; dr[ValCol] = r.Value; dr[ValCol2] = r.Value2; dr[BackColorCol1] = r.BackColor1; if (Lex.IsDefined(r.ImageName)) { dr[IconImageCol] = Bitmaps.GetImageIndexFromName(ColumnImageCollection, r.ImageName); } else { dr[IconImageCol] = DBNull.Value; } } RulesGrid.DataSource = dt; // make the data visible //RulesGrid.AddNewRowAsNeeded(); //dt.EnableDataChangedEventHandlers(saveEnabled); InSetup = false; return; }
/// <summary> /// Setup the control for the specified column and format style /// (Doesn't set the list of specific rules) /// </summary> /// <param name="columnType">MetaColumnType for column</param> public void SetupDataTableAndGrid( SpotfireViewProps svp, CondFormatRules rules) { SVP = svp; Rules = rules; ColoringStyle = rules.ColoringStyle; CondFormatStyle cfStyle = rules.ColoringStyle; DataTable dt = new DataTable(); DataTable = dt; // save ref to table dt.Columns.Add("RuleName", typeof(string)); // column id dt.Columns.Add("Operator", typeof(string)); dt.Columns.Add("Value", typeof(string)); dt.Columns.Add("Value2", typeof(string)); V.Columns[OpCol].Visible = false; // hide operator V.Columns[ValCol].Caption = "Comparison Value"; V.Columns[ValCol].FieldName = "Value"; // restore name V.Columns[ValCol].UnboundType = UnboundColumnType.Bound; // column is bound V.Columns[ValCol2].Visible = true; // show high val V.Columns[ValCol].Width = ValColWidth; V.Columns[ValCol2].Width = ValCol2Width; EnableCfStyleOptions(colorSets: true, colorScales: false, dataBars: false, iconSets: true); // don't allow non-discrete styles string ops = "Equal to|" + "Between|" + ">|" + "<|" + ">=|" + "<=|" + "Not Equal to|" + "Not Between|" + "Any other value|" + "Missing"; if (cfStyle == CondFormatStyle.ColorScale) { ops = "Between"; // only allow between rule V.Columns[ValCol].Caption = "Bottom Color Data Value"; V.Columns[ValCol2].Caption = "Top Color Data Value"; } else // single color (cfStyle == CondFormatStyle.ColorSet { V.Columns[ValCol].Visible = false; V.Columns[ValCol2].Visible = false; } string[] list = ops.Split('|'); RepositoryItemComboBox cb = V.Columns[OpCol].ColumnEdit as RepositoryItemComboBox; if (cb != null) { cb.Items.Clear(); cb.Items.AddRange(list); } dt.Columns.Add("BackColor1", typeof(Color)); dt.Columns.Add("IconImageIdx", typeof(int)); SetColumnVisibilityForColoringStyle(cfStyle); dt.RowChanged += new DataRowChangeEventHandler(DataRowChangeEventHandler); dt.RowDeleted += new DataRowChangeEventHandler(DataRowDeletedEventHandler); return; }
/// <summary> /// Construct defining coloring style /// </summary> /// <param name="coloringStyle"></param> public CondFormatRules(CondFormatStyle coloringStyle) { ColoringStyle = coloringStyle; return; }