19 package org.sleuthkit.autopsy.casemodule;
21 import java.awt.Cursor;
22 import java.awt.event.ActionEvent;
23 import java.awt.event.ActionListener;
25 import javax.swing.JFileChooser;
26 import javax.swing.JOptionPane;
27 import javax.swing.SwingUtilities;
28 import javax.swing.filechooser.FileFilter;
29 import javax.swing.filechooser.FileNameExtensionFilter;
30 import org.openide.util.NbBundle;
31 import org.openide.util.lookup.ServiceProvider;
32 import org.openide.windows.WindowManager;
35 import org.openide.DialogDescriptor;
36 import org.openide.DialogDisplayer;
37 import org.openide.NotifyDescriptor;
39 import java.util.logging.Level;
45 @ServiceProvider(service = CaseOpenAction.class)
49 private static final String PROP_BASECASE =
"LBL_BaseCase_PATH";
50 private final JFileChooser fileChooser =
new JFileChooser();
57 caseMetadataFileFilter =
new FileNameExtensionFilter(NbBundle.getMessage(
CaseOpenAction.class,
"CaseOpenAction.autFilter.title",
Version.
getName(),
Case.CASE_DOT_EXTENSION),
Case.CASE_EXTENSION);
58 fileChooser.setDragEnabled(
false);
59 fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
60 fileChooser.setMultiSelectionEnabled(
false);
61 fileChooser.setFileFilter(caseMetadataFileFilter);
81 NotifyDescriptor descriptor =
new NotifyDescriptor.Confirmation(
82 NbBundle.getMessage(
this.getClass(),
"CloseCaseWhileIngesting.Warning"),
83 NbBundle.getMessage(
this.getClass(),
"CloseCaseWhileIngesting.Warning.title"),
84 NotifyDescriptor.YES_NO_OPTION, NotifyDescriptor.WARNING_MESSAGE);
85 descriptor.setValue(NotifyDescriptor.NO_OPTION);
86 Object res = DialogDisplayer.getDefault().notify(descriptor);
87 if (res != null && res == DialogDescriptor.YES_OPTION) {
88 Case currentCase = null;
92 }
catch (IllegalStateException ignored) {
97 logger.log(Level.SEVERE, String.format(
"Error closing case at %s while ingest was running", (null != currentCase ? currentCase.
getCaseDirectory() :
"?")), ex);
108 int retval = fileChooser.showOpenDialog(WindowManager.getDefault().getMainWindow());
109 if (retval == JFileChooser.APPROVE_OPTION) {
119 final String path = fileChooser.getSelectedFile().getPath();
120 String dirPath = fileChooser.getSelectedFile().getParent();
122 WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
127 logger.log(Level.SEVERE, String.format(
"Error opening case with metadata file path %s", path), ex);
128 SwingUtilities.invokeLater(() -> {
129 WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
130 JOptionPane.showMessageDialog(
131 WindowManager.getDefault().getMainWindow(),
133 NbBundle.getMessage(this.getClass(),
"CaseOpenAction.msgDlg.cantOpenCase.title"),
134 JOptionPane.ERROR_MESSAGE);
static synchronized IngestManager getInstance()
void actionPerformed(ActionEvent e)
String getCaseDirectory()
boolean isIngestRunning()
final FileFilter caseMetadataFileFilter
static synchronized void setConfigSetting(String moduleName, String settingName, String settingVal)
static String getConfigSetting(String moduleName, String settingName)
static void open(String caseMetadataFilePath)
static final String MAIN_SETTINGS
static Case getCurrentCase()
synchronized static Logger getLogger(String name)
static StartupWindowProvider getInstance()
static boolean isCaseOpen()