@@ -39,7 +39,6 @@ public class SvgWriter {
3939 private static final String PATH_ELEMENT_NAME = "path" ;
4040 private static final String CIRCLE_ELEMENT_NAME = "circle" ;
4141 private static final String TEXT_ELEMENT_NAME = "text" ;
42- private static final String TSPAN_ELEMENT_NAME = "tspan" ;
4342 private static final String FOREIGN_OBJECT_ELEMENT_NAME = "foreignObject" ;
4443 private static final String DIV_ELEMENT_NAME = "div" ;
4544 private static final String SPAN_ELEMENT_NAME = "span" ;
@@ -56,7 +55,6 @@ public class SvgWriter {
5655 private static final String PATH_D_ATTRIBUTE = "d" ;
5756 private static final String X_ATTRIBUTE = "x" ;
5857 private static final String Y_ATTRIBUTE = "y" ;
59- private static final String DY_ATTRIBUTE = "dy" ;
6058 private static final String POINTS_ATTRIBUTE = "points" ;
6159 private static final String HREF_ATTRIBUTE = "href" ;
6260
@@ -156,9 +154,7 @@ private void drawHighlightBranchEdges(Graph graph, XMLStreamWriter writer) throw
156154 writer .writeEndElement ();
157155 }
158156
159- private void drawEdgeLabel (XMLStreamWriter writer , BranchEdge edge ) throws XMLStreamException {
160-
161- String edgeLabel = labelProvider .getLabel (edge );
157+ private void drawEdgeLabel (XMLStreamWriter writer , BranchEdge edge , String edgeLabel ) throws XMLStreamException {
162158
163159 if (edgeLabel == null || edgeLabel .isEmpty ()) {
164160 return ;
@@ -202,11 +198,11 @@ private void drawEdgeCenter(XMLStreamWriter writer, BranchEdge edge) throws XMLS
202198 if (BranchEdge .DANGLING_LINE_EDGE .equals (edge .getType ())) {
203199 return ;
204200 }
205- if (!BranchEdge .LINE_EDGE .equals (edge .getType ()) || svgParameters .isEdgeNameDisplayed ()) {
201+ String edgeLabel = labelProvider .getLabel (edge );
202+ if (!BranchEdge .LINE_EDGE .equals (edge .getType ()) || !StringUtils .isEmpty (edgeLabel )) {
206203 writer .writeStartElement (GROUP_ELEMENT_NAME );
207204 switch (edge .getType ()) {
208- case BranchEdge .PST_EDGE :
209- case BranchEdge .TWO_WT_EDGE :
205+ case BranchEdge .PST_EDGE , BranchEdge .TWO_WT_EDGE :
210206 draw2Wt (writer , edge );
211207 break ;
212208 case BranchEdge .HVDC_LINE_EDGE :
@@ -215,9 +211,7 @@ private void drawEdgeCenter(XMLStreamWriter writer, BranchEdge edge) throws XMLS
215211 default :
216212 break ;
217213 }
218- if (svgParameters .isEdgeNameDisplayed ()) {
219- drawEdgeLabel (writer , edge );
220- }
214+ drawEdgeLabel (writer , edge , edgeLabel );
221215 writer .writeEndElement ();
222216 }
223217 }
@@ -659,15 +653,6 @@ private void writeTextNode(XMLStreamWriter writer, TextNode textNode, VoltageLev
659653 return ;
660654 }
661655
662- List <String > content = labelProvider .getVoltageLevelDescription (vlNode );
663- if (content .size () > 1 || svgParameters .isBusLegend () || svgParameters .isVoltageLevelDetails ()) {
664- writeDetailedTextNode (writer , textNode , vlNode , content );
665- } else {
666- writeSimpleTextNode (writer , textNode , content );
667- }
668- }
669-
670- private void writeDetailedTextNode (XMLStreamWriter writer , TextNode textNode , VoltageLevelNode vlNode , List <String > content ) throws XMLStreamException {
671656 writer .writeStartElement (FOREIGN_OBJECT_ELEMENT_NAME );
672657 writeId (writer , textNode );
673658 writer .writeAttribute (Y_ATTRIBUTE , getFormattedValue (textNode .getY ()));
@@ -682,15 +667,13 @@ private void writeDetailedTextNode(XMLStreamWriter writer, TextNode textNode, Vo
682667 writer .writeDefaultNamespace (XHTML_NAMESPACE_URI );
683668 writer .writeAttribute (CLASS_ATTRIBUTE , StyleProvider .LABEL_BOX_CLASS );
684669
685- writeLines (content , writer );
670+ List <String > vlDescription = labelProvider .getVoltageLevelDescription (vlNode );
671+ writeLines (vlDescription , writer );
686672
687- if (svgParameters .isBusLegend ()) {
688- writeBusNodeLegend (writer , vlNode );
689- }
673+ writeBusNodeLegend (writer , vlNode );
690674
691- if (svgParameters .isVoltageLevelDetails ()) {
692- writeLines (labelProvider .getVoltageLevelDetails (vlNode ), writer );
693- }
675+ List <String > vlDetails = labelProvider .getVoltageLevelDetails (vlNode );
676+ writeLines (vlDetails , writer );
694677
695678 writer .writeEndElement ();
696679 writer .writeEndElement ();
@@ -705,7 +688,10 @@ private void writeLines(List<String> lines, XMLStreamWriter writer) throws XMLSt
705688 }
706689
707690 private void writeBusNodeLegend (XMLStreamWriter writer , VoltageLevelNode vlNode ) throws XMLStreamException {
708- for (BusNode busNode : vlNode .getBusNodes ()) {
691+ List <BusNode > notEmptyDescrBusNodes = vlNode .getBusNodeStream ()
692+ .filter (busNode -> StringUtils .isNotEmpty (labelProvider .getBusDescription (busNode )))
693+ .toList ();
694+ for (BusNode busNode : notEmptyDescrBusNodes ) {
709695 writer .writeStartElement (DIV_ELEMENT_NAME );
710696 writer .writeEmptyElement (SPAN_ELEMENT_NAME );
711697 writeStyleClasses (writer , styleProvider .getBusNodeStyleClasses (busNode ), StyleProvider .LEGEND_SQUARE_CLASS );
@@ -715,28 +701,6 @@ private void writeBusNodeLegend(XMLStreamWriter writer, VoltageLevelNode vlNode)
715701 }
716702 }
717703
718- private void writeSimpleTextNode (XMLStreamWriter writer , TextNode textNode , List <String > content ) throws XMLStreamException {
719- writer .writeStartElement (TEXT_ELEMENT_NAME );
720- writeId (writer , textNode );
721- writer .writeAttribute (Y_ATTRIBUTE , getFormattedValue (textNode .getEdgeConnection ().getY ()));
722- if (content .size () == 1 ) {
723- writer .writeAttribute (X_ATTRIBUTE , getFormattedValue (textNode .getEdgeConnection ().getX ()));
724- writer .writeCharacters (content .get (0 ));
725- } else {
726- for (int i = 0 ; i < content .size (); i ++) {
727- String line = content .get (i );
728- writer .writeStartElement (TSPAN_ELEMENT_NAME );
729- writer .writeAttribute (X_ATTRIBUTE , getFormattedValue (textNode .getEdgeConnection ().getX ()));
730- if (i > 0 ) {
731- writer .writeAttribute (DY_ATTRIBUTE , "1.1em" );
732- }
733- writer .writeCharacters (line );
734- writer .writeEndElement ();
735- }
736- }
737- writer .writeEndElement ();
738- }
739-
740704 private void drawNode (Graph graph , XMLStreamWriter writer , VoltageLevelNode vlNode ) throws XMLStreamException {
741705 writeId (writer , vlNode );
742706 writeStyleClasses (writer , styleProvider .getNodeStyleClasses (vlNode ));
0 commit comments