6 package org.sleuthkit.autopsy.filesearch;
8 import java.beans.PropertyChangeListener;
9 import java.util.ArrayList;
10 import java.util.HashSet;
11 import java.util.List;
13 import java.util.SortedSet;
14 import java.util.logging.Level;
15 import javax.swing.event.ListSelectionEvent;
16 import javax.swing.event.ListSelectionListener;
17 import org.apache.tika.mime.MediaType;
18 import org.apache.tika.mime.MimeTypes;
28 private static final SortedSet<MediaType>
mediaTypes = MimeTypes.getDefaultMimeTypes().getMediaTypeRegistry().getTypes();
37 setComponentsEnabled();
38 this.
mimeTypeList.addListSelectionListener(
new ListSelectionListener() {
40 public void valueChanged(ListSelectionEvent e) {
41 firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
47 Set<String> fileTypesCollated =
new HashSet<>();
48 for (MediaType mediaType : mediaTypes) {
49 fileTypesCollated.add(mediaType.toString());
56 fileTypesCollated.addAll(userDefinedFileTypes);
59 logger.log(Level.SEVERE,
"Unable to get user defined file types", ex);
62 List<String> toSort =
new ArrayList<>(fileTypesCollated);
63 toSort.sort((String string1, String string2) -> {
64 int result = String.CASE_INSENSITIVE_ORDER.compare(string1, string2);
66 result = string1.compareTo(string2);
70 String[] mimeTypeArray =
new String[toSort.size()];
71 return toSort.toArray(mimeTypeArray);
74 List<String> getMimeTypesSelected() {
78 boolean isSelected() {
82 void setComponentsEnabled() {
83 boolean enabled = this.isSelected();
85 this.
jLabel1.setEnabled(enabled);
93 @SuppressWarnings(
"unchecked")
100 jLabel1 =
new javax.swing.JLabel();
102 setMinimumSize(
new java.awt.Dimension(150, 150));
103 setPreferredSize(
new java.awt.Dimension(100, 100));
105 mimeTypeList.setModel(
new javax.swing.AbstractListModel<String>() {
106 String[] strings = getMimeTypeArray();
107 public int getSize() { return strings.length; }
108 public String getElementAt(
int i) {
return strings[i]; }
110 mimeTypeList.setMinimumSize(
new java.awt.Dimension(0, 200));
115 public void actionPerformed(java.awt.event.ActionEvent evt) {
120 jLabel1.setFont(
new java.awt.Font(
"Tahoma", 0, 10));
121 org.openide.awt.Mnemonics.setLocalizedText(
jLabel1,
org.openide.util.NbBundle.getMessage(
MimeTypePanel.class,
"MimeTypePanel.jLabel1.text"));
123 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
124 this.setLayout(layout);
125 layout.setHorizontalGroup(
126 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
127 .addGroup(layout.createSequentialGroup()
129 .addGap(0, 0, Short.MAX_VALUE))
130 .addGroup(layout.createSequentialGroup()
132 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
133 .addComponent(
jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
134 .addGroup(layout.createSequentialGroup()
135 .addComponent(
jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
136 .addGap(0, 0, Short.MAX_VALUE)))
139 layout.setVerticalGroup(
140 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
141 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
143 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
144 .addComponent(
jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE)
145 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
152 setComponentsEnabled();
153 firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
154 this.mimeTypeList.setSelectedIndices(
new int[0]);
static final Logger logger
javax.swing.JScrollPane jScrollPane1
javax.swing.JLabel jLabel1
javax.swing.JCheckBox mimeTypeCheckBox
String[] getMimeTypeArray()
void mimeTypeCheckBoxActionPerformed(java.awt.event.ActionEvent evt)
static final long serialVersionUID
static final SortedSet< MediaType > mediaTypes
synchronized static Logger getLogger(String name)
List< String > getUserDefinedTypes()
javax.swing.JList< String > mimeTypeList