diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java b/Core/src/org/sleuthkit/autopsy/texttranslation/translators/BingTranslator.java index 948aae9217..6524c1835d 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 java.io.IOException; 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 class BingTranslator implements TextTranslator { } @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 ec74190229..c0820b688c 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.apache.commons.lang3.StringUtils; 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 final class GoogleTranslator implements TextTranslator { } @Override + @ThreadConfined(type = ThreadConfined.ThreadType.AWT) public JPanel getSettingsPanel() { + if(settingsPanel == null) { + settingsPanel = new GoogleTranslatorSettingsPanel(settings.getCredentialPath(), settings.getTargetLanguageCode()); + } return settingsPanel; }