pass controller to DrawableTagsManager constructor, ImageGalleryController keeps reference to Case object

This commit is contained in:
millmanorama 2018-09-04 09:46:10 +02:00
parent 76668f53ec
commit 8df6dfb8f7
2 changed files with 145 additions and 135 deletions

View File

@ -140,6 +140,11 @@ public final class ImageGalleryController {
private ListeningExecutorService dbExecutor;
private Case autopsyCase;
public Case getAutopsyCase() {
return autopsyCase;
}
private SleuthkitCase sleuthKitCase;
private DrawableDB db;
@ -379,6 +384,7 @@ public final class ImageGalleryController {
if (null == theNewCase) {
reset();
} else {
this.autopsyCase = theNewCase;
this.sleuthKitCase = theNewCase.getSleuthkitCase();
this.db = DrawableDB.getDrawableDB(ImageGalleryModule.getModuleOutputDir(theNewCase), this);
@ -396,7 +402,7 @@ public final class ImageGalleryController {
tagsManager.unregisterListener(groupManager);
tagsManager.unregisterListener(categoryManager);
}
tagsManager = new DrawableTagsManager(theNewCase.getServices().getTagsManager());
tagsManager = new DrawableTagsManager(this);
tagsManager.registerListener(groupManager);
tagsManager.registerListener(categoryManager);
shutDownDBExecutor();
@ -420,6 +426,7 @@ public final class ImageGalleryController {
*/
public synchronized void reset() {
logger.info("resetting ImageGalleryControler to initial state."); //NON-NLS
autopsyCase = null;
selectionModel.clearSelection();
setListeningEnabled(false);
ThumbnailCache.getDefault().clearCache();

View File

@ -34,6 +34,7 @@ import org.sleuthkit.autopsy.casemodule.events.ContentTagDeletedEvent;
import org.sleuthkit.autopsy.casemodule.services.TagsManager;
import org.sleuthkit.autopsy.coreutils.Logger;
import org.sleuthkit.autopsy.datamodel.DhsImageCategory;
import org.sleuthkit.autopsy.imagegallery.ImageGalleryController;
import org.sleuthkit.datamodel.Content;
import org.sleuthkit.datamodel.ContentTag;
import org.sleuthkit.datamodel.TagName;
@ -58,7 +59,7 @@ public final class DrawableTagsManager {
private final TagName bookmarkTagName;
/**
* Used to distribute {@link TagsChangeEvent}s
* Used to distribute TagsChangeEvents
*/
private final EventBus tagsEventBus
= new AsyncEventBus(
@ -70,10 +71,10 @@ public final class DrawableTagsManager {
})
.build()));
public DrawableTagsManager(TagsManager autopsyTagsManager) throws TskCoreException {
this.autopsyTagsManager = autopsyTagsManager;
followUpTagName = getTagName(NbBundle.getMessage(DrawableTagsManager.class, "DrawableTagsManager.followUp"));
bookmarkTagName = getTagName(NbBundle.getMessage(DrawableTagsManager.class, "DrawableTagsManager.bookMark"));
public DrawableTagsManager(ImageGalleryController controller) throws TskCoreException {
this.autopsyTagsManager = controller.getAutopsyCase().getServices().getTagsManager();
followUpTagName = getTagName(Bundle.DrawableTagsManager_followUp());
bookmarkTagName = getTagName(Bundle.DrawableTagsManager_bookMark());
}
/**
@ -125,6 +126,8 @@ public final class DrawableTagsManager {
*
* @return All the TagNames that are not categories, in alphabetical order
* by displayName.
*
* @throws org.sleuthkit.datamodel.TskCoreException
*/
public List<TagName> getNonCategoryTagNames() throws TskCoreException {