mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
Merge branch 'sleuthkit:develop' into develop
This commit is contained in:
commit
ea32abf166
@ -29,6 +29,7 @@ import java.awt.event.ActionListener;
|
|||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
import java.beans.PropertyChangeSupport;
|
import java.beans.PropertyChangeSupport;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.nio.file.InvalidPathException;
|
import java.nio.file.InvalidPathException;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
@ -1214,9 +1215,7 @@ public class Case {
|
|||||||
/**
|
/**
|
||||||
* Update the GUI to to reflect the current case.
|
* Update the GUI to to reflect the current case.
|
||||||
*/
|
*/
|
||||||
private static void updateGUIForCaseOpened(Case newCurrentCase) {
|
private static void updateGUIForCaseOpened(Case newCurrentCase) {
|
||||||
if (RuntimeProperties.runningWithGUI()) {
|
|
||||||
SwingUtilities.invokeLater(() -> {
|
|
||||||
/*
|
/*
|
||||||
* If the case database was upgraded for a new schema and a
|
* If the case database was upgraded for a new schema and a
|
||||||
* backup database was created, notify the user.
|
* backup database was created, notify the user.
|
||||||
@ -1242,17 +1241,31 @@ public class Case {
|
|||||||
String path = entry.getValue();
|
String path = entry.getValue();
|
||||||
boolean fileExists = (new File(path).isFile() || DriveUtils.driveExists(path));
|
boolean fileExists = (new File(path).isFile() || DriveUtils.driveExists(path));
|
||||||
if (!fileExists) {
|
if (!fileExists) {
|
||||||
int response = JOptionPane.showConfirmDialog(
|
try {
|
||||||
mainFrame,
|
// Using invokeAndWait means that the dialog will
|
||||||
NbBundle.getMessage(Case.class, "Case.checkImgExist.confDlg.doesntExist.msg", path),
|
// open on the EDT but this thread will wait for an
|
||||||
NbBundle.getMessage(Case.class, "Case.checkImgExist.confDlg.doesntExist.title"),
|
// answer. Using invokeLater would cause this loop to
|
||||||
JOptionPane.YES_NO_OPTION);
|
// end before all of the dialogs appeared.
|
||||||
if (response == JOptionPane.YES_OPTION) {
|
SwingUtilities.invokeAndWait(new Runnable() {
|
||||||
MissingImageDialog.makeDialog(obj_id, caseDb);
|
@Override
|
||||||
} else {
|
public void run() {
|
||||||
logger.log(Level.SEVERE, "User proceeding with missing image files"); //NON-NLS
|
int response = JOptionPane.showConfirmDialog(
|
||||||
|
mainFrame,
|
||||||
|
NbBundle.getMessage(Case.class, "Case.checkImgExist.confDlg.doesntExist.msg", path),
|
||||||
|
NbBundle.getMessage(Case.class, "Case.checkImgExist.confDlg.doesntExist.title"),
|
||||||
|
JOptionPane.YES_NO_OPTION);
|
||||||
|
if (response == JOptionPane.YES_OPTION) {
|
||||||
|
MissingImageDialog.makeDialog(obj_id, caseDb);
|
||||||
|
} else {
|
||||||
|
logger.log(Level.SEVERE, "User proceeding with missing image files"); //NON-NLS
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
} catch (InterruptedException | InvocationTargetException ex) {
|
||||||
|
logger.log(Level.SEVERE, "Failed to show missing image confirmation dialog", ex); //NON-NLS
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1270,14 +1283,16 @@ public class Case {
|
|||||||
CallableSystemAction.get(CommonAttributeSearchAction.class).setEnabled(true);
|
CallableSystemAction.get(CommonAttributeSearchAction.class).setEnabled(true);
|
||||||
CallableSystemAction.get(OpenOutputFolderAction.class).setEnabled(false);
|
CallableSystemAction.get(OpenOutputFolderAction.class).setEnabled(false);
|
||||||
CallableSystemAction.get(OpenDiscoveryAction.class).setEnabled(true);
|
CallableSystemAction.get(OpenDiscoveryAction.class).setEnabled(true);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Add the case to the recent cases tracker that supplies a list
|
* Add the case to the recent cases tracker that supplies a list
|
||||||
* of recent cases to the recent cases menu item and the
|
* of recent cases to the recent cases menu item and the
|
||||||
* open/create case dialog.
|
* open/create case dialog.
|
||||||
*/
|
*/
|
||||||
RecentCases.getInstance().addRecentCase(newCurrentCase.getDisplayName(), newCurrentCase.getMetadata().getFilePath().toString());
|
RecentCases.getInstance().addRecentCase(newCurrentCase.getDisplayName(), newCurrentCase.getMetadata().getFilePath().toString());
|
||||||
|
final boolean hasData = newCurrentCase.hasData();
|
||||||
|
|
||||||
|
SwingUtilities.invokeLater(() -> {
|
||||||
/*
|
/*
|
||||||
* Open the top components (windows within the main application
|
* Open the top components (windows within the main application
|
||||||
* window).
|
* window).
|
||||||
@ -1286,7 +1301,7 @@ public class Case {
|
|||||||
* opened via the DirectoryTreeTopComponent 'propertyChange()'
|
* opened via the DirectoryTreeTopComponent 'propertyChange()'
|
||||||
* method on a DATA_SOURCE_ADDED event.
|
* method on a DATA_SOURCE_ADDED event.
|
||||||
*/
|
*/
|
||||||
if (newCurrentCase.hasData()) {
|
if (hasData) {
|
||||||
CoreComponentControl.openCoreWindows();
|
CoreComponentControl.openCoreWindows();
|
||||||
} else {
|
} else {
|
||||||
//ensure that the DirectoryTreeTopComponent is open so that it's listener can open the core windows including making it visible.
|
//ensure that the DirectoryTreeTopComponent is open so that it's listener can open the core windows including making it visible.
|
||||||
@ -1300,7 +1315,6 @@ public class Case {
|
|||||||
*/
|
*/
|
||||||
mainFrame.setTitle(newCurrentCase.getDisplayName() + " - " + getNameForTitle());
|
mainFrame.setTitle(newCurrentCase.getDisplayName() + " - " + getNameForTitle());
|
||||||
});
|
});
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user