From 0e367e7a1f44ad6be836cef7ded1e23cf0c83cc5 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Tue, 7 May 2019 10:28:12 -0400 Subject: [PATCH] 4989 options panel listens for changes in texttranslator panels --- .../TextTranslationService.java | 3 - .../texttranslation/TextTranslator.java | 2 +- .../texttranslation/ui/Bundle.properties | 13 +-- .../ui/Bundle.properties-MERGED | 2 +- .../ui/TranslationOptionsPanel.form | 22 ++-- .../ui/TranslationOptionsPanel.java | 105 ++++++++++-------- ...=> TranslationOptionsPanelController.java} | 18 +-- 7 files changed, 85 insertions(+), 80 deletions(-) rename Core/src/org/sleuthkit/autopsy/texttranslation/ui/{TranslationSettingsPanelController.java => TranslationOptionsPanelController.java} (87%) diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/TextTranslationService.java b/Core/src/org/sleuthkit/autopsy/texttranslation/TextTranslationService.java index 39fcdaaaa7..0f9bc51bf0 100755 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/TextTranslationService.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/TextTranslationService.java @@ -45,11 +45,8 @@ public final class TextTranslationService { } public void setSelectedTranslator(String translatorName) throws NoServiceProviderException { - System.out.println("Translator name: " + translatorName); for (TextTranslator translator : translators) { - System.out.println("Is it named: " + translator.getName()); if (translator.getName().equals(translatorName)) { - System.out.println("THEY ARE EQUAL"); selectedTranslator = translator; return; } diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/TextTranslator.java b/Core/src/org/sleuthkit/autopsy/texttranslation/TextTranslator.java index 0ba822e7dc..df6b049fa2 100755 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/TextTranslator.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/TextTranslator.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2018-2018 Basis Technology Corp. + * Copyright 2018-2019 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/Bundle.properties b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/Bundle.properties index b6f2674751..a840ff533c 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/Bundle.properties @@ -3,13 +3,6 @@ OptionsCategory_Keywords_Machine_Translation_Settings=Machine Translation Settin TranslationContentPanel.ShowLabel.text=Show: TranslationContentPanel.warningLabel2MB.text=Only the first 1MB of text will be displayed TranslationContentPanel.ocrLabel.text=OCR: -TranslationSettingsPanel.lbIpAddress.text=IP Address or Hostname of Machine Translation Service -TranslationSettingsPanel.tbIpAddress.text= -TranslationSettingsPanel.tbOops.text= -TranslationSettingsPanel.bnTest.text=Test -TranslationSettingsPanel.lbTestIpAddress.text= -TranslationSettingsPanel.IpAddress.toolTipText=IP Address or Hostname of Machine Translation Service -TranslationSettingsPanel.IpAddress.CannotConnect=Cannot connect to machine translation service. -TranslationSettingsPanelController.moduleErr=Module Error -TranslationSettingsPanelController.moduleErr.msg=A module caused an error listening to TranslationSettingsPanelController updates. See log to determine which module. Some data could be incomplete. -TranslationOptionsPanel.jLabel1.text=Translation Service: +TranslationOptionsPanel.translationServiceLabel.text=Translation Service: +TranslationOptionsPanelController.moduleErr=Module Error +TranslationOptionsPanelController.moduleErr.msg=A module caused an error listening to TranslationSettingsPanelController updates. See log to determine which module. Some data could be incomplete. diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/Bundle.properties-MERGED index 6872e398f8..1710ec98d6 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/Bundle.properties-MERGED @@ -27,4 +27,4 @@ TranslationSettingsPanel.IpAddress.toolTipText=IP Address or Hostname of Machine TranslationSettingsPanel.IpAddress.CannotConnect=Cannot connect to machine translation service. TranslationSettingsPanelController.moduleErr=Module Error TranslationSettingsPanelController.moduleErr.msg=A module caused an error listening to TranslationSettingsPanelController updates. See log to determine which module. Some data could be incomplete. -TranslationOptionsPanel.jLabel1.text=Translation Service: +TranslationOptionsPanel.translationServiceLabel.text=Translation Service: diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanel.form b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanel.form index c8d040942e..812831f9f7 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanel.form +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanel.form @@ -20,12 +20,12 @@ - + - + - + @@ -36,33 +36,33 @@ - - + + - + - + - + - + - + - + diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanel.java b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanel.java index f796749373..a7a0aa06d4 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanel.java @@ -1,66 +1,81 @@ /* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. + * Autopsy Forensic Browser + * + * Copyright 2019 Basis Technology Corp. + * Contact: carrier sleuthkit org + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ package org.sleuthkit.autopsy.texttranslation.ui; +import java.awt.Component; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; import javax.swing.JLabel; import org.sleuthkit.autopsy.texttranslation.NoServiceProviderException; import org.sleuthkit.autopsy.texttranslation.TextTranslationService; -/** - * - * @author wschaefer - */ public class TranslationOptionsPanel extends javax.swing.JPanel { private static final long serialVersionUID = 1L; - private final TranslationSettingsPanelController controller; + private final TranslationOptionsPanelController controller; + private String currentSelection = ""; /** * Creates new form TranslationOptionsPanel */ - public TranslationOptionsPanel(TranslationSettingsPanelController theController) { + public TranslationOptionsPanel(TranslationOptionsPanelController theController) { initComponents(); controller = theController; TextTranslationService.getInstance().getTranslators().forEach((translator) -> { - jComboBox1.addItem(translator.getName()); + translatorComboBox.addItem(translator.getName()); }); - jComboBox1.setEnabled(jComboBox1.getItemCount() > 0); + translatorComboBox.setEnabled(translatorComboBox.getItemCount() > 0); updatePanel(); } private void updatePanel() { - System.out.println("Update panel"); - jPanel1.removeAll(); - if (jComboBox1.getSelectedItem() != null) { + translationServicePanel.removeAll(); + String selectedItem = translatorComboBox.getSelectedItem().toString(); + if (translatorComboBox.getSelectedItem() != null && !currentSelection.equals(selectedItem)) { try { - System.out.println("Item Selected"); - TextTranslationService.getInstance().setSelectedTranslator(jComboBox1.getSelectedItem().toString()); - jPanel1.add(TextTranslationService.getInstance().getSelectedTranslator().getComponent()); + TextTranslationService.getInstance().setSelectedTranslator(translatorComboBox.getSelectedItem().toString()); + Component panel = TextTranslationService.getInstance().getSelectedTranslator().getComponent(); + panel.addPropertyChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + controller.changed(); + } + }); + translationServicePanel.add(panel); + currentSelection = selectedItem; } catch (NoServiceProviderException ex) { - System.out.println(ex.getMessage()); - jPanel1.add(new JLabel("No Text Translators available")); + translationServicePanel.add(new JLabel("No Text Translators available")); } } else { - jPanel1.add(new JLabel("No Translators selected")); + translationServicePanel.add(new JLabel("No Translators selected")); } - + revalidate(); + repaint(); } void load() { updatePanel(); - -// lbTestIpAddress.setIcon(null); -// tbOops.setText(""); -//// tbIpAddress.setText(getMachineTranslationIpAddress()); -// handleButtons(); controller.changed(); } void store() { -// setMachineTranslationIpAddress(tbIpAddress.getText()); + } /** @@ -72,19 +87,19 @@ public class TranslationOptionsPanel extends javax.swing.JPanel { // //GEN-BEGIN:initComponents private void initComponents() { - jComboBox1 = new javax.swing.JComboBox<>(); - jLabel1 = new javax.swing.JLabel(); - jPanel1 = new javax.swing.JPanel(); + translatorComboBox = new javax.swing.JComboBox<>(); + translationServiceLabel = new javax.swing.JLabel(); + translationServicePanel = new javax.swing.JPanel(); - jComboBox1.addActionListener(new java.awt.event.ActionListener() { + translatorComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - jComboBox1ActionPerformed(evt); + translatorComboBoxActionPerformed(evt); } }); - org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(TranslationOptionsPanel.class, "TranslationOptionsPanel.jLabel1.text")); // NOI18N + org.openide.awt.Mnemonics.setLocalizedText(translationServiceLabel, org.openide.util.NbBundle.getMessage(TranslationOptionsPanel.class, "TranslationOptionsPanel.translationServiceLabel.text")); // NOI18N - jPanel1.setLayout(new java.awt.BorderLayout()); + translationServicePanel.setLayout(new java.awt.BorderLayout()); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); @@ -94,11 +109,11 @@ public class TranslationOptionsPanel extends javax.swing.JPanel { .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel1) + .addComponent(translationServiceLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(translatorComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 205, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 152, Short.MAX_VALUE)) - .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(translationServicePanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); layout.setVerticalGroup( @@ -106,23 +121,23 @@ public class TranslationOptionsPanel extends javax.swing.JPanel { .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel1)) + .addComponent(translatorComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(translationServiceLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 222, Short.MAX_VALUE) + .addComponent(translationServicePanel, javax.swing.GroupLayout.DEFAULT_SIZE, 222, Short.MAX_VALUE) .addContainerGap()) ); }// //GEN-END:initComponents - private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed + private void translatorComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_translatorComboBoxActionPerformed updatePanel(); - }//GEN-LAST:event_jComboBox1ActionPerformed + }//GEN-LAST:event_translatorComboBoxActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JComboBox jComboBox1; - private javax.swing.JLabel jLabel1; - private javax.swing.JPanel jPanel1; + private javax.swing.JLabel translationServiceLabel; + private javax.swing.JPanel translationServicePanel; + private javax.swing.JComboBox translatorComboBox; // End of variables declaration//GEN-END:variables } diff --git a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationSettingsPanelController.java b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanelController.java similarity index 87% rename from Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationSettingsPanelController.java rename to Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanelController.java index 3b9ebe2848..32d5458428 100644 --- a/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationSettingsPanelController.java +++ b/Core/src/org/sleuthkit/autopsy/texttranslation/ui/TranslationOptionsPanelController.java @@ -34,12 +34,12 @@ import org.sleuthkit.autopsy.coreutils.Logger; position = 7, keywords = "#OptionsCategory_Keywords_Machine_Translation_Settings", keywordsCategory = "Machine Translation") -public class TranslationSettingsPanelController extends OptionsPanelController { +public class TranslationOptionsPanelController extends OptionsPanelController { - private TranslationOptionsPanel panel; + private static final Logger logger = Logger.getLogger(TranslationOptionsPanelController.class.getName()); private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); private boolean changed; - private static final Logger logger = Logger.getLogger(TranslationSettingsPanelController.class.getName()); + private TranslationOptionsPanel panel; @Override public void update() { @@ -109,10 +109,10 @@ public class TranslationSettingsPanelController extends OptionsPanelController { try { pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED, false, true); } catch (Exception e) { - logger.log(Level.SEVERE, "TranslationSettingsPanelController listener threw exception", e); //NON-NLS + logger.log(Level.SEVERE, "TranslationOptionsPanelController listener threw exception", e); //NON-NLS MessageNotifyUtil.Notify.show( - NbBundle.getMessage(this.getClass(), "TranslationSettingsPanelController.moduleErr"), - NbBundle.getMessage(this.getClass(), "TranslationSettingsPanelController.moduleErr.msg"), + NbBundle.getMessage(this.getClass(), "TranslationOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "TranslationOptionsPanelController.moduleErr.msg"), MessageNotifyUtil.MessageType.ERROR); } } @@ -120,10 +120,10 @@ public class TranslationSettingsPanelController extends OptionsPanelController { try { pcs.firePropertyChange(OptionsPanelController.PROP_VALID, null, null); } catch (Exception e) { - logger.log(Level.SEVERE, "TranslationSettingsPanelController listener threw exception", e); //NON-NLS + logger.log(Level.SEVERE, "TranslationOptionsPanelController listener threw exception", e); //NON-NLS MessageNotifyUtil.Notify.show( - NbBundle.getMessage(this.getClass(), "TranslationSettingsPanelController.moduleErr"), - NbBundle.getMessage(this.getClass(), "TranslationSettingsPanelController.moduleErr.msg"), + NbBundle.getMessage(this.getClass(), "TranslationOptionsPanelController.moduleErr"), + NbBundle.getMessage(this.getClass(), "TranslationOptionsPanelController.moduleErr.msg"), MessageNotifyUtil.MessageType.ERROR); } }