Skip to content

Commit 20d98ca

Browse files
committed
finish table chart API
1 parent f22f990 commit 20d98ca

File tree

1 file changed

+105
-46
lines changed

1 file changed

+105
-46
lines changed

src/Plotly.NET/ChartAPI/ChartDomain.fs

Lines changed: 105 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -859,65 +859,124 @@ module ChartDomain =
859859
)
860860
|> GenericChart.ofTraceObject useDefaults
861861

862-
/// creates table out of header sequence and row sequences
862+
/// creates table chart
863863
[<Extension>]
864864
static member Table
865865
(
866-
headerValues,
867-
cellValues,
868-
[<Optional; DefaultParameterValue(null)>] ?AlignHeader,
869-
[<Optional; DefaultParameterValue(null)>] ?AlignCells,
870-
[<Optional; DefaultParameterValue(null)>] ?ColumnWidth,
871-
[<Optional; DefaultParameterValue(null)>] ?ColumnOrder,
872-
[<Optional; DefaultParameterValue(null)>] ?ColorHeader,
873-
[<Optional; DefaultParameterValue(null)>] ?ColorCells,
874-
[<Optional; DefaultParameterValue(null)>] ?FontHeader,
875-
[<Optional; DefaultParameterValue(null)>] ?FontCells,
876-
[<Optional; DefaultParameterValue(null)>] ?HeightHeader,
877-
[<Optional; DefaultParameterValue(null)>] ?HeightCells,
878-
[<Optional; DefaultParameterValue(null)>] ?LineHeader,
879-
[<Optional; DefaultParameterValue(null)>] ?LineCells,
880-
[<Optional; DefaultParameterValue(true)>] ?UseDefaults: bool
866+
header: TableHeader,
867+
cells: TableCells,
868+
[<Optional; DefaultParameterValue(null)>] ?Name : string,
869+
[<Optional; DefaultParameterValue(null)>] ?ShowLegend : bool,
870+
[<Optional; DefaultParameterValue(null)>] ?ColumnOrder : seq<int>,
871+
[<Optional; DefaultParameterValue(null)>] ?ColumnWidth : float,
872+
[<Optional; DefaultParameterValue(null)>] ?MultiColumnWidth : seq<float>,
873+
[<Optional; DefaultParameterValue(true)>] ?UseDefaults : bool
881874
) =
882875

883876
let useDefaults = defaultArg UseDefaults true
884877

885878
TraceDomain.initTable (
879+
TraceDomainStyle.Table(
880+
Header = header,
881+
Cells = cells,
882+
?Name = Name ,
883+
?ShowLegend = ShowLegend ,
884+
?ColumnOrder = ColumnOrder ,
885+
?ColumnWidth = ColumnWidth ,
886+
?MultiColumnWidth = MultiColumnWidth
887+
888+
)
889+
)
890+
|> GenericChart.ofTraceObject useDefaults
886891

887-
let CellFilling =
888-
match ColorCells with
889-
| Some color -> Some(CellColor.init (?Color = ColorCells))
890-
| Option.None -> Option.None
892+
893+
/// creates table chart
894+
[<Extension>]
895+
static member Table
896+
(
897+
headerValues: seq<#seq<#IConvertible>>,
898+
cellsValues: seq<#seq<#IConvertible>>,
899+
[<Optional; DefaultParameterValue(null)>] ?HeaderAlign : StyleParam.HorizontalAlign,
900+
[<Optional; DefaultParameterValue(null)>] ?HeaderMultiAlign : seq<StyleParam.HorizontalAlign>,
901+
[<Optional; DefaultParameterValue(null)>] ?HeaderFillColor : Color,
902+
[<Optional; DefaultParameterValue(null)>] ?HeaderHeight : int,
903+
[<Optional; DefaultParameterValue(null)>] ?HeaderOutlineColor : Color,
904+
[<Optional; DefaultParameterValue(null)>] ?HeaderOutlineWidth : float,
905+
[<Optional; DefaultParameterValue(null)>] ?HeaderOutlineMultiWidth : seq<float>,
906+
[<Optional; DefaultParameterValue(null)>] ?HeaderOutline : Line,
907+
[<Optional; DefaultParameterValue(null)>] ?CellsAlign : StyleParam.HorizontalAlign,
908+
[<Optional; DefaultParameterValue(null)>] ?CellsMultiAlign : seq<StyleParam.HorizontalAlign>,
909+
[<Optional; DefaultParameterValue(null)>] ?CellsFillColor : Color,
910+
[<Optional; DefaultParameterValue(null)>] ?CellsHeight : int,
911+
[<Optional; DefaultParameterValue(null)>] ?CellsOutlineColor : Color,
912+
[<Optional; DefaultParameterValue(null)>] ?CellsOutlineWidth : float,
913+
[<Optional; DefaultParameterValue(null)>] ?CellsOutlineMultiWidth : seq<float>,
914+
[<Optional; DefaultParameterValue(null)>] ?CellsOutline : Line,
915+
[<Optional; DefaultParameterValue(null)>] ?Name : string,
916+
[<Optional; DefaultParameterValue(null)>] ?ShowLegend : bool,
917+
[<Optional; DefaultParameterValue(null)>] ?ColumnOrder : seq<int>,
918+
[<Optional; DefaultParameterValue(null)>] ?ColumnWidth : float,
919+
[<Optional; DefaultParameterValue(null)>] ?MultiColumnWidth : seq<float>,
920+
[<Optional; DefaultParameterValue(true)>] ?UseDefaults : bool
921+
) =
891922

