19 package org.sleuthkit.autopsy.communications.relationships;
21 import java.util.Arrays;
22 import java.util.HashSet;
24 import java.util.TreeSet;
25 import java.util.logging.Level;
26 import org.openide.nodes.Children;
27 import org.openide.nodes.Node;
28 import org.openide.nodes.Sheet;
29 import org.openide.util.NbBundle;
41 final class AttachmentsChildren
extends Children.Keys<AbstractFile> {
43 private static final Logger logger = Logger.getLogger(AttachmentsChildren.class.getName());
45 private final Set<BlackboardArtifact> artifacts;
54 AttachmentsChildren(Set<BlackboardArtifact> artifacts) {
57 this.artifacts = artifacts;
63 protected Node[] createNodes(AbstractFile t) {
64 return new Node[]{
new AttachementNode(t)};
68 protected void addNotify() {
71 Set<AbstractFile> thumbnails =
new TreeSet<>((AbstractFile file1, AbstractFile file2) -> {
72 int result = Long.compare(file1.getSize(), file2.getSize());
74 result = file1.getName().compareTo(file2.getName());
80 artifacts.forEach((bba) -> {
82 for (Content childContent : bba.getChildren()) {
83 if (childContent instanceof AbstractFile) {
84 thumbnails.add((AbstractFile) childContent);
87 }
catch (TskCoreException ex) {
88 logger.log(Level.WARNING,
"Unable to get children from artifact.", ex);
98 static class AttachementNode
extends FileNode {
100 AttachementNode(AbstractFile file) {
105 protected Sheet createSheet() {
106 Sheet sheet = super.createSheet();
107 Set<String> keepProps =
new HashSet<>(Arrays.asList(
108 NbBundle.getMessage(AbstractAbstractFileNode.class,
"AbstractAbstractFileNode.nameColLbl"),
109 NbBundle.getMessage(AbstractAbstractFileNode.class,
"AbstractAbstractFileNode.createSheet.score.name"),
110 NbBundle.getMessage(AbstractAbstractFileNode.class,
"AbstractAbstractFileNode.createSheet.comment.name"),
111 NbBundle.getMessage(AbstractAbstractFileNode.class,
"AbstractAbstractFileNode.createSheet.count.name"),
112 NbBundle.getMessage(AbstractAbstractFileNode.class,
"AbstractAbstractFileNode.sizeColLbl"),
113 NbBundle.getMessage(AbstractAbstractFileNode.class,
"AbstractAbstractFileNode.mimeType"),
114 NbBundle.getMessage(AbstractAbstractFileNode.class,
"AbstractAbstractFileNode.knownColLbl")));
117 Sheet.Set sheetSet = sheet.get(Sheet.PROPERTIES);
118 for (Node.Property<?> p : sheetSet.getProperties()) {
119 if (!keepProps.contains(p.getName())) {
120 sheetSet.remove(p.getName());