diff --git a/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties b/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties index 45a673ed8a..88fce2746c 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties @@ -51,4 +51,7 @@ FileSearchPanel.interestingItemsCheckbox.text=Interesting Items: FileSearchPanel.scoreCheckbox.text=Has Score: FileSearchPanel.exifCheckbox.text=Must contain EXIF data FileSearchPanel.notableCheckbox.text=Must have been tagged as notable -FileSearchPanel.objectsCheckbox.text=Objects: \ No newline at end of file +FileSearchPanel.objectsCheckbox.text=Objects: +ResultsPanel.jButton1.text=previous page +ResultsPanel.jButton2.text=next page +ResultsPanel.jLabel1.text=Page X of Y diff --git a/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties-MERGED index b9d276c1e6..fbea5976b6 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties-MERGED @@ -152,4 +152,7 @@ FileSearchPanel.scoreCheckbox.text=Has Score: FileSearchPanel.exifCheckbox.text=Must contain EXIF data FileSearchPanel.notableCheckbox.text=Must have been tagged as notable FileSearchPanel.objectsCheckbox.text=Objects: +ResultsPanel.jButton1.text=previous page +ResultsPanel.jButton2.text=next page +ResultsPanel.jLabel1.text=Page X of Y SearchNode.getName.text=Search Result diff --git a/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.java b/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.java index ef071742f8..5187b2474a 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.java +++ b/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.java @@ -22,16 +22,10 @@ import com.google.common.eventbus.Subscribe; import javax.swing.JFrame; import javax.swing.SwingUtilities; import org.openide.explorer.ExplorerManager; -import org.openide.nodes.AbstractNode; import org.openide.nodes.Node; import org.openide.windows.WindowManager; import org.sleuthkit.autopsy.centralrepository.datamodel.EamDb; import org.sleuthkit.autopsy.corecomponents.DataContentPanel; -import org.sleuthkit.autopsy.corecomponents.DataResultViewerTable; -import org.sleuthkit.autopsy.corecomponents.DataResultViewerThumbnail; -import org.sleuthkit.autopsy.corecomponents.TableFilterNode; -import org.sleuthkit.autopsy.directorytree.DataResultFilterNode; -import org.sleuthkit.autopsy.filequery.FileSearchData.FileType; import org.sleuthkit.datamodel.SleuthkitCase; /** @@ -43,8 +37,7 @@ class FileDiscoveryDialog extends javax.swing.JDialog { private final FileSearchPanel fileSearchPanel; private final GroupListPanel groupListPanel; private final DataContentPanel dataContentPanel; - private final DataResultViewerThumbnail thumbnailViewer; - private final DataResultViewerTable tableViewer; + private final ResultsPanel resultsPanel; private final ExplorerManager explorerManager; /** @@ -58,11 +51,10 @@ class FileDiscoveryDialog extends javax.swing.JDialog { groupListPanel = new GroupListPanel(); DiscoveryEvents.getDiscoveryEventBus().register(groupListPanel); dataContentPanel = DataContentPanel.createInstance(); - thumbnailViewer = new DataResultViewerThumbnail(explorerManager); - tableViewer = new DataResultViewerTable(explorerManager); + resultsPanel = new ResultsPanel(explorerManager); leftSplitPane.setLeftComponent(fileSearchPanel); leftSplitPane.setRightComponent(groupListPanel); - rightSplitPane.setTopComponent(tableViewer); + rightSplitPane.setTopComponent(resultsPanel); rightSplitPane.setBottomComponent(dataContentPanel); this.explorerManager.addPropertyChangeListener((evt) -> { if (evt.getPropertyName().equals(ExplorerManager.PROP_SELECTED_NODES) && dataContentPanel != null) { @@ -102,22 +94,7 @@ class FileDiscoveryDialog extends javax.swing.JDialog { @Subscribe void handleGroupSelectedEvent(DiscoveryEvents.GroupSelectedEvent groupSelectedEvent) { SwingUtilities.invokeLater(() -> { - thumbnailViewer.resetComponent(); - if (groupSelectedEvent.getType() == FileType.IMAGE || groupSelectedEvent.getType() == FileType.VIDEO) { - rightSplitPane.setTopComponent(thumbnailViewer); - if (groupSelectedEvent.getFiles().size() > 0) { - thumbnailViewer.setNode(new TableFilterNode(new DataResultFilterNode(new AbstractNode(new DiscoveryThumbnailChildren(groupSelectedEvent.getFiles()))), true)); - } else { - thumbnailViewer.setNode(new TableFilterNode(new DataResultFilterNode(Node.EMPTY), true)); - } - } else { - rightSplitPane.setTopComponent(tableViewer); - if (groupSelectedEvent.getFiles().size() > 0) { - tableViewer.setNode(new TableFilterNode(new SearchNode(groupSelectedEvent.getFiles()), true)); - } else { - tableViewer.setNode(new TableFilterNode(new DataResultFilterNode(Node.EMPTY), true)); - } - } + resultsPanel.resetComponent(groupSelectedEvent); }); } diff --git a/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.form b/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.form new file mode 100644 index 0000000000..0d616cfd83 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.form @@ -0,0 +1,114 @@ + + +
diff --git a/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java b/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java new file mode 100644 index 0000000000..cf9222e121 --- /dev/null +++ b/Core/src/org/sleuthkit/autopsy/filequery/ResultsPanel.java @@ -0,0 +1,138 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.sleuthkit.autopsy.filequery; + +import org.openide.explorer.ExplorerManager; +import org.openide.nodes.AbstractNode; +import org.openide.nodes.Node; +import org.sleuthkit.autopsy.corecomponents.DataResultViewerTable; +import org.sleuthkit.autopsy.corecomponents.DataResultViewerThumbnail; +import org.sleuthkit.autopsy.corecomponents.TableFilterNode; +import org.sleuthkit.autopsy.directorytree.DataResultFilterNode; + +/** + * + * @author wschaefer + */ +public class ResultsPanel extends javax.swing.JPanel { + + private static final long serialVersionUID = 1L; + private final DataResultViewerThumbnail thumbnailViewer; + private final DataResultViewerTable tableViewer; + + /** + * Creates new form ResultsPanel + */ + public ResultsPanel(ExplorerManager explorerManager) { + initComponents(); + thumbnailViewer = new DataResultViewerThumbnail(explorerManager); + tableViewer = new DataResultViewerTable(explorerManager); + } + + void resetComponent(DiscoveryEvents.GroupSelectedEvent groupSelectedEvent) { + thumbnailViewer.resetComponent(); + jPanel2.remove(thumbnailViewer); + jPanel2.remove(tableViewer); + if (groupSelectedEvent.getType() == FileSearchData.FileType.IMAGE || groupSelectedEvent.getType() == FileSearchData.FileType.VIDEO) { + jPanel2.add(thumbnailViewer); + if (groupSelectedEvent.getFiles().size() > 0) { + thumbnailViewer.setNode(new TableFilterNode(new DataResultFilterNode(new AbstractNode(new DiscoveryThumbnailChildren(groupSelectedEvent.getFiles()))), true)); + } else { + thumbnailViewer.setNode(new TableFilterNode(new DataResultFilterNode(Node.EMPTY), true)); + } + } else { + jPanel2.add(tableViewer); + if (groupSelectedEvent.getFiles().size() > 0) { + tableViewer.setNode(new TableFilterNode(new SearchNode(groupSelectedEvent.getFiles()), true)); + } else { + tableViewer.setNode(new TableFilterNode(new DataResultFilterNode(Node.EMPTY), true)); + } + } + jPanel2.validate(); + } + + /** + * This method is called from within the constructor to initialize the form. + * WARNING: Do NOT modify this code. The content of this method is always + * regenerated by the Form Editor. + */ + @SuppressWarnings("unchecked") + //