Autopsy  4.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
MimeTypePanel.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2011-2016 Basis Technology Corp.
5  * Contact: carrier <at> sleuthkit <dot> org
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 package org.sleuthkit.autopsy.filesearch;
20 
21 import java.util.ArrayList;
22 import java.util.HashSet;
23 import java.util.List;
24 import java.util.Set;
25 import java.util.logging.Level;
26 import javax.swing.event.ListSelectionEvent;
27 import javax.swing.event.ListSelectionListener;
30 
31 public class MimeTypePanel extends javax.swing.JPanel {
32 
33  private static final Logger logger = Logger.getLogger(MimeTypePanel.class.getName());
34  private static final long serialVersionUID = 1L;
35 
39  public MimeTypePanel() {
41  setComponentsEnabled();
42  this.mimeTypeList.addListSelectionListener(new ListSelectionListener() {
43  @Override
44  public void valueChanged(ListSelectionEvent e) {
45  firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
46  }
47  });
48  }
49 
50  private String[] getMimeTypeArray() {
51  Set<String> fileTypesCollated = new HashSet<>();
52  for (String mediaType : FileTypeDetector.getStandardDetectedTypes()) {
53  fileTypesCollated.add(mediaType);
54  }
55 
56  FileTypeDetector fileTypeDetector;
57  try {
58  fileTypeDetector = new FileTypeDetector();
59  List<String> userDefinedFileTypes = fileTypeDetector.getUserDefinedTypes();
60  fileTypesCollated.addAll(userDefinedFileTypes);
61 
63  logger.log(Level.SEVERE, "Unable to get user defined file types", ex);
64  }
65 
66  List<String> toSort = new ArrayList<>(fileTypesCollated);
67  toSort.sort((String string1, String string2) -> {
68  int result = String.CASE_INSENSITIVE_ORDER.compare(string1, string2);
69  if (result == 0) {
70  result = string1.compareTo(string2);
71  }
72  return result;
73  });
74  String[] mimeTypeArray = new String[toSort.size()];
75  return toSort.toArray(mimeTypeArray);
76  }
77 
78  List<String> getMimeTypesSelected() {
79  return this.mimeTypeList.getSelectedValuesList();
80  }
81 
82  boolean isSelected() {
83  return this.mimeTypeCheckBox.isSelected();
84  }
85 
86  void setComponentsEnabled() {
87  boolean enabled = this.isSelected();
88  this.mimeTypeList.setEnabled(enabled);
89  this.jLabel1.setEnabled(enabled);
90  }
91 
97  @SuppressWarnings("unchecked")
98  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
99  private void initComponents() {
100 
101  jScrollPane1 = new javax.swing.JScrollPane();
102  mimeTypeList = new javax.swing.JList<>();
103  mimeTypeCheckBox = new javax.swing.JCheckBox();
104  jLabel1 = new javax.swing.JLabel();
105 
106  setMinimumSize(new java.awt.Dimension(150, 150));
107  setPreferredSize(new java.awt.Dimension(100, 100));
108 
109  mimeTypeList.setModel(new javax.swing.AbstractListModel<String>() {
110  String[] strings = getMimeTypeArray();
111  public int getSize() { return strings.length; }
112  public String getElementAt(int i) { return strings[i]; }
113  });
114  mimeTypeList.setMinimumSize(new java.awt.Dimension(0, 200));
115  jScrollPane1.setViewportView(mimeTypeList);
116 
117  org.openide.awt.Mnemonics.setLocalizedText(mimeTypeCheckBox, org.openide.util.NbBundle.getMessage(MimeTypePanel.class, "MimeTypePanel.mimeTypeCheckBox.text")); // NOI18N
118  mimeTypeCheckBox.addActionListener(new java.awt.event.ActionListener() {
119  public void actionPerformed(java.awt.event.ActionEvent evt) {
121  }
122  });
123 
124  jLabel1.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
125  org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(MimeTypePanel.class, "MimeTypePanel.jLabel1.text")); // NOI18N
126 
127  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
128  this.setLayout(layout);
129  layout.setHorizontalGroup(
130  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
131  .addGroup(layout.createSequentialGroup()
132  .addComponent(mimeTypeCheckBox)
133  .addGap(0, 0, Short.MAX_VALUE))
134  .addGroup(layout.createSequentialGroup()
135  .addContainerGap()
136  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
137  .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 298, Short.MAX_VALUE)
138  .addGroup(layout.createSequentialGroup()
139  .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 246, javax.swing.GroupLayout.PREFERRED_SIZE)
140  .addGap(0, 0, Short.MAX_VALUE)))
141  .addContainerGap())
142  );
143  layout.setVerticalGroup(
144  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
145  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
146  .addComponent(mimeTypeCheckBox)
147  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
148  .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE)
149  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
150  .addComponent(jLabel1)
151  .addContainerGap())
152  );
153  }// </editor-fold>//GEN-END:initComponents
154 
155  private void mimeTypeCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mimeTypeCheckBoxActionPerformed
156  setComponentsEnabled();
157  firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
158  this.mimeTypeList.setSelectedIndices(new int[0]);
159  }//GEN-LAST:event_mimeTypeCheckBoxActionPerformed
160 
161 
162  // Variables declaration - do not modify//GEN-BEGIN:variables
163  private javax.swing.JLabel jLabel1;
164  private javax.swing.JScrollPane jScrollPane1;
165  private javax.swing.JCheckBox mimeTypeCheckBox;
166  private javax.swing.JList<String> mimeTypeList;
167  // End of variables declaration//GEN-END:variables
168 }
void mimeTypeCheckBoxActionPerformed(java.awt.event.ActionEvent evt)
static synchronized SortedSet< String > getStandardDetectedTypes()
synchronized static Logger getLogger(String name)
Definition: Logger.java:161

Copyright © 2012-2016 Basis Technology. Generated on: Mon Jan 2 2017
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.