From dbdfedae016c8b6e5ea758e651bed27a7d4ee1a4 Mon Sep 17 00:00:00 2001 From: Oliver Spohngellert Date: Mon, 22 Feb 2016 10:11:46 -0500 Subject: [PATCH] Working back to using radio buttons --- Core/nbproject/project.xml | 9 ++ .../interestingitems/Bundle.properties | 5 +- .../interestingitems/FilesSetRulePanel.form | 60 +++++++----- .../interestingitems/FilesSetRulePanel.java | 96 +++++++++---------- 4 files changed, 93 insertions(+), 77 deletions(-) diff --git a/Core/nbproject/project.xml b/Core/nbproject/project.xml index a2ddc46460..9e144a3a62 100644 --- a/Core/nbproject/project.xml +++ b/Core/nbproject/project.xml @@ -6,6 +6,15 @@ org.sleuthkit.autopsy.core + + org.jdesktop.beansbinding + + + + 1 + 1.24.1.121 + + org.netbeans.api.progress diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle.properties b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle.properties index 979d52c648..85403fb1d2 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle.properties +++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/Bundle.properties @@ -61,6 +61,7 @@ InterestingItemDefsPanel.rulePathConditionRegexCheckBox.text=Regex FilesSetRulePanel.nameCheck.text=Name Pattern: FilesSetRulePanel.pathCheck.text=Path Pattern: FilesSetRulePanel.mimeCheck.text=MIME Type: -FilesSetRulePanel.filesCheck.text=Files -FilesSetRulePanel.directoriesCheck.text=Directories FilesSetRulePanel.fileSizeCheck.text=File Size: +FilesSetRulePanel.filesRadio.text=Files +FilesSetRulePanel.dirsRadio.text=Directories +FilesSetRulePanel.filesAndDirsRadio.text=Files and Directories diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.form b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.form index 4c2f046fbb..f3aee5608b 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.form +++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.form @@ -33,18 +33,18 @@ - - - - - - - - - - + + + + + + + + + + @@ -107,10 +107,11 @@ - - + + + - + @@ -131,7 +132,7 @@ - + @@ -339,26 +340,35 @@ - + - - + - - - + + + - + - + - - - + + + + + + + + + + + + + diff --git a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java index 3843a27c14..fdbd458319 100755 --- a/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java +++ b/Core/src/org/sleuthkit/autopsy/modules/interestingitems/FilesSetRulePanel.java @@ -88,7 +88,7 @@ final class FilesSetRulePanel extends javax.swing.JPanel { * Populates the UI components with default values. */ private void populateComponentsWithDefaultValues() { - this.filesCheck.setSelected(true); + this.filesRadio.setSelected(true); this.fullNameRadioButton.setSelected(true); this.equalitySymbolComboBox.setSelectedIndex(2); this.fileSizeComboBox.setSelectedIndex(1); @@ -136,8 +136,7 @@ final class FilesSetRulePanel extends javax.swing.JPanel { private void setOkButton() { if (this.okButton != null) { - if (!(this.filesCheck.isSelected() || this.directoriesCheck.isSelected()) - || !(this.fileSizeCheck.isSelected() || this.mimeCheck.isSelected() + if (!(this.fileSizeCheck.isSelected() || this.mimeCheck.isSelected() || this.nameCheck.isSelected() || this.pathCheck.isSelected())) { this.okButton.setEnabled(false); } @@ -193,14 +192,13 @@ final class FilesSetRulePanel extends javax.swing.JPanel { FilesSet.Rule.MetaTypeCondition typeCondition = rule.getMetaTypeCondition(); switch (typeCondition.getMetaType()) { case FILES: - this.filesCheck.setSelected(true); + this.filesRadio.setSelected(true); break; case DIRECTORIES: - this.directoriesCheck.setSelected(true); + this.dirsRadio.setSelected(true); break; case FILES_AND_DIRECTORIES: - this.filesCheck.setSelected(true); - this.directoriesCheck.setSelected(true); + this.filesAndDirsRadio.setSelected(true); break; } } @@ -391,9 +389,9 @@ final class FilesSetRulePanel extends javax.swing.JPanel { * @return A type condition. */ FilesSet.Rule.MetaTypeCondition getMetaTypeCondition() { - if (this.filesCheck.isSelected() && !this.directoriesCheck.isSelected()) { + if (this.filesRadio.isSelected()) { return new FilesSet.Rule.MetaTypeCondition(FilesSet.Rule.MetaTypeCondition.Type.FILES); - } else if (this.directoriesCheck.isSelected() && !this.filesCheck.isSelected()) { + } else if (this.dirsRadio.isSelected()) { return new FilesSet.Rule.MetaTypeCondition(FilesSet.Rule.MetaTypeCondition.Type.DIRECTORIES); } else { return new FilesSet.Rule.MetaTypeCondition(FilesSet.Rule.MetaTypeCondition.Type.FILES_AND_DIRECTORIES); @@ -463,7 +461,7 @@ final class FilesSetRulePanel extends javax.swing.JPanel { * state of the UI components in the type button group. */ private void setComponentsForSearchType() { - if (this.directoriesCheck.isSelected()) { + if (this.dirsRadio.isSelected()) { this.fullNameRadioButton.setSelected(true); this.extensionRadioButton.setEnabled(false); this.mimeTypeComboBox.setEnabled(false); @@ -492,6 +490,7 @@ final class FilesSetRulePanel extends javax.swing.JPanel { @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { + bindingGroup = new org.jdesktop.beansbinding.BindingGroup(); nameButtonGroup = new javax.swing.ButtonGroup(); typeButtonGroup = new javax.swing.ButtonGroup(); @@ -514,8 +513,9 @@ final class FilesSetRulePanel extends javax.swing.JPanel { pathCheck = new javax.swing.JCheckBox(); mimeCheck = new javax.swing.JCheckBox(); fileSizeCheck = new javax.swing.JCheckBox(); - filesCheck = new javax.swing.JCheckBox(); - directoriesCheck = new javax.swing.JCheckBox(); + filesRadio = new javax.swing.JRadioButton(); + dirsRadio = new javax.swing.JRadioButton(); + filesAndDirsRadio = new javax.swing.JRadioButton(); org.openide.awt.Mnemonics.setLocalizedText(ruleNameLabel, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.ruleNameLabel.text")); // NOI18N @@ -600,20 +600,20 @@ final class FilesSetRulePanel extends javax.swing.JPanel { } }); - filesCheck.setSelected(true); - org.openide.awt.Mnemonics.setLocalizedText(filesCheck, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.filesCheck.text")); // NOI18N - filesCheck.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - filesCheckActionPerformed(evt); - } - }); + org.openide.awt.Mnemonics.setLocalizedText(filesRadio, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.filesRadio.text")); // NOI18N - org.openide.awt.Mnemonics.setLocalizedText(directoriesCheck, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.directoriesCheck.text")); // NOI18N - directoriesCheck.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - directoriesCheckActionPerformed(evt); - } - }); + org.jdesktop.beansbinding.Binding binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, typeButtonGroup, org.jdesktop.beansbinding.ObjectProperty.create(), filesRadio, org.jdesktop.beansbinding.BeanProperty.create("selected")); + bindingGroup.addBinding(binding); + + org.openide.awt.Mnemonics.setLocalizedText(dirsRadio, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.dirsRadio.text")); // NOI18N + + binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, typeButtonGroup, org.jdesktop.beansbinding.ObjectProperty.create(), dirsRadio, org.jdesktop.beansbinding.BeanProperty.create("selected")); + bindingGroup.addBinding(binding); + + org.openide.awt.Mnemonics.setLocalizedText(filesAndDirsRadio, org.openide.util.NbBundle.getMessage(FilesSetRulePanel.class, "FilesSetRulePanel.filesAndDirsRadio.text")); // NOI18N + + binding = org.jdesktop.beansbinding.Bindings.createAutoBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, typeButtonGroup, org.jdesktop.beansbinding.ObjectProperty.create(), filesAndDirsRadio, org.jdesktop.beansbinding.BeanProperty.create("selected")); + bindingGroup.addBinding(binding); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); @@ -629,15 +629,16 @@ final class FilesSetRulePanel extends javax.swing.JPanel { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(ruleNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 234, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel1) - .addGap(64, 64, 64) - .addComponent(filesCheck) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(directoriesCheck)) - .addComponent(jLabel5)) - .addGap(0, 0, Short.MAX_VALUE)))) + .addComponent(jLabel5) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel1) + .addGap(65, 65, 65) + .addComponent(filesRadio) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(dirsRadio) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(filesAndDirsRadio)))) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(nameCheck) @@ -685,9 +686,10 @@ final class FilesSetRulePanel extends javax.swing.JPanel { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) - .addComponent(filesCheck) - .addComponent(directoriesCheck)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(filesRadio) + .addComponent(dirsRadio) + .addComponent(filesAndDirsRadio)) + .addGap(5, 5, 5) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(nameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(nameCheck)) @@ -704,7 +706,7 @@ final class FilesSetRulePanel extends javax.swing.JPanel { .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(pathRegexCheckBox) .addComponent(pathSeparatorInfoLabel)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 8, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(mimeTypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(mimeCheck)) @@ -720,6 +722,8 @@ final class FilesSetRulePanel extends javax.swing.JPanel { .addComponent(ruleNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); + + bindingGroup.bind(); }// //GEN-END:initComponents private void ruleNameTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ruleNameTextFieldActionPerformed @@ -780,28 +784,19 @@ final class FilesSetRulePanel extends javax.swing.JPanel { this.setOkButton(); }//GEN-LAST:event_fileSizeCheckActionPerformed - private void filesCheckActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_filesCheckActionPerformed - this.setComponentsForSearchType(); - this.setOkButton(); - }//GEN-LAST:event_filesCheckActionPerformed - - private void directoriesCheckActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_directoriesCheckActionPerformed - this.setComponentsForSearchType(); - this.setOkButton(); - }//GEN-LAST:event_directoriesCheckActionPerformed - private void mimeTypeComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mimeTypeComboBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_mimeTypeComboBoxActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JCheckBox directoriesCheck; + private javax.swing.JRadioButton dirsRadio; private javax.swing.JComboBox equalitySymbolComboBox; private javax.swing.JRadioButton extensionRadioButton; private javax.swing.JCheckBox fileSizeCheck; private javax.swing.JComboBox fileSizeComboBox; private javax.swing.JSpinner fileSizeSpinner; - private javax.swing.JCheckBox filesCheck; + private javax.swing.JRadioButton filesAndDirsRadio; + private javax.swing.JRadioButton filesRadio; private javax.swing.JRadioButton fullNameRadioButton; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel5; @@ -818,5 +813,6 @@ final class FilesSetRulePanel extends javax.swing.JPanel { private javax.swing.JLabel ruleNameLabel; private javax.swing.JTextField ruleNameTextField; private javax.swing.ButtonGroup typeButtonGroup; + private org.jdesktop.beansbinding.BindingGroup bindingGroup; // End of variables declaration//GEN-END:variables }