@@ -158,9 +158,7 @@ private void drawHighlightBranchEdges(Graph graph, XMLStreamWriter writer) throw
158158 writer .writeEndElement ();
159159 }
160160
161- private void drawEdgeLabel (XMLStreamWriter writer , BranchEdge edge ) throws XMLStreamException {
162-
163- String edgeLabel = labelProvider .getLabel (edge );
161+ private void drawEdgeLabel (XMLStreamWriter writer , BranchEdge edge , String edgeLabel ) throws XMLStreamException {
164162
165163 if (edgeLabel == null || edgeLabel .isEmpty ()) {
166164 return ;
@@ -204,7 +202,8 @@ private void drawEdgeCenter(XMLStreamWriter writer, BranchEdge edge) throws XMLS
204202 if (BranchEdge .DANGLING_LINE_EDGE .equals (edge .getType ())) {
205203 return ;
206204 }
207- if (!BranchEdge .LINE_EDGE .equals (edge .getType ()) || svgParameters .isEdgeNameDisplayed ()) {
205+ String edgeLabel = labelProvider .getLabel (edge );
206+ if (!BranchEdge .LINE_EDGE .equals (edge .getType ()) || !StringUtils .isEmpty (edgeLabel )) {
208207 writer .writeStartElement (GROUP_ELEMENT_NAME );
209208 switch (edge .getType ()) {
210209 case BranchEdge .PST_EDGE :
@@ -217,9 +216,7 @@ private void drawEdgeCenter(XMLStreamWriter writer, BranchEdge edge) throws XMLS
217216 default :
218217 break ;
219218 }
220- if (svgParameters .isEdgeNameDisplayed ()) {
221- drawEdgeLabel (writer , edge );
222- }
219+ drawEdgeLabel (writer , edge , edgeLabel );
223220 writer .writeEndElement ();
224221 }
225222 }
@@ -662,14 +659,19 @@ private void writeTextNode(XMLStreamWriter writer, TextNode textNode, VoltageLev
662659 }
663660
664661 List <String > content = labelProvider .getVoltageLevelDescription (vlNode );
665- if (content .size () > 1 || svgParameters .isBusLegend () || svgParameters .isVoltageLevelDetails ()) {
666- writeDetailedTextNode (writer , textNode , vlNode , content );
662+ List <String > vlDetails = labelProvider .getVoltageLevelDetails (vlNode );
663+ boolean isBusLegend = vlNode .getBusNodeStream ().anyMatch (bus -> StringUtils .isNotEmpty (labelProvider .getBusDescription (bus ))) || svgParameters .isBusLegend ();
664+ boolean isVldetails = !vlDetails .isEmpty () || svgParameters .isVoltageLevelDetails ();
665+
666+ if (content .size () > 1 || isBusLegend || isVldetails ) {
667+ writeDetailedTextNode (writer , textNode , vlNode , content , vlDetails , isBusLegend );
667668 } else {
668669 writeSimpleTextNode (writer , textNode , content );
669670 }
671+
670672 }
671673
672- private void writeDetailedTextNode (XMLStreamWriter writer , TextNode textNode , VoltageLevelNode vlNode , List <String > content ) throws XMLStreamException {
674+ private void writeDetailedTextNode (XMLStreamWriter writer , TextNode textNode , VoltageLevelNode vlNode , List <String > content , List < String > vlDetails , boolean isBusLegend ) throws XMLStreamException {
673675 writer .writeStartElement (FOREIGN_OBJECT_ELEMENT_NAME );
674676 writeId (writer , textNode );
675677 writer .writeAttribute (Y_ATTRIBUTE , getFormattedValue (textNode .getY ()));
@@ -686,13 +688,11 @@ private void writeDetailedTextNode(XMLStreamWriter writer, TextNode textNode, Vo
686688
687689 writeLines (content , writer );
688690
689- if (svgParameters . isBusLegend () ) {
691+ if (isBusLegend ) {
690692 writeBusNodeLegend (writer , vlNode );
691693 }
692694
693- if (svgParameters .isVoltageLevelDetails ()) {
694- writeLines (labelProvider .getVoltageLevelDetails (vlNode ), writer );
695- }
695+ writeLines (vlDetails , writer );
696696
697697 writer .writeEndElement ();
698698 writer .writeEndElement ();
@@ -710,16 +710,19 @@ private void writeBusNodeLegend(XMLStreamWriter writer, VoltageLevelNode vlNode)
710710 writer .writeStartElement (TABLE_ELEMENT_NAME );
711711
712712 for (BusNode busNode : vlNode .getBusNodes ()) {
713- writer .writeStartElement (TABLE_ROW_ELEMENT_NAME );
714- writer .writeStartElement (TABLE_DATA_ELEMENT_NAME );
715- writer .writeEmptyElement (DIV_ELEMENT_NAME );
716- writeStyleClasses (writer , styleProvider .getBusNodeStyleClasses (busNode ), StyleProvider .LEGEND_SQUARE_CLASS );
717- writeStyleAttribute (writer , styleProvider .getBusNodeStyle (busNode ));
718- writer .writeEndElement ();
719- writer .writeStartElement (TABLE_DATA_ELEMENT_NAME );
720- writer .writeCharacters (labelProvider .getBusDescription (busNode ));
721- writer .writeEndElement ();
722- writer .writeEndElement ();
713+ String busNodeLegend = labelProvider .getBusDescription (busNode );
714+ if (!StringUtils .isEmpty (busNodeLegend )) {
715+ writer .writeStartElement (TABLE_ROW_ELEMENT_NAME );
716+ writer .writeStartElement (TABLE_DATA_ELEMENT_NAME );
717+ writer .writeEmptyElement (DIV_ELEMENT_NAME );
718+ writeStyleClasses (writer , styleProvider .getBusNodeStyleClasses (busNode ), StyleProvider .LEGEND_SQUARE_CLASS );
719+ writeStyleAttribute (writer , styleProvider .getBusNodeStyle (busNode ));
720+ writer .writeEndElement ();
721+ writer .writeStartElement (TABLE_DATA_ELEMENT_NAME );
722+ writer .writeCharacters (busNodeLegend );
723+ writer .writeEndElement ();
724+ writer .writeEndElement ();
725+ }
723726 }
724727 writer .writeEndElement ();
725728 }
0 commit comments