Autopsy  4.19.3
Graphical digital forensics platform for The Sleuth Kit and other tools.
Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer Class Reference

Inherits JPanel, and org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Classes

class  AnnotationWorker
 

Public Member Functions

 AnnotationsContentViewer ()
 
DataContentViewer createInstance ()
 
Component getComponent ()
 
default String getTitle (Node node)
 
String getTitle ()
 
String getToolTip ()
 
int isPreferred (Node node)
 
boolean isSupported (Node node)
 
void resetComponent ()
 
void setNode (Node node)
 

Protected Member Functions

void finalize () throws Throwable
 

Private Member Functions

void initComponents ()
 
void refresh ()
 
void registerListeners ()
 
void unregisterListeners ()
 
void updateData (Node node, boolean forceReset)
 

Static Private Member Functions

static Pair< Long, Long > getIdsFromEvent (PropertyChangeEvent evt)
 

Private Attributes

final PropertyChangeListener caseEventListener
 
Long curArtifactId
 
Long curContentId
 
final PropertyChangeListener ingestEventListener
 
Node node
 
javax.swing.JTextPane textPanel
 
final Object updateLock = new Object()
 
final PropertyChangeListener weakCaseEventListener = WeakListeners.propertyChange(caseEventListener, null)
 
final PropertyChangeListener weakIngestEventListener = WeakListeners.propertyChange(ingestEventListener, null)
 
AnnotationWorker worker = null
 

Static Private Attributes

static final Set< BlackboardArtifact.Type > ARTIFACT_TYPES_OF_INTEREST
 
static final Set< Case.Events > CASE_EVENTS_OF_INTEREST
 
static final Set< IngestManager.IngestModuleEvent > INGEST_MODULE_EVENTS_OF_INTEREST = EnumSet.of(IngestManager.IngestModuleEvent.DATA_ADDED)
 
static final Logger logger = Logger.getLogger(AnnotationsContentViewer.class.getName())
 
static final long serialVersionUID = 1L
 

Detailed Description

Annotations view of file contents.

Definition at line 62 of file AnnotationsContentViewer.java.

Constructor & Destructor Documentation

org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.AnnotationsContentViewer ( )

Member Function Documentation

DataContentViewer org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.createInstance ( )

Create and return a new instance of your viewer. The reason that this is needed is because the specific viewer modules will be found via NetBeans Lookup and the type will only be DataContentViewer. This method is used to get an instance of your specific type.

Returns
A new instance of the viewer

Implements org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Definition at line 329 of file AnnotationsContentViewer.java.

void org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.finalize ( ) throws Throwable
protected

Definition at line 161 of file AnnotationsContentViewer.java.

Component org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.getComponent ( )

Return the Swing Component to display. Implementations of this method that extend JPanel and do a 'return this;'. Otherwise return an internal instance of the JPanel.

Returns
the component which is displayed for this viewer

Implements org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Definition at line 344 of file AnnotationsContentViewer.java.

static Pair<Long, Long> org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.getIdsFromEvent ( PropertyChangeEvent  evt)
staticprivate

Returns a pair of the artifact id (or null) and the content id (or null) for the case event.

Parameters
evtThe case event.
Returns
A pair of the artifact id (or null) and the content id (or null) for the case event.

Definition at line 191 of file AnnotationsContentViewer.java.

default String org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.getTitle ( Node  node)
inherited

Returns the title of this viewer to display in the tab.

Parameters
nodeThe node to be viewed in the DataContentViewer.
Returns
the title of DataContentViewer.

Implemented in org.sleuthkit.autopsy.contentviewers.Metadata.

Definition at line 61 of file DataContentViewer.java.

References org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.getTitle().

String org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.getTitle ( )

Returns the title of this viewer to display in the tab.

Returns
the title of DataContentViewer

Implements org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Definition at line 319 of file AnnotationsContentViewer.java.

String org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.getToolTip ( )

Returns a short description of this viewer to use as a tool tip for its tab.

Returns
the tooltip for this TextViewer

Implements org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Definition at line 324 of file AnnotationsContentViewer.java.

void org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.initComponents ( )
private

This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form Editor.

Definition at line 290 of file AnnotationsContentViewer.java.

