mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
Fix bug in IGModule event handler and tidy up
This commit is contained in:
parent
612b7f135b
commit
0229a19be1
@ -188,8 +188,7 @@ public final class ImageGalleryController {
|
|||||||
return isCaseStale.get();
|
return isCaseStale.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
ImageGalleryController(@Nonnull Case newCase) throws TskCoreException {
|
ImageGalleryController(@Nonnull Case newCase) throws TskCoreException {
|
||||||
|
|
||||||
this.autopsyCase = Objects.requireNonNull(newCase);
|
this.autopsyCase = Objects.requireNonNull(newCase);
|
||||||
this.sleuthKitCase = newCase.getSleuthkitCase();
|
this.sleuthKitCase = newCase.getSleuthkitCase();
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ public class ImageGalleryModule {
|
|||||||
Case currentCase = Case.getCurrentCaseThrows();
|
Case currentCase = Case.getCurrentCaseThrows();
|
||||||
controller = new ImageGalleryController(currentCase);
|
controller = new ImageGalleryController(currentCase);
|
||||||
} catch (NoCurrentCaseException ex) {
|
} catch (NoCurrentCaseException ex) {
|
||||||
throw new TskCoreException("no current case", ex);
|
throw new TskCoreException("Failed to get ", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return controller;
|
return controller;
|
||||||
@ -97,7 +97,7 @@ public class ImageGalleryModule {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the implicit exit property attribute of the JavaFX Runtime to false
|
* Sets the implicit exit property attribute of the JavaFX runtime to false
|
||||||
* and sets up listeners for application events. It is invoked at
|
* and sets up listeners for application events. It is invoked at
|
||||||
* application start up by virtue of the OnStart annotation on the OnStart
|
* application start up by virtue of the OnStart annotation on the OnStart
|
||||||
* class in this package.
|
* class in this package.
|
||||||
@ -144,12 +144,8 @@ public class ImageGalleryModule {
|
|||||||
* @return True or false.
|
* @return True or false.
|
||||||
*/
|
*/
|
||||||
static boolean isEnabledforCase(Case theCase) {
|
static boolean isEnabledforCase(Case theCase) {
|
||||||
if (theCase != null) {
|
String enabledforCaseProp = new PerCaseProperties(theCase).getConfigSetting(ImageGalleryModule.MODULE_NAME, PerCaseProperties.ENABLED);
|
||||||
String enabledforCaseProp = new PerCaseProperties(theCase).getConfigSetting(ImageGalleryModule.MODULE_NAME, PerCaseProperties.ENABLED);
|
return isNotBlank(enabledforCaseProp) ? Boolean.valueOf(enabledforCaseProp) : ImageGalleryPreferences.isEnabledByDefault();
|
||||||
return isNotBlank(enabledforCaseProp) ? Boolean.valueOf(enabledforCaseProp) : ImageGalleryPreferences.isEnabledByDefault();
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -175,18 +171,6 @@ public class ImageGalleryModule {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void propertyChange(PropertyChangeEvent event) {
|
public void propertyChange(PropertyChangeEvent event) {
|
||||||
/*
|
|
||||||
* If running in "headless" mode, there is no need to process any
|
|
||||||
* ingest module events during the current session.
|
|
||||||
*
|
|
||||||
* Note that this check cannot be done earlier on start up because
|
|
||||||
* the "headless" property may not have been set yet.
|
|
||||||
*/
|
|
||||||
if (RuntimeProperties.runningWithGUI() == false) {
|
|
||||||
IngestManager.getInstance().removeIngestModuleEventListener(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Only process individual files and artifacts in "real time" on the
|
* Only process individual files and artifacts in "real time" on the
|
||||||
* node that is running the ingest job. On a remote node, image
|
* node that is running the ingest job. On a remote node, image
|
||||||
@ -252,36 +236,22 @@ public class ImageGalleryModule {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void propertyChange(PropertyChangeEvent event) {
|
public void propertyChange(PropertyChangeEvent event) {
|
||||||
/*
|
|
||||||
* If running in "headless" mode, there is no need to process any
|
|
||||||
* case events during the current session. Note that this check
|
|
||||||
* cannot be done earlier in onStart because the "headless" property
|
|
||||||
* may not have been set yet.
|
|
||||||
*/
|
|
||||||
if (RuntimeProperties.runningWithGUI() == false) {
|
|
||||||
Case.removePropertyChangeListener(this);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Case.Events eventType = Case.Events.valueOf(event.getPropertyName());
|
Case.Events eventType = Case.Events.valueOf(event.getPropertyName());
|
||||||
if (eventType == Case.Events.CURRENT_CASE) {
|
if (eventType == Case.Events.CURRENT_CASE) {
|
||||||
synchronized (controllerLock) {
|
synchronized (controllerLock) {
|
||||||
if (event.getNewValue() != null && event.getNewValue() instanceof Case) {
|
if (event.getNewValue() != null) {
|
||||||
/*
|
/*
|
||||||
* CURRENT_CASE(_OPENED) event. Construct a new Image
|
* CURRENT_CASE(_OPENED) event.
|
||||||
* Gallery controller.
|
|
||||||
*/
|
*/
|
||||||
Case newCase = (Case) event.getNewValue();
|
Case newCase = (Case) event.getNewValue();
|
||||||
try {
|
try {
|
||||||
controller = new ImageGalleryController(newCase);
|
controller = new ImageGalleryController(newCase);
|
||||||
} catch (TskCoreException ex) {
|
} catch (TskCoreException ex) {
|
||||||
logger.log(Level.SEVERE, "Failed to construct controller for new case", ex);
|
logger.log(Level.SEVERE, String.format("Failed to construct controller for new case %s (%s)", newCase.getDisplayName(), newCase.getName()), ex);
|
||||||
}
|
}
|
||||||
} else if (event.getOldValue() != null && event.getOldValue() instanceof Case) {
|
} else if (event.getOldValue() != null) {
|
||||||
/*
|
/*
|
||||||
* CURRENT_CASE(_CLOSED) event. Shut down the controller
|
* CURRENT_CASE(_CLOSED) event.
|
||||||
* for the case and close the top component, if it is
|
|
||||||
* open.
|
|
||||||
*/
|
*/
|
||||||
SwingUtilities.invokeLater(ImageGalleryTopComponent::closeTopComponent);
|
SwingUtilities.invokeLater(ImageGalleryTopComponent::closeTopComponent);
|
||||||
controller.shutDown();
|
controller.shutDown();
|
||||||
@ -310,8 +280,8 @@ public class ImageGalleryModule {
|
|||||||
final ContentTagAddedEvent tagAddedEvent = (ContentTagAddedEvent) event;
|
final ContentTagAddedEvent tagAddedEvent = (ContentTagAddedEvent) event;
|
||||||
long objId = tagAddedEvent.getAddedTag().getContent().getId();
|
long objId = tagAddedEvent.getAddedTag().getContent().getId();
|
||||||
DrawableDB drawableDB = currentController.getDatabase();
|
DrawableDB drawableDB = currentController.getDatabase();
|
||||||
drawableDB.addTagCache(objId);
|
drawableDB.addTagCache(objId); // RJCTODO: Why add the tag to the cache before doing the in DB check?
|
||||||
if (drawableDB.isInDB(objId)) { // RJCTODO: Put in cache before in DB check?
|
if (drawableDB.isInDB(objId)) {
|
||||||
currentController.getTagsManager().fireTagAddedEvent(tagAddedEvent);
|
currentController.getTagsManager().fireTagAddedEvent(tagAddedEvent);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -319,7 +289,7 @@ public class ImageGalleryModule {
|
|||||||
final ContentTagDeletedEvent tagDeletedEvent = (ContentTagDeletedEvent) event;
|
final ContentTagDeletedEvent tagDeletedEvent = (ContentTagDeletedEvent) event;
|
||||||
if (currentController.getDatabase().isInDB(tagDeletedEvent.getDeletedTagInfo().getContentID())) {
|
if (currentController.getDatabase().isInDB(tagDeletedEvent.getDeletedTagInfo().getContentID())) {
|
||||||
currentController.getTagsManager().fireTagDeletedEvent(tagDeletedEvent);
|
currentController.getTagsManager().fireTagDeletedEvent(tagDeletedEvent);
|
||||||
}
|
} // RJCTODO: Why not remove the tag from the cache?
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
logger.log(Level.SEVERE, String.format("Received %s event with no subscription", event.getPropertyName())); //NON-NLS
|
logger.log(Level.SEVERE, String.format("Received %s event with no subscription", event.getPropertyName())); //NON-NLS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user