Autopsy  4.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
MimeTypePanel.java
Go to the documentation of this file.
1 /*
2  * To change this license header, choose License Headers in Project Properties.
3  * To change this template file, choose Tools | Templates
4  * and open the template in the editor.
5  */
6 package org.sleuthkit.autopsy.filesearch;
7 
8 import java.awt.event.ActionListener;
9 import java.util.ArrayList;
10 import java.util.HashSet;
11 import java.util.List;
12 import java.util.Set;
13 import java.util.SortedSet;
14 import java.util.logging.Level;
16 import org.apache.tika.mime.MediaType;
17 import org.apache.tika.mime.MimeTypes;
19 
24 public class MimeTypePanel extends javax.swing.JPanel {
25 
26  private static final SortedSet<MediaType> mediaTypes = MimeTypes.getDefaultMimeTypes().getMediaTypeRegistry().getTypes();
27  private static final Logger logger = Logger.getLogger(MimeTypePanel.class.getName());
28  private static final long serialVersionUID = 1L;
29 
33  public MimeTypePanel() {
35  }
36 
37  private String[] getMimeTypeArray() {
38  Set<String> fileTypesCollated = new HashSet<>();
39  for (MediaType mediaType : mediaTypes) {
40  fileTypesCollated.add(mediaType.toString());
41  }
42 
43  FileTypeDetector fileTypeDetector;
44  try {
45  fileTypeDetector = new FileTypeDetector();
46  List<String> userDefinedFileTypes = fileTypeDetector.getUserDefinedTypes();
47  fileTypesCollated.addAll(userDefinedFileTypes);
48 
50  logger.log(Level.SEVERE, "Unable to get user defined file types", ex);
51  }
52 
53  List<String> toSort = new ArrayList<>(fileTypesCollated);
54  toSort.sort((String string1, String string2) -> {
55  int result = String.CASE_INSENSITIVE_ORDER.compare(string1, string2);
56  if (result == 0) {
57  result = string1.compareTo(string2);
58  }
59  return result;
60  });
61  String[] mimeTypeArray = new String[toSort.size()];
62  return toSort.toArray(mimeTypeArray);
63  }
64 
65  List<String> getMimeTypesSelected() {
66  return this.jList1.getSelectedValuesList();
67  }
68 
69  boolean isSelected() {
70  return this.jCheckBox1.isSelected();
71  }
72 
78  @SuppressWarnings("unchecked")
79  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
80  private void initComponents() {
81 
82  jScrollPane1 = new javax.swing.JScrollPane();
83  jList1 = new javax.swing.JList<String>();
84  jCheckBox1 = new javax.swing.JCheckBox();
85  jLabel1 = new javax.swing.JLabel();
86 
87  setMinimumSize(new java.awt.Dimension(150, 150));
88  setPreferredSize(new java.awt.Dimension(100, 100));
89 
90  jList1.setModel(new javax.swing.AbstractListModel<String>() {
91  String[] strings = getMimeTypeArray();
92  public int getSize() { return strings.length; }
93  public String getElementAt(int i) { return strings[i]; }
94  });
95  jList1.setMinimumSize(new java.awt.Dimension(0, 200));
96  jScrollPane1.setViewportView(jList1);
97 
98  org.openide.awt.Mnemonics.setLocalizedText(jCheckBox1, org.openide.util.NbBundle.getMessage(MimeTypePanel.class, "MimeTypePanel.jCheckBox1.text")); // NOI18N
99 
100  jLabel1.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
101  org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(MimeTypePanel.class, "MimeTypePanel.jLabel1.text")); // NOI18N
102 
103  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
104  this.setLayout(layout);
105  layout.setHorizontalGroup(
106  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
107  .addGroup(layout.createSequentialGroup()
108  .addComponent(jCheckBox1)
109  .addGap(0, 0, Short.MAX_VALUE))
110  .addGroup(layout.createSequentialGroup()
111  .addContainerGap()
112  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
113  .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
114  .addGroup(layout.createSequentialGroup()
115  .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
116  .addGap(0, 0, Short.MAX_VALUE)))
117  .addContainerGap())
118  );
119  layout.setVerticalGroup(
120  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
121  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
122  .addComponent(jCheckBox1)
123  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
124  .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE)
125  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
126  .addComponent(jLabel1)
127  .addGap(0, 0, 0))
128  );
129  }// </editor-fold>//GEN-END:initComponents
130 
131 
132  // Variables declaration - do not modify//GEN-BEGIN:variables
133  private javax.swing.JCheckBox jCheckBox1;
134  private javax.swing.JLabel jLabel1;
135  private javax.swing.JList<String> jList1;
136  private javax.swing.JScrollPane jScrollPane1;
137  // End of variables declaration//GEN-END:variables
138 }
static final SortedSet< MediaType > mediaTypes
synchronized static Logger getLogger(String name)
Definition: Logger.java:166

Copyright © 2012-2015 Basis Technology. Generated on: Wed Apr 6 2016
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.