int org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.isPreferred ( Node  node)

Checks whether the given viewer is preferred for the Node. This is a bit subjective, but the idea is that Autopsy wants to display the most relevant tab. The more generic the viewer, the lower the return value should be. This will only be called on viewers that support the given node (i.e., isSupported() has already returned true).

The following are some examples of the current levels in use. If the selected node is an artifact, the level may be determined by both the artifact and its associated file.

Level 8 - Used for viewers that summarize a data artifact and display a relevant subset to help the examiner decide if they should look into it further. Not currently used by any modules, but an example would be a module that summarizes an email message.

Level 7 - Used for data artifact viewers. These have higher priority over file content viewers because a Node will likely have the ‘source’ file for a data artifact and we want to give the artifact priority. Currently used by the Data Artifacts viewer.

Level 6 - Used for type-specific file content viewers that summarize the file content and display a relevant subset. These viewers help the examiner determine if the file is worth looking into further. Examples of this would be Video Triage Module that displays a subset of a video or a document.

Level 5 - Used for type-specific file content viewers that are optimized for that type, such as displaying an image or a PDF file with images and proper layout. Currently used by the Application viewer.

Level 4 - Used for type-specific file content viewers that are not optimized. For example, displaying only the plain text from a PDF would be at this level, but displaying the same PDF with images and layout would be level 5. Currently used by the Text viewer that returns text from Solr.

Level 3 - Used for viewing Data Artifacts that refer to files and the user may want to view the files more than the artifact itself. This is currently used by the Data Artifact viewer when a Web Download artifact is selected.

Level 2 - Used for viewing Analysis Results. This is a lower priority than Data Artifacts and file content because Analysis Results are used to identify content of interest and therefore the content itself should be shown. Currently used by the Analysis Results viewer. * Level 1 - Used for metadata viewers that give more information and context about the primary file or artifact. Currently used by Metadata, Annotations, Context, Other Occurrences, and OS Account.

Level 0 - Used for general purpose file content viewers that are not file specific and will always be enabled. Currently used by Text/Strings and Hex.

Parameters
nodeNode to check for preference
Returns
an int (0-10) higher return means the viewer has higher priority

Implements org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Definition at line 339 of file AnnotationsContentViewer.java.

References org.sleuthkit.autopsy.contentviewers.utils.ViewerPriority.viewerPriority.LevelOne.

boolean org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.isSupported ( Node  node)

Checks whether the given node is supported by the viewer. This will be used to enable or disable the tab for the viewer.

Parameters
nodeNode to check for support
Returns
True if the node can be displayed / processed, else false

Implements org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Definition at line 334 of file AnnotationsContentViewer.java.

References org.sleuthkit.autopsy.contentviewers.annotations.AnnotationUtils.isSupported().

void org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.refresh ( )
private

Refreshes the data displayed.

Definition at line 244 of file AnnotationsContentViewer.java.

void org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.registerListeners ( )
private
void org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.resetComponent ( )

Resets the contents of the viewer / component.

Implements org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Definition at line 349 of file AnnotationsContentViewer.java.

void org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.setNode ( Node  selectedNode)

Autopsy will call this when this panel is focused with the file that should be analyzed. When called with null, must clear all references to previous nodes.

Parameters
selectedNodethe node which is used to determine what is displayed in this viewer

Implements org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer.

Definition at line 174 of file AnnotationsContentViewer.java.

void org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.unregisterListeners ( )
private
void org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.updateData ( Node  node,
boolean  forceReset 
)
private

Updates data displayed in the viewer.

Parameters
nodeThe node to use for data.
forceResetIf true, forces a reset cancelling the previous worker if one exists and clearing data in the component. If false, only submits a worker if no previous worker is running.

Definition at line 259 of file AnnotationsContentViewer.java.

Member Data Documentation

final Set<BlackboardArtifact.Type> org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.ARTIFACT_TYPES_OF_INTEREST
staticprivate
Initial value:
= ImmutableSet.of(
BlackboardArtifact.Type.TSK_HASHSET_HIT,
BlackboardArtifact.Type.TSK_INTERESTING_FILE_HIT,
BlackboardArtifact.Type.TSK_INTERESTING_ITEM
)

