diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java index 6c6bd7c789..d81ff29938 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/ImageGalleryController.java @@ -491,13 +491,13 @@ public final class ImageGalleryController { break; case CONTENT_TAG_ADDED: final ContentTagAddedEvent tagAddedEvent = (ContentTagAddedEvent) evt; - if (getDatabase().isInDB((tagAddedEvent).getAddedTag().getContent().getId())) { + if (getDatabase().isInDB((tagAddedEvent).getTag().getContent().getId())) { getTagsManager().fireTagAddedEvent(tagAddedEvent); } break; case CONTENT_TAG_DELETED: final ContentTagDeletedEvent tagDeletedEvent = (ContentTagDeletedEvent) evt; - if (getDatabase().isInDB((tagDeletedEvent).getDeletedTag().getContent().getId())) { + if (getDatabase().isInDB((tagDeletedEvent).getTag().getContent().getId())) { getTagsManager().fireTagDeletedEvent(tagDeletedEvent); } break; diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java index 3a1a81e72d..309173f153 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/datamodel/CategoryManager.java @@ -226,7 +226,7 @@ public class CategoryManager { @Subscribe public void handleTagAdded(ContentTagAddedEvent event) { - ContentTag addedTag = event.getAddedTag(); + ContentTag addedTag = event.getTag(); if (isCategoryTagName(addedTag.getName())) { final DrawableTagsManager tagsManager = controller.getTagsManager(); try { @@ -256,7 +256,7 @@ public class CategoryManager { } @Subscribe public void handleTagDeleted(ContentTagDeletedEvent event) { - ContentTag deleted = event.getDeletedTag(); + ContentTag deleted = event.getTag(); if (isCategoryTagName(deleted.getName())) { Category deletedCat = CategoryManager.categoryFromTagName(deleted.getName()); diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/grouping/GroupManager.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/grouping/GroupManager.java index 90adfa76b8..d7819c6d5e 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/grouping/GroupManager.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/grouping/GroupManager.java @@ -541,11 +541,11 @@ public class GroupManager implements FileUpdateEvent.FileUpdateListener { public void handleTagAdded(ContentTagAddedEvent evt) { GroupKey groupKey = null; if (groupBy == DrawableAttribute.TAGS) { - groupKey = new GroupKey(DrawableAttribute.TAGS, evt.getAddedTag().getName()); + groupKey = new GroupKey(DrawableAttribute.TAGS, evt.getTag().getName()); } else if (groupBy == DrawableAttribute.CATEGORY) { - groupKey = new GroupKey(DrawableAttribute.CATEGORY, CategoryManager.categoryFromTagName(evt.getAddedTag().getName())); + groupKey = new GroupKey(DrawableAttribute.CATEGORY, CategoryManager.categoryFromTagName(evt.getTag().getName())); } - final long fileID = evt.getAddedTag().getContent().getId(); + final long fileID = evt.getTag().getContent().getId(); DrawableGroup g = getGroupForKey(groupKey); addFileToGroup(g, groupKey, fileID); @@ -567,11 +567,11 @@ public class GroupManager implements FileUpdateEvent.FileUpdateListener { public void handleTagDeleted(ContentTagDeletedEvent evt) { GroupKey groupKey = null; if (groupBy == DrawableAttribute.TAGS) { - groupKey = new GroupKey(DrawableAttribute.TAGS, evt.getDeletedTag().getName()); + groupKey = new GroupKey(DrawableAttribute.TAGS, evt.getTag().getName()); } else if (groupBy == DrawableAttribute.CATEGORY) { - groupKey = new GroupKey(DrawableAttribute.CATEGORY, CategoryManager.categoryFromTagName(evt.getDeletedTag().getName())); + groupKey = new GroupKey(DrawableAttribute.CATEGORY, CategoryManager.categoryFromTagName(evt.getTag().getName())); } - final long fileID = evt.getDeletedTag().getContent().getId(); + final long fileID = evt.getTag().getContent().getId(); DrawableGroup g = removeFromGroup(groupKey, fileID); } diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/DrawableTileBase.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/DrawableTileBase.java index 80c73b1ae9..428bd0b5f4 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/DrawableTileBase.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/DrawableTileBase.java @@ -62,6 +62,7 @@ import org.sleuthkit.autopsy.directorytree.ExtractAction; import org.sleuthkit.autopsy.directorytree.NewWindowViewAction; import org.sleuthkit.autopsy.events.ContentTagAddedEvent; import org.sleuthkit.autopsy.events.ContentTagDeletedEvent; +import org.sleuthkit.autopsy.events.TagEvent; import org.sleuthkit.autopsy.imagegallery.FileIDSelectionModel; import org.sleuthkit.autopsy.imagegallery.ImageGalleryTopComponent; import org.sleuthkit.autopsy.imagegallery.actions.AddDrawableTagAction; @@ -70,6 +71,7 @@ import org.sleuthkit.autopsy.imagegallery.actions.DeleteFollowUpTagAction; import org.sleuthkit.autopsy.imagegallery.actions.SwingMenuItemAdapter; import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableAttribute; import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableFile; +import org.sleuthkit.datamodel.ContentTag; import org.sleuthkit.datamodel.TagName; import org.sleuthkit.datamodel.TskCoreException; @@ -349,36 +351,36 @@ public abstract class DrawableTileBase extends DrawableUIBase { @Subscribe @Override public void handleTagAdded(ContentTagAddedEvent evt) { - getFileID().ifPresent(fileID -> { - try { - if (fileID == evt.getAddedTag().getContent().getId() - && evt.getAddedTag().getName().equals(getController().getTagsManager().getFollowUpTagName())) { - Platform.runLater(() -> { - followUpImageView.setImage(followUpIcon); - followUpToggle.setSelected(true); - }); - } - } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to get follow up status for file.", ex); - } + handleTagEvent(evt, () -> { + Platform.runLater(() -> { + followUpImageView.setImage(followUpIcon); + followUpToggle.setSelected(true); + }); }); } @Subscribe @Override public void handleTagDeleted(ContentTagDeletedEvent evt) { + handleTagEvent(evt, this::updateFollowUpIcon); + } + void handleTagEvent(TagEvent evt, Runnable runnable) { getFileID().ifPresent(fileID -> { try { - if (fileID == evt.getDeletedTag().getContent().getId() - && evt.getDeletedTag().getName().equals(getController().getTagsManager().getFollowUpTagName())) { - updateFollowUpIcon(); + final TagName followUpTagName = getController().getTagsManager().getFollowUpTagName(); + final ContentTag deletedTag = evt.getTag(); + + if (fileID == deletedTag.getContent().getId() + && deletedTag.getName().equals(followUpTagName)) { + runnable.run(); } } catch (TskCoreException ex) { - LOGGER.log(Level.SEVERE, "Failed to get follow up status for file.", ex); + LOGGER.log(Level.SEVERE, "Failed to get followup tag name. Unable to update follow up status for file. ", ex); } }); + } private void updateFollowUpIcon() { diff --git a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/MetaDataPane.java b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/MetaDataPane.java index d89db4116c..780513d16a 100644 --- a/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/MetaDataPane.java +++ b/ImageGallery/src/org/sleuthkit/autopsy/imagegallery/gui/MetaDataPane.java @@ -46,10 +46,12 @@ import org.apache.commons.lang3.StringUtils; import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.events.ContentTagAddedEvent; import org.sleuthkit.autopsy.events.ContentTagDeletedEvent; +import org.sleuthkit.autopsy.events.TagEvent; import org.sleuthkit.autopsy.imagegallery.ImageGalleryController; import org.sleuthkit.autopsy.imagegallery.datamodel.Category; import org.sleuthkit.autopsy.imagegallery.datamodel.CategoryChangeEvent; import org.sleuthkit.autopsy.imagegallery.datamodel.DrawableAttribute; +import org.sleuthkit.datamodel.ContentTag; import org.sleuthkit.datamodel.TagName; /** @@ -197,19 +199,24 @@ public class MetaDataPane extends DrawableUIBase { @Subscribe @Override public void handleTagAdded(ContentTagAddedEvent evt) { - handleTagChanged(evt.getAddedTag().getContent().getId()); + handleTagEvent(evt, this::updateUI); } @Subscribe @Override public void handleTagDeleted(ContentTagDeletedEvent evt) { - handleTagChanged(evt.getDeletedTag().getContent().getId()); + handleTagEvent(evt, this::updateUI); } - private void handleTagChanged(Long tagFileID) { + /** + * + * @param tagFileID the value of tagEvent + * @param runnable the value of runnable + */ + void handleTagEvent(TagEvent tagEvent, final Runnable runnable) { getFileID().ifPresent(fileID -> { - if (Objects.equals(tagFileID, fileID)) { - updateUI(); + if (Objects.equals(tagEvent.getTag().getContent().getId(), fileID)) { + runnable.run(); } }); }