19 package org.sleuthkit.autopsy.filesearch;
21 import java.util.ArrayList;
22 import java.util.List;
23 import java.util.logging.Level;
24 import javax.swing.DefaultListModel;
25 import javax.swing.event.ListSelectionEvent;
26 import javax.swing.event.ListSelectionListener;
33 @SuppressWarnings(
"PMD.SingularField")
37 private static final long serialVersionUID = 1L;
48 List<String> mimeTypesList =
new ArrayList<>();
52 logger.log(Level.SEVERE,
"Unable to get detectable file types", ex);
54 String[] mimeTypeArray =
new String[mimeTypesList.size()];
55 return mimeTypesList.toArray(mimeTypeArray);
58 List<String> getMimeTypesSelected() {
59 return this.mimeTypeList.getSelectedValuesList();
62 boolean isSelected() {
63 return this.mimeTypeCheckBox.isSelected();
66 void setComponentsEnabled() {
67 boolean enabled = isSelected();
68 this.mimeTypeList.setEnabled(enabled);
69 this.noteLabel.setEnabled(enabled);
77 @SuppressWarnings(
"unchecked")
79 private
void initComponents() {
81 jScrollPane1 =
new javax.swing.JScrollPane();
82 mimeTypeList =
new javax.swing.JList<>();
83 mimeTypeCheckBox =
new javax.swing.JCheckBox();
84 noteLabel =
new javax.swing.JLabel();
86 setMinimumSize(
new java.awt.Dimension(150, 150));
87 setPreferredSize(
new java.awt.Dimension(150, 150));
89 mimeTypeList.setModel(
new DefaultListModel<String>());
90 mimeTypeList.setMinimumSize(
new java.awt.Dimension(0, 200));
91 jScrollPane1.setViewportView(mimeTypeList);
93 org.openide.awt.Mnemonics.setLocalizedText(mimeTypeCheckBox,
org.openide.util.NbBundle.getMessage(
MimeTypePanel.class,
"MimeTypePanel.mimeTypeCheckBox.text"));
94 mimeTypeCheckBox.addActionListener(
new java.awt.event.ActionListener() {
95 public void actionPerformed(java.awt.event.ActionEvent evt) {
96 mimeTypeCheckBoxActionPerformed(evt);
100 noteLabel.setFont(noteLabel.getFont().deriveFont(noteLabel.getFont().getSize()-1f));
101 org.openide.awt.Mnemonics.setLocalizedText(noteLabel,
org.openide.util.NbBundle.getMessage(
MimeTypePanel.class,
"MimeTypePanel.noteLabel.text"));
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(mimeTypeCheckBox)
109 .addGap(0, 0, Short.MAX_VALUE))
110 .addGroup(layout.createSequentialGroup()
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(noteLabel)
116 .addGap(0, 0, Short.MAX_VALUE)))
119 layout.setVerticalGroup(
120 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
121 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
122 .addComponent(mimeTypeCheckBox)
123 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
124 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 103, javax.swing.GroupLayout.PREFERRED_SIZE)
125 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
126 .addComponent(noteLabel)
132 setComponentsEnabled();
133 firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
134 this.mimeTypeList.setSelectedIndices(
new int[0]);
148 void resetMimeTypePanel() {
150 for (ListSelectionListener listener : mimeTypeList.getListSelectionListeners()) {
151 mimeTypeList.removeListSelectionListener(listener);
153 mimeTypeList.clearSelection();
154 ((DefaultListModel<String>) mimeTypeList.getModel()).clear();
155 for (String dataSource : getMimeTypeArray()) {
156 ((DefaultListModel<String>) mimeTypeList.getModel()).addElement(dataSource);
158 mimeTypeList.addListSelectionListener((ListSelectionEvent e) -> {
159 firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
161 mimeTypeList.setEnabled(
false);
162 mimeTypeCheckBox.setSelected(
false);
163 noteLabel.setEnabled(
false);
javax.swing.JScrollPane jScrollPane1
javax.swing.JLabel noteLabel
javax.swing.JCheckBox mimeTypeCheckBox
String[] getMimeTypeArray()
void mimeTypeCheckBoxActionPerformed(java.awt.event.ActionEvent evt)
synchronized static Logger getLogger(String name)
javax.swing.JList< String > mimeTypeList
static synchronized SortedSet< String > getDetectedTypes()