Skip to content

Commit

Permalink
finish ColorPalette
Browse files Browse the repository at this point in the history
  • Loading branch information
olmobrutall committed Nov 28, 2022
1 parent 6e3193c commit d7b004c
Show file tree
Hide file tree
Showing 35 changed files with 588 additions and 164 deletions.
1 change: 1 addition & 0 deletions Signum.Engine.Extensions/Chart/ChartColorLogic.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ internal static void Start(SchemaBuilder sb)
.WithQuery(() => cc => new
{
Entity = cc,
cc.Id,
cc.Type,
cc.CategoryName,
cc.Seed,
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/Bars.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public BarsChartScript(): base(D3ChartScript.Bars)
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
}
};
}
Expand Down
4 changes: 2 additions & 2 deletions Signum.Engine.Extensions/Chart/Scripts/BubblePack.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,11 @@ public BubblePackChartScript() : base(D3ChartScript.BubblePack)
new ChartScriptParameterGroup("Color Scale")
{
new ChartScriptParameter("ColorScale", ChartParameterType.Enum) { ColumnIndex = 3, ValueDefinition = EnumValueList.Parse("ZeroMax|MinMax|Sqrt|Log") },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ColumnIndex = 3, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ColumnIndex = 3, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ColumnIndex = 4, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ColumnIndex = 4, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
},
};
}
Expand Down
4 changes: 2 additions & 2 deletions Signum.Engine.Extensions/Chart/Scripts/Bubbleplot.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ public BubbleplotChartScript() : base(D3ChartScript.Bubbleplot)
new ChartScriptParameterGroup("Color Scale")
{
new ChartScriptParameter("ColorScale", ChartParameterType.Enum) { ColumnIndex = 0, ValueDefinition = EnumValueList.Parse("Ordinal|ZeroMax|MinMax|Sqrt|Log") },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ColumnIndex = 0, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ColumnIndex = 0, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ColumnIndex = 0, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ColumnIndex = 0, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
}
};
}
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/CalendarStream.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public CalendarStreamChartScript() : base(D3ChartScript.CalendarStream)
{
new ChartScriptParameter("StartDate", ChartParameterType.Enum) { ColumnIndex = 0, ValueDefinition = EnumValueList.Parse("Monday|Sunday") },
new ChartScriptParameter("ColorScale", ChartParameterType.Enum) { ColumnIndex = 1, ValueDefinition = EnumValueList.Parse("ZeroMax|MinMax|Sqrt|Log") },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ColumnIndex = 1, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ColumnIndex = 1, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
}
};
}
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/Columns.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public ColumnsChartScript() : base(D3ChartScript.Columns)
},
new ChartScriptParameterGroup("Color")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ForceColor", ChartParameterType.String) { ValueDefinition = new StringValue("") },
}
};
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/Heatmap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public HeatmapChartScript() : base(GoogleMapsChartScript.Heatmap)
},
new ChartScriptParameterGroup("Color Gradient")
{
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
}
};
}
Expand Down
4 changes: 2 additions & 2 deletions Signum.Engine.Extensions/Chart/Scripts/Markermap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ public MarkermapChartScript(): base(GoogleMapsChartScript.Markermap)
new ChartScriptParameterGroup()
{
new ChartScriptParameter("ColorScale", ChartParameterType.Enum) { ColumnIndex = 6, ValueDefinition = EnumValueList.Parse("ZeroMax|MinMax|Sqrt|Log") },
new ChartScriptParameter("ColorInterpolation", ChartParameterType.Enum) { ColumnIndex = 6, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ColumnIndex = 7, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory)}
new ChartScriptParameter("ColorInterpolation", ChartParameterType.Special) { ColumnIndex = 6, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ColumnIndex = 7, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory)}
},
new ChartScriptParameterGroup("Zoom")
{
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/MultiBars.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public MultiBarsChartScript() : base(D3ChartScript.MultiBars)
},
new ChartScriptParameterGroup("Color")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
}
};
}
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/MultiColumns.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public MultiColumnsChartScript() : base(D3ChartScript.MultiColumns)
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
}
};
}
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/MultiLines.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public MultiLinesChartScript(): base(D3ChartScript.MultiLines)
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
},
new ChartScriptParameterGroup("Form")
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public ParallelCoordiantesChartScript(): base(D3ChartScript.ParallelCoordinates)
},
new ChartScriptParameterGroup("Color")
{
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
},
new ChartScriptParameterGroup("Form")
{
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/Pie.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public PieChartScript(): base(D3ChartScript.Pie)
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
},
new ChartScriptParameterGroup("ShowPercent")
{
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/Punchcard.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public PunchcardChartScript() : base(D3ChartScript.Punchcard)
new ChartScriptParameterGroup("Fill Color")
{
new ChartScriptParameter("ColorScale", ChartParameterType.Enum) { ColumnIndex = 3, ValueDefinition = EnumValueList.Parse("ZeroMax|MinMax|Sqrt|Log") },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ColumnIndex = 3, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ColumnIndex = 3, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("FillColor", ChartParameterType.String) { ValueDefinition = new StringValue("gray") },
},
new ChartScriptParameterGroup("Stroke")
Expand Down
4 changes: 2 additions & 2 deletions Signum.Engine.Extensions/Chart/Scripts/Scatterplot.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ public ScatterplotChartScript() : base(D3ChartScript.Scatterplot)
new ChartScriptParameterGroup("Color Scale")
{
new ChartScriptParameter("ColorScale", ChartParameterType.Enum) { ColumnIndex = 0, ValueDefinition = EnumValueList.Parse("Ordinal|ZeroMax|MinMax|Sqrt|Log") },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ColumnIndex = 0, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ColumnIndex = 0, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ColumnIndex = 0, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) }
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ColumnIndex = 0, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) }
},

};
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/StackedBars.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public StackedBarsChartScript() : base(D3ChartScript.StackedBars)
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
},
new ChartScriptParameterGroup("Form")
{
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/StackedColumns.cs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public StackedColumnsChartScript() : base(D3ChartScript.StackedColumns)
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
},
new ChartScriptParameterGroup("Form")
{
Expand Down
2 changes: 1 addition & 1 deletion Signum.Engine.Extensions/Chart/Scripts/StackedLines.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public StackedLinesChartScript() : base(D3ChartScript.StackedLines)
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
},
new ChartScriptParameterGroup("Form")
{
Expand Down
4 changes: 2 additions & 2 deletions Signum.Engine.Extensions/Chart/Scripts/SvgMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,12 @@ public SvgMapScript(string[] svgMaps) : base(SvgMapsChartScript.SvgMap)
new ChartScriptParameterGroup("Color Scale")
{
new ChartScriptParameter("ColorScale", ChartParameterType.Enum) { ColumnIndex = 2, ValueDefinition = EnumValueList.Parse("ZeroMax|MinMax|Sqrt|Log") },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ColumnIndex = 2, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ColumnIndex = 2, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorScaleMaxValue", ChartParameterType.Number) { ColumnIndex = 2, ValueDefinition = new NumberInterval{ DefaultValue = null} },
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ColumnIndex = 3, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ColumnIndex = 3, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
}
};
}
Expand Down
4 changes: 2 additions & 2 deletions Signum.Engine.Extensions/Chart/Scripts/TreeMap.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ public TreeMapChartScript() : base(D3ChartScript.Treemap)
new ChartScriptParameterGroup("Color Scale")
{
new ChartScriptParameter("ColorScale", ChartParameterType.Enum) { ColumnIndex = 3, ValueDefinition = EnumValueList.Parse("ZeroMax|MinMax|Sqrt|Log") },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Enum) { ColumnIndex = 3, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
new ChartScriptParameter("ColorInterpolate", ChartParameterType.Special) { ColumnIndex = 3, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorInterpolate) },
},
new ChartScriptParameterGroup("Color Category")
{
new ChartScriptParameter("ColorCategory", ChartParameterType.Enum) { ColumnIndex = 4, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
new ChartScriptParameter("ColorCategory", ChartParameterType.Special) { ColumnIndex = 4, ValueDefinition = new SpecialParameter(SpecialParameterType.ColorCategory) },
}
};
}
Expand Down
2 changes: 2 additions & 0 deletions Signum.Entities.Extensions/Chart/ChartScriptParameter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ string IChartParameterValueDefinition.DefaultValue(QueryToken? token)
}
}

