19 package org.sleuthkit.autopsy.filesearch;
21 import java.awt.event.ActionEvent;
22 import java.beans.PropertyChangeEvent;
23 import java.util.EnumSet;
24 import org.openide.util.HelpCtx;
25 import org.openide.util.NbBundle;
26 import org.openide.util.actions.CallableSystemAction;
30 final class FileSearchAction
extends CallableSystemAction implements FileSearchProvider {
32 private static final long serialVersionUID = 1L;
33 private static FileSearchAction instance = null;
34 private static FileSearchDialog searchDialog;
38 setEnabled(Case.isCaseOpen());
39 Case.addEventTypeSubscriber(EnumSet.of(Case.Events.CURRENT_CASE), (PropertyChangeEvent evt) -> {
40 if (evt.getPropertyName().equals(Case.Events.CURRENT_CASE.toString())) {
41 setEnabled(evt.getNewValue() != null);
42 if (searchDialog != null && evt.getNewValue() != null){
43 searchDialog.resetCaseDependentFilters();
49 public static FileSearchAction getDefault() {
50 if (instance == null) {
51 instance =
new FileSearchAction();
57 public void actionPerformed(ActionEvent e) {
58 if (searchDialog == null) {
59 searchDialog =
new FileSearchDialog();
61 searchDialog.setVisible(
true);
65 public void performAction() {
66 if (searchDialog == null) {
67 searchDialog =
new FileSearchDialog();
69 searchDialog.setVisible(
true);
73 public String getName() {
74 return NbBundle.getMessage(this.getClass(),
"FileSearchAction.getName.text");
78 public HelpCtx getHelpCtx() {
79 return HelpCtx.DEFAULT_HELP;
83 protected boolean asynchronous() {
88 public void showDialog() {