diff --git a/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties-MERGED index af49cf14a4..ab81986afa 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/filequery/Bundle.properties-MERGED @@ -1,5 +1,6 @@ CTL_FileDiscoveryTestAction=Test file discovery CTL_FileSearchTestAction=Test file search +DiscoveryTopComponent.name=\ File Discovery # {0} - Data source name # {1} - Data source ID FileSearch.DataSourceGroupKey.datasourceAndID={0}(ID: {1}) diff --git a/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.form b/Core/src/org/sleuthkit/autopsy/filequery/DiscoveryTopComponent.form similarity index 93% rename from Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.form rename to Core/src/org/sleuthkit/autopsy/filequery/DiscoveryTopComponent.form index cc70ee2002..92772c1173 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.form +++ b/Core/src/org/sleuthkit/autopsy/filequery/DiscoveryTopComponent.form @@ -1,16 +1,11 @@ -
+ - - - - - diff --git a/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.java b/Core/src/org/sleuthkit/autopsy/filequery/DiscoveryTopComponent.java similarity index 84% rename from Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.java rename to Core/src/org/sleuthkit/autopsy/filequery/DiscoveryTopComponent.java index f5b332f599..1cb7cf3849 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryDialog.java +++ b/Core/src/org/sleuthkit/autopsy/filequery/DiscoveryTopComponent.java @@ -18,16 +18,20 @@ */ package org.sleuthkit.autopsy.filequery; -import javax.swing.JFrame; +import java.awt.KeyboardFocusManager; import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import org.openide.explorer.ExplorerManager; import org.openide.nodes.Node; +import org.openide.util.NbBundle; +import org.openide.windows.RetainLocation; +import org.openide.windows.TopComponent; import org.openide.windows.WindowManager; import org.sleuthkit.autopsy.centralrepository.datamodel.EamDb; import org.sleuthkit.autopsy.corecomponents.DataContentPanel; import org.sleuthkit.autopsy.corecomponents.TableFilterNode; +import org.sleuthkit.autopsy.coreutils.ThreadConfined; import org.sleuthkit.autopsy.datamodel.FileNode; import org.sleuthkit.datamodel.AbstractFile; import org.sleuthkit.datamodel.SleuthkitCase; @@ -35,7 +39,11 @@ import org.sleuthkit.datamodel.SleuthkitCase; /** * Create a dialog for displaying the file discovery tool */ -class FileDiscoveryDialog extends javax.swing.JDialog { +@TopComponent.Description(preferredID = "DiscoveryTopComponent", persistenceType = TopComponent.PERSISTENCE_NEVER) +@TopComponent.Registration(mode = "discovery", openAtStartup = false) +@RetainLocation("discovery") +@NbBundle.Messages("DiscoveryTopComponent.name= File Discovery") +public final class DiscoveryTopComponent extends TopComponent { private static final long serialVersionUID = 1L; private final FileSearchPanel fileSearchPanel; @@ -47,9 +55,10 @@ class FileDiscoveryDialog extends javax.swing.JDialog { /** * Creates new form FileDiscoveryDialog */ - FileDiscoveryDialog(java.awt.Frame parent, boolean modal, SleuthkitCase caseDb, EamDb centralRepoDb) { - super((JFrame) WindowManager.getDefault().getMainWindow(), Bundle.FileSearchPanel_dialogTitle_text(), modal); + @ThreadConfined(type = ThreadConfined.ThreadType.AWT) + public DiscoveryTopComponent(SleuthkitCase caseDb, EamDb centralRepoDb) { initComponents(); + setName(Bundle.DiscoveryTopComponent_name()); explorerManager = new ExplorerManager(); fileSearchPanel = new FileSearchPanel(caseDb, centralRepoDb); dataContentPanel = DataContentPanel.createInstance(); @@ -100,21 +109,19 @@ class FileDiscoveryDialog extends javax.swing.JDialog { }); } - /** - * Show the dialog - */ - void display() { - this.setLocationRelativeTo(WindowManager.getDefault().getMainWindow()); - setVisible(true); + @Override + public void componentOpened() { + super.componentOpened(); + WindowManager.getDefault().setTopComponentFloating(this, true); } @Override - public void dispose() { + protected void componentClosed() { fileSearchPanel.cancelSearch(); FileSearch.clearCache(); DiscoveryEvents.getDiscoveryEventBus().unregister(groupListPanel); DiscoveryEvents.getDiscoveryEventBus().unregister(resultsPanel); - super.dispose(); + super.componentClosed(); } /** @@ -130,8 +137,8 @@ class FileDiscoveryDialog extends javax.swing.JDialog { leftSplitPane = new javax.swing.JSplitPane(); rightSplitPane = new javax.swing.JSplitPane(); - setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setPreferredSize(new java.awt.Dimension(1100, 700)); + setLayout(new java.awt.BorderLayout()); mainSplitPane.setDividerLocation(550); mainSplitPane.setResizeWeight(0.2); @@ -147,9 +154,7 @@ class FileDiscoveryDialog extends javax.swing.JDialog { rightSplitPane.setResizeWeight(0.5); mainSplitPane.setRightComponent(rightSplitPane); - getContentPane().add(mainSplitPane, java.awt.BorderLayout.CENTER); - - pack(); + add(mainSplitPane, java.awt.BorderLayout.CENTER); }// //GEN-END:initComponents diff --git a/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryTestAction.java b/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryTestAction.java index 75baedb528..3c4c14acbf 100644 --- a/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryTestAction.java +++ b/Core/src/org/sleuthkit/autopsy/filequery/FileDiscoveryTestAction.java @@ -65,9 +65,9 @@ public final class FileDiscoveryTestAction extends CallableSystemAction { } } //modal set to true currently to prevent multiple dialogs being opened because messaging uses a shared eventbus - FileDiscoveryDialog dialog = new FileDiscoveryDialog(WindowManager.getDefault().getMainWindow(), true, Case.getCurrentCase().getSleuthkitCase(), crDb); + DiscoveryTopComponent discoveryTc = new DiscoveryTopComponent(Case.getCurrentCase().getSleuthkitCase(), crDb); // Display the dialog - dialog.display(); + discoveryTc.open(); }