[InTypeScript(true)]
public enum SpecialParameterType
{
ColorCategory,
Expand Down Expand Up @@ -289,6 +290,7 @@ public enum ChartParameterType
Enum,
Number,
String,
Special,
}

public class StringValue : IChartParameterValueDefinition
Expand Down
33 changes: 29 additions & 4 deletions Signum.Entities.Extensions/Chart/ColorPalette.cs
Original file line number Diff line number Diff line change
@@ -1,24 +1,30 @@
using Signum.Entities.Basics;
using System.ComponentModel;

namespace Signum.Entities.Chart;

[EntityKind(EntityKind.String, EntityData.Master)]
[EntityKind(EntityKind.Main, EntityData.Master)]
public class ColorPaletteEntity : Entity
{
public ColorPaletteEntity()
{
this.BindParent();
}


[UniqueIndex]
[StringLengthValidator(Max = 100)]
public TypeEntity Type { get; set; }

[StringLengthValidator(Max = 100)]
public string CategoryName { get; set; }

public int Seed { get; set; }

[PreserveOrder, NoRepeatValidator]
[PreserveOrder, NoRepeatValidator, BindParent]
public MList<SpecificColorEmbedded> SpecificColors { get; set; } = new MList<SpecificColorEmbedded>();

[AutoExpressionField]
public override string ToString() => As.Expression(() => Type.ToString()!);
public override string ToString() => As.Expression(() => IsNew ? GetType().NewNiceName() : GetType().NiceName() + " " + Type.ToString());
}

public class SpecificColorEmbedded : EmbeddedEntity
Expand All @@ -28,6 +34,19 @@ public class SpecificColorEmbedded : EmbeddedEntity

[StringLengthValidator(Max = 100)]
public string Color { get; set; }

protected override string? PropertyValidation(PropertyInfo pi)
{
if(pi.Name == nameof(Entity))
{
var cp = this.GetParentEntity<ColorPaletteEntity>();

if (cp.SpecificColors.Any(a => a != this && a.Entity.Is(this.Entity)))
return ValidationMessage._0IsRepeated.NiceToString(this.Entity);
}

return base.PropertyValidation(pi);
}
}

[AutoInit]
Expand All @@ -37,3 +56,9 @@ public static class ColorPaletteOperation
public static readonly DeleteSymbol<ColorPaletteEntity> Delete;
}

public enum ColorPaletteMessage
{
FillAutomatically,
[Description("Select {0} only if you want to override the automatic color")]
Select0OnlyIfYouWantToOverrideTheAutomaticColor,
}
2 changes: 1 addition & 1 deletion Signum.Entities/Basics/Type.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
namespace Signum.Entities.Basics;

#pragma warning disable CS8618 // Non-nullable field is uninitialized.
[EntityKind(EntityKind.System, EntityData.Master), TicksColumn(false)]
[EntityKind(EntityKind.SystemString, EntityData.Master), TicksColumn(false)]
public class TypeEntity : Entity
{
[StringLengthValidator(Max = 200), UniqueIndex]
Expand Down
Loading

0 comments on commit d7b004c

Please sign in to comment.