Skip to content

Commit e43979b

Browse files
authored
Style tables in text boxes using CSS (#690)
Signed-off-by: Giovanni Ferrari <[email protected]>
1 parent 8a3a2a8 commit e43979b

62 files changed

Lines changed: 1133 additions & 4350 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

network-area-diagram/src/main/java/com/powsybl/nad/svg/SvgWriter.java

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ public class SvgWriter {
4141
private static final String TEXT_ELEMENT_NAME = "text";
4242
private static final String FOREIGN_OBJECT_ELEMENT_NAME = "foreignObject";
4343
private static final String DIV_ELEMENT_NAME = "div";
44-
private static final String TABLE_ELEMENT_NAME = "table";
45-
private static final String TABLE_ROW_ELEMENT_NAME = "tr";
46-
private static final String TABLE_DATA_ELEMENT_NAME = "td";
44+
private static final String SPAN_ELEMENT_NAME = "span";
4745
private static final String USE_ELEMENT_NAME = "use";
4846
private static final String ID_ATTRIBUTE = "id";
4947
private static final String WIDTH_ATTRIBUTE = "width";
@@ -698,21 +696,12 @@ private void writeBusNodeLegend(XMLStreamWriter writer, VoltageLevelNode vlNode)
698696
List<BusNode> notEmptyDescrBusNodes = vlNode.getBusNodeStream()
699697
.filter(busNode -> StringUtils.isNotEmpty(labelProvider.getBusDescription(busNode)))
700698
.toList();
701-
702-
if (!notEmptyDescrBusNodes.isEmpty()) {
703-
writer.writeStartElement(TABLE_ELEMENT_NAME);
704-
for (BusNode busNode : notEmptyDescrBusNodes) {
705-
writer.writeStartElement(TABLE_ROW_ELEMENT_NAME);
706-
writer.writeStartElement(TABLE_DATA_ELEMENT_NAME);
707-
writer.writeEmptyElement(DIV_ELEMENT_NAME);
708-
writeStyleClasses(writer, styleProvider.getBusNodeStyleClasses(busNode), StyleProvider.LEGEND_SQUARE_CLASS);
709-
writeStyleAttribute(writer, styleProvider.getBusNodeStyle(busNode));
710-
writer.writeEndElement();
711-
writer.writeStartElement(TABLE_DATA_ELEMENT_NAME);
712-
writer.writeCharacters(labelProvider.getBusDescription(busNode));
713-
writer.writeEndElement();
714-
writer.writeEndElement();
715-
}
699+
for (BusNode busNode : notEmptyDescrBusNodes) {
700+
writer.writeStartElement(DIV_ELEMENT_NAME);
701+
writer.writeEmptyElement(SPAN_ELEMENT_NAME);
702+
writeStyleClasses(writer, styleProvider.getBusNodeStyleClasses(busNode), StyleProvider.LEGEND_SQUARE_CLASS);
703+
writeStyleAttribute(writer, styleProvider.getBusNodeStyle(busNode));
704+
writer.writeCharacters(labelProvider.getBusDescription(busNode));
716705
writer.writeEndElement();
717706
}
718707
}

network-area-diagram/src/main/resources/customStyle.css

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ path.nad-arrow-in:not(.nad-state-in .nad-arrow-in) {visibility: hidden}
1212
.nad-text-nodes {font: 25px serif; fill: black; dominant-baseline: central}
1313
foreignObject.nad-text-nodes {overflow: visible; color: black}
1414
.nad-label-box {background-color: #6c6c6c20; width: max-content; padding: 10px; border-radius: 10px;}
15-
.nad-legend-square {width: 20px; height: 20px; background: var(--nad-vl-color, lightgrey);}
16-
.nad-edge-infos text, .nad-edge-label text {font: 20px serif; dominant-baseline:middle; stroke: #FFFFFFAA; stroke-width: 10; stroke-linejoin:round; paint-order: stroke}
15+
.nad-legend-square {display: inline-block; margin-right: 10px; width: 20px; height: 20px; background: var(--nad-vl-color, lightgrey);}
16+
.nad-edge-infos text, .nad-edge-label text {font: 20px serif; dominant-baseline:middle; stroke: #FFFFFFAA; stroke-width: 10; stroke-linejoin:round; paint-order: stroke}

network-area-diagram/src/main/resources/topologicalStyle.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ path.nad-arrow-in:not(.nad-state-in .nad-arrow-in) {visibility: hidden}
1616
.nad-text-nodes {font: 25px serif; fill: black; dominant-baseline: central}
1717
foreignObject.nad-text-nodes {overflow: visible; color: black}
1818
.nad-label-box {background-color: #6c6c6c20; width: max-content; padding: 10px; border-radius: 10px;}
19-
.nad-legend-square {width: 20px; height: 20px; background: var(--nad-vl-color, black);}
19+
.nad-legend-square {display: inline-block; margin-right: 10px; width: 20px; height: 20px; background: var(--nad-vl-color, black);}
2020
.nad-edge-infos text, .nad-edge-label text {font: 20px serif; dominant-baseline:middle; stroke: #FFFFFFAA; stroke-width: 10; stroke-linejoin:round; paint-order: stroke}
2121
.nad-disconnected {--nad-vl-color: #808080}
2222
.nad-vl0to30-line {--nad-vl-color: #afb42b}

network-area-diagram/src/test/resources/3wt.svg

Lines changed: 6 additions & 24 deletions
Loading

network-area-diagram/src/test/resources/3wt_disconnected.svg

Lines changed: 4 additions & 16 deletions
Loading

network-area-diagram/src/test/resources/3wt_disconnected_topological.svg

Lines changed: 5 additions & 17 deletions
Loading

network-area-diagram/src/test/resources/3wt_overridden_styles.svg

Lines changed: 7 additions & 25 deletions
Loading

network-area-diagram/src/test/resources/3wt_partial.svg

Lines changed: 2 additions & 8 deletions
Loading

network-area-diagram/src/test/resources/3wt_pst.svg

Lines changed: 2 additions & 8 deletions
Loading

0 commit comments

Comments
 (0)