892-
let HeaderFilling =
893-
match ColorHeader with
894-
| Some color -> Some(CellColor.init (?Color = ColorHeader))
895-
| Option.None -> Option.None
923+
let useDefaults = defaultArg UseDefaults true
924+
925+
let headerFill =
926+
TableFill.init(?Color = HeaderFillColor)
927+
928+
let headerOutline =
929+
HeaderOutline
930+
|> Option.defaultValue (Plotly.NET.Line.init ())
931+
|> Plotly.NET.Line.style (
932+
?Color = HeaderOutlineColor,
933+
?Width = HeaderOutlineWidth,
934+
?MultiWidth = HeaderOutlineMultiWidth
935+
)
896936

897-
TraceDomainStyle.Table(
898-
header =
899-
TableHeader.init (
900-
headerValues |> Seq.map seq,
901-
?Align = AlignHeader,
902-
?Fill = HeaderFilling,
903-
?Font = FontHeader,
904-
?Height = HeightHeader,
905-
?Line = LineHeader
906-
),
907-
cells =
908-
TableCells.init (
909-
cellValues |> Seq.transpose,
910-
?Align = AlignCells,
911-
?Fill = CellFilling,
912-
?Font = FontCells,
913-
?Height = HeightCells,
914-
?Line = LineCells
915-
),
916-
?ColumnWidth = ColumnWidth,
917-
?ColumnOrder = ColumnOrder
937+
let header =
938+
TableHeader.init(
939+
Values = headerValues,
940+
Fill = headerFill,
941+
Line = headerOutline,
942+
?Align = HeaderAlign,
943+
?MultiAlign = HeaderMultiAlign,
944+
?Height = HeaderHeight
918945
)
946+
947+
let cellsFill =
948+
TableFill.init(?Color = CellsFillColor)
949+
950+
let cellsOutline =
951+
CellsOutline
952+
|> Option.defaultValue (Plotly.NET.Line.init ())
953+
|> Plotly.NET.Line.style (
954+
?Color = CellsOutlineColor,
955+
?Width = CellsOutlineWidth,
956+
?MultiWidth = CellsOutlineMultiWidth
957+
)
958+
959+
let cells =
960+
TableCells.init(
961+
Values = cellsValues,
962+
Fill = cellsFill,
963+
Line = cellsOutline,
964+
?Align = CellsAlign,
965+
?MultiAlign = CellsMultiAlign,
966+
?Height = CellsHeight
967+
)
968+
969+
Chart.Table(
970+
header,
971+
cells,
972+
?Name = Name ,
973+
?ShowLegend = ShowLegend ,
974+
?ColumnOrder = ColumnOrder ,
975+
?ColumnWidth = ColumnWidth ,
976+
?MultiColumnWidth= MultiColumnWidth,
977+
?UseDefaults = UseDefaults
978+
919979
)
920-
|> GenericChart.ofTraceObject useDefaults
921980

922981
/// creates table out of header sequence and row sequences
923982
[<Extension>]

0 commit comments

Comments
 (0)