reduce duplicate code

This commit is contained in:
jmillman 2015-06-22 15:11:16 -04:00
parent 7dfc17268e
commit ab8e68435d
5 changed files with 40 additions and 31 deletions

View File

@ -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;

View File

@ -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());

View File

@ -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<TagName>(DrawableAttribute.TAGS, evt.getAddedTag().getName());
groupKey = new GroupKey<TagName>(DrawableAttribute.TAGS, evt.getTag().getName());
} else if (groupBy == DrawableAttribute.CATEGORY) {
groupKey = new GroupKey<Category>(DrawableAttribute.CATEGORY, CategoryManager.categoryFromTagName(evt.getAddedTag().getName()));
groupKey = new GroupKey<Category>(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<TagName>(DrawableAttribute.TAGS, evt.getDeletedTag().getName());
groupKey = new GroupKey<TagName>(DrawableAttribute.TAGS, evt.getTag().getName());
} else if (groupBy == DrawableAttribute.CATEGORY) {
groupKey = new GroupKey<Category>(DrawableAttribute.CATEGORY, CategoryManager.categoryFromTagName(evt.getDeletedTag().getName()));
groupKey = new GroupKey<Category>(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);
}

View File

@ -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<ContentTag> 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() {

View File

@ -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<ContentTag> tagEvent, final Runnable runnable) {
getFileID().ifPresent(fileID -> {
if (Objects.equals(tagFileID, fileID)) {
updateUI();
if (Objects.equals(tagEvent.getTag().getContent().getId(), fileID)) {
runnable.run();
}
});
}