19package org.sleuthkit.autopsy.contentviewers;
21import com.google.common.base.Strings;
22import java.awt.Component;
23import java.util.HashMap;
25import java.util.logging.Level;
26import org.openide.nodes.Node;
27import org.openide.util.NbBundle;
28import org.openide.util.lookup.ServiceProvider;
29import org.sleuthkit.autopsy.corecomponentinterfaces.DataContentViewer;
30import org.sleuthkit.autopsy.coreutils.Logger;
31import org.sleuthkit.autopsy.modules.filetypeid.FileTypeDetector;
32import org.sleuthkit.autopsy.contentviewers.utils.ViewerPriority;
33import org.sleuthkit.datamodel.AbstractFile;
39@SuppressWarnings(
"PMD.SingularField")
51 new MediaFileViewer(),
53 new WindowsRegistryViewer(),
66 cv.getSupportedMIMETypes().forEach((mimeType) -> {
70 LOGGER.log(Level.WARNING,
"Duplicate viewer for mimtype: {0}", mimeType);
77 LOGGER.log(Level.INFO,
"Created ApplicationContentViewer instance: {0}",
this);
101 @SuppressWarnings(
"unchecked")
105 setLayout(
new javax.swing.OverlayLayout(
this));
116 if (selectedNode ==
null) {
120 AbstractFile file = selectedNode.getLookup().lookup(AbstractFile.class);
121 if ((file ==
null) || (file.isDir())) {
125 String mimeType = file.getMIMEType();
126 if (Strings.isNullOrEmpty(mimeType)) {
127 LOGGER.log(Level.INFO,
"Mimetype not known for file: {0}", file.getName());
132 LOGGER.log(Level.SEVERE,
"Failed to initialize FileTypeDetector.", ex);
137 if (mimeType.equalsIgnoreCase(
"application/octet-stream")) {
141 if (viewer !=
null) {
154 @NbBundle.Messages(
"ApplicationContentViewer.title=Application")
156 return Bundle.ApplicationContentViewer_title();
160 @NbBundle.Messages(
"ApplicationContentViewer.toolTip=Displays file contents.")
162 return Bundle.ApplicationContentViewer_toolTip();
192 AbstractFile aFile = node.getLookup().lookup(AbstractFile.class);
193 if ((aFile ==
null) || (aFile.isDir())) {
197 String mimeType = aFile.getMIMEType();
198 if (Strings.isNullOrEmpty(mimeType)) {
199 LOGGER.log(Level.INFO,
"Mimetype not known for file: {0}", aFile.getName());
204 LOGGER.log(Level.SEVERE,
"Failed to initialize FileTypeDetector.", ex);
209 if (mimeType.equalsIgnoreCase(
"application/octet-stream")) {
219 AbstractFile file = node.getLookup().lookup(AbstractFile.class);
220 String mimeType = file.getMIMEType();
222 if (Strings.isNullOrEmpty(mimeType)) {
223 LOGGER.log(Level.INFO,
"Mimetype not known for file: {0}", file.getName());
228 LOGGER.log(Level.SEVERE,
"Failed to initialize FileTypeDetector.", ex);
233 if (mimeType.equalsIgnoreCase(
"application/octet-stream")) {
static final Logger LOGGER
final Map< String, FileTypeViewer > mimeTypeToViewerMap
void setNode(Node selectedNode)
DataContentViewer createInstance()
FileTypeViewer lastViewer
static final long serialVersionUID
int isPreferred(Node node)
FileTypeViewer getSupportingViewer(AbstractFile file)
final FileTypeViewer[] KNOWN_VIEWERS
boolean isSupported(Node node)
synchronized static Logger getLogger(String name)
String getMIMEType(AbstractFile file)
void setFile(AbstractFile file)
boolean isSupported(AbstractFile file)