mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-17 10:17:41 +00:00
first pass at reimplementing common search results with CommonSearchNode
This commit is contained in:
parent
b42966c8fb
commit
0e19f28958
@ -22,9 +22,7 @@ import java.util.List;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Node;
|
||||
import org.sleuthkit.autopsy.datamodel.FileNode;
|
||||
import org.sleuthkit.autopsy.directorytree.DataResultFilterNode;
|
||||
import org.sleuthkit.autopsy.directorytree.DirectoryTreeTopComponent;
|
||||
import org.sleuthkit.autopsy.datamodel.CommonFileNode;
|
||||
|
||||
/**
|
||||
* Makes nodes for common files search results.
|
||||
@ -41,7 +39,7 @@ final class CommonFilesChildren extends Children.Keys<AbstractFile> {
|
||||
Node[] node = new Node[1];
|
||||
|
||||
//TODO replace FileNode with our own subclass of its base type or similar (use CommonFileNode once its finished)
|
||||
node[0] = new DataResultFilterNode(new FileNode(t, false), DirectoryTreeTopComponent.findInstance().getExplorerManager());
|
||||
node[0] = new CommonFileNode(t);
|
||||
return node;
|
||||
}
|
||||
}
|
||||
|
@ -23,15 +23,12 @@ import java.awt.event.ActionListener;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JOptionPane;
|
||||
import javax.swing.SwingWorker;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.windows.TopComponent;
|
||||
import org.openide.windows.WindowManager;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
|
||||
import org.sleuthkit.autopsy.corecomponents.DataResultTopComponent;
|
||||
import org.sleuthkit.autopsy.corecomponents.TableFilterNode;
|
||||
import org.sleuthkit.autopsy.coreutils.Logger;
|
||||
import org.sleuthkit.autopsy.coreutils.MessageNotifyUtil;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
@ -105,13 +102,10 @@ public final class CommonFilesPanel extends javax.swing.JPanel {
|
||||
|
||||
CommonFilesSearchNode contentFilesNode = new CommonFilesSearchNode(contentList);
|
||||
|
||||
//TODO can use DataResultFilterNode in addition to TableFilterNode
|
||||
TableFilterNode tableFilterNode = new TableFilterNode(contentFilesNode, true, contentFilesNode.getName());
|
||||
|
||||
TopComponent component = DataResultTopComponent.createInstance(
|
||||
title,
|
||||
pathText,
|
||||
tableFilterNode,
|
||||
contentFilesNode,
|
||||
contentList.size());
|
||||
|
||||
component.requestActive(); // make it the active top component
|
||||
|
@ -18,22 +18,80 @@
|
||||
*/
|
||||
package org.sleuthkit.autopsy.datamodel;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.openide.nodes.AbstractNode;
|
||||
import org.openide.nodes.Children;
|
||||
import org.openide.nodes.Sheet;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.datamodel.AbstractFile;
|
||||
|
||||
/**
|
||||
* Encapsulates data being pushed to Common Files component in top right pane.
|
||||
*/
|
||||
public class CommonFileNode extends AbstractNode {
|
||||
|
||||
private final AbstractFile content;
|
||||
|
||||
public CommonFileNode(AbstractFile fsContent) {
|
||||
super(Children.LEAF);
|
||||
this.content = fsContent;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Sheet createSheet(){
|
||||
return null; //TODO
|
||||
}
|
||||
protected Sheet createSheet() {
|
||||
Sheet s = super.createSheet();
|
||||
Sheet.Set ss = s.get(Sheet.PROPERTIES);
|
||||
if (ss == null) {
|
||||
ss = Sheet.createPropertiesSet();
|
||||
s.put(ss);
|
||||
}
|
||||
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
fillPropertyMap(map, content);
|
||||
|
||||
final String NO_DESCR = Bundle.AbstractFsContentNode_noDesc_text();
|
||||
for (CommonFilePropertyType propType : CommonFilePropertyType.values()) {
|
||||
final String propString = propType.toString();
|
||||
ss.put(new NodeProperty<>(propString, propString, NO_DESCR, map.get(propString)));
|
||||
}
|
||||
|
||||
// add tags property to the sheet
|
||||
//addTagProperty(ss);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill map with AbstractFile properties
|
||||
*
|
||||
* @param map map with preserved ordering, where property names/values
|
||||
* are put
|
||||
* @param content The content to get properties for.
|
||||
*/
|
||||
static public void fillPropertyMap(Map<String, Object> map, AbstractFile content) {
|
||||
map.put(CommonFilePropertyType.Name.toString(), content.getName());
|
||||
map.put(CommonFilePropertyType.Md5Hash.toString(), StringUtils.defaultString(content.getMd5Hash()));
|
||||
}
|
||||
|
||||
@NbBundle.Messages({
|
||||
"CommonFilePropertyType.nameColLbl=Name",
|
||||
"CommonFilePropertyType.md5HashColLbl=MD5 Hash"})
|
||||
public enum CommonFilePropertyType {
|
||||
|
||||
Name(Bundle.CommonFilePropertyType_nameColLbl()),
|
||||
Md5Hash(Bundle.CommonFilePropertyType_md5HashColLbl());
|
||||
|
||||
final private String displayString;
|
||||
|
||||
private CommonFilePropertyType(String displayString){
|
||||
this.displayString = displayString;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return displayString;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user