@@ -636,8 +636,6 @@ private void drawHighlightedNode(XMLStreamWriter writer, VoltageLevelNode vlNode
636636 }
637637
638638 private void drawTextNodes (Graph graph , XMLStreamWriter writer ) throws XMLStreamException {
639- writer .writeStartElement (GROUP_ELEMENT_NAME );
640- writer .writeAttribute (CLASS_ATTRIBUTE , StyleProvider .TEXT_NODES_CLASS );
641639 List <Pair <VoltageLevelNode , TextNode >> simpleTextNodes = new ArrayList <>();
642640 List <Pair <VoltageLevelNode , TextNode >> detailedTextNodes = new ArrayList <>();
643641 graph .getVoltageLevelTextPairs ().stream ()
@@ -653,14 +651,15 @@ private void drawTextNodes(Graph graph, XMLStreamWriter writer) throws XMLStream
653651 writeSimpleTextNode (writer , nodePair .getSecond (), labelProvider .getVoltageLevelDescription (nodePair .getFirst ()));
654652 }
655653 if (!detailedTextNodes .isEmpty ()) {
656- TextNode firstNode = detailedTextNodes .get (0 ).getSecond ();
657- writeForeignObject (writer , firstNode );
654+ writeForeignObject (writer );
655+ writer .writeStartElement ("" , DIV_ELEMENT_NAME , XHTML_NAMESPACE_URI );
656+ writer .writeDefaultNamespace (XHTML_NAMESPACE_URI );
658657 for (Pair <VoltageLevelNode , TextNode > nodePair : detailedTextNodes ) {
659- writeDetailedTextNode (writer , firstNode , nodePair .getSecond (), nodePair .getFirst (), labelProvider .getVoltageLevelDescription (nodePair .getFirst ()));
658+ writeDetailedTextNode (writer , nodePair .getSecond (), nodePair .getFirst (), labelProvider .getVoltageLevelDescription (nodePair .getFirst ()));
660659 }
661660 writer .writeEndElement ();
661+ writer .writeEndElement ();
662662 }
663- writer .writeEndElement ();
664663 }
665664
666665 private String getTranslateString (Node node ) {
@@ -679,21 +678,18 @@ private boolean isDetailedTextNode(List<String> content) {
679678 return content .size () > 1 || svgParameters .isBusLegend () || svgParameters .isVoltageLevelDetails ();
680679 }
681680
682- private void writeForeignObject (XMLStreamWriter writer , TextNode textNode ) throws XMLStreamException {
681+ private void writeForeignObject (XMLStreamWriter writer ) throws XMLStreamException {
683682 writer .writeStartElement (FOREIGN_OBJECT_ELEMENT_NAME );
684- writeId (writer , textNode );
685- writer .writeAttribute (Y_ATTRIBUTE , getFormattedValue (textNode .getY ()));
686- writer .writeAttribute (X_ATTRIBUTE , getFormattedValue (textNode .getX ()));
687683 writer .writeAttribute (HEIGHT_ATTRIBUTE , "1" );
688684 writer .writeAttribute (WIDTH_ATTRIBUTE , "1" );
685+ writeStyleClasses (writer , StyleProvider .TEXT_NODES_CLASS );
689686 }
690687
691- private void writeDetailedTextNode (XMLStreamWriter writer , TextNode firstNode , TextNode textNode , VoltageLevelNode vlNode , List <String > content ) throws XMLStreamException {
688+ private void writeDetailedTextNode (XMLStreamWriter writer , TextNode textNode , VoltageLevelNode vlNode , List <String > content ) throws XMLStreamException {
692689 writer .writeStartElement ("" , DIV_ELEMENT_NAME , XHTML_NAMESPACE_URI );
693- writer .writeDefaultNamespace (XHTML_NAMESPACE_URI );
694690 writer .writeAttribute (CLASS_ATTRIBUTE , StyleProvider .LABEL_BOX_CLASS );
695- long top = Math .round (textNode .getY () - firstNode . getY () );
696- long left = Math .round (textNode .getX () - firstNode . getX () );
691+ long top = Math .round (textNode .getY ());
692+ long left = Math .round (textNode .getX ());
697693 writeStyleAttribute (writer , String .format ("position: absolute; top: %spx; left: %spx" , top , left ));
698694 writeId (writer , textNode );
699695 writeLines (content , writer );
0 commit comments