19package org.sleuthkit.autopsy.contentviewers.analysisresults;
21import java.awt.Component;
22import java.util.Objects;
23import java.util.logging.Level;
24import java.util.logging.Logger;
25import javax.swing.SwingWorker;
26import org.openide.nodes.Node;
27import org.openide.util.NbBundle;
28import org.openide.util.lookup.ServiceProvider;
29import org.sleuthkit.autopsy.casemodule.Case;
30import org.sleuthkit.autopsy.casemodule.NoCurrentCaseException;
31import org.sleuthkit.autopsy.contentviewers.utils.ViewerPriority;
32import org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer;
33import org.sleuthkit.autopsy.datamodel.TskContentItem;
34import org.sleuthkit.autopsy.datasourcesummary.uiutils.DataFetchResult;
35import org.sleuthkit.autopsy.datasourcesummary.uiutils.DataFetchWorker;
36import org.sleuthkit.datamodel.Content;
37import org.sleuthkit.autopsy.datamodel.AnalysisResultItem;
38import org.sleuthkit.datamodel.TskCoreException;
53 private SwingWorker<?, ?>
worker =
null;
56 "AnalysisResultsContentViewer_title=Analysis Results"
60 return Bundle.AnalysisResultsContentViewer_title();
64 "AnalysisResultsContentViewer_tooltip=Viewer for Analysis Results related to the selected node."
68 return Bundle.AnalysisResultsContentViewer_tooltip();
88 "AnalysisResultsContentViewer_setNode_loadingMessage=Loading...",
89 "AnalysisResultsContentViewer_setNode_errorMessage=There was an error loading results.",})
90 public synchronized void setNode(Node node) {
106 panel.showMessage(Bundle.AnalysisResultsContentViewer_setNode_loadingMessage());
111 (selectedNode) ->
viewModel.getAnalysisResults(selectedNode),
112 (nodeAnalysisResults) -> {
113 if (nodeAnalysisResults.getResultType() == DataFetchResult.ResultType.SUCCESS) {
115 panel.displayResults(nodeAnalysisResults.getData());
118 panel.showMessage(Bundle.AnalysisResultsContentViewer_setNode_errorMessage());
129 if (Objects.isNull(node)) {
134 if (Objects.nonNull(analysisResultItem)) {
139 if (!Objects.isNull(contentItem)) {
146 logger.log(Level.SEVERE, String.format(
"Error getting analysis results for Content (object ID = %d)", content.getId()), ex);
SleuthkitCase getSleuthkitCase()
static Case getCurrentCaseThrows()
static final int PREFERRED_VALUE
int isPreferred(Node node)
final AnalysisResultsContentPanel panel
boolean isSupported(Node node)
DataContentViewer createInstance()
static final Logger logger
final AnalysisResultsViewModel viewModel
synchronized void setNode(Node node)
synchronized static Logger getLogger(String name)