From f7cba1a836c489478e65f1b00d2fba755f6b7efa Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paris.fr>
Date: Tue, 21 May 2024 17:44:20 +0200
Subject: [PATCH] Centering stat frame

---
 src/main/java/myutil/GraphicLib.java | 19 +++++++++++++++++++
 src/main/java/ui/MainGUI.java        |  2 ++
 2 files changed, 21 insertions(+)

diff --git a/src/main/java/myutil/GraphicLib.java b/src/main/java/myutil/GraphicLib.java
index 12e96a18fa..8f38d42d53 100644
--- a/src/main/java/myutil/GraphicLib.java
+++ b/src/main/java/myutil/GraphicLib.java
@@ -852,6 +852,25 @@ public final class GraphicLib {
         SwingUtilities.invokeLater(runnable);
     }
 
+    public static void centerFrame(JFrame frameToCenter, JFrame referenceFrame) {
+        // Get the location and size of the reference frame
+        int refX = referenceFrame.getX();
+        int refY = referenceFrame.getY();
+        int refWidth = referenceFrame.getWidth();
+        int refHeight = referenceFrame.getHeight();
+
+        // Get the size of the frame to be centered
+        int frameWidth = frameToCenter.getWidth();
+        int frameHeight = frameToCenter.getHeight();
+
+        // Calculate the new location
+        int newX = refX + (refWidth - frameWidth) / 2;
+        int newY = refY + (refHeight - frameHeight) / 2;
+
+        // Set the location of the frame to be centered
+        frameToCenter.setLocation(newX, newY);
+    }
+
 
 
 }
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 8b409b638a..8f4181f9ee 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -3568,6 +3568,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
                 JFrameBasicText fbt = new JFrameBasicText("Stats on " + getCurrentTDiagramPanel().getName(), data);
                 fbt.setSize(800, 800);
                 fbt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+                GraphicLib.centerFrame(fbt, frame);
                 fbt.setVisible(true);
                 TraceManager.addDev("Frame shown");
             }
@@ -3587,6 +3588,7 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
             JFrameBasicText fbt = new JFrameBasicText("Textual format - " + getCurrentTDiagramPanel().getName(), data);
             fbt.setSize(800, 800);
             fbt.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
             fbt.setVisible(true);
             TraceManager.addDev("Frame shown");
         }
-- 
GitLab