("deprecation") - we need to support already existing interesting file and artifact hits.

Definition at line 81 of file AnnotationsContentViewer.java.

final Set<Case.Events> org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.CASE_EVENTS_OF_INTEREST
staticprivate
Initial value:
= EnumSet.of(
Case.Events.BLACKBOARD_ARTIFACT_TAG_ADDED,
Case.Events.BLACKBOARD_ARTIFACT_TAG_DELETED,
Case.Events.CONTENT_TAG_ADDED,
Case.Events.CONTENT_TAG_DELETED,
Case.Events.CR_COMMENT_CHANGED)

Definition at line 67 of file AnnotationsContentViewer.java.

final PropertyChangeListener org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.caseEventListener
private
Initial value:
= (evt) -> {
Long curArtifactId = AnnotationsContentViewer.this.curArtifactId;
Long curContentId = AnnotationsContentViewer.this.curContentId;
if (curArtifactId == null && curContentId == null) {
return;
}
Pair<Long, Long> artifactContentId = getIdsFromEvent(evt);
Long artifactId = artifactContentId.getLeft();
Long contentId = artifactContentId.getRight();
if ((curArtifactId != null && curArtifactId.equals(artifactId)) || (curContentId != null && curContentId.equals(contentId))) {
}
}

Definition at line 116 of file AnnotationsContentViewer.java.

Long org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.curArtifactId
private

Definition at line 140 of file AnnotationsContentViewer.java.

Long org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.curContentId
private

Definition at line 141 of file AnnotationsContentViewer.java.

final Set<IngestManager.IngestModuleEvent> org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.INGEST_MODULE_EVENTS_OF_INTEREST = EnumSet.of(IngestManager.IngestModuleEvent.DATA_ADDED)
staticprivate

Definition at line 74 of file AnnotationsContentViewer.java.

final PropertyChangeListener org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.ingestEventListener
private
Initial value:
= (evt) -> {
Long curArtifactId = AnnotationsContentViewer.this.curArtifactId;
Long curContentId = AnnotationsContentViewer.this.curContentId;
if (curArtifactId == null && curContentId == null) {
return;
}
if (IngestManager.IngestModuleEvent.DATA_ADDED.toString().equals(evt.getPropertyName())
&& evt.getOldValue() instanceof ModuleDataEvent) {
ModuleDataEvent moduleDataEvent = (ModuleDataEvent) evt.getOldValue();
if (ARTIFACT_TYPES_OF_INTEREST.contains(moduleDataEvent.getBlackboardArtifactType())) {
for (BlackboardArtifact artifact : moduleDataEvent.getArtifacts()) {
if ((curArtifactId != null && artifact.getArtifactID() == curArtifactId)
|| (curContentId != null && artifact.getObjectID() == curContentId)) {
return;
}
}
}
}
}

Definition at line 87 of file AnnotationsContentViewer.java.

final Logger org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.logger = Logger.getLogger(AnnotationsContentViewer.class.getName())
staticprivate

Definition at line 65 of file AnnotationsContentViewer.java.

Node org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.node
private

Definition at line 139 of file AnnotationsContentViewer.java.

final long org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.serialVersionUID = 1L
staticprivate

Definition at line 64 of file AnnotationsContentViewer.java.

javax.swing.JTextPane org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.textPanel
private

Definition at line 315 of file AnnotationsContentViewer.java.

final Object org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.updateLock = new Object()
private

Definition at line 136 of file AnnotationsContentViewer.java.

final PropertyChangeListener org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.weakCaseEventListener = WeakListeners.propertyChange(caseEventListener, null)
private

Definition at line 134 of file AnnotationsContentViewer.java.

final PropertyChangeListener org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.weakIngestEventListener = WeakListeners.propertyChange(ingestEventListener, null)
private

Definition at line 114 of file AnnotationsContentViewer.java.

AnnotationWorker org.sleuthkit.autopsy.contentviewers.annotations.AnnotationsContentViewer.worker = null
private

Definition at line 138 of file AnnotationsContentViewer.java.


The documentation for this class was generated from the following file:

Copyright © 2012-2022 Basis Technology. Generated on: Tue Jun 27 2023
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.