19 package org.sleuthkit.autopsy.modules.interestingitems;
21 import java.awt.EventQueue;
23 import java.util.ArrayList;
24 import java.util.HashMap;
25 import java.util.HashSet;
26 import java.util.List;
29 import java.util.SortedSet;
30 import java.util.TreeMap;
31 import java.util.logging.Level;
32 import javax.swing.DefaultListModel;
33 import javax.swing.JButton;
34 import javax.swing.JOptionPane;
35 import javax.swing.event.ListSelectionEvent;
36 import javax.swing.event.ListSelectionListener;
37 import org.apache.tika.mime.MediaType;
38 import org.openide.util.NbBundle;
43 import org.apache.tika.mime.MediaType;
44 import org.apache.tika.mime.MimeTypes;
45 import org.openide.util.Exceptions;
51 final class InterestingItemDefsPanel
extends IngestModuleGlobalSettingsPanel implements OptionsPanel {
54 "InterestingItemDefsPanel.bytes=Bytes",
55 "InterestingItemDefsPanel.kiloBytes=Kilobytes",
56 "InterestingItemDefsPanel.megaBytes=Megabytes",
57 "InterestingItemDefsPanel.gigaBytes=Gigabytes",
58 "InterestingItemsDefsPanel.loadError=Error loading interesting files sets from file.",
59 "InterestingItemsDefsPanel.saveError=Error saving interesting files sets to file."
62 private static final SortedSet<MediaType> mediaTypes = MimeTypes.getDefaultMimeTypes().getMediaTypeRegistry().getTypes();
63 private final DefaultListModel<FilesSet> setsListModel =
new DefaultListModel<>();
64 private final DefaultListModel<FilesSet.Rule> rulesListModel =
new DefaultListModel<>();
65 private final Logger logger = Logger.
getLogger(InterestingItemDefsPanel.class.getName());
66 private JButton okButton =
new JButton(
"OK");
67 private JButton cancelButton =
new JButton(
"Cancel");
76 private TreeMap<String, FilesSet> filesSets;
81 InterestingItemDefsPanel() {
82 this.initComponents();
84 this.setsList.setModel(setsListModel);
85 this.setsList.addListSelectionListener(
new InterestingItemDefsPanel.SetsListSelectionListener());
86 this.rulesList.setModel(rulesListModel);
87 this.rulesList.addListSelectionListener(
new InterestingItemDefsPanel.RulesListSelectionListener());
90 @NbBundle.Messages({
"InterestingItemDefsPanel.Title=Global Interesting Items Settings"})
91 private void customInit() {
92 setName(Bundle.InterestingItemDefsPanel_Title());
94 Set<String> fileTypesCollated =
new HashSet<>();
95 for (MediaType mediaType : mediaTypes) {
96 fileTypesCollated.add(mediaType.toString());
99 FileTypeDetector fileTypeDetector;
101 fileTypeDetector =
new FileTypeDetector();
102 List<String> userDefinedFileTypes = fileTypeDetector.getUserDefinedTypes();
103 fileTypesCollated.addAll(userDefinedFileTypes);
105 }
catch (FileTypeDetector.FileTypeDetectorInitException ex) {
106 logger.log(Level.SEVERE,
"Unable to get user defined file types", ex);
109 List<String> toSort =
new ArrayList<>(fileTypesCollated);
110 toSort.sort((String string1, String string2) -> {
111 int result = String.CASE_INSENSITIVE_ORDER.compare(string1, string2);
113 result = string1.compareTo(string2);
118 for (String file : toSort) {
119 mimeTypeComboBox.addItem(file);
121 this.fileSizeUnitComboBox.setSelectedIndex(1);
122 this.equalitySignComboBox.setSelectedIndex(2);
129 public void saveSettings() {
131 InterestingItemDefsManager.getInstance().setInterestingFilesSets(this.filesSets);
132 }
catch (InterestingItemDefsManager.InterestingItemDefsManagerException ex) {
133 MessageNotifyUtil.Message.error(Bundle.InterestingItemsDefsPanel_saveError());
141 public void store() {
150 this.resetComponents();
155 this.filesSets =
new TreeMap<>(InterestingItemDefsManager.getInstance().getInterestingFilesSets());
156 }
catch (InterestingItemDefsManager.InterestingItemDefsManagerException ex) {
157 MessageNotifyUtil.Message.error(Bundle.InterestingItemsDefsPanel_loadError());
158 this.filesSets =
new TreeMap<>();
163 for (FilesSet set : this.filesSets.values()) {
164 this.setsListModel.addElement(set);
167 if (!this.filesSets.isEmpty()) {
170 EventQueue.invokeLater(() -> {
171 InterestingItemDefsPanel.this.setsList.setSelectedIndex(0);
179 private void resetComponents() {
180 this.resetRuleComponents();
181 this.setsListModel.clear();
182 this.setDescriptionTextArea.setText(
"");
183 this.ignoreKnownFilesCheckbox.setSelected(
true);
184 this.newSetButton.setEnabled(
true);
185 this.editSetButton.setEnabled(
false);
186 this.deleteSetButton.setEnabled(
false);
193 private void resetRuleComponents() {
194 this.fileNameTextField.setText(
"");
195 this.fileNameRadioButton.setSelected(
true);
196 this.fileNameRegexCheckbox.setSelected(
false);
197 this.filesRadioButton.setSelected(
true);
198 this.rulePathConditionTextField.setText(
"");
199 this.rulePathConditionRegexCheckBox.setSelected(
false);
200 this.newRuleButton.setEnabled(!this.setsListModel.isEmpty());
201 this.editRuleButton.setEnabled(
false);
202 this.deleteRuleButton.setEnabled(
false);
212 if (e.getValueIsAdjusting()) {
216 InterestingItemDefsPanel.this.rulesListModel.clear();
217 InterestingItemDefsPanel.this.resetRuleComponents();
221 FilesSet selectedSet = InterestingItemDefsPanel.this.setsList.getSelectedValue();
222 if (selectedSet != null) {
225 InterestingItemDefsPanel.this.setDescriptionTextArea.setText(selectedSet.getDescription());
226 InterestingItemDefsPanel.this.ignoreKnownFilesCheckbox.setSelected(selectedSet.ignoresKnownFiles());
229 InterestingItemDefsPanel.this.newSetButton.setEnabled(
true);
230 InterestingItemDefsPanel.this.editSetButton.setEnabled(
true);
231 InterestingItemDefsPanel.this.deleteSetButton.setEnabled(
true);
234 TreeMap<String, FilesSet.Rule> rules =
new TreeMap<>(selectedSet.getRules());
235 for (FilesSet.Rule rule : rules.values()) {
236 InterestingItemDefsPanel.this.rulesListModel.addElement(rule);
240 if (!InterestingItemDefsPanel.this.rulesListModel.isEmpty()) {
241 InterestingItemDefsPanel.this.rulesList.setSelectedIndex(0);
256 if (e.getValueIsAdjusting()) {
261 FilesSet.Rule rule = InterestingItemDefsPanel.this.rulesList.getSelectedValue();
264 FilesSet.Rule.FileNameCondition nameCondition = rule.getFileNameCondition();
265 FilesSet.Rule.MetaTypeCondition typeCondition = rule.getMetaTypeCondition();
266 FilesSet.Rule.ParentPathCondition pathCondition = rule.getPathCondition();
267 FilesSet.Rule.MimeTypeCondition mimeTypeCondition = rule.getMimeTypeCondition();
268 FilesSet.Rule.FileSizeCondition fileSizeCondition = rule.getFileSizeCondition();
272 if (nameCondition != null) {
273 InterestingItemDefsPanel.this.fileNameTextField.setText(nameCondition.getTextToMatch());
274 InterestingItemDefsPanel.this.fileNameRadioButton.setSelected(nameCondition instanceof FilesSet.Rule.FullNameCondition);
275 InterestingItemDefsPanel.this.fileNameExtensionRadioButton.setSelected(nameCondition instanceof FilesSet.Rule.ExtensionCondition);
276 InterestingItemDefsPanel.this.fileNameRegexCheckbox.setSelected(nameCondition.isRegex());
278 InterestingItemDefsPanel.this.fileNameTextField.setText(
"");
279 InterestingItemDefsPanel.this.fileNameRadioButton.setSelected(
true);
280 InterestingItemDefsPanel.this.fileNameExtensionRadioButton.setSelected(
false);
281 InterestingItemDefsPanel.this.fileNameRegexCheckbox.setSelected(
false);
283 switch (typeCondition.getMetaType()) {
285 InterestingItemDefsPanel.this.filesRadioButton.setSelected(
true);
288 InterestingItemDefsPanel.this.dirsRadioButton.setSelected(
true);
290 case FILES_AND_DIRECTORIES:
291 InterestingItemDefsPanel.this.bothRadioButton.setSelected(
true);
294 if (pathCondition != null) {
295 InterestingItemDefsPanel.this.rulePathConditionTextField.setText(pathCondition.getTextToMatch());
296 InterestingItemDefsPanel.this.rulePathConditionRegexCheckBox.setSelected(pathCondition.isRegex());
298 InterestingItemDefsPanel.this.rulePathConditionTextField.setText(
"");
299 InterestingItemDefsPanel.this.rulePathConditionRegexCheckBox.setSelected(
false);
301 if (mimeTypeCondition != null) {
302 InterestingItemDefsPanel.this.mimeTypeComboBox.setSelectedItem(mimeTypeCondition.getMimeType());
304 InterestingItemDefsPanel.this.mimeTypeComboBox.setSelectedIndex(0);
306 if (fileSizeCondition != null) {
307 InterestingItemDefsPanel.this.fileSizeUnitComboBox.setSelectedItem(fileSizeCondition.getUnit().getName());
308 InterestingItemDefsPanel.this.equalitySignComboBox.setSelectedItem(fileSizeCondition.getComparator().getSymbol());
309 InterestingItemDefsPanel.this.jSpinner1.setValue(fileSizeCondition.getSizeValue());
311 InterestingItemDefsPanel.this.fileSizeUnitComboBox.setSelectedIndex(1);
312 InterestingItemDefsPanel.this.equalitySignComboBox.setSelectedIndex(2);
313 InterestingItemDefsPanel.this.jSpinner1.setValue(0);
317 InterestingItemDefsPanel.this.newRuleButton.setEnabled(
true);
318 InterestingItemDefsPanel.this.editRuleButton.setEnabled(
true);
319 InterestingItemDefsPanel.this.deleteRuleButton.setEnabled(
true);
321 InterestingItemDefsPanel.this.resetRuleComponents();
335 private void doFileSetsDialog(FilesSet selectedSet) {
338 if (selectedSet != null) {
343 panel =
new FilesSetPanel();
349 int option = JOptionPane.OK_OPTION;
351 option = JOptionPane.showConfirmDialog(null, panel, NbBundle.getMessage(FilesSetPanel.class,
"FilesSetPanel.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE);
352 }
while (option == JOptionPane.OK_OPTION && !panel.isValidDefinition());
356 if (this.filesSets.containsKey(panel.getFilesSetName()) && selectedSet == null) {
357 MessageNotifyUtil.Message.error(NbBundle.getMessage(
this.getClass(),
358 "InterestingItemDefsPanel.doFileSetsDialog.duplicateRuleSet.text",
359 panel.getFilesSetName()));
363 if (option == JOptionPane.OK_OPTION) {
364 Map<String, FilesSet.Rule> rules =
new HashMap<>();
365 if (selectedSet != null) {
369 rules.putAll(selectedSet.getRules());
371 this.replaceFilesSet(selectedSet, panel.getFilesSetName(), panel.getFilesSetDescription(), panel.getFileSetIgnoresKnownFiles(), rules);
382 private void doFilesSetRuleDialog(FilesSet.Rule selectedRule) {
384 FilesSetRulePanel panel;
385 if (selectedRule != null) {
387 panel =
new FilesSetRulePanel(selectedRule, okButton, cancelButton);
390 panel =
new FilesSetRulePanel(okButton, cancelButton);
395 int option = JOptionPane.OK_OPTION;
397 option = JOptionPane.showOptionDialog(null, panel, NbBundle.getMessage(FilesSetPanel.class,
"FilesSetPanel.title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, null,
new Object[]{okButton, cancelButton}, okButton);
398 }
while (option == JOptionPane.OK_OPTION && !panel.isValidRuleDefinition());
400 if (option == JOptionPane.OK_OPTION) {
404 FilesSet selectedSet = this.setsList.getSelectedValue();
405 Map<String, FilesSet.Rule> rules =
new HashMap<>(selectedSet.getRules());
409 if (selectedRule != null) {
410 rules.remove(selectedRule.getUuid());
412 FilesSet.Rule newRule =
new FilesSet.Rule(panel.getRuleName(), panel.getFileNameCondition(), panel.getMetaTypeCondition(), panel.getPathCondition(), panel.getMimeTypeCondition(), panel.getFileSizeCondition());
413 rules.put(newRule.getUuid(), newRule);
417 this.replaceFilesSet(selectedSet, selectedSet.getName(), selectedSet.getDescription(), selectedSet.ignoresKnownFiles(), rules);
422 EventQueue.invokeLater(() -> {
423 this.rulesList.setSelectedValue(newRule,
true);
441 void replaceFilesSet(FilesSet oldSet, String name, String description,
boolean ignoresKnownFiles, Map<String, FilesSet.Rule> rules) {
442 if (oldSet != null) {
445 this.filesSets.remove(oldSet.getName());
450 FilesSet newSet =
new FilesSet(name, description, ignoresKnownFiles, rules);
451 this.filesSets.put(newSet.getName(), newSet);
455 InterestingItemDefsPanel.this.setsListModel.clear();
456 for (FilesSet set : this.filesSets.values()) {
457 this.setsListModel.addElement(set);
463 this.setsList.setSelectedValue(newSet,
true);
471 @SuppressWarnings(
"unchecked")
473 private
void initComponents() {
475 fileNameButtonGroup =
new javax.swing.ButtonGroup();
476 typeButtonGroup =
new javax.swing.ButtonGroup();
477 jScrollPane1 =
new javax.swing.JScrollPane();
478 jPanel1 =
new javax.swing.JPanel();
479 jLabel6 =
new javax.swing.JLabel();
480 newRuleButton =
new javax.swing.JButton();
481 filesRadioButton =
new javax.swing.JRadioButton();
482 editRuleButton =
new javax.swing.JButton();
483 rulesListLabel =
new javax.swing.JLabel();
484 rulesListScrollPane =
new javax.swing.JScrollPane();
485 rulesList =
new javax.swing.JList<FilesSet.Rule>();
486 setDescScrollPanel =
new javax.swing.JScrollPane();
487 setDescriptionTextArea =
new javax.swing.JTextArea();
488 editSetButton =
new javax.swing.JButton();
489 setsListScrollPane =
new javax.swing.JScrollPane();
490 setsList =
new javax.swing.JList<FilesSet>();
491 fileNameExtensionRadioButton =
new javax.swing.JRadioButton();
492 jLabel3 =
new javax.swing.JLabel();
493 fileNameTextField =
new javax.swing.JTextField();
494 jLabel5 =
new javax.swing.JLabel();
495 fileNameRadioButton =
new javax.swing.JRadioButton();
496 rulePathConditionTextField =
new javax.swing.JTextField();
497 ignoreKnownFilesCheckbox =
new javax.swing.JCheckBox();
498 fileNameRegexCheckbox =
new javax.swing.JCheckBox();
499 separator =
new javax.swing.JSeparator();
500 setsListLabel =
new javax.swing.JLabel();
501 bothRadioButton =
new javax.swing.JRadioButton();
502 deleteSetButton =
new javax.swing.JButton();
503 deleteRuleButton =
new javax.swing.JButton();
504 newSetButton =
new javax.swing.JButton();
505 jLabel2 =
new javax.swing.JLabel();
506 dirsRadioButton =
new javax.swing.JRadioButton();
507 jLabel1 =
new javax.swing.JLabel();
508 jLabel4 =
new javax.swing.JLabel();
509 rulePathConditionRegexCheckBox =
new javax.swing.JCheckBox();
510 jScrollPane2 =
new javax.swing.JScrollPane();
511 jTextArea1 =
new javax.swing.JTextArea();
512 jLabel7 =
new javax.swing.JLabel();
513 mimeTypeComboBox =
new javax.swing.JComboBox<String>();
514 jLabel8 =
new javax.swing.JLabel();
515 equalitySignComboBox =
new javax.swing.JComboBox<String>();
516 jSpinner1 =
new javax.swing.JSpinner();
517 fileSizeUnitComboBox =
new javax.swing.JComboBox<String>();
519 setFont(getFont().deriveFont(getFont().getStyle() & ~java.awt.Font.BOLD, 11));
521 jScrollPane1.setFont(jScrollPane1.getFont().deriveFont(jScrollPane1.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
523 jPanel1.setFont(jPanel1.getFont().deriveFont(jPanel1.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
525 jLabel6.setFont(jLabel6.getFont().deriveFont(jLabel6.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
526 org.openide.awt.Mnemonics.setLocalizedText(jLabel6,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jLabel6.text"));
528 newRuleButton.setFont(newRuleButton.getFont().deriveFont(newRuleButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
529 newRuleButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/images/add16.png")));
530 org.openide.awt.Mnemonics.setLocalizedText(newRuleButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.newRuleButton.text"));
531 newRuleButton.addActionListener(
new java.awt.event.ActionListener() {
532 public void actionPerformed(java.awt.event.ActionEvent evt) {
533 newRuleButtonActionPerformed(evt);
537 typeButtonGroup.add(filesRadioButton);
538 filesRadioButton.setFont(filesRadioButton.getFont().deriveFont(filesRadioButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
539 filesRadioButton.setSelected(
true);
540 org.openide.awt.Mnemonics.setLocalizedText(filesRadioButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.filesRadioButton.text"));
541 filesRadioButton.setEnabled(
false);
543 editRuleButton.setFont(editRuleButton.getFont().deriveFont(editRuleButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
544 editRuleButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/images/edit16.png")));
545 org.openide.awt.Mnemonics.setLocalizedText(editRuleButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.editRuleButton.text"));
546 editRuleButton.setEnabled(
false);
547 editRuleButton.addActionListener(
new java.awt.event.ActionListener() {
548 public void actionPerformed(java.awt.event.ActionEvent evt) {
549 editRuleButtonActionPerformed(evt);
553 rulesListLabel.setFont(rulesListLabel.getFont().deriveFont(rulesListLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
554 org.openide.awt.Mnemonics.setLocalizedText(rulesListLabel,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.rulesListLabel.text"));
556 rulesListScrollPane.setFont(rulesListScrollPane.getFont().deriveFont(rulesListScrollPane.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
558 rulesList.setFont(rulesList.getFont().deriveFont(rulesList.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
559 rulesList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
560 rulesListScrollPane.setViewportView(rulesList);
562 setDescScrollPanel.setFont(setDescScrollPanel.getFont().deriveFont(setDescScrollPanel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
564 setDescriptionTextArea.setEditable(
false);
565 setDescriptionTextArea.setBackground(
new java.awt.Color(240, 240, 240));
566 setDescriptionTextArea.setColumns(20);
567 setDescriptionTextArea.setFont(setDescriptionTextArea.getFont().deriveFont(setDescriptionTextArea.getFont().getStyle() & ~java.awt.Font.BOLD, 13));
568 setDescriptionTextArea.setLineWrap(
true);
569 setDescriptionTextArea.setRows(2);
570 setDescScrollPanel.setViewportView(setDescriptionTextArea);
572 editSetButton.setFont(editSetButton.getFont().deriveFont(editSetButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
573 editSetButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/images/edit16.png")));
574 org.openide.awt.Mnemonics.setLocalizedText(editSetButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.editSetButton.text"));
575 editSetButton.setEnabled(
false);
576 editSetButton.addActionListener(
new java.awt.event.ActionListener() {
577 public void actionPerformed(java.awt.event.ActionEvent evt) {
578 editSetButtonActionPerformed(evt);
582 setsListScrollPane.setFont(setsListScrollPane.getFont().deriveFont(setsListScrollPane.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
584 setsList.setFont(setsList.getFont().deriveFont(setsList.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
585 setsList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
586 setsListScrollPane.setViewportView(setsList);
588 fileNameButtonGroup.add(fileNameExtensionRadioButton);
589 fileNameExtensionRadioButton.setFont(fileNameExtensionRadioButton.getFont().deriveFont(fileNameExtensionRadioButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
590 org.openide.awt.Mnemonics.setLocalizedText(fileNameExtensionRadioButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.fileNameExtensionRadioButton.text"));
591 fileNameExtensionRadioButton.setEnabled(
false);
593 jLabel3.setFont(jLabel3.getFont().deriveFont(jLabel3.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
594 org.openide.awt.Mnemonics.setLocalizedText(jLabel3,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jLabel3.text"));
596 fileNameTextField.setEditable(
false);
597 fileNameTextField.setFont(fileNameTextField.getFont().deriveFont(fileNameTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
598 fileNameTextField.setText(
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.fileNameTextField.text"));
599 fileNameTextField.addActionListener(
new java.awt.event.ActionListener() {
600 public void actionPerformed(java.awt.event.ActionEvent evt) {
601 fileNameTextFieldActionPerformed(evt);
605 jLabel5.setFont(jLabel5.getFont().deriveFont(jLabel5.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
606 org.openide.awt.Mnemonics.setLocalizedText(jLabel5,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jLabel5.text"));
608 fileNameButtonGroup.add(fileNameRadioButton);
609 fileNameRadioButton.setFont(fileNameRadioButton.getFont().deriveFont(fileNameRadioButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
610 org.openide.awt.Mnemonics.setLocalizedText(fileNameRadioButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.fileNameRadioButton.text"));
611 fileNameRadioButton.setEnabled(
false);
613 rulePathConditionTextField.setEditable(
false);
614 rulePathConditionTextField.setFont(rulePathConditionTextField.getFont().deriveFont(rulePathConditionTextField.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
615 rulePathConditionTextField.setText(
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.rulePathConditionTextField.text"));
617 ignoreKnownFilesCheckbox.setFont(ignoreKnownFilesCheckbox.getFont().deriveFont(ignoreKnownFilesCheckbox.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
618 org.openide.awt.Mnemonics.setLocalizedText(ignoreKnownFilesCheckbox,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.ignoreKnownFilesCheckbox.text"));
619 ignoreKnownFilesCheckbox.setEnabled(
false);
620 ignoreKnownFilesCheckbox.addActionListener(
new java.awt.event.ActionListener() {
621 public void actionPerformed(java.awt.event.ActionEvent evt) {
622 ignoreKnownFilesCheckboxActionPerformed(evt);
626 fileNameRegexCheckbox.setFont(fileNameRegexCheckbox.getFont().deriveFont(fileNameRegexCheckbox.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
627 org.openide.awt.Mnemonics.setLocalizedText(fileNameRegexCheckbox,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.fileNameRegexCheckbox.text"));
628 fileNameRegexCheckbox.setEnabled(
false);
630 separator.setOrientation(javax.swing.SwingConstants.VERTICAL);
632 setsListLabel.setFont(setsListLabel.getFont().deriveFont(setsListLabel.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
633 org.openide.awt.Mnemonics.setLocalizedText(setsListLabel,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.setsListLabel.text"));
635 typeButtonGroup.add(bothRadioButton);
636 bothRadioButton.setFont(bothRadioButton.getFont().deriveFont(bothRadioButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
637 org.openide.awt.Mnemonics.setLocalizedText(bothRadioButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.bothRadioButton.text"));
638 bothRadioButton.setEnabled(
false);
640 deleteSetButton.setFont(deleteSetButton.getFont().deriveFont(deleteSetButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
641 deleteSetButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/images/delete16.png")));
642 org.openide.awt.Mnemonics.setLocalizedText(deleteSetButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.deleteSetButton.text"));
643 deleteSetButton.setEnabled(
false);
644 deleteSetButton.addActionListener(
new java.awt.event.ActionListener() {
645 public void actionPerformed(java.awt.event.ActionEvent evt) {
646 deleteSetButtonActionPerformed(evt);
650 deleteRuleButton.setFont(deleteRuleButton.getFont().deriveFont(deleteRuleButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
651 deleteRuleButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/images/delete16.png")));
652 org.openide.awt.Mnemonics.setLocalizedText(deleteRuleButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.deleteRuleButton.text"));
653 deleteRuleButton.setEnabled(
false);
654 deleteRuleButton.addActionListener(
new java.awt.event.ActionListener() {
655 public void actionPerformed(java.awt.event.ActionEvent evt) {
656 deleteRuleButtonActionPerformed(evt);
660 newSetButton.setFont(newSetButton.getFont().deriveFont(newSetButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
661 newSetButton.setIcon(
new javax.swing.ImageIcon(getClass().getResource(
"/org/sleuthkit/autopsy/images/add16.png")));
662 org.openide.awt.Mnemonics.setLocalizedText(newSetButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.newSetButton.text"));
663 newSetButton.addActionListener(
new java.awt.event.ActionListener() {
664 public void actionPerformed(java.awt.event.ActionEvent evt) {
665 newSetButtonActionPerformed(evt);
669 jLabel2.setFont(jLabel2.getFont().deriveFont(jLabel2.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
670 org.openide.awt.Mnemonics.setLocalizedText(jLabel2,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jLabel2.text"));
672 typeButtonGroup.add(dirsRadioButton);
673 dirsRadioButton.setFont(dirsRadioButton.getFont().deriveFont(dirsRadioButton.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
674 org.openide.awt.Mnemonics.setLocalizedText(dirsRadioButton,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.dirsRadioButton.text"));
675 dirsRadioButton.setEnabled(
false);
676 dirsRadioButton.addActionListener(
new java.awt.event.ActionListener() {
677 public void actionPerformed(java.awt.event.ActionEvent evt) {
678 dirsRadioButtonActionPerformed(evt);
682 jLabel1.setFont(jLabel1.getFont().deriveFont(jLabel1.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
683 org.openide.awt.Mnemonics.setLocalizedText(jLabel1,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jLabel1.text"));
685 jLabel4.setFont(jLabel4.getFont().deriveFont(jLabel4.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
686 org.openide.awt.Mnemonics.setLocalizedText(jLabel4,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jLabel4.text"));
688 rulePathConditionRegexCheckBox.setFont(rulePathConditionRegexCheckBox.getFont().deriveFont(rulePathConditionRegexCheckBox.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
689 org.openide.awt.Mnemonics.setLocalizedText(rulePathConditionRegexCheckBox,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.rulePathConditionRegexCheckBox.text"));
690 rulePathConditionRegexCheckBox.setEnabled(
false);
692 jScrollPane2.setFont(jScrollPane2.getFont().deriveFont(jScrollPane2.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
694 jTextArea1.setEditable(
false);
695 jTextArea1.setBackground(
new java.awt.Color(240, 240, 240));
696 jTextArea1.setColumns(20);
697 jTextArea1.setFont(jTextArea1.getFont().deriveFont(jTextArea1.getFont().getStyle() & ~java.awt.Font.BOLD, 11));
698 jTextArea1.setLineWrap(
true);
699 jTextArea1.setRows(3);
700 jTextArea1.setText(
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jTextArea1.text"));
701 jTextArea1.setWrapStyleWord(
true);
702 jScrollPane2.setViewportView(jTextArea1);
704 org.openide.awt.Mnemonics.setLocalizedText(jLabel7,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jLabel7.text"));
706 mimeTypeComboBox.setEditable(
true);
707 mimeTypeComboBox.setModel(
new javax.swing.DefaultComboBoxModel<String>(
new String[] {
""}));
708 mimeTypeComboBox.setEnabled(
false);
710 org.openide.awt.Mnemonics.setLocalizedText(jLabel8,
org.openide.util.NbBundle.getMessage(InterestingItemDefsPanel.class,
"InterestingItemDefsPanel.jLabel8.text"));
712 equalitySignComboBox.setModel(
new javax.swing.DefaultComboBoxModel<String>(
new String[] {
"=",
">",
"≥",
"<",
"≤" }));
713 equalitySignComboBox.setEnabled(
false);
715 jSpinner1.setEnabled(
false);
717 fileSizeUnitComboBox.setModel(
new javax.swing.DefaultComboBoxModel<String>(
new String[] { Bundle.InterestingItemDefsPanel_bytes(), Bundle.InterestingItemDefsPanel_kiloBytes(), Bundle.InterestingItemDefsPanel_megaBytes(), Bundle.InterestingItemDefsPanel_gigaBytes() }));
718 fileSizeUnitComboBox.setEnabled(
false);
720 javax.swing.GroupLayout jPanel1Layout =
new javax.swing.GroupLayout(jPanel1);
721 jPanel1.setLayout(jPanel1Layout);
722 jPanel1Layout.setHorizontalGroup(
723 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
724 .addGroup(jPanel1Layout.createSequentialGroup()
726 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
727 .addComponent(setsListLabel)
728 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,
false)
729 .addComponent(setsListScrollPane, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 314, Short.MAX_VALUE)
730 .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.LEADING))
731 .addGroup(jPanel1Layout.createSequentialGroup()
732 .addComponent(newSetButton, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE)
733 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
734 .addComponent(editSetButton, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE)
735 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
736 .addComponent(deleteSetButton)))
738 .addComponent(separator, javax.swing.GroupLayout.PREFERRED_SIZE, 6, javax.swing.GroupLayout.PREFERRED_SIZE)
740 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
741 .addGroup(jPanel1Layout.createSequentialGroup()
742 .addComponent(jLabel1)
743 .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
744 .addGroup(jPanel1Layout.createSequentialGroup()
745 .addComponent(jLabel2)
747 .addComponent(filesRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 47, javax.swing.GroupLayout.PREFERRED_SIZE)
748 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
749 .addComponent(dirsRadioButton)
750 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
751 .addComponent(bothRadioButton)
752 .addGap(27, 27, 27))))
753 .addGroup(jPanel1Layout.createSequentialGroup()
754 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
755 .addGroup(jPanel1Layout.createSequentialGroup()
756 .addGap(380, 380, 380)
757 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
758 .addGroup(jPanel1Layout.createSequentialGroup()
759 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
760 .addComponent(jLabel3)
761 .addComponent(jLabel7)
762 .addComponent(jLabel8))
764 .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
765 .addComponent(jLabel4)
766 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)))
767 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING,
false)
768 .addComponent(rulePathConditionTextField, javax.swing.GroupLayout.Alignment.LEADING)
769 .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
770 .addComponent(equalitySignComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
771 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
772 .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, 104, javax.swing.GroupLayout.PREFERRED_SIZE)
773 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
774 .addComponent(fileSizeUnitComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 83, javax.swing.GroupLayout.PREFERRED_SIZE))
775 .addComponent(mimeTypeComboBox, javax.swing.GroupLayout.Alignment.LEADING, 0, 245, Short.MAX_VALUE)
776 .addComponent(fileNameTextField)))
777 .addGroup(jPanel1Layout.createSequentialGroup()
778 .addGap(360, 360, 360)
779 .addComponent(rulesListLabel))
780 .addGroup(jPanel1Layout.createSequentialGroup()
781 .addGap(360, 360, 360)
782 .addComponent(jLabel5))
783 .addGroup(jPanel1Layout.createSequentialGroup()
784 .addGap(360, 360, 360)
785 .addComponent(ignoreKnownFilesCheckbox))
786 .addGroup(jPanel1Layout.createSequentialGroup()
787 .addGap(360, 360, 360)
788 .addComponent(setDescScrollPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 336, javax.swing.GroupLayout.PREFERRED_SIZE))
789 .addGroup(jPanel1Layout.createSequentialGroup()
790 .addGap(360, 360, 360)
791 .addComponent(jLabel6))
792 .addGroup(jPanel1Layout.createSequentialGroup()
793 .addGap(360, 360, 360)
794 .addComponent(rulesListScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 336, javax.swing.GroupLayout.PREFERRED_SIZE))
795 .addGroup(jPanel1Layout.createSequentialGroup()
796 .addGap(360, 360, 360)
797 .addComponent(newRuleButton)
799 .addComponent(editRuleButton)
801 .addComponent(deleteRuleButton))
802 .addGroup(jPanel1Layout.createSequentialGroup()
803 .addGap(456, 456, 456)
804 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
805 .addGroup(jPanel1Layout.createSequentialGroup()
806 .addComponent(fileNameRadioButton)
808 .addComponent(fileNameExtensionRadioButton)
809 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
810 .addComponent(fileNameRegexCheckbox))
811 .addComponent(rulePathConditionRegexCheckBox))))
814 jPanel1Layout.setVerticalGroup(
815 jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
816 .addGroup(jPanel1Layout.createSequentialGroup()
818 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
819 .addComponent(separator)
820 .addGroup(jPanel1Layout.createSequentialGroup()
821 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
822 .addGroup(jPanel1Layout.createSequentialGroup()
823 .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
825 .addComponent(setsListLabel)
826 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
827 .addComponent(setsListScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE)
828 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
829 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
830 .addComponent(newSetButton)
831 .addComponent(editSetButton)
832 .addComponent(deleteSetButton)))
833 .addGroup(jPanel1Layout.createSequentialGroup()
834 .addComponent(jLabel6)
835 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
836 .addComponent(jLabel5)
837 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
838 .addComponent(setDescScrollPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
839 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
840 .addComponent(ignoreKnownFilesCheckbox)
841 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
842 .addComponent(rulesListLabel)
843 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
844 .addComponent(rulesListScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 64, javax.swing.GroupLayout.PREFERRED_SIZE)
845 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
846 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
847 .addComponent(newRuleButton)
848 .addComponent(editRuleButton)
849 .addComponent(deleteRuleButton))
850 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
851 .addComponent(jLabel1)
853 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
854 .addComponent(jLabel2)
855 .addComponent(filesRadioButton)
856 .addComponent(dirsRadioButton)
857 .addComponent(bothRadioButton))
859 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
860 .addComponent(jLabel3)
861 .addComponent(fileNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
862 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
863 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
864 .addComponent(fileNameRadioButton)
865 .addComponent(fileNameExtensionRadioButton)
866 .addComponent(fileNameRegexCheckbox))))
868 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
869 .addComponent(jLabel4)
870 .addComponent(rulePathConditionTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
871 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
872 .addComponent(rulePathConditionRegexCheckBox)
874 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
875 .addComponent(jLabel7)
876 .addComponent(mimeTypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
878 .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
879 .addComponent(jLabel8)
880 .addComponent(equalitySignComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
881 .addComponent(jSpinner1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
882 .addComponent(fileSizeUnitComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
886 jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL,
new java.awt.Component[] {deleteRuleButton, deleteSetButton, editRuleButton, editSetButton, newRuleButton, newSetButton});
888 jScrollPane1.setViewportView(jPanel1);
890 javax.swing.GroupLayout layout =
new javax.swing.GroupLayout(
this);
891 this.setLayout(layout);
892 layout.setHorizontalGroup(
893 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
894 .addGroup(layout.createSequentialGroup()
895 .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 728, javax.swing.GroupLayout.PREFERRED_SIZE)
896 .addGap(0, 34, Short.MAX_VALUE))
898 layout.setVerticalGroup(
899 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
900 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 503, Short.MAX_VALUE)
904 private void dirsRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {
908 private void newSetButtonActionPerformed(java.awt.event.ActionEvent evt) {
909 this.doFileSetsDialog(null);
912 private void deleteRuleButtonActionPerformed(java.awt.event.ActionEvent evt) {
917 FilesSet oldSet = this.setsList.getSelectedValue();
918 Map<String, FilesSet.Rule> rules =
new HashMap<>(oldSet.getRules());
919 FilesSet.Rule selectedRule = this.rulesList.getSelectedValue();
920 rules.remove(selectedRule.getUuid());
921 this.replaceFilesSet(oldSet, oldSet.getName(), oldSet.getDescription(), oldSet.ignoresKnownFiles(), rules);
924 private void deleteSetButtonActionPerformed(java.awt.event.ActionEvent evt) {
925 FilesSet selectedSet = this.setsList.getSelectedValue();
926 this.filesSets.remove(selectedSet.getName());
927 this.setsListModel.removeElement(selectedSet);
931 if (!this.filesSets.isEmpty()) {
932 this.setsList.setSelectedIndex(0);
934 this.resetComponents();
938 private void ignoreKnownFilesCheckboxActionPerformed(java.awt.event.ActionEvent evt) {
942 private void editSetButtonActionPerformed(java.awt.event.ActionEvent evt) {
943 this.doFileSetsDialog(this.setsList.getSelectedValue());
946 private void editRuleButtonActionPerformed(java.awt.event.ActionEvent evt) {
947 this.doFilesSetRuleDialog(this.rulesList.getSelectedValue());
950 private void newRuleButtonActionPerformed(java.awt.event.ActionEvent evt) {
951 this.doFilesSetRuleDialog(null);
954 private void fileNameTextFieldActionPerformed(java.awt.event.ActionEvent evt) {
959 private javax.swing.JRadioButton bothRadioButton;
960 private javax.swing.JButton deleteRuleButton;
961 private javax.swing.JButton deleteSetButton;
962 private javax.swing.JRadioButton dirsRadioButton;
963 private javax.swing.JButton editRuleButton;
964 private javax.swing.JButton editSetButton;
965 private javax.swing.JComboBox<String> equalitySignComboBox;
966 private javax.swing.ButtonGroup fileNameButtonGroup;
967 private javax.swing.JRadioButton fileNameExtensionRadioButton;
968 private javax.swing.JRadioButton fileNameRadioButton;
969 private javax.swing.JCheckBox fileNameRegexCheckbox;
970 private javax.swing.JTextField fileNameTextField;
971 private javax.swing.JComboBox<String> fileSizeUnitComboBox;
972 private javax.swing.JRadioButton filesRadioButton;
973 private javax.swing.JCheckBox ignoreKnownFilesCheckbox;
974 private javax.swing.JLabel jLabel1;
975 private javax.swing.JLabel jLabel2;
976 private javax.swing.JLabel jLabel3;
977 private javax.swing.JLabel jLabel4;
978 private javax.swing.JLabel jLabel5;
979 private javax.swing.JLabel jLabel6;
980 private javax.swing.JLabel jLabel7;
981 private javax.swing.JLabel jLabel8;
982 private javax.swing.JPanel jPanel1;
983 private javax.swing.JScrollPane jScrollPane1;
984 private javax.swing.JScrollPane jScrollPane2;
985 private javax.swing.JSpinner jSpinner1;
986 private javax.swing.JTextArea jTextArea1;
987 private javax.swing.JComboBox<String> mimeTypeComboBox;
988 private javax.swing.JButton newRuleButton;
989 private javax.swing.JButton newSetButton;
990 private javax.swing.JCheckBox rulePathConditionRegexCheckBox;
991 private javax.swing.JTextField rulePathConditionTextField;
992 private javax.swing.JList<FilesSet.Rule> rulesList;
993 private javax.swing.JLabel rulesListLabel;
994 private javax.swing.JScrollPane rulesListScrollPane;
995 private javax.swing.JSeparator separator;
996 private javax.swing.JScrollPane setDescScrollPanel;
997 private javax.swing.JTextArea setDescriptionTextArea;
998 private javax.swing.JList<FilesSet> setsList;
999 private javax.swing.JLabel setsListLabel;
1000 private javax.swing.JScrollPane setsListScrollPane;
1001 private javax.swing.ButtonGroup typeButtonGroup;
void valueChanged(ListSelectionEvent e)
void valueChanged(ListSelectionEvent e)
synchronized static Logger getLogger(String name)