diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java
index 6e1d718324..ae26576c35 100644
--- a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java
+++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java
@@ -20,6 +20,7 @@ package org.sleuthkit.autopsy.contentviewers;
import org.sleuthkit.autopsy.datamodel.AttachmentNode;
import com.google.gson.Gson;
+import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.util.Arrays;
@@ -131,6 +132,7 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont
drp = DataResultPanel.createInstanceUninitialized(Bundle.MessageContentViewer_AtrachmentsPanel_title(), "", new TableFilterNode(Node.EMPTY, false), 0, null);
attachmentsScrollPane.setViewportView(drp);
+ //textPanel.setLayout(new BorderLayout());
msgbodyTabbedPane.insertTab(
NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.textbodyScrollPane.TabConstraints.tabTitle"),
null,
diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/TextTranslatableComponent.java b/Core/src/org/sleuthkit/autopsy/contentviewers/TextTranslatableComponent.java
index d188720a49..653efba23a 100644
--- a/Core/src/org/sleuthkit/autopsy/contentviewers/TextTranslatableComponent.java
+++ b/Core/src/org/sleuthkit/autopsy/contentviewers/TextTranslatableComponent.java
@@ -47,9 +47,11 @@ final class TextTranslatableComponent implements TranslatablePanel.TranslatableC
textComponent.setLineWrap(true);
textComponent.setRows(5);
textComponent.setWrapStyleWord(true);
+
JScrollPane parentComponent = new JScrollPane();
parentComponent.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
parentComponent.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
+ //parentComponent.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED);
parentComponent.setViewportView(textComponent);
this.parentComponent = parentComponent;
this.textComponent = textComponent;
@@ -77,6 +79,7 @@ final class TextTranslatableComponent implements TranslatablePanel.TranslatableC
private boolean setPanelContent(String content) {
try {
textComponent.setText(content == null ? "" : content);
+ textComponent.setCaretPosition(0);
return true;
} catch (Exception e) {
LOGGER.log(Level.WARNING, "There was an error in setting up the text for MessageContentViewer text panel", e);
diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/TranslatablePanel.form b/Core/src/org/sleuthkit/autopsy/contentviewers/TranslatablePanel.form
index 384414b26e..45eb156e87 100644
--- a/Core/src/org/sleuthkit/autopsy/contentviewers/TranslatablePanel.form
+++ b/Core/src/org/sleuthkit/autopsy/contentviewers/TranslatablePanel.form
@@ -29,7 +29,7 @@
-
+
@@ -49,18 +49,22 @@
-
+
-
-
+
+
+
+
+
+
-
+
@@ -70,20 +74,20 @@
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/TranslatablePanel.java b/Core/src/org/sleuthkit/autopsy/contentviewers/TranslatablePanel.java
index 53d6d25941..107dae8cb1 100644
--- a/Core/src/org/sleuthkit/autopsy/contentviewers/TranslatablePanel.java
+++ b/Core/src/org/sleuthkit/autopsy/contentviewers/TranslatablePanel.java
@@ -19,15 +19,19 @@
package org.sleuthkit.autopsy.contentviewers;
import java.awt.Component;
+import javax.swing.ImageIcon;
import org.apache.commons.lang.StringUtils;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import org.openide.util.NbBundle.Messages;
+import org.sleuthkit.autopsy.texttranslation.TextTranslationService;
/**
* A panel for translation with a subcomponent that allows for translation
*/
final class TranslatablePanel extends JPanel {
+
+
/**
* an option in drop down of whether or not to translate
*/
@@ -86,11 +90,12 @@ final class TranslatablePanel extends JPanel {
private static final long serialVersionUID = 1L;
+ private final ImageIcon warningIcon = new ImageIcon(TranslatablePanel.class.getResource("/org/sleuthkit/autopsy/images/warning16.png"));
private final TranslatableComponent subcomponent;
private final String origOptionText;
private final String translatedOptionText;
-
+ private final TextTranslationService translationService;
@Messages({"TranslatablePanel.comboBoxOption.originalText=Original Text",
"TranslatablePanel.comboBoxOption.translatedText=Translated Text"})
@@ -99,29 +104,40 @@ final class TranslatablePanel extends JPanel {
subcomponent,
Bundle.TranslatablePanel_comboBoxOption_originalText(),
Bundle.TranslatablePanel_comboBoxOption_translatedText(),
- null);
+ null,
+ TextTranslationService.getInstance());
}
/**
* Creates new form TranslatedContentPanel
*/
- TranslatablePanel(TranslatableComponent subcomponent, String origOptionText, String translatedOptionText, String origContent) {
+ TranslatablePanel(TranslatableComponent subcomponent, String origOptionText, String translatedOptionText, String origContent,
+ TextTranslationService translationService) {
this.subcomponent = subcomponent;
this.origOptionText = origOptionText;
this.translatedOptionText = translatedOptionText;
+ this.translationService = translationService;
initComponents();
- additionalInit(origContent);
+ additionalInit();
+ setTranslationBarVisible();
+ setContent(origContent);
}
private void setWarningLabelMsg(String msg) {
- warningLabel.setText(msg);
- warningLabel.setVisible(StringUtils.isEmpty(msg));
+ boolean hasWarning = !StringUtils.isEmpty(msg);
+ warningLabel.setText(hasWarning ? msg : "");
+ warningLabel.setIcon(hasWarning ? warningIcon : null);
}
+ private void setTranslationBarVisible() {
+ translationBar.setVisible(this.translationService.hasProvider());
+ }
+
void reset() {
+ setTranslationBarVisible();
setContent(null);
}
@@ -135,13 +151,12 @@ final class TranslatablePanel extends JPanel {
- private void additionalInit(String origContent) {
+ private void additionalInit() {
add(this.subcomponent.getComponent(), java.awt.BorderLayout.CENTER);
setWarningLabelMsg(null);
translateComboBox.removeAllItems();
translateComboBox.addItem(new TranslateOption(this.origOptionText, false));
translateComboBox.addItem(new TranslateOption(this.translatedOptionText, true));
- this.subcomponent.setContent(origContent);
}
private void handleComboBoxChange(TranslateOption translateOption) {
@@ -160,9 +175,8 @@ final class TranslatablePanel extends JPanel {
@SuppressWarnings("unchecked")
// //GEN-BEGIN:initComponents
private void initComponents() {
- java.awt.GridBagConstraints gridBagConstraints;
- jPanel1 = new javax.swing.JPanel();
+ translationBar = new javax.swing.JPanel();
translateComboBox = new javax.swing.JComboBox<>();
warningLabel = new javax.swing.JLabel();
@@ -173,37 +187,26 @@ final class TranslatablePanel extends JPanel {
setVerifyInputWhenFocusTarget(false);
setLayout(new java.awt.BorderLayout());
- jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
- jPanel1.setMaximumSize(new java.awt.Dimension(182, 24));
- jPanel1.setPreferredSize(new java.awt.Dimension(182, 24));
- jPanel1.setLayout(new java.awt.GridBagLayout());
+ translationBar.setBorder(javax.swing.BorderFactory.createEtchedBorder());
+ translationBar.setMaximumSize(new java.awt.Dimension(182, 24));
+ translationBar.setPreferredSize(new java.awt.Dimension(182, 24));
+ translationBar.setLayout(new java.awt.BorderLayout());
- translateComboBox.setMinimumSize(new java.awt.Dimension(43, 20));
- translateComboBox.setPreferredSize(new java.awt.Dimension(43, 20));
+ translateComboBox.setMaximumSize(new java.awt.Dimension(200, 20));
+ translateComboBox.setMinimumSize(new java.awt.Dimension(200, 20));
+ translateComboBox.setName(""); // NOI18N
+ translateComboBox.setPreferredSize(new java.awt.Dimension(200, 20));
translateComboBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
translateComboBoxActionPerformed(evt);
}
});
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 3;
- gridBagConstraints.gridy = 0;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
- gridBagConstraints.weightx = 0.1;
- gridBagConstraints.insets = new java.awt.Insets(0, 5, 0, 0);
- jPanel1.add(translateComboBox, gridBagConstraints);
+ translationBar.add(translateComboBox, java.awt.BorderLayout.LINE_END);
- warningLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/warning16.png"))); // NOI18N
- gridBagConstraints = new java.awt.GridBagConstraints();
- gridBagConstraints.gridx = 0;
- gridBagConstraints.gridy = 0;
- gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
- gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
- gridBagConstraints.weightx = 0.25;
- jPanel1.add(warningLabel, gridBagConstraints);
+ warningLabel.setMaximumSize(new java.awt.Dimension(32767, 32767));
+ translationBar.add(warningLabel, java.awt.BorderLayout.CENTER);
- add(jPanel1, java.awt.BorderLayout.NORTH);
+ add(translationBar, java.awt.BorderLayout.NORTH);
}// //GEN-END:initComponents
private void translateComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_translateComboBoxActionPerformed
@@ -211,8 +214,8 @@ final class TranslatablePanel extends JPanel {
}//GEN-LAST:event_translateComboBoxActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
- private javax.swing.JPanel jPanel1;
private javax.swing.JComboBox translateComboBox;
+ private javax.swing.JPanel translationBar;
private javax.swing.JLabel warningLabel;
// End of variables declaration//GEN-END:variables
}
\ No newline at end of file