From ec6d5c12a062651562bd04f99f146abab4bf7202 Mon Sep 17 00:00:00 2001
From: Ludovic Apvrille <ludovic.apvrille@telecom-paristech.fr>
Date: Tue, 12 Mar 2019 20:56:46 +0100
Subject: [PATCH] icon loading in TTool help

---
 src/main/java/help/HelpEntry.java       |  4 +++
 src/main/java/ui/window/JFrameHelp.java | 43 ++++++++++++++++++++++++-
 2 files changed, 46 insertions(+), 1 deletion(-)

diff --git a/src/main/java/help/HelpEntry.java b/src/main/java/help/HelpEntry.java
index 2be0de448e..59f7fe3a25 100644
--- a/src/main/java/help/HelpEntry.java
+++ b/src/main/java/help/HelpEntry.java
@@ -189,6 +189,10 @@ public class HelpEntry implements GenericTree {
         return htmlContent;
     }
 
+    public void setHTMLContent(String HTMLContent) {
+        htmlContentLowerCase = HTMLContent;
+    }
+
 
     private String filterHTMLContent(String input) {
 
diff --git a/src/main/java/ui/window/JFrameHelp.java b/src/main/java/ui/window/JFrameHelp.java
index 4bdf299d70..446c62f886 100644
--- a/src/main/java/ui/window/JFrameHelp.java
+++ b/src/main/java/ui/window/JFrameHelp.java
@@ -186,7 +186,11 @@ public	class JFrameHelp extends JFrame implements ActionListener {
 
 
         jp01.setBorder(new javax.swing.border.TitledBorder("Help of: " + he.getMasterKeyword()));
-        pane.setText(he.getHTMLContent());
+        String content = handleImages(he.getHTMLContent());
+        he.setHTMLContent(content);
+        //String content = he.getHTMLContent();
+        //TraceManager.addDev("HTML content is:" + content);
+        pane.setText(content);
         setVisible(true);
     }
     
@@ -270,6 +274,43 @@ public	class JFrameHelp extends JFrame implements ActionListener {
         setHelpEntry(srhe);
     }
 
+    private String handleImages(String initialContent) {
+        int index;
+        int cpt = 0;
+
+        while ((index = initialContent.indexOf("<img src=\"file:")) != -1) {
+
+            String tmpContent = initialContent.substring(index + 15, initialContent.length());
+            int index2 = tmpContent.indexOf("\"");
+            if (index2 == -1) return initialContent;
+
+            String infoFile = tmpContent.substring(0, index2);
+
+            if (infoFile.startsWith("../ui/util/")) {
+                infoFile = infoFile.substring(11, infoFile.length());
+            }
+
+            URL url = IconManager.class.getResource(infoFile);
+            if (url != null) {
+                String imgsrc = url.toString();
+                TraceManager.addDev("Infofile:" + infoFile + " imgsrc=" + imgsrc);
+                String tmp1 = initialContent.substring(0, index + 10);
+                String tmp2 = initialContent.substring(index + 15 + index2, initialContent.length());
+                initialContent = tmp1 + imgsrc + tmp2;
+                TraceManager.addDev("New initial content:" + initialContent);
+            } else {
+                return initialContent;
+            }
+            cpt ++;
+            if (cpt == 1000) {
+                return initialContent;
+            }
+        }
+
+        return initialContent;
+
+    }
+
     
 } // Class
 
-- 
GitLab