From 8885a7b0adffd8c57877859d32691d89cb71fa3d Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 13 Jun 2014 12:27:46 -0400 Subject: [PATCH 01/11] Removed unused strings from bundle. Extracted newly added strings to bundle. Tagged some strings with NON-NLS. --- .../autopsy/externalresults/Bundle.properties | 37 ++++++++++---- .../externalresults/Bundle_ja.properties | 0 .../externalresults/ExternalResults.java | 29 +++++++---- .../ExternalResultsImporter.java | 41 ++++++++++----- .../ExternalResultsXMLParser.java | 51 +++++++++++-------- 5 files changed, 104 insertions(+), 54 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/externalresults/Bundle_ja.properties diff --git a/Core/src/org/sleuthkit/autopsy/externalresults/Bundle.properties b/Core/src/org/sleuthkit/autopsy/externalresults/Bundle.properties index 3a33f900fe..94ded0f3d5 100644 --- a/Core/src/org/sleuthkit/autopsy/externalresults/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/externalresults/Bundle.properties @@ -1,10 +1,27 @@ -# To change this template, choose Tools | Templates -# and open the template in the editor. - -ExternalResultsIngestModule.moduleName.text=External Results Importer -ExternalResultsIngestModule.properties.text=ExternalResultsImporter -ExternalResultsIngestModule.moduleDesc.text=Parse command line tool output to create blackboard entries and add files to the database. -ExternalResultsIngestModule.startUp.exception.importdir=Import directory does not exist and was not able to be created. -ExternalResultsIngestModule.process.exception.datasourcepath=Error getting the data source path. -ExternalResultsIngestModule.process.exception.run=Error running the external command: -ExternalResultsIngestModule.process.shutdown.finished=Finished \ No newline at end of file +ExternalResultsImporter.importDerivedFiles.errMsg1.text=Could not import derived file at {0}, parent file {1} not found. +ExternalResultsImporter.importDerivedFiles.errMsg2.text=Could not import derived file at {0}, file does not exist. +ExternalResultsImporter.importDerivedFiles.errMsg3.text=Could not import derived file at {0}, error querying/updating case database. +ExternalResultsImporter.importArtifacts.caseErrMsg1.text=Could not import {0} attribute, value \= {1}, for {2} artifact from {3}, unrecognized attribute value type\: {4}. +ExternalResultsImporter.importArtifacts.errMsg1.text=Could not import {0} artifact from {1}, source file not found. +ExternalResultsImporter.importArtifacts.errMsg2.text=Could not import {0} artifact from {1}, error updating case database. +ExternalResultsImporter.importReports.errMsg1.text=Could not import report at {0}, file does not exist. +ExternalResultsImporter.importReports.errMsg2.text=Could not import report at {0}, error updating case database. +ExternalResultsImporter.findFileInCaseDatabase.errMsg1.text=Parent file path {0} is ambiguous, using first file found. +ExternalResultsImporter.getPathRelativeToCaseFolder.errMsg1.text=Did not convert {0} to relative path, not in a subdirectory of case directory {1}. +ExternalResultsImporter.getPathRelativeToCaseFolder.errMsg2.text=Expected {0} to be an absolute path to a file in a subdirectory of case directory {1}. +ExternalResultsXMLParser.parse.errMsg1.text=Did not find {0} root element of {1}. +ExternalResultsXMLParser.parse.errMsg2.text=Error parsing {0}. +ExternalResultsXMLParser.parseArtifactAttributes.errMsg1.text=Found {0} element that has no content in {1}. +ExternalResultsXMLParser.parseAttributeValueType.errMsg1.text=Found unrecognized value {0} for {1} attribute of {2} element. +ExternalResultsXMLParser.getChildElementContent.errMsg1.text=Found {0} element with {1} child element that has no content in {2}. +ExternalResultsXMLParser.getChildElementContent.errMsg2.text=Found {0} element missing {1} child element in {2}. +ExternalResultsXMLParser.getChildElement.errMsg1.text=Found multiple {0} child elements for {1} element in {2}, ignoring all but first occurrence. +ExternalResults.addArtifact.exception.msg1.text=type argument is empty. +ExternalResults.addArtifact.exception.msg2.text=source argument is empty. +ExternalResults.addReport.exception.msg1.text=localPath argument is empty. +ExternalResults.addReport.exception.msg2.text=sourceModuleName argument is empty. +ExternalResults.addDerivedFile.exception.msg1.text=localPath argument is empty. +ExternalResults.addDerivedFile.exception.msg2.text=parentPath argument is empty. +ExternalResults.Artifact.addAttribute.exception.msg1.text=type argument is empty. +ExternalResults.Artifact.addAttribute.exception.msg2.text=value argument is empty. +ExternalResults.Artifact.addAttribute.exception.msg3.text=valueType argument is empty. \ No newline at end of file diff --git a/Core/src/org/sleuthkit/autopsy/externalresults/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/externalresults/Bundle_ja.properties new file mode 100644 index 0000000000..e69de29bb2 diff --git a/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResults.java b/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResults.java index 06afcabe14..1553de721f 100644 --- a/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResults.java +++ b/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResults.java @@ -21,6 +21,8 @@ package org.sleuthkit.autopsy.externalresults; import java.util.ArrayList; import java.util.Collections; import java.util.List; + +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.Content; /** @@ -43,10 +45,12 @@ final public class ExternalResults { Artifact addArtifact(String type, String sourceFilePath) { if (type.isEmpty()) { - throw new IllegalArgumentException("type argument is empty"); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "ExternalResults.addArtifact.exception.msg1.text")); } if (sourceFilePath.isEmpty()) { - throw new IllegalArgumentException("source argument is empty"); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "ExternalResults.addArtifact.exception.msg2.text")); } Artifact artifact = new Artifact(type, sourceFilePath); artifacts.add(artifact); @@ -59,10 +63,12 @@ final public class ExternalResults { void addReport(String localPath, String sourceModuleName, String reportName) { if (localPath.isEmpty()) { - throw new IllegalArgumentException("localPath argument is empty"); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "ExternalResults.addReport.exception.msg1.text")); } if (sourceModuleName.isEmpty()) { - throw new IllegalArgumentException("sourceModuleName argument is empty"); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "ExternalResults.addReport.exception.msg2.text")); } Report report = new Report(localPath, sourceModuleName, reportName); reports.add(report); @@ -74,10 +80,12 @@ final public class ExternalResults { void addDerivedFile(String localPath, String parentPath) { if (localPath.isEmpty()) { - throw new IllegalArgumentException("localPath argument is empty"); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "ExternalResults.addDerivedFile.exception.msg1.text")); } if (parentPath.isEmpty()) { - throw new IllegalArgumentException("parentPath argument is empty"); + throw new IllegalArgumentException( + NbBundle.getMessage(this.getClass(), "ExternalResults.addDerivedFile.exception.msg2.text")); } DerivedFile file = new DerivedFile(localPath, parentPath); derivedFiles.add(file); @@ -108,13 +116,16 @@ final public class ExternalResults { void addAttribute(String type, String value, String valueType, String sourceModule) { if (type.isEmpty()) { - throw new IllegalArgumentException("type argument is empty"); + throw new IllegalArgumentException(NbBundle.getMessage(this.getClass(), + "ExternalResults.Artifact.addAttribute.exception.msg1.text")); } if (value.isEmpty()) { - throw new IllegalArgumentException("value argument is empty"); + throw new IllegalArgumentException(NbBundle.getMessage(this.getClass(), + "ExternalResults.Artifact.addAttribute.exception.msg2.text")); } if (valueType.isEmpty()) { - throw new IllegalArgumentException("value type argument is empty"); + throw new IllegalArgumentException(NbBundle.getMessage(this.getClass(), + "ExternalResults.Artifact.addAttribute.exception.msg3.text")); } attributes.add(new ArtifactAttribute(type, value, valueType, sourceModule)); } diff --git a/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResultsImporter.java b/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResultsImporter.java index 67cc2bb804..e64d00556b 100644 --- a/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResultsImporter.java +++ b/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResultsImporter.java @@ -26,6 +26,8 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.logging.Level; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.services.FileManager; import org.sleuthkit.autopsy.coreutils.ErrorInfo; @@ -95,18 +97,24 @@ public final class ExternalResultsImporter { "", "", "", ""); // Not currently providing derivation info for derived files from external processes. IngestServices.getInstance().fireModuleContentEvent(new ModuleContentEvent(derivedFile)); } else { - String errorMessage = String.format("Could not import derived file at %s, parent file %s not found", localPath, parentFilePath); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsImporter.importDerivedFiles.errMsg1.text", + localPath, parentFilePath); ExternalResultsImporter.logger.log(Level.SEVERE, errorMessage); this.errors.add(new ErrorInfo(ExternalResultsImporter.class.getName(), errorMessage)); } } } else { - String errorMessage = String.format("Could not import derived file at %s, file does not exist", localPath); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsImporter.importDerivedFiles.errMsg2.text", + localPath); ExternalResultsImporter.logger.log(Level.SEVERE, errorMessage); this.errors.add(new ErrorInfo(ExternalResultsImporter.class.getName(), errorMessage)); } } catch (TskCoreException ex) { - String errorMessage = String.format("Could not import derived file at %s, error querying/updating case database", localPath); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsImporter.importDerivedFiles.errMsg3.text", + localPath); ExternalResultsImporter.logger.log(Level.SEVERE, errorMessage, ex); this.errors.add(new ErrorInfo(ExternalResultsImporter.class.getName(), errorMessage, ex)); } @@ -150,7 +158,8 @@ public final class ExternalResultsImporter { attributes.add(new BlackboardAttribute(attributeTypeId, attributeData.getSourceModule(), doubleValue)); break; default: - String errorMessage = String.format("Could not import %s attribute, value = %s, for %s artifact from %s, unrecognized attribute value type: %s", + String errorMessage = String.format(NbBundle.getMessage(this.getClass(), + "ExternalResultsImporter.importArtifacts.caseErrMsg1.text"), attributeData.getType(), attributeData.getValue(), artifactData.getType(), artifactData.getSourceFilePath(), attributeData.getValueType()); @@ -165,12 +174,16 @@ public final class ExternalResultsImporter { IngestServices.getInstance().fireModuleDataEvent(new ModuleDataEvent(this.getClass().getSimpleName(), BlackboardArtifact.ARTIFACT_TYPE.fromID(artifactTypeId))); } } else { - String errorMessage = String.format("Could not import %s artifact from %s, source file not found", artifactData.getType(), artifactData.getSourceFilePath()); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsImporter.importArtifacts.errMsg1.text", + artifactData.getType(), artifactData.getSourceFilePath()); ExternalResultsImporter.logger.log(Level.SEVERE, errorMessage); this.errors.add(new ErrorInfo(ExternalResultsImporter.class.getName(), errorMessage)); } } catch (TskCoreException ex) { - String errorMessage = String.format("Could not import %s artifact from %s, error updating case database", artifactData.getType(), artifactData.getSourceFilePath()); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsImporter.importArtifacts.errMsg2.text", + artifactData.getType(), artifactData.getSourceFilePath()); ExternalResultsImporter.logger.log(Level.SEVERE, errorMessage, ex); this.errors.add(new ErrorInfo(ExternalResultsImporter.class.getName(), errorMessage, ex)); } @@ -185,12 +198,12 @@ public final class ExternalResultsImporter { if (reportFile.exists()) { Case.getCurrentCase().addReport(reportPath, report.getSourceModuleName(), report.getReportName()); } else { - String errorMessage = String.format("Could not import report at %s, file does not exist", reportPath); + String errorMessage = NbBundle.getMessage(this.getClass(), "ExternalResultsImporter.importReports.errMsg1.text", reportPath); ExternalResultsImporter.logger.log(Level.SEVERE, errorMessage); this.errors.add(new ErrorInfo(ExternalResultsImporter.class.getName(), errorMessage)); } } catch (TskCoreException ex) { - String errorMessage = String.format("Could not import report at %s, error updating case database", reportPath); + String errorMessage = NbBundle.getMessage(this.getClass(), "ExternalResultsImporter.importReports.errMsg2.text", reportPath); ExternalResultsImporter.logger.log(Level.SEVERE, errorMessage, ex); this.errors.add(new ErrorInfo(ExternalResultsImporter.class.getName(), errorMessage, ex)); } @@ -213,7 +226,7 @@ public final class ExternalResultsImporter { if (!files.isEmpty()) { file = files.get(0); if (files.size() > 1) { - String errorMessage = String.format("Parent file path %s is ambiguous, using first file found", filePath); + String errorMessage = NbBundle.getMessage(this.getClass(), "ExternalResultsImporter.findFileInCaseDatabase.errMsg1.text", filePath); this.recordError(errorMessage); } } @@ -230,13 +243,15 @@ public final class ExternalResultsImporter { Path pathRelative = pathBase.relativize(path); relativePath = pathRelative.toString(); } catch (IllegalArgumentException ex) { - String errorMessage = String.format("Did not convert %s to relative path, not in a subdirectory of case directory %s", - localPath, caseDirectoryPath); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsImporter.getPathRelativeToCaseFolder.errMsg1.text", + localPath, caseDirectoryPath); this.recordError(errorMessage, ex); } } else { - String errorMessage = String.format("Expected %s to be an absolute path to a file in a subdirectory of case directory %s", - localPath, caseDirectoryPath); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsImporter.getPathRelativeToCaseFolder.errMsg2.text", + localPath, caseDirectoryPath); this.recordError(errorMessage); } return relativePath; diff --git a/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResultsXMLParser.java b/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResultsXMLParser.java index 0465cf9404..daf00a7913 100644 --- a/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResultsXMLParser.java +++ b/Core/src/org/sleuthkit/autopsy/externalresults/ExternalResultsXMLParser.java @@ -22,6 +22,8 @@ import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.ErrorInfo; import org.sleuthkit.autopsy.coreutils.XMLUtil; import org.sleuthkit.datamodel.Content; @@ -115,7 +117,7 @@ public final class ExternalResultsXMLParser implements ExternalResultsParser { /** * Constructor. * - * @param importFilePath Full path of the results file to be parsed. + * @param resultsFilePath Full path of the results file to be parsed. */ public ExternalResultsXMLParser(Content dataSource, String resultsFilePath) { this.dataSource = dataSource; @@ -140,12 +142,14 @@ public final class ExternalResultsXMLParser implements ExternalResultsParser { parseArtifacts(rootElem); parseReports(rootElem); } else { - String errorMessage = String.format("Did not find %s root element of %s", TagNames.ROOT_ELEM.toString(), this.resultsFilePath); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsXMLParser.parse.errMsg1.text", + TagNames.ROOT_ELEM.toString(), this.resultsFilePath); recordError(errorMessage); } } } catch (Exception ex) { - String errorMessage = String.format("Error parsing %s", this.resultsFilePath); + String errorMessage = NbBundle.getMessage(this.getClass(), "ExternalResultsXMLParser.parse.errMsg2.text", this.resultsFilePath); recordError(errorMessage, ex); } return this.resultsData; @@ -220,8 +224,9 @@ public final class ExternalResultsXMLParser implements ExternalResultsParser { } final String value = valueElem.getTextContent(); if (value.isEmpty()) { - String errorMessage = String.format("Found %s element that has no content in %s", - TagNames.VALUE_ELEM.toString(), this.resultsFilePath); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsXMLParser.parseArtifactAttributes.errMsg1.text", + TagNames.VALUE_ELEM.toString(), this.resultsFilePath); recordError(errorMessage); continue; } @@ -246,10 +251,11 @@ public final class ExternalResultsXMLParser implements ExternalResultsParser { && !valueType.equals(AttributeValues.VALUE_TYPE_DOUBLE.toString()) && !valueType.equals(AttributeValues.VALUE_TYPE_INT32.toString()) && !valueType.equals(AttributeValues.VALUE_TYPE_INT64.toString())) { - String errorMessage = String.format("Found unrecognized value %s for %s attribute of %s element", - valueType, - AttributeNames.TYPE_ATTR.toString(), - TagNames.VALUE_ELEM.toString()); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsXMLParser.parseAttributeValueType.errMsg1.text", + valueType, + AttributeNames.TYPE_ATTR.toString(), + TagNames.VALUE_ELEM.toString()); this.recordError(errorMessage); valueType = ""; } @@ -285,7 +291,7 @@ public final class ExternalResultsXMLParser implements ExternalResultsParser { private String getElementAttributeValue(Element element, String attributeName) { final String attributeValue = element.getAttribute(attributeName); if (attributeValue.isEmpty()) { - logger.log(Level.SEVERE, "Found {0} element missing {1} attribute in {2}", new Object[]{ + logger.log(Level.SEVERE, "Found {0} element missing {1} attribute in {2}", new Object[]{ //NON-NLS element.getTagName(), attributeName, this.resultsFilePath}); @@ -299,17 +305,18 @@ public final class ExternalResultsXMLParser implements ExternalResultsParser { if (childElement != null) { content = childElement.getTextContent(); if (content.isEmpty()) { - String errorMessage = String.format("Found %s element with %s child element that has no content in %s", - parentElement.getTagName(), - childElementTagName, - this.resultsFilePath); + String errorMessage = NbBundle.getMessage(this.getClass(), + "ExternalResultsXMLParser.getChildElementContent.errMsg1.text", + parentElement.getTagName(), + childElementTagName, + this.resultsFilePath); this.recordError(errorMessage); } } else if (required) { - String errorMessage = String.format("Found %s element missing %s child element in %s", - parentElement.getTagName(), - childElementTagName, - this.resultsFilePath); + String errorMessage = NbBundle.getMessage(this.getClass(), "ExternalResultsXMLParser.getChildElementContent.errMsg2.text", + parentElement.getTagName(), + childElementTagName, + this.resultsFilePath); this.recordError(errorMessage); } return content; @@ -321,10 +328,10 @@ public final class ExternalResultsXMLParser implements ExternalResultsParser { if (childNodes.getLength() > 0) { childElem = (Element) childNodes.item(0); if (childNodes.getLength() > 1) { - String errorMessage = String.format("Found multiple %s child elements for %s element in %s, ignoring all but first occurrence", - childElementTagName, - parentElement.getTagName(), - this.resultsFilePath); + String errorMessage = NbBundle.getMessage(this.getClass(), "ExternalResultsXMLParser.getChildElement.errMsg1.text", + childElementTagName, + parentElement.getTagName(), + this.resultsFilePath); this.recordError(errorMessage); } } From d7531722fa6b16d64b3905cd9c3ccd20625e778f Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 13 Jun 2014 12:48:33 -0400 Subject: [PATCH 02/11] Extracted newly added strings to bundle. Tagged some strings with NON-NLS. --- .../autopsy/ingest/Bundle.properties | 6 +++++ .../autopsy/ingest/IngestMessagePanel.java | 6 ++--- .../ingest/IngestModuleFactoryLoader.java | 22 +++++++++---------- .../ingest/IngestProgressSnapshotPanel.java | 14 +++++++++++- 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties b/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties index 9238a9f40a..bc7c8f2783 100755 --- a/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/ingest/Bundle.properties @@ -71,3 +71,9 @@ IngestJobConfigurationPanel.descriptionLabel.text= IngestProgressSnapshotDialog.title.text=Ingest Task Progress Snapshots IngestProgressSnapshotPanel.refreshButton.text=Refresh IngestProgressSnapshotPanel.closeButton.text=Close +IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.threadID=Thread ID +IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.dataSource=Data Source +IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.ingestModule=Ingest Module +IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.file=File +IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.startTime=Start Time +IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.elapsedTime=Elapsed Time (H\:M\:S) diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java index a452481e63..be24910cdd 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestMessagePanel.java @@ -63,8 +63,8 @@ class IngestMessagePanel extends JPanel implements TableModelListener { private MessageTableModel tableModel; private MessageTableRenderer renderer; private IngestMessageMainPanel mainPanel; - private static Font visitedFont = new Font("Arial", Font.PLAIN, 12); - private static Font notVisitedFont = new Font("Arial", Font.BOLD, 12); + private static Font visitedFont = new Font("Arial", Font.PLAIN, 12); //NON-NLS + private static Font notVisitedFont = new Font("Arial", Font.BOLD, 12); //NON-NLS private static Color ERROR_COLOR = new Color(255, 90, 90); private volatile int lastRowSelected = -1; private volatile long totalMessages = 0; @@ -132,7 +132,7 @@ class IngestMessagePanel extends JPanel implements TableModelListener { jScrollPane1.setPreferredSize(new java.awt.Dimension(32767, 32767)); messageTable.setBackground(new java.awt.Color(221, 221, 235)); - messageTable.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N + messageTable.setFont(new java.awt.Font("Arial", 0, 12)); // NOI18N NON-NLS messageTable.setModel(tableModel); messageTable.setAutoResizeMode(javax.swing.JTable.AUTO_RESIZE_OFF); messageTable.setAutoscrolls(false); diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestModuleFactoryLoader.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestModuleFactoryLoader.java index 8e331598cb..55061fbe65 100644 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestModuleFactoryLoader.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestModuleFactoryLoader.java @@ -67,21 +67,21 @@ final class IngestModuleFactoryLoader { } // Kick out the sample module factories. - moduleFactoriesByClass.remove("org.sleuthkit.autopsy.examples.SampleIngestModuleFactory"); - moduleFactoriesByClass.remove("org.sleuthkit.autopsy.examples.SampleExecutableIngestModuleFactory"); + moduleFactoriesByClass.remove("org.sleuthkit.autopsy.examples.SampleIngestModuleFactory"); //NON-NLS + moduleFactoriesByClass.remove("org.sleuthkit.autopsy.examples.SampleExecutableIngestModuleFactory"); //NON-NLS // Do the core ingest module ordering hack described above. ArrayList coreModuleOrdering = new ArrayList() { { - add("org.sleuthkit.autopsy.recentactivity.RecentActivityExtracterModuleFactory"); - add("org.sleuthkit.autopsy.ewfverify.EwfVerifierModuleFactory"); - add("org.sleuthkit.autopsy.hashdatabase.HashLookupModuleFactory"); - add("org.sleuthkit.autopsy.modules.filetypeid.FileTypeIdModuleFactory"); - add("org.sleuthkit.autopsy.modules.sevenzip.ArchiveFileExtractorModuleFactory"); - add("org.sleuthkit.autopsy.modules.exif.ExifParserModuleFactory"); - add("org.sleuthkit.autopsy.keywordsearch.KeywordSearchModuleFactory"); - add("org.sleuthkit.autopsy.thunderbirdparser.EmailParserModuleFactory"); - add("org.sleuthkit.autopsy.modules.fileextmismatch.FileExtMismatchDetectorModuleFactory"); + add("org.sleuthkit.autopsy.recentactivity.RecentActivityExtracterModuleFactory"); //NON-NLS + add("org.sleuthkit.autopsy.ewfverify.EwfVerifierModuleFactory"); //NON-NLS + add("org.sleuthkit.autopsy.hashdatabase.HashLookupModuleFactory"); //NON-NLS + add("org.sleuthkit.autopsy.modules.filetypeid.FileTypeIdModuleFactory"); //NON-NLS + add("org.sleuthkit.autopsy.modules.sevenzip.ArchiveFileExtractorModuleFactory"); //NON-NLS + add("org.sleuthkit.autopsy.modules.exif.ExifParserModuleFactory"); //NON-NLS + add("org.sleuthkit.autopsy.keywordsearch.KeywordSearchModuleFactory"); //NON-NLS + add("org.sleuthkit.autopsy.thunderbirdparser.EmailParserModuleFactory"); //NON-NLS + add("org.sleuthkit.autopsy.modules.fileextmismatch.FileExtMismatchDetectorModuleFactory"); //NON-NLS } }; List orderedModuleFactories = new ArrayList<>(); diff --git a/Core/src/org/sleuthkit/autopsy/ingest/IngestProgressSnapshotPanel.java b/Core/src/org/sleuthkit/autopsy/ingest/IngestProgressSnapshotPanel.java index adea6c681f..0ea37f4679 100755 --- a/Core/src/org/sleuthkit/autopsy/ingest/IngestProgressSnapshotPanel.java +++ b/Core/src/org/sleuthkit/autopsy/ingest/IngestProgressSnapshotPanel.java @@ -26,6 +26,7 @@ import javax.swing.JDialog; import javax.swing.table.AbstractTableModel; import javax.swing.table.TableColumn; import org.apache.commons.lang3.time.DurationFormatUtils; +import org.openide.util.NbBundle; import org.sleuthkit.datamodel.AbstractFile; public class IngestProgressSnapshotPanel extends javax.swing.JPanel { @@ -79,7 +80,18 @@ public class IngestProgressSnapshotPanel extends javax.swing.JPanel { private class SnapshotsTableModel extends AbstractTableModel { - private final String[] columnNames = {"Thread ID", "Data Source", "Ingest Module", "File", "Start Time", "Elapsed Time (H:M:S)"}; + private final String[] columnNames = {NbBundle.getMessage(this.getClass(), + "IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.threadID"), + NbBundle.getMessage(this.getClass(), + "IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.dataSource"), + NbBundle.getMessage(this.getClass(), + "IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.ingestModule"), + NbBundle.getMessage(this.getClass(), + "IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.file"), + NbBundle.getMessage(this.getClass(), + "IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.startTime"), + NbBundle.getMessage(this.getClass(), + "IngestProgressSnapshotPanel.SnapshotsTableModel.colNames.elapsedTime")}; private List snapshots; private SnapshotsTableModel() { From 97ba007fbbbfb882952efcd12833d88f32815f6a Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 13 Jun 2014 13:45:06 -0400 Subject: [PATCH 03/11] Extracted newly added string to bundle. Fixed spelling. --- .../org/sleuthkit/autopsy/recentactivity/Bundle.properties | 1 + .../sleuthkit/autopsy/recentactivity/Bundle_ja.properties | 6 +++--- .../sleuthkit/autopsy/recentactivity/UsbDeviceIdMapper.java | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties index 7f13f9a286..c42c3ef9dc 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle.properties @@ -97,3 +97,4 @@ SearchEngineURLQueryAnalyzer.toString=Name\: {0}\ SearchEngineURLQueryAnalyzer.parentModuleName.noSpace=RecentActivity SearchEngineURLQueryAnalyzer.parentModuleName=Recent Activity SearchEngineURLQueryAnalyzer.init.exception.msg=Unable to find {0} +UsbDeviceIdMapper.parseAndLookup.text=Product\: {0} diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties index 7a0527b0fd..99a79ee3bb 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/Bundle_ja.properties @@ -27,10 +27,10 @@ ExtractIE.parentModuleName.noSpace=\u6700\u8fd1\u306e\u30a2\u30af\u30c6\u30a3\u3 ExtractIE.parentModuleName=\u6700\u8fd1\u306e\u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3 ExtractIE.getURLFromIEBmkFile.errMsg={0}\:Internet Explorer\u30d6\u30c3\u30af\u30de\u30fc\u30af\u30d5\u30a1\u30a4\u30eb{1}\u306e\u30d1\u30fc\u30b9\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f ExtractIE.getURLFromIEBmkFile.errMsg2={0}\:Internet Explorer\u30d6\u30c3\u30af\u30de\u30fc\u30af\u30d5\u30a1\u30a4\u30eb{1}\u306e\u30d1\u30fc\u30b9\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f -ExtractIE.getCookie.errMsg.errGettingFile={0}\:Internet Exploerer cookie\u30d5\u30a1\u30a4\u30eb\u306e\u53d6\u5f97\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 -ExtractIE.getCookie.errMsg.errReadingIECookie={0}\:Internet Exploerer cookie{1}\u306e\u8aad\u307f\u53d6\u308a\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 +ExtractIE.getCookie.errMsg.errGettingFile={0}\:Internet Explorer cookie\u30d5\u30a1\u30a4\u30eb\u306e\u53d6\u5f97\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 +ExtractIE.getCookie.errMsg.errReadingIECookie={0}\:Internet Explorer cookie{1}\u306e\u8aad\u307f\u53d6\u308a\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 ExtractIE.getHistory.errMsg.unableToGetHist={0}\:Internet Explorer\u5c65\u6b74\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff1apasco\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f -ExtractIE.getHistory.errMsg.errGettingHistFiles={0}\:Internet Exploerer\u5c65\u6b74\u30d5\u30a1\u30a4\u30eb\u306e\u53d6\u5f97\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 +ExtractIE.getHistory.errMsg.errGettingHistFiles={0}\:Internet Explorer\u5c65\u6b74\u30d5\u30a1\u30a4\u30eb\u306e\u53d6\u5f97\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 ExtractIE.getHistory.errMsg.noHistFiles=Internet Explorer\u5c65\u6b74\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 ExtractIE.getHistory.errMsg.errWriteFile={0}\:\u30d5\u30a1\u30a4\u30eb\:{1}\u306e\u66f8\u304d\u8fbc\u307f\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f ExtractIE.getHistory.errMsg.errProcHist={0}\: Internet Explorer\u5c65\u6b74\u306e\u51e6\u7406\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f\u3002 diff --git a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/UsbDeviceIdMapper.java b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/UsbDeviceIdMapper.java index 5cdc517fe0..b043ce54f8 100644 --- a/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/UsbDeviceIdMapper.java +++ b/RecentActivity/src/org/sleuthkit/autopsy/recentactivity/UsbDeviceIdMapper.java @@ -34,6 +34,8 @@ import java.util.HashMap; import java.util.Scanner; import java.util.logging.Level; import java.util.logging.Logger; + +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.coreutils.PlatformUtil; /** @@ -82,7 +84,8 @@ class UsbDeviceIdMapper { key = vID + "0000"; if (devices.containsKey(key)) { USBInfo info = devices.get(key); - return new USBInfo(info.getVendor(), "Product: " + pID); + return new USBInfo(info.getVendor(), + NbBundle.getMessage(this.getClass(), "UsbDeviceIdMapper.parseAndLookup.text", pID)); } return new USBInfo(null, null); From 65ed4cfc53629caa65e7b5e1fe008e7d85d503a1 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 13 Jun 2014 14:07:19 -0400 Subject: [PATCH 04/11] Extracted newly added string to bundle. Marked unused strings with NON-NLS. --- Core/src/org/sleuthkit/autopsy/report/Bundle.properties | 6 ++++++ Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java | 5 ++++- Core/src/org/sleuthkit/autopsy/report/ReportExcel.java | 3 ++- Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java | 4 ++-- Core/src/org/sleuthkit/autopsy/report/ReportHTML.java | 5 +++-- Core/src/org/sleuthkit/autopsy/report/ReportKML.java | 3 ++- 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/report/Bundle.properties b/Core/src/org/sleuthkit/autopsy/report/Bundle.properties index 61c0ad1fe5..596d7e46e1 100644 --- a/Core/src/org/sleuthkit/autopsy/report/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/report/Bundle.properties @@ -191,3 +191,9 @@ ReportWizardPanel1.finishButton.text=Finish ReportWizardPanel2.finishButton.text=Finish ReportWizardPanel2.nextButton.text=Next > ReportHTML.writeSum.noCaseNum=No case number +ReportBodyFile.generateReport.srcModuleName.text=TSK Body File +ReportExcel.endReport.srcModuleName.text=Excel Report +ReportHTML.writeIndex.srcModuleName.text=HTML Report +ReportKML.genReport.srcModuleName.text=KML Report +ReportGenerator.artTableColHdr.extension.text=Extension +ReportGenerator.artTableColHdr.mimeType.text=MIME Type diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java b/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java index 06578dc719..60abc397e6 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportBodyFile.java @@ -152,7 +152,10 @@ import org.sleuthkit.datamodel.*; if (out != null) { out.flush(); out.close(); - Case.getCurrentCase().addReport(reportPath, "TSK Body File", ""); + Case.getCurrentCase().addReport(reportPath, + NbBundle.getMessage(this.getClass(), + "ReportBodyFile.generateReport.srcModuleName.text"), ""); + } } catch (IOException ex) { logger.log(Level.WARNING, "Could not flush and close the BufferedWriter.", ex); //NON-NLS diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java b/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java index c504ef1646..e15688ac28 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportExcel.java @@ -112,7 +112,8 @@ import org.sleuthkit.datamodel.TskCoreException; try { out = new FileOutputStream(reportPath); wb.write(out); - Case.getCurrentCase().addReport(reportPath, "Excel Report", ""); + Case.getCurrentCase().addReport(reportPath, NbBundle.getMessage(this.getClass(), + "ReportExcel.endReport.srcModuleName.text"), ""); } catch (IOException ex) { logger.log(Level.SEVERE, "Failed to write Excel report.", ex); //NON-NLS } catch (TskCoreException ex) { diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java index 41a24e6294..678c7b871f 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportGenerator.java @@ -1318,8 +1318,8 @@ import org.sleuthkit.datamodel.TskData; case TSK_EXT_MISMATCH_DETECTED: columnHeaders = new ArrayList<>(Arrays.asList(new String[] { NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.file"), - "Extension", - "MIME Type", + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.extension.text"), + NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.mimeType.text"), NbBundle.getMessage(this.getClass(), "ReportGenerator.artTableColHdr.path")})); break; default: diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java index 9553b299e8..e456efd8af 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportHTML.java @@ -803,7 +803,7 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; */ private void writeIndex() { Writer indexOut = null; - String indexFilePath = path + "index.html"; + String indexFilePath = path + "index.html"; //NON-NLS try { indexOut = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(indexFilePath), "UTF-8")); //NON-NLS StringBuilder index = new StringBuilder(); @@ -821,7 +821,8 @@ import org.sleuthkit.datamodel.TskData.TSK_DB_FILES_TYPE_ENUM; index.append("\n"); //NON-NLS index.append(""); //NON-NLS indexOut.write(index.toString()); - Case.getCurrentCase().addReport(indexFilePath, "HTML Report", ""); + Case.getCurrentCase().addReport(indexFilePath, NbBundle.getMessage(this.getClass(), + "ReportHTML.writeIndex.srcModuleName.text"), ""); } catch (IOException ex) { logger.log(Level.SEVERE, "Error creating Writer for index.html: {0}", ex); //NON-NLS } catch (TskCoreException ex) { diff --git a/Core/src/org/sleuthkit/autopsy/report/ReportKML.java b/Core/src/org/sleuthkit/autopsy/report/ReportKML.java index 90b23fd442..5dc0fd2381 100644 --- a/Core/src/org/sleuthkit/autopsy/report/ReportKML.java +++ b/Core/src/org/sleuthkit/autopsy/report/ReportKML.java @@ -256,7 +256,8 @@ class ReportKML implements GeneralReportModule { FileOutputStream writer = new FileOutputStream(reportPath); outputter.output(kmlDocument, writer); writer.close(); - Case.getCurrentCase().addReport(reportPath, "KML Report", ""); + Case.getCurrentCase().addReport(reportPath, NbBundle.getMessage(this.getClass(), + "ReportKML.genReport.srcModuleName.text"), ""); } catch (IOException ex) { logger.log(Level.WARNING, "Could not write the KML file.", ex); //NON-NLS } catch (TskCoreException ex) { From 95f748afc9f4c84f0053aabaaf2e4c5701e820a0 Mon Sep 17 00:00:00 2001 From: jmillman Date: Fri, 13 Jun 2014 14:09:33 -0400 Subject: [PATCH 05/11] auto select single result and show it in the content viewer. Fails on directories with current and parent listings --- .../autopsy/corecomponents/DataResultPanel.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java index 0a897a61c2..109bf54588 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java @@ -22,6 +22,7 @@ import java.awt.Cursor; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; +import java.beans.PropertyVetoException; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; @@ -35,6 +36,7 @@ import org.openide.nodes.NodeEvent; import org.openide.nodes.NodeListener; import org.openide.nodes.NodeMemberEvent; import org.openide.nodes.NodeReorderEvent; +import org.openide.util.Exceptions; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; @@ -390,6 +392,13 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C if (selectedNode != null) { int childrenCount = selectedNode.getChildren().getNodesCount(); this.numberMatchLabel.setText(Integer.toString(childrenCount)); + if (childrenCount == 1) { + try { + explorerManager.setSelectedNodes(selectedNode.getChildren().getNodes()); + } catch (PropertyVetoException ex) { + Exceptions.printStackTrace(ex); + } + } } this.numberMatchLabel.setVisible(true); } From a0dccf2ced3d14c5e23b1a11e5c579b29e079536 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 13 Jun 2014 14:39:30 -0400 Subject: [PATCH 06/11] Changed the explicit font name declaration to only adjust the font size. Which should result is continued use of the system default font. Testing on this one class. Will adjust others if this solves the problem. --- .../org/sleuthkit/autopsy/casemodule/CueBannerPanel.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java index 8ba77d8690..6c2f9f08fb 100644 --- a/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/CueBannerPanel.java @@ -103,11 +103,13 @@ public class CueBannerPanel extends javax.swing.JPanel { } }); - createNewLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N NON-NLS +// createNewLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N NON-NLS createNewLabel.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.createNewLabel.text")); // NOI18N + createNewLabel.setFont(createNewLabel.getFont().deriveFont(13.0f)); - openRecentLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N NON-NLS +// openRecentLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N NON-NLS openRecentLabel.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.openRecentLabel.text")); // NOI18N + openRecentLabel.setFont(openRecentLabel.getFont().deriveFont(13.0f)); openCaseButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/casemodule/btn_icon_open_existing.png"))); // NOI18N NON-NLS openCaseButton.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.openCaseButton.text")); // NOI18N @@ -122,8 +124,9 @@ public class CueBannerPanel extends javax.swing.JPanel { } }); - openLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N NON-NLS +// openLabel.setFont(new java.awt.Font("Tahoma", 0, 13)); // NOI18N NON-NLS openLabel.setText(org.openide.util.NbBundle.getMessage(CueBannerPanel.class, "CueBannerPanel.openLabel.text")); // NOI18N + openLabel.setFont(openLabel.getFont().deriveFont(13.0f)); javax.swing.GroupLayout editorPanelLayout = new javax.swing.GroupLayout(editorPanel); editorPanel.setLayout(editorPanelLayout); From 27b06291d7b7c905f80289df801187f52914ef00 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 13 Jun 2014 15:50:40 -0400 Subject: [PATCH 07/11] Removed unused string from bundle. --- Core/src/org/sleuthkit/autopsy/modules/exif/Bundle.properties | 1 - Core/src/org/sleuthkit/autopsy/modules/exif/Bundle_ja.properties | 1 - 2 files changed, 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/modules/exif/Bundle.properties b/Core/src/org/sleuthkit/autopsy/modules/exif/Bundle.properties index 663a0631ec..656b70b559 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/exif/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/modules/exif/Bundle.properties @@ -5,5 +5,4 @@ OpenIDE-Module-Long-Description=\ OpenIDE-Module-Name=ExifParser OpenIDE-Module-Short-Description=Exif metadata ingest module ExifParserFileIngestModule.moduleName.text=Exif Parser -ExifParserFileIngestModule.getName.text=Exif Image Parser ExifParserFileIngestModule.getDesc.text=Ingests JPEG files and retrieves their EXIF metadata. diff --git a/Core/src/org/sleuthkit/autopsy/modules/exif/Bundle_ja.properties b/Core/src/org/sleuthkit/autopsy/modules/exif/Bundle_ja.properties index da648be524..f7df05c7bf 100644 --- a/Core/src/org/sleuthkit/autopsy/modules/exif/Bundle_ja.properties +++ b/Core/src/org/sleuthkit/autopsy/modules/exif/Bundle_ja.properties @@ -5,5 +5,4 @@ OpenIDE-Module-Long-Description=\ OpenIDE-Module-Name=Exif\u30D1\u30FC\u30B5 OpenIDE-Module-Short-Description=Exif\u30E1\u30BF\u30C7\u30FC\u30BF\u30A4\u30F3\u30B8\u30A7\u30B9\u30C8\u30E2\u30B8\u30E5\u30FC\u30EB ExifParserFileIngestModule.moduleName.text=Exif\u30D1\u30FC\u30B5 -ExifParserFileIngestModule.getName.text=Exif\u30A4\u30E1\u30FC\u30B8\u30D1\u30FC\u30B5 ExifParserFileIngestModule.getDesc.text=JPEG\u30D5\u30A1\u30A4\u30EB\u3092\u51E6\u7406\u3057\u3001\u305D\u308C\u3089\u306EEXIF\u30E1\u30BF\u30C7\u30FC\u30BF\u3092\u53D6\u5F97\u3057\u307E\u3059\u3002 \ No newline at end of file From 4d63859ac540bd71d8db8e3cd6e8592500e64de0 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 13 Jun 2014 15:55:49 -0400 Subject: [PATCH 08/11] Removed unused strings from bundle. --- .../src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties | 3 --- .../org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties | 3 --- 2 files changed, 6 deletions(-) diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index db5ea3f6cb..610f81257a 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -56,7 +56,6 @@ AbstractKeywordSearchPerformer.search.invalidSyntaxHeader=Invalid query syntax. AbstractKeywordSearchPerformer.search.searchIngestInProgressTitle=Keyword Search Ingest in Progress AbstractKeywordSearchPerformer.search.ingestInProgressBody=Keyword Search Ingest is currently running.
Not all files have been indexed and this search might yield incomplete results.
Do you want to proceed with this search anyway? AbstractKeywordSearchPerformer.search.emptyKeywordErrorBody=Keyword list is empty, please add at least one keyword to the list -AbstractKeywordSearchPerformer.search.pleaseEnterKeywordBody=Please enter a keyword to search for AbstractKeywordSearchPerformer.search.noFilesInIdxMsg=No files are in index yet.
Try again later. Index is updated every {0} minutes. AbstractKeywordSearchPerformer.search.noFilesIdxdMsg=No files were indexed.
Re-ingest the image with the Keyword Search Module enabled. ExtractedContentPanel.setMarkup.panelTxt=Loading text... Please wait @@ -195,7 +194,6 @@ KeywordSearchListsEncase.save2.exception.msg=Not supported yet. KeywordSearchListsEncase.encaseMetaType.exception.msg=Unsupported EncaseMetaType\: {0} KeywordSearchListsManagementPanel.getColName.text=Name KeywordSearchListsManagementPanel.setValueAt.exception.msg=Editing of cells is not supported -KeywordSearchListsViewerPanel.getQueryText.exception.msg=Not supported for multi-word queries. KeywordSearchOptionsPanelController.moduleErr=Module Error KeywordSearchOptionsPanelController.moduleErr.msg1=A module caused an error listening to KeywordSearchOptionsPanelController updates. See log to determine which module. Some data could be incomplete. KeywordSearchOptionsPanelController.moduleErr.msg2=A module caused an error listening to KeywordSearchOptionsPanelController updates. See log to determine which module. Some data could be incomplete. @@ -280,7 +278,6 @@ KeywordSearchListsAbstract.writeLists.errMsg2.msg=A module caused an error liste KeywordSearchListsAbstract.deleteList.errMsg1.msg=A module caused an error listening to KeywordSearchListsAbstract updates. See log to determine which module. Some data could be incomplete. KeywordSearchListsManagementPanel.newKeywordListDescription=Keyword List <{0}> already exists as a read-only list. Do you want to replace it for the duration of the program (the change will not be persistent). KeywordSearchListsManagementPanel.newKeywordListDescription2=Keyword List <{0}> already exists, do you want to replace it? -DropdownSearchPanelgetQueryList.exception.msg=No list for single-keyword search KeywordSearchModuleFactory.getIngestJobSettingsPanel.exception.msg=Expected settings argument to be instanceof KeywordSearchJobSettings KeywordSearchModuleFactory.createFileIngestModule.exception.msg=Expected settings argument to be instanceof KeywordSearchJobSettings SearchRunner.Searcher.done.err.msg=Error performing keyword search diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties index 9185aad303..b35952eb9c 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle_ja.properties @@ -44,7 +44,6 @@ AbstractKeywordSearchPerformer.search.invalidSyntaxHeader=\u30b7\u30f3\u30bf\u30 AbstractKeywordSearchPerformer.search.searchIngestInProgressTitle=\u30ad\u30fc\u30ef\u30fc\u30c9\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5316\u3092\u5b9f\u884c\u4e2d AbstractKeywordSearchPerformer.search.ingestInProgressBody=\u30ad\u30fc\u30ef\u30fc\u30c9\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5316\u3092\u5b9f\u884c\u4e2d
\u5168\u3066\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5316\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002\u691c\u7d22\u7d50\u679c\u304c\u4e0d\u5b8c\u5168\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002
\u3053\u306e\u691c\u7d22\u3092\u5b9f\u884c\u3057\u307e\u3059\u304b\uff1f AbstractKeywordSearchPerformer.search.emptyKeywordErrorBody=\u30ad\u30fc\u30ef\u30fc\u30c9\u30ea\u30b9\u30c8\u304c\u7a7a\u767d\u3067\u3059\u3002\u6700\u4f4e\uff11\u3064\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u8ffd\u52a0\u3057\u3066\u4e0b\u3055\u3044\u3002 -AbstractKeywordSearchPerformer.search.pleaseEnterKeywordBody=\u691c\u7d22\u3059\u308b\u30ad\u30fc\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u4e0b\u3055\u3044 AbstractKeywordSearchPerformer.search.noFilesInIdxMsg=\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306b\u307e\u3060\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\u3002
\u3057\u3070\u3089\u304f\u3057\u3066\u304b\u3089\u3001\u518d\u5ea6\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u306f\u3000{0}\u3000\u5206\u6bce\u66f4\u65b0\u3055\u308c\u307e\u3059\u3002 AbstractKeywordSearchPerformer.search.noFilesIdxdMsg=\u30a4\u30f3\u30c7\u30c3\u30af\u30b9\u5316\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u305b\u3093\u3002
\u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u6709\u52b9\u5316\u3057\u3066\u30a4\u30e1\u30fc\u30b8\u3092\u518d\u5ea6\u30a4\u30f3\u30b8\u30a7\u30b9\u30c8\u3002 ExtractedContentPanel.setMarkup.panelTxt=\u30c6\u30ad\u30b9\u30c8\u30ed\u30fc\u30c9\u4e2d\u3002\u3057\u3070\u3089\u304f\u304a\u5f85\u3061\u304f\u3060\u3055\u3044... @@ -177,7 +176,6 @@ KeywordSearchListsEncase.save2.exception.msg=\u307e\u3060\u30b5\u30dd\u30fc\u30c KeywordSearchListsEncase.encaseMetaType.exception.msg=\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u306a\u3044EncaseMetaType\uff1a{0} KeywordSearchListsManagementPanel.getColName.text=\u540d\u524d KeywordSearchListsManagementPanel.setValueAt.exception.msg=\u30bb\u30eb\u306e\u7de8\u96c6\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093 -KeywordSearchListsViewerPanel.getQueryText.exception.msg=\u30de\u30eb\u30c1\u30ef\u30fc\u30c9\u30af\u30a8\u30ea\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002 KeywordSearchOptionsPanelController.moduleErr=\u30e2\u30b8\u30e5\u30fc\u30eb\u30a8\u30e9\u30fc KeywordSearchOptionsPanelController.moduleErr.msg1=KeywordSearchOptionsPanelController\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u78ba\u8a8d\u4e2d\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u307e\u3057\u305f\u3002\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u30ed\u30b0\u3067\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u304c\u4e0d\u5b8c\u5168\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002 KeywordSearchOptionsPanelController.moduleErr.msg2=KeywordSearchOptionsPanelController\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u78ba\u8a8d\u4e2d\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u307e\u3057\u305f\u3002\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u30ed\u30b0\u3067\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u304c\u4e0d\u5b8c\u5168\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002 @@ -272,7 +270,6 @@ KeywordSearchListsAbstract.writeLists.errMsg1.msg=KeywordSearchListsAbstract\u30 KeywordSearchListsAbstract.writeLists.errMsg2.msg=KeywordSearchListsAbstract\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3092\u78ba\u8a8d\u4e2d\u306b\u30e2\u30b8\u30e5\u30fc\u30eb\u304c\u30a8\u30e9\u30fc\u3092\u8d77\u3053\u3057\u307e\u3057\u305f\u3002\u3069\u306e\u30e2\u30b8\u30e5\u30fc\u30eb\u304b\u30ed\u30b0\u3067\u78ba\u8a8d\u3057\u3066\u4e0b\u3055\u3044\u3002\u4e00\u90e8\u306e\u30c7\u30fc\u30bf\u304c\u4e0d\u5b8c\u5168\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002 KeywordSearchListsManagementPanel.newKeywordListDescription=\u30ad\u30fc\u30ef\u30fc\u30c9\u30ea\u30b9\u30c8<{0}>\u306f\u8aad\u307f\u53d6\u308a\u5c02\u7528\u30ea\u30b9\u30c8\u3068\u3057\u3066\u5b58\u5728\u3057\u307e\u3059\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u4f7f\u7528\u4e2d\u306e\u307f\u3053\u306e\u30ea\u30b9\u30c8\u3092\u7f6e\u304d\u63db\u3048\u307e\u3059\u304b\uff1f\uff08\u3053\u306e\u5909\u66f4\u306f\u7d99\u7d9a\u3055\u308c\u307e\u305b\u3093\uff09 KeywordSearchListsManagementPanel.newKeywordListDescription2=\u30ad\u30fc\u30ef\u30fc\u30c9\u30ea\u30b9\u30c8<{0}>\u306f\u65e2\u306b\u5b58\u5728\u3057\u307e\u3059\u3002\u7f6e\u304d\u63db\u3048\u307e\u3059\u304b\uff1f -DropdownSearchPanelgetQueryList.exception.msg=\u30b7\u30f3\u30b0\u30eb\u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22\u306e\u30ea\u30b9\u30c8\u306f\u5b58\u5728\u3057\u307e\u305b\u3093 KeywordSearchModuleFactory.createFileIngestModule.exception.msg=\u8a2d\u5b9a\u3092\u884c\u3046\u70ba\u306e\u60f3\u5b9a\u3055\u308c\u308b\u5f15\u6570\u306finstanceof KeywordSearchJobSettings KeywordSearchModuleFactory.getIngestJobSettingsPanel.exception.msg=\u8a2d\u5b9a\u3092\u884c\u3046\u70ba\u306e\u60f3\u5b9a\u3055\u308c\u308b\u5f15\u6570\u306finstanceof KeywordSearchJobSettings SearchRunner.Searcher.done.err.msg=\u30ad\u30fc\u30ef\u30fc\u30c9\u691c\u7d22\u3092\u5b9f\u884c\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u307e\u3057\u305f From 396f6b143c4bfee364978160616403a6c96682f7 Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Fri, 13 Jun 2014 15:58:23 -0400 Subject: [PATCH 09/11] Removed unused string from bundle. --- .../org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties | 1 - .../org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties | 1 - 2 files changed, 2 deletions(-) diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties index 655af1dbfc..82e9e87245 100644 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle.properties @@ -13,7 +13,6 @@ MboxParser.handleAttch.failedWriteToDisk=Failed to extract attachment to disk\: PstParser.parse.errMsg.failedToParseNMsgs=Failed to extract {0} email messages. PstParser.extractAttch.errMsg.failedToExtractToDisk=Failed to extract attachment to disk\: {0} ThunderbirdMboxFileIngestModule.moduleName=Email Parser -ThunderbirdMboxFileIngestModule.hashDbModuleName=Hash Lookup ThunderbirdMboxFileIngestModule.processPst.errMsg.outOfDiskSpace=Out of disk space. Can't copy {0} to parse. ThunderbirdMboxFileIngestModule.encryptionFileLevel=File-level Encryption ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg=Error while processing {0} diff --git a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties index d27134b30b..ab47acb465 100644 --- a/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties +++ b/thunderbirdparser/src/org/sleuthkit/autopsy/thunderbirdparser/Bundle_ja.properties @@ -12,7 +12,6 @@ MboxParser.handleAttch.failedWriteToDisk=\u30A2\u30BF\u30C3\u30C1\u30E1\u30F3\u3 PstParser.parse.errMsg.failedToParseNMsgs={0}\u500B\u306EE\u30E1\u30FC\u30EB\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u62BD\u51FA\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002 PstParser.extractAttch.errMsg.failedToExtractToDisk=\u30A2\u30BF\u30C3\u30C1\u30E1\u30F3\u30C8\u3092\u30C7\u30A3\u30B9\u30AF\: {0}\u3078\u62BD\u51FA\u3059\u308B\u306E\u306B\u5931\u6557\u3057\u307E\u3057\u305F ThunderbirdMboxFileIngestModule.moduleName=E\u30E1\u30FC\u30EB\u30D1\u30FC\u30B5 -ThunderbirdMboxFileIngestModule.hashDbModuleName=\u30CF\u30C3\u30B7\u30E5\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7 ThunderbirdMboxFileIngestModule.processPst.errMsg.outOfDiskSpace=\u30C7\u30A3\u30B9\u30AF\u9818\u57DF\u304C\u4E0D\u8DB3\u3057\u3066\u3044\u307E\u3059\u3002\u30D1\u30FC\u30B9\u3059\u308B\u70BA\u306B{0}\u3092\u30B3\u30D4\u30FC\u3067\u304D\u307E\u305B\u3093\u3002 ThunderbirdMboxFileIngestModule.encryptionFileLevel=\u30D5\u30A1\u30A4\u30EB\u30EC\u30D9\u30EB\u6697\u53F7\u5316 ThunderbirdMboxFileIngestModule.processPst.errProcFile.msg={0}\u306E\u51E6\u7406\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F From ee3ced6ba9e86857bebbe0604a210aa2bfc72d28 Mon Sep 17 00:00:00 2001 From: jmillman Date: Fri, 13 Jun 2014 16:25:30 -0400 Subject: [PATCH 10/11] defer selection to ensure the new node is set as rootcontext first --- .../corecomponents/DataResultPanel.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java index 109bf54588..46095fb18a 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java @@ -36,7 +36,6 @@ import org.openide.nodes.NodeEvent; import org.openide.nodes.NodeListener; import org.openide.nodes.NodeMemberEvent; import org.openide.nodes.NodeReorderEvent; -import org.openide.util.Exceptions; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; @@ -369,7 +368,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C } @Override - public void setNode(Node selectedNode) { + public void setNode(final Node selectedNode) { if (this.rootNode != null) { this.rootNode.removeNodeListener(dummyNodeListener); } @@ -392,12 +391,19 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C if (selectedNode != null) { int childrenCount = selectedNode.getChildren().getNodesCount(); this.numberMatchLabel.setText(Integer.toString(childrenCount)); + + //if there is only one child, select it to be displayed in the content viewer if (childrenCount == 1) { - try { - explorerManager.setSelectedNodes(selectedNode.getChildren().getNodes()); - } catch (PropertyVetoException ex) { - Exceptions.printStackTrace(ex); - } + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + try { + explorerManager.setSelectedNodes(selectedNode.getChildren().getNodes()); + } catch (PropertyVetoException ex) { + logger.log(Level.INFO, "node selection vetoed"); + } + } + }); } } this.numberMatchLabel.setVisible(true); From eaae876a950028896dc86fcc351368607cfa873f Mon Sep 17 00:00:00 2001 From: Richard Cordovano Date: Mon, 16 Jun 2014 14:29:54 -0400 Subject: [PATCH 11/11] Add suggested max file ingest threads message to Autopsy options panel --- .../sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java | 2 ++ Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java index a8393e42bf..d0b9d8b582 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java @@ -19,6 +19,7 @@ package org.sleuthkit.autopsy.corecomponents; import javax.swing.DefaultComboBoxModel; +import org.openide.util.NbBundle; import org.sleuthkit.autopsy.core.UserPreferences; /** @@ -29,6 +30,7 @@ final class AutopsyOptionsPanel extends javax.swing.JPanel { AutopsyOptionsPanel(AutopsyOptionsPanelController controller) { initComponents(); numberOfFileIngestThreadsComboBox.setModel(new DefaultComboBoxModel<>(new Integer[]{1, 2, 4, 8, 16})); + restartRequiredLabel.setText(NbBundle.getMessage(AutopsyOptionsPanel.class, "AutopsyOptionsPanel.restartRequiredLabel.text", Runtime.getRuntime().availableProcessors())); // TODO listen to changes in form fields and call controller.changed() } diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties index 191e21f78c..e9c7d0403f 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/Bundle.properties @@ -139,4 +139,4 @@ AutopsyOptionsPanel.keepCurrentViewerRB.toolTipText=For example, stay in Hex vie AutopsyOptionsPanel.keepCurrentViewerRB.text=Stay on the same file viewer AutopsyOptionsPanel.jLabel1.text=When selecting a file: AutopsyOptionsPanel.jLabel2.text=When displaying times: -AutopsyOptionsPanel.restartRequiredLabel.text=Restart required to take effect +AutopsyOptionsPanel.restartRequiredLabel.text=For this computer, a maximum of {0} file ingest threads should be used. Restart required to take effect.