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

Inherits org.sleuthkit.autopsy.corecomponentinterfaces.TextViewer.

Classes

class  NextFindActionListener
 
class  NextPageActionListener
 
class  PrevFindActionListener
 
class  PrevPageActionListener
 
class  SolrIsFullyIndexedCache
 
class  SourceChangeActionListener
 

Public Member Functions

 ExtractedTextViewer ()
 
TextViewer createInstance ()
 
synchronized Component getComponent ()
 
String getTitle ()
 
String getToolTip ()
 
int isPreferred (Node node)
 
boolean isSupported (Node node)
 
void resetComponent ()
 
void setNode (Node selectedNode)
 
void setNode (final Node node)
 

Private Member Functions

boolean ableToExtractTextFromFile (AbstractFile file)
 
ExtractedText getRawArtifactText (BlackboardArtifact artifact) throws TskCoreException, NoCurrentCaseException
 
void nextPage ()
 
void previousPage ()
 
void scrollToCurrentHit ()
 
void setPanel (String contentName, List< ExtractedText > sources)
 
boolean solrHasFullyIndexedContent (Long objectId)
 

Static Private Member Functions

static ExtractedText getAccountsText (Content content, Lookup nodeLookup) throws TskCoreException
 

Private Attributes

volatile Node currentNode = null
 
ExtractedText currentSource = null
 
FileTypeDetector fileTypeDetector = null
 
ExtractedContentPanel panel
 
SolrIsFullyIndexedCache solrCache = null
 

Static Private Attributes

static final Logger logger = Logger.getLogger(ExtractedTextViewer.class.getName())
 
static final BlackboardAttribute.Type TSK_ACCOUNT_TYPE = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ACCOUNT_TYPE)
 
static final BlackboardAttribute.Type TSK_ASSOCIATED_ARTIFACT_TYPE = new BlackboardAttribute.Type(TSK_ASSOCIATED_ARTIFACT)
 

Detailed Description

A text viewer that displays the indexed text associated with a file or an artifact, possibly marked up with HTML to highlight keyword hits.

Definition at line 63 of file ExtractedTextViewer.java.

Constructor & Destructor Documentation

org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.ExtractedTextViewer ( )

Constructs a text viewer that displays the indexed text associated with a file or an artifact, possibly marked up with HTML to highlight keyword hits. If text for the Content has not been fully indexed by Solr then attempt to extract text using one of text extractors.

Definition at line 84 of file ExtractedTextViewer.java.

References org.sleuthkit.autopsy.casemodule.Case.addEventTypeSubscriber(), org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.SolrIsFullyIndexedCache.clearCache(), and org.sleuthkit.autopsy.casemodule.Case.Events.CURRENT_CASE.

Member Function Documentation

boolean org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.ableToExtractTextFromFile ( AbstractFile  file)
private

Check if we can extract text for this file type using one of our text extractors. NOTE: the logic in this method should be similar and based on the logic of how KeywordSearchIngestModule decides which files to index.

Parameters
fileAbstract File
Returns
true if text can be extracted from file, else false

Definition at line 494 of file ExtractedTextViewer.java.

References org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector.getMIMEType().

TextViewer org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.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 TextViewer. This method is used to get an instance of your specific type.

Returns
A new instance of the viewer

Implements org.sleuthkit.autopsy.corecomponentinterfaces.TextViewer.

Definition at line 314 of file ExtractedTextViewer.java.

static ExtractedText org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.getAccountsText ( Content  content,
Lookup  nodeLookup 
) throws TskCoreException
staticprivate

Definition at line 281 of file ExtractedTextViewer.java.

synchronized Component org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.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.TextViewer.

Definition at line 319 of file ExtractedTextViewer.java.

ExtractedText org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.getRawArtifactText ( BlackboardArtifact  artifact) throws TskCoreException, NoCurrentCaseException
private
String org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.getTitle ( )

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

Returns
the title of TextViewer

Implements org.sleuthkit.autopsy.corecomponentinterfaces.TextViewer.

