mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-15 09:17:42 +00:00
1917 Mime Tree fixed when updating from empty to contents
This commit is contained in:
parent
cfeae34850
commit
f45b0b642b
@ -149,6 +149,8 @@ public interface DisplayableItemNodeVisitor<T> {
|
|||||||
|
|
||||||
T visit(FileTypesByMimeType.MediaSubTypeNode aThis);
|
T visit(FileTypesByMimeType.MediaSubTypeNode aThis);
|
||||||
|
|
||||||
|
T visit(FileTypesByMimeType.EmptyNode aThis);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Visitor with an implementable default behavior for all types. Override
|
* Visitor with an implementable default behavior for all types. Override
|
||||||
@ -218,6 +220,11 @@ public interface DisplayableItemNodeVisitor<T> {
|
|||||||
public T visit(FileTypesByMimeType.MediaSubTypeNode ftByMimeTypeMediaTypeNode) {
|
public T visit(FileTypesByMimeType.MediaSubTypeNode ftByMimeTypeMediaTypeNode) {
|
||||||
return defaultVisit(ftByMimeTypeMediaTypeNode);
|
return defaultVisit(ftByMimeTypeMediaTypeNode);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public T visit(FileTypesByMimeType.EmptyNode ftByMimeTypeEmptyNode) {
|
||||||
|
return defaultVisit(ftByMimeTypeEmptyNode);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public T visit(DeletedContentNode dcn) {
|
public T visit(DeletedContentNode dcn) {
|
||||||
return defaultVisit(dcn);
|
return defaultVisit(dcn);
|
||||||
|
@ -58,7 +58,6 @@ import org.sleuthkit.datamodel.TskData;
|
|||||||
class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
||||||
|
|
||||||
static SleuthkitCase skCase;
|
static SleuthkitCase skCase;
|
||||||
static final String EMPTY_MIME_TREE_STRING = "Data not available. Run file type identification module.";
|
|
||||||
/**
|
/**
|
||||||
* The nodes of this tree will be determined dynamically by the mimetypes
|
* The nodes of this tree will be determined dynamically by the mimetypes
|
||||||
* which exist in the database. This hashmap will store them with the media
|
* which exist in the database. This hashmap will store them with the media
|
||||||
@ -77,7 +76,7 @@ class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
|||||||
String eventType = evt.getPropertyName();
|
String eventType = evt.getPropertyName();
|
||||||
if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString())
|
if (eventType.equals(IngestManager.IngestJobEvent.COMPLETED.toString())
|
||||||
|| eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())
|
|| eventType.equals(IngestManager.IngestJobEvent.CANCELLED.toString())
|
||||||
// || eventType.equals(Case.Events.DATA_SOURCE_ADDED.toString())
|
// || eventType.equals(Case.Events.DATA_SOURCE_ADDED.toString())
|
||||||
|| eventType.equals(IngestManager.IngestModuleEvent.CONTENT_CHANGED.toString())) {
|
|| eventType.equals(IngestManager.IngestModuleEvent.CONTENT_CHANGED.toString())) {
|
||||||
/**
|
/**
|
||||||
* Checking for a current case is a stop gap measure until a
|
* Checking for a current case is a stop gap measure until a
|
||||||
@ -144,7 +143,7 @@ class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
|||||||
IngestManager.getInstance().addIngestJobEventListener(pcl);
|
IngestManager.getInstance().addIngestJobEventListener(pcl);
|
||||||
IngestManager.getInstance().addIngestModuleEventListener(pcl);
|
IngestManager.getInstance().addIngestModuleEventListener(pcl);
|
||||||
// Case.addPropertyChangeListener(pcl);
|
// Case.addPropertyChangeListener(pcl);
|
||||||
|
// populateHashMap();
|
||||||
FileTypesByMimeType.skCase = skCase;
|
FileTypesByMimeType.skCase = skCase;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,7 +171,7 @@ class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
|||||||
@Override
|
@Override
|
||||||
public boolean isLeafTypeNode() {
|
public boolean isLeafTypeNode() {
|
||||||
// if (!existingMimeTypes.isEmpty()) {
|
// if (!existingMimeTypes.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
// }
|
// }
|
||||||
// else {
|
// else {
|
||||||
// return true;
|
// return true;
|
||||||
@ -194,6 +193,7 @@ class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
|||||||
class FileTypesByMimeTypeNodeChildren extends ChildFactory<String> implements Observer {
|
class FileTypesByMimeTypeNodeChildren extends ChildFactory<String> implements Observer {
|
||||||
|
|
||||||
private SleuthkitCase skCase;
|
private SleuthkitCase skCase;
|
||||||
|
static final String EMPTY_MIME_TREE_STRING = "Data not available. Run file type identification module.";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -207,17 +207,21 @@ class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean createKeys(List<String> mediaTypeNodes) {
|
protected boolean createKeys(List<String> mediaTypeNodes) {
|
||||||
// if (!existingMimeTypes.isEmpty()) {
|
if (!existingMimeTypes.isEmpty()) {
|
||||||
mediaTypeNodes.addAll(getMediaTypeList());
|
mediaTypeNodes.addAll(getMediaTypeList());
|
||||||
// } else {
|
} else {
|
||||||
// mediaTypeNodes.add(EMPTY_MIME_TREE_STRING);
|
mediaTypeNodes.add(EMPTY_MIME_TREE_STRING);
|
||||||
// }
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Node createNodeForKey(String key) {
|
protected Node createNodeForKey(String key) {
|
||||||
|
if (!existingMimeTypes.isEmpty()) {
|
||||||
return new MediaTypeNode(key);
|
return new MediaTypeNode(key);
|
||||||
|
} else {
|
||||||
|
return new EmptyNode(EMPTY_MIME_TREE_STRING);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -228,6 +232,31 @@ class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class EmptyNode extends DisplayableItemNode {
|
||||||
|
|
||||||
|
EmptyNode(String name) {
|
||||||
|
super(Children.LEAF);
|
||||||
|
super.setName(name);
|
||||||
|
setName(name);
|
||||||
|
setDisplayName(name);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isLeafTypeNode() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T> T accept(DisplayableItemNodeVisitor<T> v) {
|
||||||
|
return v.visit(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getItemType() {
|
||||||
|
return getClass().getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class MediaTypeNode extends DisplayableItemNode {
|
class MediaTypeNode extends DisplayableItemNode {
|
||||||
|
|
||||||
String mediaType;
|
String mediaType;
|
||||||
@ -267,20 +296,14 @@ class FileTypesByMimeType extends Observable implements AutopsyVisitableItem {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean createKeys(List<String> mediaTypeNodes) {
|
protected boolean createKeys(List<String> mediaTypeNodes) {
|
||||||
// if (!existingMimeTypes.isEmpty() && !mediaType.equals(EMPTY_MIME_TREE_STRING)) {
|
mediaTypeNodes.addAll(existingMimeTypes.get(mediaType));
|
||||||
// System.out.println(mediaType);
|
return true;
|
||||||
// System.out.println(existingMimeTypes.size());
|
|
||||||
mediaTypeNodes.addAll(existingMimeTypes.get(mediaType));
|
|
||||||
return true;
|
|
||||||
// } else {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Node createNodeForKey(String subtype) {
|
protected Node createNodeForKey(String subtype) {
|
||||||
String mimeType = mediaType + "/" + subtype;
|
String mimeType = mediaType + "/" + subtype;
|
||||||
return new MediaSubTypeNode(mimeType);
|
return new MediaSubTypeNode(mimeType);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user