mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-15 09:17:42 +00:00
Code that results in UI interaction needs to be invoked on the EDT.
This commit is contained in:
parent
f9e998dcd6
commit
4e1da6b73e
@ -18,6 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.sleuthkit.autopsy.casemodule;
|
package org.sleuthkit.autopsy.casemodule;
|
||||||
|
|
||||||
|
import java.awt.EventQueue;
|
||||||
import java.awt.Frame;
|
import java.awt.Frame;
|
||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
import java.beans.PropertyChangeSupport;
|
import java.beans.PropertyChangeSupport;
|
||||||
@ -1077,7 +1078,7 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//case change helper
|
//case change helper
|
||||||
private static void doCaseChange(Case toChangeTo) {
|
private static void doCaseChange(final Case toChangeTo) {
|
||||||
logger.log(Level.INFO, "Changing Case to: " + toChangeTo); //NON-NLS
|
logger.log(Level.INFO, "Changing Case to: " + toChangeTo); //NON-NLS
|
||||||
if (toChangeTo != null) { // new case is open
|
if (toChangeTo != null) { // new case is open
|
||||||
|
|
||||||
@ -1085,39 +1086,49 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
|||||||
Case.clearTempFolder();
|
Case.clearTempFolder();
|
||||||
checkSubFolders(toChangeTo);
|
checkSubFolders(toChangeTo);
|
||||||
|
|
||||||
// enable these menus
|
EventQueue.invokeLater(new Runnable() {
|
||||||
CallableSystemAction.get(AddImageAction.class).setEnabled(true);
|
@Override
|
||||||
CallableSystemAction.get(CaseCloseAction.class).setEnabled(true);
|
public void run() {
|
||||||
CallableSystemAction.get(CasePropertiesAction.class).setEnabled(true);
|
// enable these menus
|
||||||
CallableSystemAction.get(CaseDeleteAction.class).setEnabled(true); // Delete Case menu
|
CallableSystemAction.get(AddImageAction.class).setEnabled(true);
|
||||||
|
CallableSystemAction.get(CaseCloseAction.class).setEnabled(true);
|
||||||
|
CallableSystemAction.get(CasePropertiesAction.class).setEnabled(true);
|
||||||
|
CallableSystemAction.get(CaseDeleteAction.class).setEnabled(true); // Delete Case menu
|
||||||
|
|
||||||
|
if (toChangeTo.hasData()) {
|
||||||
|
// open all top components
|
||||||
|
CoreComponentControl.openCoreWindows();
|
||||||
|
} else {
|
||||||
|
// close all top components
|
||||||
|
CoreComponentControl.closeCoreWindows();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (toChangeTo.hasData()) {
|
|
||||||
// open all top components
|
|
||||||
CoreComponentControl.openCoreWindows();
|
|
||||||
} else {
|
|
||||||
// close all top components
|
|
||||||
CoreComponentControl.closeCoreWindows();
|
|
||||||
}
|
|
||||||
} else { // case is closed
|
} else { // case is closed
|
||||||
// close all top components first
|
EventQueue.invokeLater(new Runnable() {
|
||||||
CoreComponentControl.closeCoreWindows();
|
@Override
|
||||||
|
public void run() {
|
||||||
|
// close all top components first
|
||||||
|
CoreComponentControl.closeCoreWindows();
|
||||||
|
|
||||||
// disable these menus
|
// disable these menus
|
||||||
CallableSystemAction.get(AddImageAction.class).setEnabled(false); // Add Image menu
|
CallableSystemAction.get(AddImageAction.class).setEnabled(false); // Add Image menu
|
||||||
CallableSystemAction.get(CaseCloseAction.class).setEnabled(false); // Case Close menu
|
CallableSystemAction.get(CaseCloseAction.class).setEnabled(false); // Case Close menu
|
||||||
CallableSystemAction.get(CasePropertiesAction.class).setEnabled(false); // Case Properties menu
|
CallableSystemAction.get(CasePropertiesAction.class).setEnabled(false); // Case Properties menu
|
||||||
CallableSystemAction.get(CaseDeleteAction.class).setEnabled(false); // Delete Case menu
|
CallableSystemAction.get(CaseDeleteAction.class).setEnabled(false); // Delete Case menu
|
||||||
|
|
||||||
//clear pending notifications
|
//clear pending notifications
|
||||||
MessageNotifyUtil.Notify.clear();
|
MessageNotifyUtil.Notify.clear();
|
||||||
|
|
||||||
|
Frame f = WindowManager.getDefault().getMainWindow();
|
||||||
|
f.setTitle(Case.getAppName()); // set the window name to just application name
|
||||||
|
|
||||||
Frame f = WindowManager.getDefault().getMainWindow();
|
//try to force gc to happen
|
||||||
f.setTitle(Case.getAppName()); // set the window name to just application name
|
System.gc();
|
||||||
|
System.gc();
|
||||||
//try to force gc to happen
|
}
|
||||||
System.gc();
|
});
|
||||||
System.gc();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//log memory usage after case changed
|
//log memory usage after case changed
|
||||||
@ -1130,8 +1141,13 @@ public class Case implements SleuthkitCase.ErrorObserver {
|
|||||||
private static void doCaseNameChange(String newCaseName) {
|
private static void doCaseNameChange(String newCaseName) {
|
||||||
// update case name
|
// update case name
|
||||||
if (!newCaseName.equals("")) {
|
if (!newCaseName.equals("")) {
|
||||||
Frame f = WindowManager.getDefault().getMainWindow();
|
EventQueue.invokeLater(new Runnable() {
|
||||||
f.setTitle(newCaseName + " - " + Case.getAppName()); // set the window name to the new value
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Frame f = WindowManager.getDefault().getMainWindow();
|
||||||
|
f.setTitle(newCaseName + " - " + Case.getAppName()); // set the window name to the new value
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user