Definition at line 304 of file ExtractedTextViewer.java.

String org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.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.TextViewer.

Definition at line 309 of file ExtractedTextViewer.java.

int org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.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 6 - 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 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.TextViewer.

Definition at line 430 of file ExtractedTextViewer.java.

boolean org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.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.TextViewer.

Definition at line 340 of file ExtractedTextViewer.java.

void org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.nextPage ( )
private

Definition at line 634 of file ExtractedTextViewer.java.

void org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.previousPage ( )
private

Definition at line 667 of file ExtractedTextViewer.java.

void org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.resetComponent ( )

Resets the contents of the viewer / component.

Implements org.sleuthkit.autopsy.corecomponentinterfaces.TextViewer.

Definition at line 332 of file ExtractedTextViewer.java.

void org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.scrollToCurrentHit ( )
private

Definition at line 294 of file ExtractedTextViewer.java.

void org.sleuthkit.autopsy.corecomponentinterfaces.TextViewer.setNode ( Node  selectedNode)
inherited

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

Implemented in org.sleuthkit.autopsy.contentviewers.textcontentviewer.StringsTextViewer.

void org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.setNode ( final Node  node)

Sets the node displayed by the text viewer.

Parameters
nodeThe node to display

Pull the search results, file, artifact and report objects (if any) from the lookup.

Definition at line 104 of file ExtractedTextViewer.java.

void org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.setPanel ( String  contentName,
List< ExtractedText >  sources 
)
private

Set the MarkupSources for the panel to display (safe to call even if the panel hasn't been created yet)

Parameters
contentNameThe name of the content to be displayed
sourcesA list of ExtractedText that have different 'views' of the content.

Definition at line 442 of file ExtractedTextViewer.java.

boolean org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.solrHasFullyIndexedContent ( Long  objectId)
private

Check if Solr has indexed ALL of the content for a given node. Note that in some situations Solr only indexes parts of a file. This happens when an in-line KWS finds a KW hit in the file - only the chunks with the KW hit (+/- 1 chunk) get indexed by Solr. That is not enough for the purposes of this text viewer as we need to display all of the text in the file.

Parameters
objectId
Returns
true if Solr has content, else false

Definition at line 460 of file ExtractedTextViewer.java.

References org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.SolrIsFullyIndexedCache.containsKey(), org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.SolrIsFullyIndexedCache.getCombination(), org.sleuthkit.autopsy.keywordsearch.KeywordSearch.getServer(), org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.SolrIsFullyIndexedCache.putCombination(), and org.sleuthkit.autopsy.keywordsearch.Server.queryIsFullyIndexed().

Member Data Documentation

volatile Node org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.currentNode = null
private

Definition at line 71 of file ExtractedTextViewer.java.

ExtractedText org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.currentSource = null
private

Definition at line 72 of file ExtractedTextViewer.java.

FileTypeDetector org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.fileTypeDetector = null
private

Definition at line 73 of file ExtractedTextViewer.java.

final Logger org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.logger = Logger.getLogger(ExtractedTextViewer.class.getName())
staticprivate

Definition at line 65 of file ExtractedTextViewer.java.

ExtractedContentPanel org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.panel
private

Definition at line 70 of file ExtractedTextViewer.java.

SolrIsFullyIndexedCache org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.solrCache = null
private

Definition at line 76 of file ExtractedTextViewer.java.

final BlackboardAttribute.Type org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.TSK_ACCOUNT_TYPE = new BlackboardAttribute.Type(BlackboardAttribute.ATTRIBUTE_TYPE.TSK_ACCOUNT_TYPE)
staticprivate

Definition at line 68 of file ExtractedTextViewer.java.

final BlackboardAttribute.Type org.sleuthkit.autopsy.keywordsearch.ExtractedTextViewer.TSK_ASSOCIATED_ARTIFACT_TYPE = new BlackboardAttribute.Type(TSK_ASSOCIATED_ARTIFACT)
staticprivate

Definition at line 67 of file ExtractedTextViewer.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.