Autopsy  3.1
Graphical digital forensics platform for The Sleuth Kit and other tools.
FilesSetRulePanel.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2014 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.modules.interestingitems;
20 
21 import java.util.List;
22 import java.util.logging.Level;
23 import java.util.regex.Pattern;
24 import java.util.regex.PatternSyntaxException;
25 import org.openide.DialogDisplayer;
26 import org.openide.NotifyDescriptor;
27 import org.openide.util.NbBundle;
29 
34 final class FilesSetRulePanel extends javax.swing.JPanel {
35 
36  private static final Logger logger = Logger.getLogger(FilesSetRulePanel.class.getName());
37  private static final String SLEUTHKIT_PATH_SEPARATOR = "/"; // NON-NLS
38  private static final List<String> ILLEGAL_FILE_NAME_CHARS = InterestingItemDefsManager.getIllegalFileNameChars();
39  private static final List<String> ILLEGAL_FILE_PATH_CHARS = InterestingItemDefsManager.getIllegalFilePathChars();
40 
44  FilesSetRulePanel() {
45  initComponents();
46  populateComponentsWithDefaultValues();
47  }
48 
54  FilesSetRulePanel(FilesSet.Rule rule) {
55  initComponents();
56  populateRuleNameComponent(rule);
57  populateTypeFilterComponents(rule);
58  populateNameFilterComponents(rule);
59  populatePathFilterComponents(rule);
60  }
61 
65  private void populateComponentsWithDefaultValues() {
66  this.filesRadioButton.setSelected(true);
67  this.fullNameRadioButton.setSelected(true);
68  }
69 
75  private void populateRuleNameComponent(FilesSet.Rule rule) {
76  this.ruleNameTextField.setText(rule.getName());
77  }
78 
84  private void populateTypeFilterComponents(FilesSet.Rule rule) {
85  FilesSet.Rule.MetaTypeFilter typeFilter = rule.getMetaTypeFilter();
86  switch (typeFilter.getMetaType()) {
87  case FILES:
88  this.filesRadioButton.setSelected(true);
89  break;
90  case DIRECTORIES:
91  this.dirsRadioButton.setSelected(true);
92  break;
93  case FILES_AND_DIRECTORIES:
94  this.filesAndDirsRadioButton.setSelected(true);
95  break;
96  }
97  }
98 
104  private void populateNameFilterComponents(FilesSet.Rule rule) {
105  FilesSet.Rule.FileNameFilter nameFilter = rule.getFileNameFilter();
106  this.nameTextField.setText(nameFilter.getTextToMatch());
107  this.nameRegexCheckbox.setSelected(nameFilter.isRegex());
108  if (nameFilter instanceof FilesSet.Rule.FullNameFilter) {
109  this.fullNameRadioButton.setSelected(true);
110  } else {
111  this.extensionRadioButton.setSelected(true);
112  }
113  }
114 
121  private void populatePathFilterComponents(FilesSet.Rule rule) {
122  FilesSet.Rule.ParentPathFilter pathFilter = rule.getPathFilter();
123  if (pathFilter != null) {
124  this.pathTextField.setText(pathFilter.getTextToMatch());
125  this.pathRegexCheckBox.setSelected(pathFilter.isRegex());
126  }
127  }
128 
136  boolean isValidRuleDefinition() {
137 
138  // The rule must have name filter text.
139  if (this.nameTextField.getText().isEmpty()) {
140  NotifyDescriptor notifyDesc = new NotifyDescriptor.Message(
141  NbBundle.getMessage(FilesSetPanel.class, "FilesSetRulePanel.messages.emptyNameFilter"),
142  NotifyDescriptor.WARNING_MESSAGE);
143  DialogDisplayer.getDefault().notify(notifyDesc);
144  return false;
145  }
146 
147  // The name filter must either be a regular expression that compiles or
148  // a string without illegal file name chars.
149  if (this.nameRegexCheckbox.isSelected()) {
150  try {
151  Pattern.compile(this.nameTextField.getText());
152  } catch (PatternSyntaxException ex) {
153  NotifyDescriptor notifyDesc = new NotifyDescriptor.Message(
154  NbBundle.getMessage(FilesSetPanel.class, "FilesSetRulePanel.messages.invalidNameRegex", ex.getLocalizedMessage()),
155  NotifyDescriptor.WARNING_MESSAGE);
156  DialogDisplayer.getDefault().notify(notifyDesc);
157  return false;
158  }
159  } else {
160  if (!FilesSetRulePanel.containsOnlyLegalChars(this.nameTextField.getText(), FilesSetRulePanel.ILLEGAL_FILE_NAME_CHARS)) {
161  NotifyDescriptor notifyDesc = new NotifyDescriptor.Message(
162  NbBundle.getMessage(FilesSetPanel.class, "FilesSetRulePanel.messages.invalidCharInName"),
163  NotifyDescriptor.WARNING_MESSAGE);
164  DialogDisplayer.getDefault().notify(notifyDesc);
165  return false;
166  }
167  }
168 
169  // The path filter, if specified, must either be a regular expression
170  // that compiles or a string without illegal file path chars.
171  if (!this.pathTextField.getText().isEmpty()) {
172  if (this.pathRegexCheckBox.isSelected()) {
173  try {
174  Pattern.compile(this.pathTextField.getText());
175  } catch (PatternSyntaxException ex) {
176  NotifyDescriptor notifyDesc = new NotifyDescriptor.Message(
177  NbBundle.getMessage(FilesSetPanel.class, "FilesSetRulePanel.messages.invalidPathRegex", ex.getLocalizedMessage()),
178  NotifyDescriptor.WARNING_MESSAGE);
179  DialogDisplayer.getDefault().notify(notifyDesc);
180  return false;
181  }
182  } else {
183  if (!FilesSetRulePanel.containsOnlyLegalChars(this.pathTextField.getText(), FilesSetRulePanel.ILLEGAL_FILE_PATH_CHARS)) {
184  NotifyDescriptor notifyDesc = new NotifyDescriptor.Message(
185  NbBundle.getMessage(FilesSetPanel.class, "FilesSetRulePanel.messages.invalidCharInPath"),
186  NotifyDescriptor.WARNING_MESSAGE);
187  DialogDisplayer.getDefault().notify(notifyDesc);
188  return false;
189  }
190  }
191  }
192 
193  return true;
194  }
195 
201  String getRuleName() {
202  return this.ruleNameTextField.getText();
203  }
204 
212  FilesSet.Rule.FileNameFilter getFileNameFilter() throws IllegalStateException {
213  FilesSet.Rule.FileNameFilter filter = null;
214  if (!this.nameTextField.getText().isEmpty()) {
215  if (this.nameRegexCheckbox.isSelected()) {
216  try {
217  Pattern pattern = Pattern.compile(this.nameTextField.getText());
218  if (this.fullNameRadioButton.isSelected()) {
219  filter = new FilesSet.Rule.FullNameFilter(pattern);
220  } else {
221  filter = new FilesSet.Rule.ExtensionFilter(pattern);
222  }
223  } catch (PatternSyntaxException ex) {
224  logger.log(Level.SEVERE, "Attempt to get regex name filter that does not compile", ex); // NON-NLS
225  throw new IllegalStateException("The files set rule panel name filter is not in a valid state"); // NON-NLS
226  }
227  } else {
228  if (FilesSetRulePanel.containsOnlyLegalChars(this.nameTextField.getText(), FilesSetRulePanel.ILLEGAL_FILE_NAME_CHARS)) {
229  if (this.fullNameRadioButton.isSelected()) {
230  filter = new FilesSet.Rule.FullNameFilter(this.nameTextField.getText());
231  } else {
232  filter = new FilesSet.Rule.ExtensionFilter(this.nameTextField.getText());
233  }
234  } else {
235  logger.log(Level.SEVERE, "Attempt to get name filter with illegal chars"); // NON-NLS
236  throw new IllegalStateException("The files set rule panel name filter is not in a valid state"); // NON-NLS
237  }
238  }
239  }
240  return filter;
241  }
242 
248  FilesSet.Rule.MetaTypeFilter getMetaTypeFilter() {
249  if (this.filesRadioButton.isSelected()) {
250  return new FilesSet.Rule.MetaTypeFilter(FilesSet.Rule.MetaTypeFilter.Type.FILES);
251  } else if (this.dirsRadioButton.isSelected()) {
252  return new FilesSet.Rule.MetaTypeFilter(FilesSet.Rule.MetaTypeFilter.Type.DIRECTORIES);
253  } else {
254  return new FilesSet.Rule.MetaTypeFilter(FilesSet.Rule.MetaTypeFilter.Type.FILES_AND_DIRECTORIES);
255  }
256  }
257 
265  FilesSet.Rule.ParentPathFilter getPathFilter() throws IllegalStateException {
266  FilesSet.Rule.ParentPathFilter filter = null;
267  if (!this.pathTextField.getText().isEmpty()) {
268  if (this.pathRegexCheckBox.isSelected()) {
269  try {
270  filter = new FilesSet.Rule.ParentPathFilter(Pattern.compile(this.pathTextField.getText()));
271  } catch (PatternSyntaxException ex) {
272  logger.log(Level.SEVERE, "Attempt to get malformed path filter", ex); // NON-NLS
273  throw new IllegalStateException("The files set rule panel path filter is not in a valid state"); // NON-NLS
274  }
275  } else {
276  String path = this.pathTextField.getText();
277  if (FilesSetRulePanel.containsOnlyLegalChars(path, FilesSetRulePanel.ILLEGAL_FILE_PATH_CHARS)) {
278  // Add a leading path separator if omitted.
279  if (!path.startsWith(FilesSetRulePanel.SLEUTHKIT_PATH_SEPARATOR)) {
280  path = FilesSetRulePanel.SLEUTHKIT_PATH_SEPARATOR + path;
281  }
282  // Add a trailing path separator if omitted.
283  if (!path.endsWith(FilesSetRulePanel.SLEUTHKIT_PATH_SEPARATOR)) {
284  path += FilesSetRulePanel.SLEUTHKIT_PATH_SEPARATOR;
285  }
286  filter = new FilesSet.Rule.ParentPathFilter(path);
287  } else {
288  logger.log(Level.SEVERE, "Attempt to get path filter with illegal chars"); // NON-NLS
289  throw new IllegalStateException("The files set rule panel path filter is not in a valid state"); // NON-NLS
290  }
291  }
292  }
293  return filter;
294  }
295 
304  private static boolean containsOnlyLegalChars(String toBeChecked, List<String> illegalChars) {
305  for (String illegalChar : illegalChars) {
306  if (toBeChecked.contains(illegalChar)) {
307  return false;
308  }
309  }
310  return true;
311  }
312 
317  private void setComponentsForSearchType() {
318  if (!this.filesRadioButton.isSelected()) {
319  this.fullNameRadioButton.setSelected(true);
320  this.extensionRadioButton.setEnabled(false);
321  } else {
322  this.extensionRadioButton.setEnabled(true);
323  }
324  }
325 
331  @SuppressWarnings("unchecked")
332  // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
333  private void initComponents() {
334 
335  nameButtonGroup = new javax.swing.ButtonGroup();
336  typeButtonGroup = new javax.swing.ButtonGroup();
337  ruleNameLabel = new javax.swing.JLabel();
338  ruleNameTextField = new javax.swing.JTextField();
339  jLabel1 = new javax.swing.JLabel();
340  dirsRadioButton = new javax.swing.JRadioButton();
341  filesRadioButton = new javax.swing.JRadioButton();
342  filesAndDirsRadioButton = new javax.swing.JRadioButton();
343  jLabel2 = new javax.swing.JLabel();
344  nameTextField = new javax.swing.JTextField();
345  fullNameRadioButton = new javax.swing.JRadioButton();
346  extensionRadioButton = new javax.swing.JRadioButton();
347  nameRegexCheckbox = new javax.swing.JCheckBox();
348  jLabel3 = new javax.swing.JLabel();
349  pathTextField = new javax.swing.JTextField();
350  pathRegexCheckBox = new javax.swing.JCheckBox();
351  pathSeparatorInfoLabel = new javax.swing.JLabel();
352  jLabel4 = new javax.swing.JLabel();
353  jLabel5 = new javax.swing.JLabel();
354 
355  org.openide.awt.Mnemonics.setLocalizedText(ruleNameLabel, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.ruleNameLabel.text")); // NOI18N
356 
357  ruleNameTextField.setText(org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.ruleNameTextField.text")); // NOI18N
358 
359  org.openide.awt.Mnemonics.setLocalizedText(jLabel1, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.jLabel1.text")); // NOI18N
360 
361  typeButtonGroup.add(dirsRadioButton);
362  org.openide.awt.Mnemonics.setLocalizedText(dirsRadioButton, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.dirsRadioButton.text")); // NOI18N
363  dirsRadioButton.addActionListener(new java.awt.event.ActionListener() {
364  public void actionPerformed(java.awt.event.ActionEvent evt) {
365  dirsRadioButtonActionPerformed(evt);
366  }
367  });
368 
369  typeButtonGroup.add(filesRadioButton);
370  org.openide.awt.Mnemonics.setLocalizedText(filesRadioButton, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.filesRadioButton.text")); // NOI18N
371  filesRadioButton.addActionListener(new java.awt.event.ActionListener() {
372  public void actionPerformed(java.awt.event.ActionEvent evt) {
373  filesRadioButtonActionPerformed(evt);
374  }
375  });
376 
377  typeButtonGroup.add(filesAndDirsRadioButton);
378  org.openide.awt.Mnemonics.setLocalizedText(filesAndDirsRadioButton, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.filesAndDirsRadioButton.text")); // NOI18N
379  filesAndDirsRadioButton.addActionListener(new java.awt.event.ActionListener() {
380  public void actionPerformed(java.awt.event.ActionEvent evt) {
381  filesAndDirsRadioButtonActionPerformed(evt);
382  }
383  });
384 
385  org.openide.awt.Mnemonics.setLocalizedText(jLabel2, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.jLabel2.text")); // NOI18N
386 
387  nameTextField.setText(org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.nameTextField.text")); // NOI18N
388 
389  nameButtonGroup.add(fullNameRadioButton);
390  org.openide.awt.Mnemonics.setLocalizedText(fullNameRadioButton, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.fullNameRadioButton.text")); // NOI18N
391 
392  nameButtonGroup.add(extensionRadioButton);
393  org.openide.awt.Mnemonics.setLocalizedText(extensionRadioButton, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.extensionRadioButton.text")); // NOI18N
394 
395  org.openide.awt.Mnemonics.setLocalizedText(nameRegexCheckbox, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.nameRegexCheckbox.text")); // NOI18N
396 
397  org.openide.awt.Mnemonics.setLocalizedText(jLabel3, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.jLabel3.text")); // NOI18N
398 
399  pathTextField.setText(org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.pathTextField.text")); // NOI18N
400 
401  org.openide.awt.Mnemonics.setLocalizedText(pathRegexCheckBox, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.pathRegexCheckBox.text")); // NOI18N
402 
403  pathSeparatorInfoLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/images/info-icon-16.png"))); // NOI18N
404  org.openide.awt.Mnemonics.setLocalizedText(pathSeparatorInfoLabel, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.pathSeparatorInfoLabel.text")); // NOI18N
405 
406  org.openide.awt.Mnemonics.setLocalizedText(jLabel4, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.jLabel4.text")); // NOI18N
407 
408  org.openide.awt.Mnemonics.setLocalizedText(jLabel5, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.jLabel5.text")); // NOI18N
409 
410  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
411  this.setLayout(layout);
412  layout.setHorizontalGroup(
413  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
414  .addGroup(layout.createSequentialGroup()
415  .addContainerGap()
416  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
417  .addGroup(layout.createSequentialGroup()
418  .addComponent(jLabel3)
419  .addGap(18, 18, 18)
420  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
421  .addGroup(layout.createSequentialGroup()
422  .addComponent(pathRegexCheckBox)
423  .addGap(45, 45, 45)
424  .addComponent(pathSeparatorInfoLabel))
425  .addComponent(pathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 239, javax.swing.GroupLayout.PREFERRED_SIZE)))
426  .addGroup(layout.createSequentialGroup()
427  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
428  .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
429  .addComponent(ruleNameLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
430  .addGap(18, 18, 18))
431  .addGroup(layout.createSequentialGroup()
432  .addComponent(jLabel1)
433  .addGap(27, 27, 27)))
434  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
435  .addGroup(layout.createSequentialGroup()
436  .addComponent(filesRadioButton)
437  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
438  .addComponent(dirsRadioButton)
439  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
440  .addComponent(filesAndDirsRadioButton))
441  .addComponent(ruleNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 248, javax.swing.GroupLayout.PREFERRED_SIZE)))
442  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
443  .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
444  .addComponent(jLabel2)
445  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
446  .addComponent(nameTextField))
447  .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
448  .addGap(78, 78, 78)
449  .addComponent(fullNameRadioButton)
450  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
451  .addComponent(extensionRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
452  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
453  .addComponent(nameRegexCheckbox)))
454  .addComponent(jLabel4)
455  .addComponent(jLabel5))
456  .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
457  );
458  layout.setVerticalGroup(
459  layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
460  .addGroup(layout.createSequentialGroup()
461  .addComponent(jLabel5)
462  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, 19, Short.MAX_VALUE)
463  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
464  .addComponent(jLabel1)
465  .addComponent(dirsRadioButton)
466  .addComponent(filesRadioButton)
467  .addComponent(filesAndDirsRadioButton))
468  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
469  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
470  .addComponent(jLabel2)
471  .addComponent(nameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE))
472  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
473  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
474  .addComponent(fullNameRadioButton)
475  .addComponent(extensionRadioButton)
476  .addComponent(nameRegexCheckbox))
477  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
478  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
479  .addComponent(pathTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
480  .addComponent(jLabel3))
481  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
482  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
483  .addComponent(pathSeparatorInfoLabel)
484  .addComponent(pathRegexCheckBox))
485  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
486  .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
487  .addComponent(ruleNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
488  .addComponent(ruleNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
489  .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
490  .addComponent(jLabel4))
491  );
492  }// </editor-fold>//GEN-END:initComponents
493 
494  private void filesAndDirsRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_filesAndDirsRadioButtonActionPerformed
495  setComponentsForSearchType();
496  }//GEN-LAST:event_filesAndDirsRadioButtonActionPerformed
497 
498  private void dirsRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dirsRadioButtonActionPerformed
499  setComponentsForSearchType();
500  }//GEN-LAST:event_dirsRadioButtonActionPerformed
501 
502  private void filesRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_filesRadioButtonActionPerformed
503  setComponentsForSearchType();
504  }//GEN-LAST:event_filesRadioButtonActionPerformed
505 
506  // Variables declaration - do not modify//GEN-BEGIN:variables
507  private javax.swing.JRadioButton dirsRadioButton;
508  private javax.swing.JRadioButton extensionRadioButton;
509  private javax.swing.JRadioButton filesAndDirsRadioButton;
510  private javax.swing.JRadioButton filesRadioButton;
511  private javax.swing.JRadioButton fullNameRadioButton;
512  private javax.swing.JLabel jLabel1;
513  private javax.swing.JLabel jLabel2;
514  private javax.swing.JLabel jLabel3;
515  private javax.swing.JLabel jLabel4;
516  private javax.swing.JLabel jLabel5;
517  private javax.swing.ButtonGroup nameButtonGroup;
518  private javax.swing.JCheckBox nameRegexCheckbox;
519  private javax.swing.JTextField nameTextField;
520  private javax.swing.JCheckBox pathRegexCheckBox;
521  private javax.swing.JLabel pathSeparatorInfoLabel;
522  private javax.swing.JTextField pathTextField;
523  private javax.swing.JLabel ruleNameLabel;
524  private javax.swing.JTextField ruleNameTextField;
525  private javax.swing.ButtonGroup typeButtonGroup;
526  // End of variables declaration//GEN-END:variables
527 }
static Logger getLogger(String name)
Definition: Logger.java:131

Copyright © 2012-2015 Basis Technology. Generated on: Mon Oct 19 2015
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.