diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java index 948aae921787851ecca458901e7e96ba01623de6..6524c1835d8e65102b9e06a5835488cd44e085a1 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java @@ -30,6 +30,7 @@ import javax.swing.JPanel; import org.openide.util.NbBundle.Messages; import org.openide.util.lookup.ServiceProvider; +import org.sleuthkit.autopsy.coreutils.ThreadConfined; import org.sleuthkit.autopsy.texttranslation.TextTranslator; import org.sleuthkit.autopsy.texttranslation.TranslationConfigException; import org.sleuthkit.autopsy.texttranslation.TranslationException; @@ -46,7 +47,7 @@ public class BingTranslator implements TextTranslator { //https://docs.microsoft.com/en-us/azure/cognitive-services/translator/language-support private static final String BASE_URL = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to="; private static final int MAX_STRING_LENGTH = 5000; - private final BingTranslatorSettingsPanel settingsPanel; + private BingTranslatorSettingsPanel settingsPanel; private final BingTranslatorSettings settings = new BingTranslatorSettings(); // This sends messages to Microsoft. private final OkHttpClient CLIENT = new OkHttpClient(); @@ -55,11 +56,11 @@ public class BingTranslator implements TextTranslator { * Create a Bing Translator */ public BingTranslator() { - settingsPanel = new BingTranslatorSettingsPanel(settings.getAuthenticationKey(), settings.getTargetLanguageCode()); + } /** - * Get the tranlationurl for the specified language code + * Get the tranlation url for the specified language code * * * @@ -133,7 +134,11 @@ public String getName() { } @Override + @ThreadConfined(type = ThreadConfined.ThreadType.AWT) public JPanel getSettingsPanel() { + if(settingsPanel == null) { + settingsPanel = new BingTranslatorSettingsPanel(settings.getAuthenticationKey(), settings.getTargetLanguageCode()); + } return settingsPanel; } diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java index ec741902293001def059c0a8b12a206b3540d833..c0820b688ccbfe85b4b9d31b62c43001f12a1295 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/GoogleTranslator.java @@ -36,6 +36,7 @@ import org.openide.util.NbBundle.Messages; import org.openide.util.lookup.ServiceProvider; import org.sleuthkit.autopsy.coreutils.EscapeUtil; +import org.sleuthkit.autopsy.coreutils.ThreadConfined; import org.sleuthkit.autopsy.texttranslation.TextTranslator; import org.sleuthkit.autopsy.texttranslation.TranslationConfigException; import org.sleuthkit.autopsy.texttranslation.TranslationException; @@ -50,7 +51,7 @@ public final class GoogleTranslator implements TextTranslator { private static final Logger logger = Logger.getLogger(GoogleTranslator.class.getName()); //See translate method for justification of this limit. private static final int MAX_PAYLOAD_SIZE = 5000; - private final GoogleTranslatorSettingsPanel settingsPanel; + private GoogleTranslatorSettingsPanel settingsPanel; private final GoogleTranslatorSettings settings = new GoogleTranslatorSettings(); private Translate googleTranslate; @@ -59,7 +60,6 @@ public final class GoogleTranslator implements TextTranslator { */ public GoogleTranslator() { // Instantiates a client - settingsPanel = new GoogleTranslatorSettingsPanel(settings.getCredentialPath(), settings.getTargetLanguageCode()); loadTranslator(); } @@ -134,7 +134,11 @@ public String getName() { } @Override + @ThreadConfined(type = ThreadConfined.ThreadType.AWT) public JPanel getSettingsPanel() { + if(settingsPanel == null) { + settingsPanel = new GoogleTranslatorSettingsPanel(settings.getCredentialPath(), settings.getTargetLanguageCode()); + } return settingsPanel; }