From f9105194cc19a805a9a89a7d7990587e096958ec Mon Sep 17 00:00:00 2001
From: Moemoea Fierin <moemoea.fierin@epita.fr>
Date: Wed, 9 Oct 2019 17:04:21 +0200
Subject: [PATCH] [ZOOM] Issue #31 text disappearance on some other folders

- folders: AvatarRD, tmltranslator, SD..., SysmlsecMethodology,
TG..., TML...,UCD...,
- override check
- function change to new drawSingleString
---
 src/main/java/tmltranslator/HwA.java          |  6 +++--
 src/main/java/tmltranslator/HwBridge.java     |  3 ++-
 src/main/java/tmltranslator/HwBus.java        |  3 ++-
 src/main/java/tmltranslator/HwCPU.java        |  6 +++--
 src/main/java/tmltranslator/HwCrossbar.java   |  3 ++-
 src/main/java/tmltranslator/HwDMA.java        |  3 ++-
 src/main/java/tmltranslator/HwFPGA.java       |  6 +++--
 src/main/java/tmltranslator/HwLink.java       |  3 ++-
 src/main/java/tmltranslator/HwMemory.java     |  1 +
 src/main/java/tmltranslator/HwRouter.java     |  3 ++-
 src/main/java/tmltranslator/HwVGMN.java       |  3 ++-
 .../TMLActivityElementChannel.java            |  3 ++-
 .../TMLActivityElementWithAction.java         |  6 +++--
 .../TMLActivityElementWithIntervalAction.java |  3 ++-
 .../TMLArchiTextSpecification.java            |  3 ++-
 .../ui/avatarrd/AvatarRDCopyConnector.java    |  2 +-
 .../java/ui/sd/SDAbsoluteTimeConstraint.java  |  2 +-
 src/main/java/ui/sd/SDActionState.java        |  2 +-
 src/main/java/ui/sd/SDGuard.java              |  2 +-
 src/main/java/ui/sd/SDInstance.java           |  2 +-
 src/main/java/ui/sd/SDTimeInterval.java       |  2 +-
 src/main/java/ui/sd/SDTimerCancellation.java  |  2 +-
 src/main/java/ui/sd/SDTimerExpiration.java    |  2 +-
 src/main/java/ui/sd/SDTimerSetting.java       |  2 +-
 .../sd/TGConnectorMessageAsyncOrSyncSD.java   |  6 ++---
 .../java/ui/sd/TGConnectorMessageAsyncSD.java |  2 +-
 .../java/ui/sd/TGConnectorMessageSyncSD.java  |  2 +-
 .../java/ui/sd/TGConnectorRelativeTimeSD.java |  2 +-
 .../java/ui/sd2/SequenceDiagramPanel.java     | 11 +++++++++
 .../SysmlsecMethodologyDiagramName.java       |  4 ++--
 .../SysmlsecMethodologyDiagramReference.java  |  2 +-
 .../ui/tmlcompd/TMLCCompositeComponent.java   |  4 ++--
 src/main/java/ui/ucd/TGConnectorExtend.java   |  2 +-
 src/main/java/ui/ucd/TGConnectorInclude.java  |  3 ++-
 .../ui/ucd/TGConnectorSpecialization.java     |  7 +++---
 src/main/java/ui/ucd/TGConnectorUC.java       |  6 +++--
 src/main/java/ui/ucd/TGConnectorUseCase.java  |  6 ++---
 src/main/java/ui/ucd/UCDActor.java            |  6 ++++-
 src/main/java/ui/ucd/UCDActorBox.java         | 19 +++++++++------
 src/main/java/ui/ucd/UCDBorder.java           |  5 +++-
 src/main/java/ui/ucd/UCDUseCase.java          | 23 ++++++++++++-------
 41 files changed, 118 insertions(+), 65 deletions(-)

