From 31dc94d794dc97cc48ea433090d359bab22345a4 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Fri, 1 Mar 2019 17:17:06 -0500 Subject: [PATCH 01/10] 4755 Add Shortcut for opening files in external viewer Ctrl+E --- .../DataResultTopComponent.java | 10 ++- .../directorytree/Bundle.properties-MERGED | 1 + .../directorytree/ExternalViewerAction.java | 63 ++++++++++--------- .../ExternalViewerShortcutAction.java | 57 +++++++++++++++++ .../timeline/TimeLineTopComponent.java | 6 +- 5 files changed, 103 insertions(+), 34 deletions(-) create mode 100644 Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java index 29e289d67e..250b76cac7 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultTopComponent.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2018 Basis Technology Corp. + * Copyright 2011-2019 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -38,6 +38,7 @@ import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; import org.sleuthkit.autopsy.corecomponentinterfaces.DataResult; import org.sleuthkit.autopsy.corecomponentinterfaces.DataResultViewer; import org.sleuthkit.autopsy.coreutils.Logger; +import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction; /** * A DataResultTopComponent object is a NetBeans top component that provides @@ -100,7 +101,7 @@ public final class DataResultTopComponent extends TopComponent implements DataRe DataResultTopComponent resultViewTopComponent = new DataResultTopComponent(false, title, null, Collections.emptyList(), DataContentTopComponent.findInstance()); initInstance(description, node, childNodeCount, resultViewTopComponent); return resultViewTopComponent; - } + } /** * Creates a result view top component that provides multiple views of the @@ -147,7 +148,7 @@ public final class DataResultTopComponent extends TopComponent implements DataRe DataResultTopComponent resultViewTopComponent = new DataResultTopComponent(false, title, null, Collections.emptyList(), DataContentTopComponent.findInstance()); return resultViewTopComponent; } - + /** * Initializes a partially initialized result view top component. * @@ -248,6 +249,9 @@ public final class DataResultTopComponent extends TopComponent implements DataRe setName(title); getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(AddBookmarkTagAction.BOOKMARK_SHORTCUT, "addBookmarkTag"); //NON-NLS getActionMap().put("addBookmarkTag", new AddBookmarkTagAction()); //NON-NLS + getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS + + getActionMap().put("useExternalViewer", new ExternalViewerShortcutAction()); //NON-NLS putClientProperty(TopComponent.PROP_CLOSING_DISABLED, isMain); putClientProperty(TopComponent.PROP_MAXIMIZATION_DISABLED, true); putClientProperty(TopComponent.PROP_DRAGGING_DISABLED, true); diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED index 0a0e8a7be2..18161f9d22 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED @@ -11,6 +11,7 @@ ExternalViewerAction.actionPerformed.failure.open.url=Cannot open URL ExternalViewerAction.actionPerformed.failure.permission.message=Permission to open the file was denied. ExternalViewerAction.actionPerformed.failure.support.message=This platform (operating system) does not support opening a file in an editor this way. ExternalViewerAction.actionPerformed.failure.title=Open File Failure +ExternalViewerShortcutAction.title.text=Open in External Viewer ExtractAction.noOpenCase.errMsg=No open case available. ExtractUnallocAction.imageError=Error extracting unallocated space from image ExtractUnallocAction.noFiles=No unallocated files found on volume diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerAction.java index 3451b073a3..cecd709b1a 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerAction.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerAction.java @@ -1,15 +1,15 @@ /* * Autopsy Forensic Browser - * + * * Copyright 2011-2018 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. @@ -35,6 +35,7 @@ import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.datamodel.ContentUtils; import org.sleuthkit.autopsy.datamodel.SlackFileNode; +import org.sleuthkit.datamodel.AbstractFile; /** * Extracts a File object to a temporary file in the case directory, and then @@ -44,18 +45,13 @@ import org.sleuthkit.autopsy.datamodel.SlackFileNode; public class ExternalViewerAction extends AbstractAction { private final static Logger logger = Logger.getLogger(ExternalViewerAction.class.getName()); - private final org.sleuthkit.datamodel.AbstractFile fileObject; + private final AbstractFile fileObject; private String fileObjectExt; final static String[] EXECUTABLE_EXT = {".exe", ".dll", ".com", ".bat", ".msi", ".reg", ".scr", ".cmd"}; //NON-NLS - /** - * - * @param title Name of the action - * @param fileNode File to display - */ - public ExternalViewerAction(String title, Node fileNode) { + ExternalViewerAction(String title, AbstractFile file, boolean isSlackFile) { super(title); - this.fileObject = fileNode.getLookup().lookup(org.sleuthkit.datamodel.AbstractFile.class); + this.fileObject = file; long size = fileObject.getSize(); String fileName = fileObject.getName(); @@ -79,11 +75,20 @@ public class ExternalViewerAction extends AbstractAction { // find an application for files without an extension // or if file is executable (for security reasons) // Also skip slack files since their extension is the original extension + "-slack" - if (!(size > 0) || extPos == -1 || isExecutable || (fileNode instanceof SlackFileNode)) { + if (!(size > 0) || extPos == -1 || isExecutable || isSlackFile) { this.setEnabled(false); } } + /** + * + * @param title Name of the action + * @param fileNode File to display + */ + public ExternalViewerAction(String title, Node fileNode) { + this(title, fileNode.getLookup().lookup(org.sleuthkit.datamodel.AbstractFile.class), fileNode instanceof SlackFileNode); + } + @Override public void actionPerformed(ActionEvent e) { // Get the temp folder path of the case @@ -152,8 +157,8 @@ public class ExternalViewerAction extends AbstractAction { try { String localpath = file.getPath(); if (localpath.toLowerCase().contains("http")) { - String url_path = file.getPath().replaceAll("\\\\","/"); - Desktop.getDesktop().browse(new URI(url_path.replaceFirst("/","//"))); + String url_path = file.getPath().replaceAll("\\\\", "/"); + Desktop.getDesktop().browse(new URI(url_path.replaceFirst("/", "//"))); } else { Desktop.getDesktop().open(file); } @@ -183,24 +188,24 @@ public class ExternalViewerAction extends AbstractAction { Bundle.ExternalViewerAction_actionPerformed_failure_title(), JOptionPane.ERROR_MESSAGE); } catch (URISyntaxException ex) { - logger.log(Level.WARNING, "Could not open URL provided: " + file.getPath(), ex); - JOptionPane.showMessageDialog(null, - Bundle.ExternalViewerAction_actionPerformed_failure_open_url(), - Bundle.ExternalViewerAction_actionPerformed_failure_title(), - JOptionPane.ERROR_MESSAGE); + logger.log(Level.WARNING, "Could not open URL provided: " + file.getPath(), ex); + JOptionPane.showMessageDialog(null, + Bundle.ExternalViewerAction_actionPerformed_failure_open_url(), + Bundle.ExternalViewerAction_actionPerformed_failure_title(), + JOptionPane.ERROR_MESSAGE); } } } /** * Opens a URL using the default desktop browser - * - * @param path URL to open + * + * @param path URL to open */ public static void openURL(String path) { - String url_path = path.replaceAll("\\\\","/"); + String url_path = path.replaceAll("\\\\", "/"); try { - Desktop.getDesktop().browse(new URI(url_path.replaceFirst("/","//"))); + Desktop.getDesktop().browse(new URI(url_path.replaceFirst("/", "//"))); } catch (IOException ex) { logger.log(Level.WARNING, "Could not find a viewer for the given URL: " + url_path, ex); //NON-NLS JOptionPane.showMessageDialog(null, @@ -226,11 +231,11 @@ public class ExternalViewerAction extends AbstractAction { Bundle.ExternalViewerAction_actionPerformed_failure_title(), JOptionPane.ERROR_MESSAGE); } catch (URISyntaxException ex) { - logger.log(Level.WARNING, "Could not open URL provided: " + url_path, ex); - JOptionPane.showMessageDialog(null, - Bundle.ExternalViewerAction_actionPerformed_failure_open_url(), - Bundle.ExternalViewerAction_actionPerformed_failure_title(), - JOptionPane.ERROR_MESSAGE); + logger.log(Level.WARNING, "Could not open URL provided: " + url_path, ex); + JOptionPane.showMessageDialog(null, + Bundle.ExternalViewerAction_actionPerformed_failure_open_url(), + Bundle.ExternalViewerAction_actionPerformed_failure_title(), + JOptionPane.ERROR_MESSAGE); } } } diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java new file mode 100644 index 0000000000..77b7be9025 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java @@ -0,0 +1,57 @@ +/* + * Autopsy Forensic Browser + * + * Copyright 2011-2018 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.directorytree; + +import java.awt.event.ActionEvent; +import java.awt.event.InputEvent; +import java.awt.event.KeyEvent; +import java.util.Collection; +import java.util.HashSet; +import javax.swing.AbstractAction; +import javax.swing.KeyStroke; +import org.openide.util.NbBundle.Messages; +import org.openide.util.Utilities; +import org.sleuthkit.datamodel.AbstractFile; + +/** + * Extracts a File object to a temporary file in the case directory, and then + * tries to open it in the user's system with the default or user specified + * associated application. + */ +@Messages({"ExternalViewerShortcutAction.title.text=Open in External Viewer"}) +public class ExternalViewerShortcutAction extends AbstractAction { + public static final KeyStroke EXTERNAL_VIEWER_SHORTCUT = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK); + + public ExternalViewerShortcutAction() { + super(Bundle.ExternalViewerShortcutAction_title_text()); + } + + @Override + public void actionPerformed(ActionEvent e) { + final Collection selectedFiles = new HashSet<>(Utilities.actionsGlobalContext().lookupAll(AbstractFile.class)); + if (!selectedFiles.isEmpty()) { + for (AbstractFile file : selectedFiles){ + ExternalViewerAction action = new ExternalViewerAction(Bundle.ExternalViewerShortcutAction_title_text(), file, false); + if(action.isEnabled()){ + action.actionPerformed(e); + } + } + } + } +} diff --git a/Core/src/org/sleuthkit/autopsy/timeline/TimeLineTopComponent.java b/Core/src/org/sleuthkit/autopsy/timeline/TimeLineTopComponent.java index 2f6c6ed559..747152ee59 100644 --- a/Core/src/org/sleuthkit/autopsy/timeline/TimeLineTopComponent.java +++ b/Core/src/org/sleuthkit/autopsy/timeline/TimeLineTopComponent.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2018 Basis Technology Corp. + * Copyright 2011-2019 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -65,6 +65,7 @@ import org.sleuthkit.autopsy.corecomponents.DataResultPanel; import org.sleuthkit.autopsy.corecomponents.TableFilterNode; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.ThreadConfined; +import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction; import org.sleuthkit.autopsy.timeline.actions.Back; import org.sleuthkit.autopsy.timeline.actions.Forward; import org.sleuthkit.autopsy.timeline.explorernodes.EventNode; @@ -261,7 +262,8 @@ public final class TimeLineTopComponent extends TopComponent implements Explorer getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(AddBookmarkTagAction.BOOKMARK_SHORTCUT, "addBookmarkTag"); //NON-NLS getActionMap().put("addBookmarkTag", new AddBookmarkTagAction()); //NON-NLS - + getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS + getActionMap().put("useExternalViewer", new ExternalViewerShortcutAction()); //NON-NLS this.controller = controller; //create linked result and content views From 5b725953679f4f41859569e5b1c387b12d1abfdb Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Mon, 4 Mar 2019 11:39:46 -0500 Subject: [PATCH 02/10] 3921 add merged bundle files and diamond typing for html viewer --- .../centralrepository/contentviewer/Bundle.properties-MERGED | 2 ++ .../contentviewer/DataContentViewerOtherCases.java | 2 +- .../autopsy/contentviewers/Bundle.properties-MERGED | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/Bundle.properties-MERGED index 68904ecb93..3734fc5a3e 100755 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/Bundle.properties-MERGED @@ -10,6 +10,7 @@ DataContentViewerOtherCases.correlatedArtifacts.failed=Failed to get frequency d DataContentViewerOtherCases.correlatedArtifacts.isEmpty=There are no files or artifacts to correlate. DataContentViewerOtherCases.correlatedArtifacts.title=Attribute Frequency DataContentViewerOtherCases.earliestCaseNotAvailable=\ Not Enabled. +DataContentViewerOtherCases.foundIn.text=Found %d instances in %d cases and %d data sources. DataContentViewerOtherCases.noOpenCase.errMsg=No open case available. DataContentViewerOtherCases.selectAllMenuItem.text=Select All DataContentViewerOtherCases.showCaseDetailsMenuItem.text=Show Case Details @@ -22,6 +23,7 @@ DataContentViewerOtherCases.showCommonalityMenuItem.text=Show Frequency DataContentViewerOtherCases.earliestCaseDate.text=Earliest Case Date DataContentViewerOtherCases.earliestCaseLabel.toolTipText= DataContentViewerOtherCases.earliestCaseLabel.text=Central Repository Starting Date: +DataContentViewerOtherCases.foundInLabel.text= DataContentViewerOtherCases.title=Other Occurrences DataContentViewerOtherCases.toolTip=Displays instances of the selected file/artifact from other occurrences. DataContentViewerOtherCasesTableModel.attribute=Matched Attribute diff --git a/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/DataContentViewerOtherCases.java b/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/DataContentViewerOtherCases.java index 4762da103a..308e14be63 100644 --- a/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/DataContentViewerOtherCases.java +++ b/Core/src/org/sleuthkit/autopsy/centralrepository/contentviewer/DataContentViewerOtherCases.java @@ -380,7 +380,7 @@ public class DataContentViewerOtherCases extends JPanel implements DataContentVi * a case to be unique. We should improve this in the future. */ Set cases = new HashSet<>(); - Map devices = new HashMap(); + Map devices = new HashMap<>(); for (int i=0; i < model.getRowCount(); i++) { String caseName = (String) model.getValueAt(i, caseColumnIndex); diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED index 74b500780f..5416d41303 100755 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED @@ -32,6 +32,8 @@ GstVideoPanel.progress.buffering=Buffering... GstVideoPanel.progressLabel.bufferingErr=Error buffering file GstVideoPanel.progress.infoLabel.updateErr=Error updating video progress: {0} GstVideoPanel.ExtractMedia.progress.buffering=Buffering {0} +HtmlPanel_showImagesToggleButton_hide=Hide Images +HtmlPanel_showImagesToggleButton_show=Show Images MediaFileViewer.AccessibleContext.accessibleDescription= MediaFileViewer.title=Media MediaFileViewer.toolTip=Displays supported multimedia files (images, videos, audio) @@ -44,8 +46,6 @@ MediaViewVideoPanel.infoLabel.text=info MediaViewImagePanel.imgFileTooLarge.msg=Could not load image file (too large): {0} MessageContentViewer.AtrachmentsPanel.title=Attachments -MessageContentViewer.showImagesToggleButton.hide.text=Hide Images -MessageContentViewer.showImagesToggleButton.text=Show Images MessageContentViewer.title=Message MessageContentViewer.toolTip=Displays messages. Metadata.nodeText.none=None @@ -139,6 +139,7 @@ MediaViewImagePanel.zoomResetButton.text=Reset MediaViewImagePanel.zoomTextField.text= MediaViewImagePanel.rotationTextField.text= MediaViewImagePanel.rotateLeftButton.toolTipText= +HtmlPanel.showImagesToggleButton.text=Show Images # {0} - tableName SQLiteViewer.readTable.errorText=Error getting rows for table: {0} # {0} - tableName From 094f576e5b01b7be2463ff305c98e1c497610f73 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Mon, 4 Mar 2019 12:27:31 -0500 Subject: [PATCH 03/10] 4755 add (Ctrl+E) to end of Open in External Viewer to identify shortcut --- .../autopsy/contentviewers/MediaViewImagePanel.java | 2 +- Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties | 6 +++--- Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java | 2 +- .../org/sleuthkit/autopsy/directorytree/Bundle.properties | 2 +- .../autopsy/directorytree/ExternalViewerShortcutAction.java | 2 +- .../imagegallery/actions/OpenExternalViewerAction.java | 2 +- .../imagegallery/gui/drawableviews/DrawableTileBase.java | 2 +- .../org/sleuthkit/autopsy/keywordsearch/Bundle.properties | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java b/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java index b98c350d68..b001e51408 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java @@ -60,7 +60,7 @@ import org.sleuthkit.datamodel.AbstractFile; * Image viewer part of the Media View layered pane. Uses JavaFX to display the * image. */ -@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer", +@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer (Ctrl+E)", "MediaViewImagePanel.errorLabel.text=Could not load file into Media View.", "MediaViewImagePanel.errorLabel.OOMText=Could not load file into Media View: insufficent memory."}) @SuppressWarnings("PMD.SingularField") // UI widgets cause lots of false positives diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties index aeb19145f9..99b8145b34 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties @@ -53,7 +53,7 @@ ContentUtils.exception.msg=Cannot extract a {0} DataModelActionsFactory.srcFileInDir.text=View Source File in Directory DataModelActionsFactory.fileInDir.text=View File in Directory DataModelActionsFactory.viewNewWin.text=View in New Window -DataModelActionsFactory.openExtViewer.text=Open in External Viewer +DataModelActionsFactory.openExtViewer.text=Open in External Viewer (Ctrl+E) DataSourcesNode.name=Data Sources DataSourcesNode.group_by_datasource.name=Data Source Files DataSourcesNode.createSheet.name.name=Name @@ -120,13 +120,13 @@ LayoutFileNode.createSheet.name.displayName=Name LayoutFileNode.createSheet.name.desc=no description LayoutFileNode.createSheet.noDescr.text=no description LayoutFileNode.getActions.viewInNewWin.text=View in New Window -LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer +LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) LocalFileNode.createSheet.name.name=Name LocalFileNode.createSheet.name.displayName=Name LocalFileNode.createSheet.name.desc=no description LocalFileNode.createSheet.noDescr.text=no description LocalFileNode.getActions.viewInNewWin.text=View in New Window -LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer +LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) LocalFileNode.getActions.searchFilesSameMd5.text=Search for files with the same MD5 hash OpenReportAction.actionDisplayName=Open Report OpenReportAction.actionPerformed.MessageBoxTitle=Open Report Failure diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java index 13e7ef34a5..3a331f62c1 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java @@ -148,7 +148,7 @@ public class FileNode extends AbstractFsContentNode { @NbBundle.Messages({ "FileNode.getActions.viewFileInDir.text=View File in Directory", "FileNode.getActions.viewInNewWin.text=View in New Window", - "FileNode.getActions.openInExtViewer.text=Open in External Viewer", + "FileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E)", "FileNode.getActions.searchFilesSameMD5.text=Search for files with the same MD5 hash"}) public Action[] getActions(boolean context) { List actionsList = new ArrayList<>(); diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties index 0bdb1b5d9c..e4eee5372e 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties @@ -52,7 +52,7 @@ ChangeViewAction.menuItem.view.string=String DataResultFilterNode.action.viewFileInDir.text=View File in Directory DataResultFilterNode.action.viewSrcFileInDir.text=View Source File in Directory DataResultFilterNode.action.viewInNewWin.text=View in New Window -DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer +DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer (Ctrl+E) DataResultFilterNode.action.searchFilesSameMd5.text=Search for files with the same MD5 hash DataResultFilterNode.action.viewInDir.text=View in Directory DirectoryTreeFilterNode.action.collapseAll.text=Collapse All diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java index 77b7be9025..18817b0591 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java @@ -34,7 +34,7 @@ import org.sleuthkit.datamodel.AbstractFile; * tries to open it in the user's system with the default or user specified * associated application. */ -@Messages({"ExternalViewerShortcutAction.title.text=Open in External Viewer"}) +@Messages({"ExternalViewerShortcutAction.title.text=Open in External Viewer (Ctrl+E)"}) public class ExternalViewerShortcutAction extends AbstractAction { public static final KeyStroke EXTERNAL_VIEWER_SHORTCUT = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java index a698c22191..05f26bbca3 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java @@ -32,7 +32,7 @@ import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableFile; * Wraps {@link ExternalViewerAction} in a ControlsFX {@link Action} with * appropriate text and graphic */ -@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer", +@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer (Ctrl+E)", "OpenExternalViewerAction.displayName=External Viewer"}) public class OpenExternalViewerAction extends Action { diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java index e6b9479f50..567fc841de 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java @@ -86,7 +86,7 @@ import org.sleuthkit.datamodel.TskCoreException; * * TODO: refactor ExternalViewerAction to supply its own name */ -@NbBundle.Messages({"DrawableTileBase.externalViewerAction.text=Open in External Viewer"}) +@NbBundle.Messages({"DrawableTileBase.externalViewerAction.text=Open in External Viewer (Ctrl+E)"}) public abstract class DrawableTileBase extends DrawableUIBase { private static final Logger logger = Logger.getLogger(DrawableTileBase.class.getName()); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index 9d82d32924..47fec1d837 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -87,7 +87,7 @@ KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=Keyword KeywordSearchEditListPanel.kwColName=Keyword KeywordSearchEditListPanel.addKeyword.message=Add a new word to the keyword search list: KeywordSearchEditListPanel.addKeyword.title=New Keyword -KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer +KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer (Ctrl+E) KeywordSearchFilterNode.getFileActions.searchSameMd5=Search for files with the same MD5 hash KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=View in New Window KeywordSearchIngestModule.init.noKwInLstMsg=No keywords in keyword list. From e399ae4594e0bb6968c94ce0e187b4a3163d9a82 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Mon, 4 Mar 2019 12:35:49 -0500 Subject: [PATCH 04/10] 4755 add modified merged bundle files --- .../autopsy/contentviewers/Bundle.properties-MERGED | 2 +- .../sleuthkit/autopsy/datamodel/Bundle.properties-MERGED | 8 ++++---- .../autopsy/directorytree/Bundle.properties-MERGED | 4 ++-- .../autopsy/imagegallery/actions/Bundle.properties-MERGED | 2 +- .../imagegallery/actions/OpenExternalViewerAction.java | 2 +- .../gui/drawableviews/Bundle.properties-MERGED | 2 +- .../imagegallery/gui/drawableviews/DrawableTileBase.java | 2 +- .../autopsy/keywordsearch/Bundle.properties-MERGED | 8 ++++---- 8 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED index 5416d41303..4f989b7873 100755 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED @@ -39,7 +39,7 @@ MediaFileViewer.title=Media MediaFileViewer.toolTip=Displays supported multimedia files (images, videos, audio) MediaViewImagePanel.errorLabel.OOMText=Could not load file into Media View: insufficent memory. MediaViewImagePanel.errorLabel.text=Could not load file into Media View. -MediaViewImagePanel.externalViewerButton.text=Open in External Viewer +MediaViewImagePanel.externalViewerButton.text=Open in External Viewer (Ctrl+E) MediaViewVideoPanel.pauseButton.text=\u25ba MediaViewVideoPanel.progressLabel.text=00:00 MediaViewVideoPanel.infoLabel.text=info diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties-MERGED index 1f6bd92b3c..72de4ccc7b 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties-MERGED @@ -95,7 +95,7 @@ DeletedContent.fsDelFilter.text=File System DeleteReportAction.showConfirmDialog.errorMsg=An error occurred while deleting the reports. DeleteReportAction.showConfirmDialog.multiple.explanation=The reports will remain on disk. DeleteReportAction.showConfirmDialog.single.explanation=The report will remain on disk. -FileNode.getActions.openInExtViewer.text=Open in External Viewer +FileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) FileNode.getActions.searchFilesSameMD5.text=Search for files with the same MD5 hash FileNode.getActions.viewFileInDir.text=View File in Directory FileNode.getActions.viewInNewWin.text=View in New Window @@ -210,7 +210,7 @@ ContentUtils.exception.msg=Cannot extract a {0} DataModelActionsFactory.srcFileInDir.text=View Source File in Directory DataModelActionsFactory.fileInDir.text=View File in Directory DataModelActionsFactory.viewNewWin.text=View in New Window -DataModelActionsFactory.openExtViewer.text=Open in External Viewer +DataModelActionsFactory.openExtViewer.text=Open in External Viewer (Ctrl+E) DataSourcesNode.name=Data Sources DataSourcesNode.group_by_datasource.name=Data Source Files DataSourcesNode.createSheet.name.name=Name @@ -277,13 +277,13 @@ LayoutFileNode.createSheet.name.displayName=Name LayoutFileNode.createSheet.name.desc=no description LayoutFileNode.createSheet.noDescr.text=no description LayoutFileNode.getActions.viewInNewWin.text=View in New Window -LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer +LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) LocalFileNode.createSheet.name.name=Name LocalFileNode.createSheet.name.displayName=Name LocalFileNode.createSheet.name.desc=no description LocalFileNode.createSheet.noDescr.text=no description LocalFileNode.getActions.viewInNewWin.text=View in New Window -LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer +LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) LocalFileNode.getActions.searchFilesSameMd5.text=Search for files with the same MD5 hash OpenReportAction.actionDisplayName=Open Report OpenReportAction.actionPerformed.MessageBoxTitle=Open Report Failure diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED index 18161f9d22..ce7da79765 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED @@ -11,7 +11,7 @@ ExternalViewerAction.actionPerformed.failure.open.url=Cannot open URL ExternalViewerAction.actionPerformed.failure.permission.message=Permission to open the file was denied. ExternalViewerAction.actionPerformed.failure.support.message=This platform (operating system) does not support opening a file in an editor this way. ExternalViewerAction.actionPerformed.failure.title=Open File Failure -ExternalViewerShortcutAction.title.text=Open in External Viewer +ExternalViewerShortcutAction.title.text=Open in External Viewer (Ctrl+E) ExtractAction.noOpenCase.errMsg=No open case available. ExtractUnallocAction.imageError=Error extracting unallocated space from image ExtractUnallocAction.noFiles=No unallocated files found on volume @@ -81,7 +81,7 @@ ChangeViewAction.menuItem.view.string=String DataResultFilterNode.action.viewFileInDir.text=View File in Directory DataResultFilterNode.action.viewSrcFileInDir.text=View Source File in Directory DataResultFilterNode.action.viewInNewWin.text=View in New Window -DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer +DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer (Ctrl+E) DataResultFilterNode.action.searchFilesSameMd5.text=Search for files with the same MD5 hash DataResultFilterNode.action.viewInDir.text=View in Directory DirectoryTreeFilterNode.action.collapseAll.text=Collapse All diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Bundle.properties-MERGED b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Bundle.properties-MERGED index 1af8a08078..5808626568 100755 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Bundle.properties-MERGED +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Bundle.properties-MERGED @@ -24,7 +24,7 @@ DeleteDrawableTagAction.deleteTag.alert=Unable to untag file {0}. DeleteDrawableTagAction.displayName=Remove File Tag DeleteFollwUpTagAction.displayName=Delete Follow Up Tag Forward.displayName=Forward -MediaViewImagePanel.externalViewerButton.text=Open in External Viewer +MediaViewImagePanel.externalViewerButton.text=Open in External Viewer (Ctrl+E) NextUnseenGroup.allGroupsSeen=All Groups Have Been Seen NextUnseenGroup.markGroupSeen=Mark Group Seen NextUnseenGroup.nextUnseenGroup=Next Unseen Group diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java index 05f26bbca3..a698c22191 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java @@ -32,7 +32,7 @@ import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableFile; * Wraps {@link ExternalViewerAction} in a ControlsFX {@link Action} with * appropriate text and graphic */ -@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer (Ctrl+E)", +@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer", "OpenExternalViewerAction.displayName=External Viewer"}) public class OpenExternalViewerAction extends Action { diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/Bundle.properties-MERGED b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/Bundle.properties-MERGED index 8cb9633613..380d131407 100755 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/Bundle.properties-MERGED +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/Bundle.properties-MERGED @@ -1,4 +1,4 @@ -DrawableTileBase.externalViewerAction.text=Open in External Viewer +DrawableTileBase.externalViewerAction.text=Open in External Viewer (Ctrl+E) DrawableTileBase.menuItem.extractFiles=Extract File(s) DrawableTileBase.menuItem.showContentViewer=Show Content Viewer DrawableUIBase.errorLabel.OOMText=Insufficent memory diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java index 567fc841de..e6b9479f50 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/DrawableTileBase.java @@ -86,7 +86,7 @@ import org.sleuthkit.datamodel.TskCoreException; * * TODO: refactor ExternalViewerAction to supply its own name */ -@NbBundle.Messages({"DrawableTileBase.externalViewerAction.text=Open in External Viewer (Ctrl+E)"}) +@NbBundle.Messages({"DrawableTileBase.externalViewerAction.text=Open in External Viewer"}) public abstract class DrawableTileBase extends DrawableUIBase { private static final Logger logger = Logger.getLogger(DrawableTileBase.class.getName()); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED index 52513be1e0..fe379a7ad0 100755 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED @@ -34,7 +34,7 @@ KeywordSearchIngestModule.startupMessage.failedToGetIndexSchema=Failed to get sc KeywordSearchResultFactory.createNodeForKey.noResultsFound.text=No results found. KeywordSearchResultFactory.query.exception.msg=Could not perform the query OpenIDE-Module-Display-Category=Ingest Module -OpenIDE-Module-Long-Description=Keyword Search ingest module.\n\nThe module indexes files found in the disk image at ingest time. \nIt then periodically runs the search on the indexed files using one or more keyword lists (containing pure words and/or regular expressions) and posts results.\n\nThe module also contains additional tools integrated in the main GUI, such as keyword list configuration, keyword seach bar in the top-right corner, extracted text viewer and search results viewer showing highlighted keywords found. +OpenIDE-Module-Long-Description=Keyword Search ingest module.\n\n\The module indexes files found in the disk image at ingest time.\n\It then periodically runs the search on the indexed files using one or more keyword lists (containing pure words and/or regular expressions) and posts results.\n\n\The module also contains additional tools integrated in the main GUI, such as keyword list configuration, keyword seach bar in the top-right corner, extracted text viewer and search results viewer showing highlighted keywords found. OpenIDE-Module-Name=KeywordSearch OptionsCategory_Name_KeywordSearchOptions=Keyword Search OptionsCategory_Keywords_KeywordSearchOptions=Keyword Search @@ -122,13 +122,13 @@ KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=Keyword KeywordSearchEditListPanel.kwColName=Keyword KeywordSearchEditListPanel.addKeyword.message=Add a new word to the keyword search list: KeywordSearchEditListPanel.addKeyword.title=New Keyword -KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer +KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer (Ctrl+E) KeywordSearchFilterNode.getFileActions.searchSameMd5=Search for files with the same MD5 hash KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=View in New Window KeywordSearchIngestModule.init.noKwInLstMsg=No keywords in keyword list. KeywordSearchIngestModule.init.onlyIdxKwSkipMsg=Only indexing will be done and keyword search will be skipped (you can still add keyword lists using the Keyword Lists - Add to Ingest). KeywordSearchIngestModule.doInBackGround.displayName=Periodic Keyword Search -KeywordSearchIngestModule.doInBackGround.finalizeMsg=- Finalizing +KeywordSearchIngestModule.doInBackGround.finalizeMsg=Finalizing KeywordSearchIngestModule.doInBackGround.pendingMsg=(Pending) RawText.FileText=File Text RawText.ResultText=Result Text @@ -224,7 +224,7 @@ Server.start.exception.cantStartSolr.msg=Could not start Solr server process Server.start.exception.cantStartSolr.msg2=Could not start Solr server process Server.isRunning.exception.errCheckSolrRunning.msg=Error checking if Solr server is running Server.isRunning.exception.errCheckSolrRunning.msg2=Error checking if Solr server is running -Server.openCore.exception.alreadyOpen.msg=Already an open Core! Explicitely close Core first. +Server.openCore.exception.alreadyOpen.msg=There is an already open Solr core. Explicitly close the core first. Server.queryNumIdxFiles.exception.msg=Error querying number of indexed files, Server.queryNumIdxChunks.exception.msg=Error querying number of indexed chunks, Server.queryNumIdxDocs.exception.msg=Error querying number of indexed documents, From 2cc861d8f3eb279858d8551ae72eed2cd23bbb7f Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Mon, 4 Mar 2019 13:01:46 -0500 Subject: [PATCH 05/10] 4755 fix copyright for new file --- .../autopsy/directorytree/ExternalViewerShortcutAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java index 18817b0591..e8610ea6c5 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2011-2018 Basis Technology Corp. + * Copyright 2019 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); From 93cf20e3635522ff1c73a5584bb41bac0ed17e87 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Mon, 4 Mar 2019 14:31:10 -0500 Subject: [PATCH 06/10] 4755 remove ctrl+e shortcut text from image gallery merged files --- .../autopsy/imagegallery/actions/Bundle.properties-MERGED | 2 +- .../imagegallery/gui/drawableviews/Bundle.properties-MERGED | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Bundle.properties-MERGED b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Bundle.properties-MERGED index 5808626568..1af8a08078 100755 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Bundle.properties-MERGED +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/Bundle.properties-MERGED @@ -24,7 +24,7 @@ DeleteDrawableTagAction.deleteTag.alert=Unable to untag file {0}. DeleteDrawableTagAction.displayName=Remove File Tag DeleteFollwUpTagAction.displayName=Delete Follow Up Tag Forward.displayName=Forward -MediaViewImagePanel.externalViewerButton.text=Open in External Viewer (Ctrl+E) +MediaViewImagePanel.externalViewerButton.text=Open in External Viewer NextUnseenGroup.allGroupsSeen=All Groups Have Been Seen NextUnseenGroup.markGroupSeen=Mark Group Seen NextUnseenGroup.nextUnseenGroup=Next Unseen Group diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/Bundle.properties-MERGED b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/Bundle.properties-MERGED index 380d131407..8cb9633613 100755 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/Bundle.properties-MERGED +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/drawableviews/Bundle.properties-MERGED @@ -1,4 +1,4 @@ -DrawableTileBase.externalViewerAction.text=Open in External Viewer (Ctrl+E) +DrawableTileBase.externalViewerAction.text=Open in External Viewer DrawableTileBase.menuItem.extractFiles=Extract File(s) DrawableTileBase.menuItem.showContentViewer=Show Content Viewer DrawableUIBase.errorLabel.OOMText=Insufficent memory From 3837da1f4b0e4d552a2fad56549d5c9f6909725b Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Tue, 5 Mar 2019 12:48:40 -0500 Subject: [PATCH 07/10] 4755 add shortcut for open in external viewer to image gallery --- .../imagegallery/ImageGalleryTopComponent.java | 6 +++++- .../actions/OpenExternalViewerAction.java | 13 ++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryTopComponent.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryTopComponent.java index d5e4440ee6..159936ba4a 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryTopComponent.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryTopComponent.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2013-2018 Basis Technology Corp. + * Copyright 2013-2019 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -50,6 +50,7 @@ import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.stage.Modality; import javax.annotation.concurrent.GuardedBy; +import javax.swing.JComponent; import javax.swing.SwingUtilities; import static org.apache.commons.collections4.CollectionUtils.isNotEmpty; import static org.apache.commons.lang3.ObjectUtils.notEqual; @@ -64,6 +65,7 @@ import org.openide.windows.TopComponent; import org.openide.windows.WindowManager; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.ThreadConfined; +import org.sleuthkit.autopsy.directorytree.ExternalViewerShortcutAction; import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableAttribute; import org.sleuthkit.autopsy.imagegallery.datamodel.grouping.GroupManager; import org.sleuthkit.autopsy.imagegallery.gui.DataSourceCell; @@ -238,6 +240,8 @@ public final class ImageGalleryTopComponent extends TopComponent implements Expl public ImageGalleryTopComponent() { setName(Bundle.CTL_ImageGalleryTopComponent()); initComponents(); + getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ExternalViewerShortcutAction.EXTERNAL_VIEWER_SHORTCUT, "useExternalViewer"); //NON-NLS + getActionMap().put("useExternalViewer", new ExternalViewerShortcutAction()); //NON-NLS } /** diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java index a698c22191..6e3543dc00 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/actions/OpenExternalViewerAction.java @@ -1,7 +1,7 @@ /* * Autopsy Forensic Browser * - * Copyright 2015 Basis Technology Corp. + * Copyright 2015-2019 Basis Technology Corp. * Contact: carrier sleuthkit org * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -21,6 +21,9 @@ package org.sleuthkit.autopsy.imagegallery.actions; import java.awt.event.ActionEvent; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyCodeCombination; +import javafx.scene.input.KeyCombination; import javax.swing.SwingUtilities; import org.controlsfx.control.action.Action; import org.openide.util.NbBundle; @@ -33,10 +36,11 @@ import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableFile; * appropriate text and graphic */ @NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer", - "OpenExternalViewerAction.displayName=External Viewer"}) + "OpenExternalViewerAction.displayName=External Viewer"}) public class OpenExternalViewerAction extends Action { private static final Image EXTERNAL = new Image(OpenExternalViewerAction.class.getResource("/org/sleuthkit/autopsy/imagegallery/images/external.png").toExternalForm()); //NON-NLS + private static final KeyCombination EXTERNAL_VIEWER_SHORTCUT = new KeyCodeCombination(KeyCode.E, KeyCombination.CONTROL_DOWN); private static final ActionEvent ACTION_EVENT = new ActionEvent(OpenExternalViewerAction.class, ActionEvent.ACTION_PERFORMED, ""); //Swing ActionEvent //NOI18N public OpenExternalViewerAction(DrawableFile file) { @@ -49,9 +53,12 @@ public class OpenExternalViewerAction extends Action { ExternalViewerAction externalViewerAction = new ExternalViewerAction(Bundle.MediaViewImagePanel_externalViewerButton_text(), new FileNode(file.getAbstractFile())); setLongText(Bundle.MediaViewImagePanel_externalViewerButton_text()); - setEventHandler(actionEvent -> //fx ActionEvent + setEventHandler(actionEvent + -> //fx ActionEvent SwingUtilities.invokeLater(() -> externalViewerAction.actionPerformed(ACTION_EVENT)) ); setGraphic(new ImageView(EXTERNAL)); + setAccelerator(EXTERNAL_VIEWER_SHORTCUT); } + } From 836486717c5cb48437975c41111d00b3a733581a Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dsmyda" Date: Wed, 6 Mar 2019 11:35:40 -0500 Subject: [PATCH 08/10] Added sorting of the data sources to the classical tree view and the group by data source tree view --- .../datamodel/AutopsyTreeChildFactory.java | 16 ++++++++++++++-- .../autopsy/datamodel/DataSourcesNode.java | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java b/Core/src/org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java index 5af1d5c085..31b9e66b8f 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java @@ -22,6 +22,8 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; import java.util.EnumSet; import java.util.List; import java.util.Objects; @@ -31,7 +33,6 @@ import org.openide.nodes.Node; import org.sleuthkit.autopsy.casemodule.Case; import org.sleuthkit.autopsy.casemodule.CasePreferences; import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException; -import org.sleuthkit.autopsy.core.UserPreferences; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.datamodel.DataSource; import org.sleuthkit.datamodel.SleuthkitCase; @@ -87,6 +88,17 @@ public final class AutopsyTreeChildFactory extends ChildFactory.Detachable dataSources = tskCase.getDataSources(); + + //Sort the datasources so the user can find them easier in large cases + Collections.sort(dataSources, new Comparator() { + @Override + public int compare(DataSource dataS1, DataSource dataS2) { + String dataS1Name = dataS1.getName().toLowerCase(); + String dataS2Name = dataS2.getName().toLowerCase(); + return dataS1Name.compareTo(dataS2Name); + } + }); + List keys = new ArrayList<>(); dataSources.forEach((datasource) -> { keys.add(new DataSourceGrouping(datasource)); @@ -140,4 +152,4 @@ public final class AutopsyTreeChildFactory extends ChildFactory.Detachable(Arrays.asList(content)); } + + //Sort the datasources so the user can find them easier in large cases + Collections.sort(currentKeys, new Comparator() { + @Override + public int compare(Content content1, Content content2) { + String content1Name = content1.getName().toLowerCase(); + String content2Name = content2.getName().toLowerCase(); + return content1Name.compareTo(content2Name); + } + + }); + setKeys(currentKeys); } catch (TskCoreException | NoCurrentCaseException | TskDataException ex) { logger.log(Level.SEVERE, "Error getting data sources: {0}", ex.getMessage()); // NON-NLS @@ -165,4 +178,4 @@ public class DataSourcesNode extends DisplayableItemNode { NAME)); return sheet; } -} +} \ No newline at end of file From d3338d57e00a713df6db01f8c9f69048f41b1210 Mon Sep 17 00:00:00 2001 From: "U-BASIS\\dsmyda" Date: Wed, 6 Mar 2019 11:36:43 -0500 Subject: [PATCH 09/10] Removed the comments --- .../org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java | 1 - Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java | 1 - 2 files changed, 2 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java b/Core/src/org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java index 31b9e66b8f..69e3787e99 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/AutopsyTreeChildFactory.java @@ -89,7 +89,6 @@ public final class AutopsyTreeChildFactory extends ChildFactory.Detachable dataSources = tskCase.getDataSources(); - //Sort the datasources so the user can find them easier in large cases Collections.sort(dataSources, new Comparator() { @Override public int compare(DataSource dataS1, DataSource dataS2) { diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java index a2e1d7d239..5b3f2fa32a 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/DataSourcesNode.java @@ -125,7 +125,6 @@ public class DataSourcesNode extends DisplayableItemNode { currentKeys = new ArrayList<>(Arrays.asList(content)); } - //Sort the datasources so the user can find them easier in large cases Collections.sort(currentKeys, new Comparator() { @Override public int compare(Content content1, Content content2) { From 0ab6f731869ab40612080f38cd9780e3823b5ba3 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Wed, 6 Mar 2019 14:55:56 -0500 Subject: [PATCH 10/10] 4755 remove parens from main application Ctrl+C shortcut txt --- .../autopsy/contentviewers/Bundle.properties-MERGED | 2 +- .../autopsy/contentviewers/MediaViewImagePanel.java | 2 +- .../src/org/sleuthkit/autopsy/datamodel/Bundle.properties | 6 +++--- .../sleuthkit/autopsy/datamodel/Bundle.properties-MERGED | 8 ++++---- Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java | 2 +- .../org/sleuthkit/autopsy/directorytree/Bundle.properties | 2 +- .../autopsy/directorytree/Bundle.properties-MERGED | 4 ++-- .../directorytree/ExternalViewerShortcutAction.java | 2 +- .../org/sleuthkit/autopsy/keywordsearch/Bundle.properties | 2 +- .../autopsy/keywordsearch/Bundle.properties-MERGED | 2 +- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED index 0b2807e095..3efcade0f5 100755 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/Bundle.properties-MERGED @@ -39,7 +39,7 @@ MediaFileViewer.title=Media MediaFileViewer.toolTip=Displays supported multimedia files (images, videos, audio) MediaViewImagePanel.errorLabel.OOMText=Could not load file into Media View: insufficent memory. MediaViewImagePanel.errorLabel.text=Could not load file into Media View. -MediaViewImagePanel.externalViewerButton.text=Open in External Viewer (Ctrl+E) +MediaViewImagePanel.externalViewerButton.text=Open in External Viewer Ctrl+E MediaViewVideoPanel.pauseButton.text=\u25ba MediaViewVideoPanel.progressLabel.text=00:00 MediaViewVideoPanel.infoLabel.text=info diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java b/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java index b001e51408..b96e61e462 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MediaViewImagePanel.java @@ -60,7 +60,7 @@ import org.sleuthkit.datamodel.AbstractFile; * Image viewer part of the Media View layered pane. Uses JavaFX to display the * image. */ -@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer (Ctrl+E)", +@NbBundle.Messages({"MediaViewImagePanel.externalViewerButton.text=Open in External Viewer Ctrl+E", "MediaViewImagePanel.errorLabel.text=Could not load file into Media View.", "MediaViewImagePanel.errorLabel.OOMText=Could not load file into Media View: insufficent memory."}) @SuppressWarnings("PMD.SingularField") // UI widgets cause lots of false positives diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties index 99b8145b34..3fa8cd0341 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties @@ -53,7 +53,7 @@ ContentUtils.exception.msg=Cannot extract a {0} DataModelActionsFactory.srcFileInDir.text=View Source File in Directory DataModelActionsFactory.fileInDir.text=View File in Directory DataModelActionsFactory.viewNewWin.text=View in New Window -DataModelActionsFactory.openExtViewer.text=Open in External Viewer (Ctrl+E) +DataModelActionsFactory.openExtViewer.text=Open in External Viewer Ctrl+E DataSourcesNode.name=Data Sources DataSourcesNode.group_by_datasource.name=Data Source Files DataSourcesNode.createSheet.name.name=Name @@ -120,13 +120,13 @@ LayoutFileNode.createSheet.name.displayName=Name LayoutFileNode.createSheet.name.desc=no description LayoutFileNode.createSheet.noDescr.text=no description LayoutFileNode.getActions.viewInNewWin.text=View in New Window -LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) +LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer Ctrl+E LocalFileNode.createSheet.name.name=Name LocalFileNode.createSheet.name.displayName=Name LocalFileNode.createSheet.name.desc=no description LocalFileNode.createSheet.noDescr.text=no description LocalFileNode.getActions.viewInNewWin.text=View in New Window -LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) +LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer Ctrl+E LocalFileNode.getActions.searchFilesSameMd5.text=Search for files with the same MD5 hash OpenReportAction.actionDisplayName=Open Report OpenReportAction.actionPerformed.MessageBoxTitle=Open Report Failure diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties-MERGED index 72de4ccc7b..c11a681494 100755 --- a/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/datamodel/Bundle.properties-MERGED @@ -95,7 +95,7 @@ DeletedContent.fsDelFilter.text=File System DeleteReportAction.showConfirmDialog.errorMsg=An error occurred while deleting the reports. DeleteReportAction.showConfirmDialog.multiple.explanation=The reports will remain on disk. DeleteReportAction.showConfirmDialog.single.explanation=The report will remain on disk. -FileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) +FileNode.getActions.openInExtViewer.text=Open in External Viewer Ctrl+E FileNode.getActions.searchFilesSameMD5.text=Search for files with the same MD5 hash FileNode.getActions.viewFileInDir.text=View File in Directory FileNode.getActions.viewInNewWin.text=View in New Window @@ -210,7 +210,7 @@ ContentUtils.exception.msg=Cannot extract a {0} DataModelActionsFactory.srcFileInDir.text=View Source File in Directory DataModelActionsFactory.fileInDir.text=View File in Directory DataModelActionsFactory.viewNewWin.text=View in New Window -DataModelActionsFactory.openExtViewer.text=Open in External Viewer (Ctrl+E) +DataModelActionsFactory.openExtViewer.text=Open in External Viewer Ctrl+E DataSourcesNode.name=Data Sources DataSourcesNode.group_by_datasource.name=Data Source Files DataSourcesNode.createSheet.name.name=Name @@ -277,13 +277,13 @@ LayoutFileNode.createSheet.name.displayName=Name LayoutFileNode.createSheet.name.desc=no description LayoutFileNode.createSheet.noDescr.text=no description LayoutFileNode.getActions.viewInNewWin.text=View in New Window -LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) +LayoutFileNode.getActions.openInExtViewer.text=Open in External Viewer Ctrl+E LocalFileNode.createSheet.name.name=Name LocalFileNode.createSheet.name.displayName=Name LocalFileNode.createSheet.name.desc=no description LocalFileNode.createSheet.noDescr.text=no description LocalFileNode.getActions.viewInNewWin.text=View in New Window -LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E) +LocalFileNode.getActions.openInExtViewer.text=Open in External Viewer Ctrl+E LocalFileNode.getActions.searchFilesSameMd5.text=Search for files with the same MD5 hash OpenReportAction.actionDisplayName=Open Report OpenReportAction.actionPerformed.MessageBoxTitle=Open Report Failure diff --git a/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java b/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java index 3a331f62c1..81f69cfbbf 100644 --- a/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java +++ b/Core/src/org/sleuthkit/autopsy/datamodel/FileNode.java @@ -148,7 +148,7 @@ public class FileNode extends AbstractFsContentNode { @NbBundle.Messages({ "FileNode.getActions.viewFileInDir.text=View File in Directory", "FileNode.getActions.viewInNewWin.text=View in New Window", - "FileNode.getActions.openInExtViewer.text=Open in External Viewer (Ctrl+E)", + "FileNode.getActions.openInExtViewer.text=Open in External Viewer Ctrl+E", "FileNode.getActions.searchFilesSameMD5.text=Search for files with the same MD5 hash"}) public Action[] getActions(boolean context) { List actionsList = new ArrayList<>(); diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties index e4eee5372e..32c9acd3c1 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties @@ -52,7 +52,7 @@ ChangeViewAction.menuItem.view.string=String DataResultFilterNode.action.viewFileInDir.text=View File in Directory DataResultFilterNode.action.viewSrcFileInDir.text=View Source File in Directory DataResultFilterNode.action.viewInNewWin.text=View in New Window -DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer (Ctrl+E) +DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer Ctrl+E DataResultFilterNode.action.searchFilesSameMd5.text=Search for files with the same MD5 hash DataResultFilterNode.action.viewInDir.text=View in Directory DirectoryTreeFilterNode.action.collapseAll.text=Collapse All diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED index ce7da79765..f12028c542 100755 --- a/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/directorytree/Bundle.properties-MERGED @@ -11,7 +11,7 @@ ExternalViewerAction.actionPerformed.failure.open.url=Cannot open URL ExternalViewerAction.actionPerformed.failure.permission.message=Permission to open the file was denied. ExternalViewerAction.actionPerformed.failure.support.message=This platform (operating system) does not support opening a file in an editor this way. ExternalViewerAction.actionPerformed.failure.title=Open File Failure -ExternalViewerShortcutAction.title.text=Open in External Viewer (Ctrl+E) +ExternalViewerShortcutAction.title.text=Open in External Viewer Ctrl+E ExtractAction.noOpenCase.errMsg=No open case available. ExtractUnallocAction.imageError=Error extracting unallocated space from image ExtractUnallocAction.noFiles=No unallocated files found on volume @@ -81,7 +81,7 @@ ChangeViewAction.menuItem.view.string=String DataResultFilterNode.action.viewFileInDir.text=View File in Directory DataResultFilterNode.action.viewSrcFileInDir.text=View Source File in Directory DataResultFilterNode.action.viewInNewWin.text=View in New Window -DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer (Ctrl+E) +DataResultFilterNode.action.openInExtViewer.text=Open in External Viewer Ctrl+E DataResultFilterNode.action.searchFilesSameMd5.text=Search for files with the same MD5 hash DataResultFilterNode.action.viewInDir.text=View in Directory DirectoryTreeFilterNode.action.collapseAll.text=Collapse All diff --git a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java index e8610ea6c5..8d50ceb046 100644 --- a/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java +++ b/Core/src/org/sleuthkit/autopsy/directorytree/ExternalViewerShortcutAction.java @@ -34,7 +34,7 @@ import org.sleuthkit.datamodel.AbstractFile; * tries to open it in the user's system with the default or user specified * associated application. */ -@Messages({"ExternalViewerShortcutAction.title.text=Open in External Viewer (Ctrl+E)"}) +@Messages({"ExternalViewerShortcutAction.title.text=Open in External Viewer Ctrl+E"}) public class ExternalViewerShortcutAction extends AbstractAction { public static final KeyStroke EXTERNAL_VIEWER_SHORTCUT = KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.CTRL_MASK); diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties index 47fec1d837..2ca0e63b29 100644 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties @@ -87,7 +87,7 @@ KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=Keyword KeywordSearchEditListPanel.kwColName=Keyword KeywordSearchEditListPanel.addKeyword.message=Add a new word to the keyword search list: KeywordSearchEditListPanel.addKeyword.title=New Keyword -KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer (Ctrl+E) +KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer Ctrl+E KeywordSearchFilterNode.getFileActions.searchSameMd5=Search for files with the same MD5 hash KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=View in New Window KeywordSearchIngestModule.init.noKwInLstMsg=No keywords in keyword list. diff --git a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED index fe379a7ad0..94f47a537d 100755 --- a/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED +++ b/KeywordSearch/src/org/sleuthkit/autopsy/keywordsearch/Bundle.properties-MERGED @@ -122,7 +122,7 @@ KeywordSearchEditListPanel.exportButtonActionPerformed.kwListExportedMsg=Keyword KeywordSearchEditListPanel.kwColName=Keyword KeywordSearchEditListPanel.addKeyword.message=Add a new word to the keyword search list: KeywordSearchEditListPanel.addKeyword.title=New Keyword -KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer (Ctrl+E) +KeywordSearchFilterNode.getFileActions.openExternViewActLbl=Open in External Viewer Ctrl+E KeywordSearchFilterNode.getFileActions.searchSameMd5=Search for files with the same MD5 hash KeywordSearchFilterNode.getFileActions.viewInNewWinActionLbl=View in New Window KeywordSearchIngestModule.init.noKwInLstMsg=No keywords in keyword list.