diff --git a/src/main/java/tmltranslator/HwA.java b/src/main/java/tmltranslator/HwA.java
index 2719d81948..aab1b884d4 100755
--- a/src/main/java/tmltranslator/HwA.java
+++ b/src/main/java/tmltranslator/HwA.java
@@ -65,11 +65,13 @@ public class HwA extends HwExecutionNode  {
     public HwA(String _name) {
         super(_name);
     }
-
+    
+    @Override
     public String getType() {
         return "HWA";
     }
-
+    
+    @Override
     public String toXML() {
 	String s = "<HWA name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\" execiTime=\"" + execiTime + "\" execcTime=\"" + execcTime + "\" />\n";
 	return s;
diff --git a/src/main/java/tmltranslator/HwBridge.java b/src/main/java/tmltranslator/HwBridge.java
index 3dfa14f3e9..6324824450 100755
--- a/src/main/java/tmltranslator/HwBridge.java
+++ b/src/main/java/tmltranslator/HwBridge.java
@@ -63,7 +63,8 @@ public class HwBridge extends HwCommunicationNode  {
     public HwBridge(String _name) {
         super(_name);
     }
-
+    
+    @Override
     public String toXML() {
 	String s = "<BRIDGE name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  bufferByteSize=\"" + bufferByteSize + "\" />\n";
 	return s;
diff --git a/src/main/java/tmltranslator/HwBus.java b/src/main/java/tmltranslator/HwBus.java
index 2106e01127..d49790a7d6 100755
--- a/src/main/java/tmltranslator/HwBus.java
+++ b/src/main/java/tmltranslator/HwBus.java
@@ -67,7 +67,8 @@ public class HwBus extends HwCommunicationNode {
     public HwBus(String _name) {
         super(_name);
     }
-
+    
+    @Override
     public String toXML() {
         String s = "<BUS name=\"" + getName() + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\"  pipelineSize=\"" + pipelineSize + "\" arbitration=\"" + arbitration + "\" sliceTime=\"" + sliceTime + "\" />\n";
         return s;
diff --git a/src/main/java/tmltranslator/HwCPU.java b/src/main/java/tmltranslator/HwCPU.java
index 70780e9516..24d079893f 100755
--- a/src/main/java/tmltranslator/HwCPU.java
+++ b/src/main/java/tmltranslator/HwCPU.java
@@ -87,7 +87,8 @@ public class HwCPU extends HwExecutionNode  {
         super(_name);
         maximumNbOfTasks = 100;
     }
-
+    
+    @Override
     public String getType() {
         switch(schedulingPolicy) {
         case ROUND_ROBIN_PRIORITY_BASED:
@@ -97,7 +98,8 @@ public class HwCPU extends HwExecutionNode  {
             return "CPURR";
         }
     }
-
+    
+    @Override
     public String toXML() {
 	String s = "<CPU name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\" execiTime=\"" + execiTime + "\" execcTime=\"" + execcTime + "\" pipelineSize=\"";
 	s += pipelineSize + "\" goIdleTime=\"" + goIdleTime + "\" maxConsecutiveIdleCycles=\"" + maxConsecutiveIdleCycles + "\" taskSwitchingTime=\"" + taskSwitchingTime + "\" cacheMiss=\"" +cacheMiss + "\"  schedulingPolicy=\"" + schedulingPolicy + "\" sliceTime=\"" + sliceTime + "\" MEC=\"" + MEC.typeToString() +"\" />\n";
diff --git a/src/main/java/tmltranslator/HwCrossbar.java b/src/main/java/tmltranslator/HwCrossbar.java
index 54f6732a08..b1fdc80d0e 100755
--- a/src/main/java/tmltranslator/HwCrossbar.java
+++ b/src/main/java/tmltranslator/HwCrossbar.java
@@ -57,7 +57,8 @@ public class HwCrossbar extends HwCommunicationNode  {
     public HwCrossbar(String _name) {
         super(_name);
     }
-
+    
+    @Override
     public String toXML() {
 	String s = "<CROSSBAR name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\" />\n";
 	return s;
diff --git a/src/main/java/tmltranslator/HwDMA.java b/src/main/java/tmltranslator/HwDMA.java
index ddbe5e7353..2ea8d58514 100755
--- a/src/main/java/tmltranslator/HwDMA.java
+++ b/src/main/java/tmltranslator/HwDMA.java
@@ -58,7 +58,8 @@ public class HwDMA extends HwCommunicationNode  {
     public HwDMA(String _name) {
         super(_name);
     }
-
+    
+    @Override
     public String toXML() {
 	String s = "<DMA name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\"  nbOfChannels=\"" + nbOfChannels + "\" execiTime=\"" + "1" + "\" execcTime=\"" + "1"  +"\" />\n";
 	return s;
diff --git a/src/main/java/tmltranslator/HwFPGA.java b/src/main/java/tmltranslator/HwFPGA.java
index c97a353429..8818aa39bb 100755
--- a/src/main/java/tmltranslator/HwFPGA.java
+++ b/src/main/java/tmltranslator/HwFPGA.java
@@ -71,11 +71,13 @@ public class HwFPGA extends HwExecutionNode {
     public HwFPGA(String _name) {
         super(_name);
     }
-
+    
+    @Override
     public String getType() {
         return "FPGA";
     }
-
+    
+    @Override
     public String toXML() {
         String s = "<FPGA name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\" execiTime=\"" + execiTime + "\" execcTime=\"" + execcTime + "\" pipelineSize=\"";
         s +=  "\" capacity=\"" + capacity + "\" mappingPenalty=\"" + mappingPenalty + "\" reconfigurationTime=\"" + reconfigurationTime + "\" />\n";
diff --git a/src/main/java/tmltranslator/HwLink.java b/src/main/java/tmltranslator/HwLink.java
index 28919abfe6..0875952822 100755
--- a/src/main/java/tmltranslator/HwLink.java
+++ b/src/main/java/tmltranslator/HwLink.java
@@ -71,7 +71,8 @@ public class HwLink implements Comparable<HwLink> {
     public void setPriority(int _priority) {
         priority = _priority;
     }
-
+    
+    @Override
     public int compareTo(HwLink o) {
         if (priority > o.getPriority()) return 1;
         if (priority < o.getPriority()) return -1;
diff --git a/src/main/java/tmltranslator/HwMemory.java b/src/main/java/tmltranslator/HwMemory.java
index e417e93a71..e7bb51544a 100755
--- a/src/main/java/tmltranslator/HwMemory.java
+++ b/src/main/java/tmltranslator/HwMemory.java
@@ -62,6 +62,7 @@ public class HwMemory extends HwCommunicationNode  {
     }
 
     
+    @Override
     public String toXML() {
 	String s = "<MEMORY name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\" memorySize=\"" + memorySize + "\"  bufferType=\"" + bufferType + "\" />\n";
 	return s;
diff --git a/src/main/java/tmltranslator/HwRouter.java b/src/main/java/tmltranslator/HwRouter.java
index 4a05b2f596..36fe61f81c 100755
--- a/src/main/java/tmltranslator/HwRouter.java
+++ b/src/main/java/tmltranslator/HwRouter.java
@@ -61,7 +61,8 @@ public class HwRouter extends HwCommunicationNode  {
     public HwRouter(String _name) {
         super(_name);
     }
-
+    
+    @Override
     public String toXML() {
         String s = "<ROUTER name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  bufferByteSize=\"" + bufferByteSize + "\" />\n";
         return s;
diff --git a/src/main/java/tmltranslator/HwVGMN.java b/src/main/java/tmltranslator/HwVGMN.java
index 29d3c6fb1a..d6be1f92a5 100755
--- a/src/main/java/tmltranslator/HwVGMN.java
+++ b/src/main/java/tmltranslator/HwVGMN.java
@@ -56,7 +56,8 @@ public class HwVGMN extends HwCommunicationNode  {
     public HwVGMN(String _name) {
         super(_name);
     }
-
+    
+    @Override
     public String toXML() {
 	String s = "<VGMN name=\"" + name + "\" clockRatio=\"" + clockRatio + "\"  byteDataSize=\"" + byteDataSize + "\" />\n";
 	return s;
diff --git a/src/main/java/tmltranslator/TMLActivityElementChannel.java b/src/main/java/tmltranslator/TMLActivityElementChannel.java
index 34dd5221b5..380740cb49 100755
--- a/src/main/java/tmltranslator/TMLActivityElementChannel.java
+++ b/src/main/java/tmltranslator/TMLActivityElementChannel.java
@@ -103,7 +103,8 @@ public class TMLActivityElementChannel extends TMLActivityElement {
             channels.add(newChan);
         }
     }
-
+    
+    @Override
     public String customExtraToXML() {
 	String s= " nbOfSamples=\"" + nbOfSamples +"\" " ;
 	String chan= "";
diff --git a/src/main/java/tmltranslator/TMLActivityElementWithAction.java b/src/main/java/tmltranslator/TMLActivityElementWithAction.java
index 1b07420da3..027828ab1a 100755
--- a/src/main/java/tmltranslator/TMLActivityElementWithAction.java
+++ b/src/main/java/tmltranslator/TMLActivityElementWithAction.java
@@ -61,11 +61,13 @@ public class TMLActivityElementWithAction extends TMLActivityElement {
     public String getAction() {
         return action;
     }
-
+    
+    @Override
     public String toString() {
         return "Action: " + getAction();
     }
-
+    
+    @Override
     public String customExtraToXML() {
 	String s = " action=\"" + getAction() + "\"";
 	return s;
diff --git a/src/main/java/tmltranslator/TMLActivityElementWithIntervalAction.java b/src/main/java/tmltranslator/TMLActivityElementWithIntervalAction.java
index 113f937766..8ee0498bd7 100755
--- a/src/main/java/tmltranslator/TMLActivityElementWithIntervalAction.java
+++ b/src/main/java/tmltranslator/TMLActivityElementWithIntervalAction.java
@@ -71,7 +71,8 @@ public class TMLActivityElementWithIntervalAction extends TMLActivityElement {
     public String getMaxDelay() {
         return maxDelay;
     }
-
+    
+    @Override
     public String customExtraToXML() {
 	return " min=\"" + minDelay +  "\" max=\"" + maxDelay + "\" ";
     }
diff --git a/src/main/java/tmltranslator/TMLArchiTextSpecification.java b/src/main/java/tmltranslator/TMLArchiTextSpecification.java
index 759e80891b..fb506a65c3 100755
--- a/src/main/java/tmltranslator/TMLArchiTextSpecification.java
+++ b/src/main/java/tmltranslator/TMLArchiTextSpecification.java
@@ -119,7 +119,8 @@ public class TMLArchiTextSpecification {
         return warnings;
     }
 
-
+    
+    @Override
     public String toString() {
         return spec;
     }
diff --git a/src/main/java/ui/avatarrd/AvatarRDCopyConnector.java b/src/main/java/ui/avatarrd/AvatarRDCopyConnector.java
index 77f21d9ab2..4e9acaae7a 100755
--- a/src/main/java/ui/avatarrd/AvatarRDCopyConnector.java
+++ b/src/main/java/ui/avatarrd/AvatarRDCopyConnector.java
@@ -84,7 +84,7 @@ public  class AvatarRDCopyConnector extends TGConnectorWithCommentConnectionPoin
 		
         w  = g.getFontMetrics().stringWidth(value);
         h = g.getFontMetrics().getHeight();
-        g.drawString(value, (x1 + x2 - w) / 2, (y1 + y2)/2);
+        drawSingleString(g, value, (x1 + x2 - w) / 2, (y1 + y2)/2);
 		g.setFont(old);
     }
     @Override
diff --git a/src/main/java/ui/sd/SDAbsoluteTimeConstraint.java b/src/main/java/ui/sd/SDAbsoluteTimeConstraint.java
index de95114a9f..dd7a992265 100755
--- a/src/main/java/ui/sd/SDAbsoluteTimeConstraint.java
+++ b/src/main/java/ui/sd/SDAbsoluteTimeConstraint.java
@@ -90,7 +90,7 @@ public class SDAbsoluteTimeConstraint extends TGCWithoutInternalComponent implem
             widthValue  = g.getFontMetrics().stringWidth(value);
             heightValue = g.getFontMetrics().getHeight();
         }
-        g.drawString(value, x-widthValue-2, y);
+        drawSingleString(g, value, x-widthValue-2, y);
         g.drawLine(x, y, x+width, y);
     }
     
diff --git a/src/main/java/ui/sd/SDActionState.java b/src/main/java/ui/sd/SDActionState.java
index aadb578602..cca3b60da8 100755
--- a/src/main/java/ui/sd/SDActionState.java
+++ b/src/main/java/ui/sd/SDActionState.java
@@ -89,7 +89,7 @@ public class SDActionState extends TGCOneLineText implements SwallowedTGComponen
         }
         g.drawRoundRect(x - width/2, y, width, height, arc, arc);
         
-        g.drawString(value, x - w / 2 , y + textY);
+        drawSingleString(g, value, x - w / 2 , y + textY);
     }
     
     public TGComponent isOnMe(int _x, int _y) {
diff --git a/src/main/java/ui/sd/SDGuard.java b/src/main/java/ui/sd/SDGuard.java
index 41400ba507..6e147805b2 100755
--- a/src/main/java/ui/sd/SDGuard.java
+++ b/src/main/java/ui/sd/SDGuard.java
@@ -96,7 +96,7 @@ public class SDGuard extends TGCOneLineText implements SwallowedTGComponent {
 		g.drawLine(x+width/2, y, x+width/2-lineLength, y);
 		g.drawLine(x+width/2, y+height, x+width/2-lineLength, y+height);
         
-        g.drawString(value, x - w / 2 , y + textY);
+        drawSingleString(g, value, x - w / 2 , y + textY);
     }
     
     public TGComponent isOnMe(int _x, int _y) {
diff --git a/src/main/java/ui/sd/SDInstance.java b/src/main/java/ui/sd/SDInstance.java
index fa43367c14..acd5c38de3 100755
--- a/src/main/java/ui/sd/SDInstance.java
+++ b/src/main/java/ui/sd/SDInstance.java
@@ -110,7 +110,7 @@ public class SDInstance extends TGCWithInternalComponent implements SwallowTGCom
             wText  = g.getFontMetrics().stringWidth(name);
             hText = g.getFontMetrics().getHeight();
         }
-        g.drawString( name, x - (wText / 2) + width/2, y - 3 );
+        drawSingleString(g,  name, x - (wText / 2) + width/2, y - 3 );
         g.drawLine(x - (wText / 2) + width/2, y-2, x + (wText / 2) + width/2, y-2);
         g.drawLine(x+(width/2), y, x+(width/2), y +height);
 
diff --git a/src/main/java/ui/sd/SDTimeInterval.java b/src/main/java/ui/sd/SDTimeInterval.java
index 38d38a13ad..5339d6ae60 100755
--- a/src/main/java/ui/sd/SDTimeInterval.java
+++ b/src/main/java/ui/sd/SDTimeInterval.java
@@ -92,7 +92,7 @@ public class SDTimeInterval extends TGCTimeInterval implements SwallowedTGCompon
         //g.drawLine(x+(width/2), y+height, x+(width/2), y + lineLength + height);
          //w  = g.getFontMetrics().stringWidth(value);
         
-        g.drawString(value, x + textX, y + textY);
+        drawSingleString(g, value, x + textX, y + textY);
         
         if (!tdp.isScaled()) {
             wtext = g.getFontMetrics().stringWidth(value);
diff --git a/src/main/java/ui/sd/SDTimerCancellation.java b/src/main/java/ui/sd/SDTimerCancellation.java
index 4b970811cd..77d015eaf3 100755
--- a/src/main/java/ui/sd/SDTimerCancellation.java
+++ b/src/main/java/ui/sd/SDTimerCancellation.java
@@ -92,7 +92,7 @@ public class SDTimerCancellation extends TGCWithoutInternalComponent implements
             heightValue = g.getFontMetrics().getHeight();
         }
         
-        g.drawString(value, x+width, y+height/2+3);
+        drawSingleString(g, value, x+width, y+height/2+3);
         
         g.drawLine(x, y, x+width, y+height);
         //g.drawLine(x, y, x+width, y);
diff --git a/src/main/java/ui/sd/SDTimerExpiration.java b/src/main/java/ui/sd/SDTimerExpiration.java
index 3822577b88..037c69d0b4 100755
--- a/src/main/java/ui/sd/SDTimerExpiration.java
+++ b/src/main/java/ui/sd/SDTimerExpiration.java
@@ -91,7 +91,7 @@ public class SDTimerExpiration extends TGCWithoutInternalComponent implements Sw
             heightValue = g.getFontMetrics().getHeight();
         }
         
-        g.drawString(value, x+width, y+height/2+3);
+        drawSingleString(g, value, x+width, y+height/2+3);
         
         g.drawLine(x, y, x+width, y+height);
         g.drawLine(x, y, x+width, y);
diff --git a/src/main/java/ui/sd/SDTimerSetting.java b/src/main/java/ui/sd/SDTimerSetting.java
index adae175872..a59b805131 100755
--- a/src/main/java/ui/sd/SDTimerSetting.java
+++ b/src/main/java/ui/sd/SDTimerSetting.java
@@ -93,7 +93,7 @@ public class SDTimerSetting extends TGCWithoutInternalComponent implements Swall
             heightValue = g.getFontMetrics().getHeight();
         }
         
-        g.drawString(value, x+width, y+height/2+3);
+        drawSingleString(g, value, x+width, y+height/2+3);
         
         g.drawLine(x, y, x+width, y+height);
         g.drawLine(x, y, x+width, y);
diff --git a/src/main/java/ui/sd/TGConnectorMessageAsyncOrSyncSD.java b/src/main/java/ui/sd/TGConnectorMessageAsyncOrSyncSD.java
index ef84b8fb25..157d1a332f 100755
--- a/src/main/java/ui/sd/TGConnectorMessageAsyncOrSyncSD.java
+++ b/src/main/java/ui/sd/TGConnectorMessageAsyncOrSyncSD.java
@@ -86,7 +86,7 @@ public  class TGConnectorMessageAsyncOrSyncSD extends TGConnectorMessageSD {
                 heightValue = g.getFontMetrics().getHeight();
             }
 
-            g.drawString(value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5);
+            drawSingleString(g, value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5);
         } else {
             if (Point2D.distance(x1, y1, x2, y2) < GraphicLib.longueur * 1.5) {
                 g.drawLine(x1, y1, x2, y2);
@@ -99,8 +99,8 @@ public  class TGConnectorMessageAsyncOrSyncSD extends TGConnectorMessageSD {
                 heightValue = g.getFontMetrics().getHeight();
             }
 
-            //g.drawString(value, (p1.getX() + p2.getX()) / 2, ((p1.getY() + p2.getY()) / 2) - 5);
-            g.drawString(value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5);
+            //drawSingleString(g, value, (p1.getX() + p2.getX()) / 2, ((p1.getY() + p2.getY()) / 2) - 5);
+            drawSingleString(g, value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5);
         }
     }
 
diff --git a/src/main/java/ui/sd/TGConnectorMessageAsyncSD.java b/src/main/java/ui/sd/TGConnectorMessageAsyncSD.java
index c5281cdd90..0d80bea043 100755
--- a/src/main/java/ui/sd/TGConnectorMessageAsyncSD.java
+++ b/src/main/java/ui/sd/TGConnectorMessageAsyncSD.java
@@ -83,7 +83,7 @@ public  class TGConnectorMessageAsyncSD extends TGConnectorMessageSD {
             heightValue = g.getFontMetrics().getHeight();
         }
 
-        g.drawString(value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5);
+        drawSingleString(g, value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5);
     }
 
     public int getType() {
diff --git a/src/main/java/ui/sd/TGConnectorMessageSyncSD.java b/src/main/java/ui/sd/TGConnectorMessageSyncSD.java
index 70d60cc206..d57c4b8d85 100755
--- a/src/main/java/ui/sd/TGConnectorMessageSyncSD.java
+++ b/src/main/java/ui/sd/TGConnectorMessageSyncSD.java
@@ -79,7 +79,7 @@ public  class TGConnectorMessageSyncSD extends TGConnectorMessageSD {
         }
 
         //g.drawString(value, (p1.getX() + p2.getX()) / 2, ((p1.getY() + p2.getY()) / 2) - 5);
-        g.drawString(value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5);
+        drawSingleString(g, value, ((p1.getX() + p2.getX()) / 2)-widthValue/2, ((p1.getY() + p2.getY()) / 2) - 5);
     }
 
     public void addActionToPopupMenu(JPopupMenu componentMenu, ActionListener menuAL, int x, int y) {
diff --git a/src/main/java/ui/sd/TGConnectorRelativeTimeSD.java b/src/main/java/ui/sd/TGConnectorRelativeTimeSD.java
index 60fe671558..be369938e3 100755
--- a/src/main/java/ui/sd/TGConnectorRelativeTimeSD.java
+++ b/src/main/java/ui/sd/TGConnectorRelativeTimeSD.java
@@ -87,7 +87,7 @@ public  class TGConnectorRelativeTimeSD extends TGConnector {
             heightValue = g.getFontMetrics().getHeight();
         }
         
-        g.drawString(value, ((p1.getX() + p2.getX()) / 2) - widthValue - 2, ((p1.getY() + p2.getY()) / 2));
+        drawSingleString(g, value, ((p1.getX() + p2.getX()) / 2) - widthValue - 2, ((p1.getY() + p2.getY()) / 2));
     }
     
     public TGComponent extraIsOnOnlyMe(int x1, int y1) {
diff --git a/src/main/java/ui/sd2/SequenceDiagramPanel.java b/src/main/java/ui/sd2/SequenceDiagramPanel.java
index 1c199c31dc..cff7056640 100755
--- a/src/main/java/ui/sd2/SequenceDiagramPanel.java
+++ b/src/main/java/ui/sd2/SequenceDiagramPanel.java
@@ -65,6 +65,7 @@ public class SequenceDiagramPanel extends TDiagramPanel {
           addMouseMotionListener(tdmm);*/
     }
 
+    @Override
     public boolean actionOnDoubleClick(TGComponent tgc) {
         //
         /*if (tgc instanceof TCDTClass) {
@@ -85,6 +86,7 @@ public class SequenceDiagramPanel extends TDiagramPanel {
         return false;
     }
 
+    @Override
     public boolean actionOnAdd(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
           TCDTClass tgcc = (TCDTClass)(tgc);
@@ -97,6 +99,7 @@ public class SequenceDiagramPanel extends TDiagramPanel {
         return false;
     }
 
+    @Override
     public boolean actionOnRemove(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
           TCDTClass tgcc = (TCDTClass)(tgc);
@@ -108,6 +111,7 @@ public class SequenceDiagramPanel extends TDiagramPanel {
         return false;
     }
 
+    @Override
     public boolean actionOnValueChanged(TGComponent tgc) {
         /*if (tgc instanceof TCDTClass) {
           return actionOnDoubleClick(tgc);
@@ -116,26 +120,32 @@ public class SequenceDiagramPanel extends TDiagramPanel {
         return false;
     }
 
+    @Override
     public String getXMLHead() {
         return "<SequenceDiagramPanelZV name=\"" + name + "\"" + sizeParam() + " >";
     }
 
+    @Override
     public String getXMLTail() {
         return "</SequenceDiagramPanelZV>";
     }
 
+    @Override
     public String getXMLSelectedHead() {
         return "<SequenceDiagramPanelZVCopy name=\"" + name + "\" xSel=\"" + xSel + "\" ySel=\"" + ySel + "\" widthSel=\"" + widthSel + "\" heightSel=\"" + heightSel + "\" >";
     }
 
+    @Override
     public String getXMLSelectedTail() {
         return "</SequenceDiagramPanelZVCopy>";
     }
 
+    @Override
     public String getXMLCloneHead() {
         return "<SequenceDiagramPanelZVCopy name=\"" + name + "\" xSel=\"" + 0 + "\" ySel=\"" + 0 + "\" widthSel=\"" + 0 + "\" heightSel=\"" + 0 + "\" >";
     }
 
+    @Override
     public String getXMLCloneTail() {
         return "</SequenceDiagramPanelZVCopy>";
     }
@@ -219,6 +229,7 @@ public class SequenceDiagramPanel extends TDiagramPanel {
         return null;
     }
 
+    @Override
     public TGComponent getSecondTGComponent(TGConnector tgco) {
         TGComponent tmp;
         TGComponent tmp1;
diff --git a/src/main/java/ui/sysmlsecmethodology/SysmlsecMethodologyDiagramName.java b/src/main/java/ui/sysmlsecmethodology/SysmlsecMethodologyDiagramName.java
index e91b4539c6..8eec092876 100755
--- a/src/main/java/ui/sysmlsecmethodology/SysmlsecMethodologyDiagramName.java
+++ b/src/main/java/ui/sysmlsecmethodology/SysmlsecMethodologyDiagramName.java
@@ -175,7 +175,7 @@ public class SysmlsecMethodologyDiagramName extends TGCScalableWithoutInternalCo
         }
         widthAppli = g.getFontMetrics().stringWidth(val);
         curWidth = Math.max(widthAppli, curWidth);
-        g.drawString(val, x, y);
+        drawSingleString(g, val, x, y);
         g.setFont(f);
 
         if (validations == null) {
@@ -223,7 +223,7 @@ public class SysmlsecMethodologyDiagramName extends TGCScalableWithoutInternalCo
                     if ((onMe && indexOnMe == i)) {
                         g.setFont(f.deriveFont(Font.BOLD));
                     }
-                    g.drawString(SHORT_ACTION_NAMES[validations[i]], currentMaxX - w1, y);
+                    drawSingleString(g, SHORT_ACTION_NAMES[validations[i]], currentMaxX - w1, y);
                     g.setFont(f.deriveFont(Font.ITALIC));
                     valMinX[i] = currentMaxX-w1;
                     valMaxX[i] = currentMaxX;
diff --git a/src/main/java/ui/sysmlsecmethodology/SysmlsecMethodologyDiagramReference.java b/src/main/java/ui/sysmlsecmethodology/SysmlsecMethodologyDiagramReference.java
index f600a62538..912071c94e 100755
--- a/src/main/java/ui/sysmlsecmethodology/SysmlsecMethodologyDiagramReference.java
+++ b/src/main/java/ui/sysmlsecmethodology/SysmlsecMethodologyDiagramReference.java
@@ -221,7 +221,7 @@ public abstract class SysmlsecMethodologyDiagramReference extends TGCScalableWit
           g.setColor(tmp);
           GraphicLib.setNormalStroke(g);
           } else {
-          //g.drawString("acc", x + width - 10, y+height-10);
+          //drawSingleString(g, "acc", x + width - 10, y+height-10);
           Color tmp = g.getColor();
           GraphicLib.setMediumStroke(g);
           g.setColor(Color.red);
diff --git a/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java b/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java
index 119d2d7928..e0de8a89f4 100755
--- a/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java
+++ b/src/main/java/ui/tmlcompd/TMLCCompositeComponent.java
@@ -209,9 +209,9 @@ public class TMLCCompositeComponent extends TGCScalableWithInternalComponent imp
 //			w = g.getFontMetrics().stringWidth(value);
 //			
 //			if (!(w < (width - 2 * (iconSize + textX)))) {
-//				g.drawString(value, x + textX + 1, y + currentFontSize + textX);
+//				drawSingleString(g, value, x + textX + 1, y + currentFontSize + textX);
 //			} else {
-//				g.drawString(value, x + (width - w)/2, y + currentFontSize + textX);
+//				drawSingleString(g, value, x + (width - w)/2, y + currentFontSize + textX);
 //			}
 //		}
 //		
diff --git a/src/main/java/ui/ucd/TGConnectorExtend.java b/src/main/java/ui/ucd/TGConnectorExtend.java
index 68656ae8ac..badb0a78e2 100755
--- a/src/main/java/ui/ucd/TGConnectorExtend.java
+++ b/src/main/java/ui/ucd/TGConnectorExtend.java
@@ -62,7 +62,7 @@ public  class TGConnectorExtend extends TGConnectorUC {
         myImageIcon = IconManager.imgic608;
     }
     
-
+    @Override
     public int getType() {
         return TGComponentManager.CONNECTOR_EXTEND_UCD;
     }
diff --git a/src/main/java/ui/ucd/TGConnectorInclude.java b/src/main/java/ui/ucd/TGConnectorInclude.java
index 4a5c0704e3..8db903a5c1 100755
--- a/src/main/java/ui/ucd/TGConnectorInclude.java
+++ b/src/main/java/ui/ucd/TGConnectorInclude.java
@@ -62,7 +62,8 @@ public  class TGConnectorInclude extends TGConnectorUC {
         myImageIcon = IconManager.imgic606;
     }
     
-
+    
+    @Override
     public int getType() {
         return TGComponentManager.CONNECTOR_INCLUDE_UCD;
     }
diff --git a/src/main/java/ui/ucd/TGConnectorSpecialization.java b/src/main/java/ui/ucd/TGConnectorSpecialization.java
index 8b50a11bb3..0963dc1a1c 100755
--- a/src/main/java/ui/ucd/TGConnectorSpecialization.java
+++ b/src/main/java/ui/ucd/TGConnectorSpecialization.java
@@ -62,14 +62,15 @@ public  class TGConnectorSpecialization extends TGConnector {
         
          myImageIcon = IconManager.imgic610;
     }
-    
-    
+
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         //g.drawLine(x1, y1, x2, y2);
         GraphicLib.arrowWithLine(g, 1, 0, 0, x1, y1, x2, y2, false);
     }
     
-       public int getType() {
+    @Override
+    public int getType() {
         return TGComponentManager.CONNECTOR_SPECIA_UCD;
     }
     
diff --git a/src/main/java/ui/ucd/TGConnectorUC.java b/src/main/java/ui/ucd/TGConnectorUC.java
index af3a58f670..9b100d0c63 100755
--- a/src/main/java/ui/ucd/TGConnectorUC.java
+++ b/src/main/java/ui/ucd/TGConnectorUC.java
@@ -65,7 +65,7 @@ public  abstract class TGConnectorUC extends TGConnector {
         value = _value;
     }
     
-    
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         //g.drawLine(x1, y1, x2, y2);
         GraphicLib.dashedArrowWithLine(g, 1, 1, 0, x1, y1, x2, y2, false);
@@ -73,13 +73,15 @@ public  abstract class TGConnectorUC extends TGConnector {
         // Indicate semantics 
         w  = g.getFontMetrics().stringWidth(value);
         h = g.getFontMetrics().getHeight();
-        g.drawString(value, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2);
+        drawSingleString(g, value, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2);
     }
     
+    @Override
     protected void drawMiddleSegment(Graphics g, int x1, int y1, int x2, int y2) {
         GraphicLib.dashedLine(g, x1, y1, x2, y2);
     }
     
+    @Override
     public TGComponent extraIsOnOnlyMe(int x1, int y1) {
         if (GraphicLib.isInRectangle(x1, y1, (p1.getX() + p2.getX() - w) / 2, (p1.getY() + p2.getY())/2 - h, w, h)) {
             return this;
diff --git a/src/main/java/ui/ucd/TGConnectorUseCase.java b/src/main/java/ui/ucd/TGConnectorUseCase.java
index f90a5afad6..31118d9451 100755
--- a/src/main/java/ui/ucd/TGConnectorUseCase.java
+++ b/src/main/java/ui/ucd/TGConnectorUseCase.java
@@ -62,13 +62,13 @@ public  class TGConnectorUseCase extends TGConnector {
         myImageIcon = IconManager.imgic604;
     }
     
-    
+    @Override
     protected void drawLastSegment(Graphics g, int x1, int y1, int x2, int y2){
         g.drawLine(x1, y1, x2, y2);
     }
+      
     
-    
-    
+    @Override
     public int getType() {
         return TGComponentManager.CONNECTOR_ACTOR_UCD;
     }
diff --git a/src/main/java/ui/ucd/UCDActor.java b/src/main/java/ui/ucd/UCDActor.java
index bb4895cbe0..050b0b20ba 100755
--- a/src/main/java/ui/ucd/UCDActor.java
+++ b/src/main/java/ui/ucd/UCDActor.java
@@ -155,10 +155,11 @@ public class UCDActor extends TGCScalableWithoutInternalComponentOneLineText {
         //right leg
         graph.drawLine(x+width/2, y+height-width/2, x+width, y+height);
         //name of actor
-        graph.drawString(value, x + width / 2 - w / 2 , y + height + h);
+        drawSingleString(graph, value, x + width / 2 - w / 2 , y + height + h);
         height = height + h;
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -169,11 +170,13 @@ public class UCDActor extends TGCScalableWithoutInternalComponentOneLineText {
         return null;
     }
     
+    @Override
     public int getMyCurrentMinX() {
         return Math.min(x + width / 2 - w / 2, x);
 
     }
     
+    @Override
     public int getMyCurrentMaxX() {
         return Math.max(x + width / 2 + w / 2, x + width);
     }
@@ -183,6 +186,7 @@ public class UCDActor extends TGCScalableWithoutInternalComponentOneLineText {
     }
     
     
+    @Override
     public int getType() {
         return TGComponentManager.UCD_ACTOR;
     }
diff --git a/src/main/java/ui/ucd/UCDActorBox.java b/src/main/java/ui/ucd/UCDActorBox.java
index 8d47c1ec67..9863c4d612 100755
--- a/src/main/java/ui/ucd/UCDActorBox.java
+++ b/src/main/java/ui/ucd/UCDActorBox.java
@@ -97,7 +97,8 @@ public class UCDActorBox extends TGCScalableWithoutInternalComponentOneLineText
 
         myImageIcon = IconManager.imgic600;
     }
-
+    
+    @Override
     public void internalDrawing(Graphics g) {
         w  = g.getFontMetrics().stringWidth(value);
         int w1  = g.getFontMetrics().stringWidth(STEREOTYPE);
@@ -105,11 +106,12 @@ public class UCDActorBox extends TGCScalableWithoutInternalComponentOneLineText
             width = Math.max(Math.max(w, w1) + space, minWidth);
         }
         h = g.getFontMetrics().getHeight();
-        g.drawString(STEREOTYPE, x + ((width - w1) / 2), y + h + space/2);
-        g.drawString(value, x + ((width - w) / 2) , y + height - h);
+        drawSingleString(g, STEREOTYPE, x + ((width - w1) / 2), y + h + space/2);
+        drawSingleString(g, value, x + ((width - w) / 2) , y + height - h);
         g.drawRect(x, y, width, height);
     }
-
+    
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -119,12 +121,14 @@ public class UCDActorBox extends TGCScalableWithoutInternalComponentOneLineText
           }*/
         return null;
     }
-
+    
+    @Override
     public int getMyCurrentMinX() {
         return Math.min(x + width / 2 - w / 2, x);
 
     }
-
+    
+    @Override
     public int getMyCurrentMaxX() {
         return Math.max(x + width / 2 + w / 2, x + width);
     }
@@ -133,7 +137,8 @@ public class UCDActorBox extends TGCScalableWithoutInternalComponentOneLineText
         return value;
     }
 
-
+    
+    @Override
     public int getType() {
         return TGComponentManager.UCD_ACTORBOX;
     }
diff --git a/src/main/java/ui/ucd/UCDBorder.java b/src/main/java/ui/ucd/UCDBorder.java
index 5a6941d5c9..c5252de991 100755
--- a/src/main/java/ui/ucd/UCDBorder.java
+++ b/src/main/java/ui/ucd/UCDBorder.java
@@ -87,14 +87,16 @@ public class UCDBorder extends TGCScalableWithoutInternalComponentOneLineText {
         myImageIcon = IconManager.imgic612;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
         w  = g.getFontMetrics().stringWidth(value);
         h = g.getFontMetrics().getHeight();
         
         g.drawRect(x, y, width, height);
-        g.drawString(value, x + width - w - textSpace, y + h);
+        drawSingleString(g, value, x + width - w - textSpace, y + h);
     }
     
+    @Override
     public TGComponent isOnMe(int _x, int _y) {
         if (GraphicLib.isInRectangle(_x, _y, x, y, width, height)) {
             return this;
@@ -107,6 +109,7 @@ public class UCDBorder extends TGCScalableWithoutInternalComponentOneLineText {
     }
     
     
+    @Override
     public int getType() {
         return TGComponentManager.UCD_BORDER;
     }
diff --git a/src/main/java/ui/ucd/UCDUseCase.java b/src/main/java/ui/ucd/UCDUseCase.java
index 3d61fb933e..54c46c3197 100755
--- a/src/main/java/ui/ucd/UCDUseCase.java
+++ b/src/main/java/ui/ucd/UCDUseCase.java
@@ -61,8 +61,8 @@ import java.awt.*;
  */
 public class UCDUseCase extends TGCScalableWithoutInternalComponent {
     protected int lineLength = 5;
-    protected int textX =  5;
-    protected int textY =  15;
+//    protected int textX =  5;
+//    protected int textY =  15;
     protected int arc = 5;
     protected int w, h, w1, w2; //w1;
     
@@ -71,9 +71,12 @@ public class UCDUseCase extends TGCScalableWithoutInternalComponent {
     public UCDUseCase(int _x, int _y, int _minX, int _maxX, int _minY, int _maxY, boolean _pos, TGComponent _father, TDiagramPanel _tdp)  {
         super(_x, _y, _minX, _maxX, _minY, _maxY, _pos, _father, _tdp);
 
-	width = (int)(50 * tdp.getZoom());
+        width = (int)(50 * tdp.getZoom());
         height = (int)(40 * tdp.getZoom());
         //minWidth = 30;
+        textY =  15;
+        textX =  5;
+        
         
         nbConnectingPoint = 16;
         int index = 0;
@@ -103,6 +106,7 @@ public class UCDUseCase extends TGCScalableWithoutInternalComponent {
         myImageIcon = IconManager.imgic602;
     }
     
+    @Override
     public void internalDrawing(Graphics g) {
 		if (extension.length() > 0) {
 			w1  = g.getFontMetrics().stringWidth(value);
@@ -125,11 +129,11 @@ public class UCDUseCase extends TGCScalableWithoutInternalComponent {
         //name of use case
         
         if (extension.length() > 0) {
-			g.drawString(value, x + width / 2 - w1 / 2 , y + height/2 + h / 2 - 8);
+			drawSingleString(g, value, x + width / 2 - w1 / 2 , y + height/2 + h / 2 - 8);
 	        g.drawLine(x + width / 2 - w / 2, y + height/2 + h / 2 -6, x + width / 2 + w / 2, y + height/2 + h / 2 - 6);
-	        g.drawString(extension, x + width / 2 - w2 / 2 , y + height/2 + h / 2 + 5);
+	        drawSingleString(g, extension, x + width / 2 - w2 / 2 , y + height/2 + h / 2 + 5);
         } else {
-			g.drawString(value, x + width / 2 - w / 2 , y + height/2 + h / 2 - 3);
+			drawSingleString(g, value, x + width / 2 - w / 2 , y + height/2 + h / 2 - 3);
 		}
     }
     
@@ -149,11 +153,13 @@ public class UCDUseCase extends TGCScalableWithoutInternalComponent {
         return extension;
     }
     
- 
+	    
+	@Override
     public int getType() {
         return TGComponentManager.UCD_USECASE;
     } 
     
+    @Override
     public boolean editOndoubleClick(JFrame frame) {
 //        boolean error = false;
 //		String errors = "";
@@ -179,7 +185,8 @@ public class UCDUseCase extends TGCScalableWithoutInternalComponent {
 		
         return true;
     }
-	
+    
+    @Override
 	protected String translateExtraParam() {
         StringBuffer sb = new StringBuffer("<extraparam>\n");
         sb.append("<info extension=\"" + extension + "\" ");
-- 
GitLab