mirror of
https://github.com/elisspace/autopsy.git
synced 2026-09-30 06:19:52 +00:00
6714 fix listener, validation, and enabling of filters
This commit is contained in:
@@ -8,6 +8,9 @@
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/discovery/ui/Bundle.properties" key="ArtifactTypeFilterPanel.artifactTypeCheckbox.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="artifactTypeCheckboxActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</NonVisualComponents>
|
||||
<Properties>
|
||||
@@ -49,7 +52,7 @@
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JList" name="jList1">
|
||||
<Component class="javax.swing.JList" name="artifactList">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ListModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="new DefaultListModel<ArtifactTypeItem>()" type="code"/>
|
||||
|
||||
@@ -47,7 +47,7 @@ class ArtifactTypeFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
*/
|
||||
private void setUpArtifactTypeFilter() {
|
||||
int count = 0;
|
||||
DefaultListModel<ArtifactTypeItem> artifactTypeModel = (DefaultListModel<ArtifactTypeItem>) jList1.getModel();
|
||||
DefaultListModel<ArtifactTypeItem> artifactTypeModel = (DefaultListModel<ArtifactTypeItem>) artifactList.getModel();
|
||||
artifactTypeModel.removeAllElements();
|
||||
for (BlackboardArtifact.ARTIFACT_TYPE artifactType : SearchData.Type.DOMAIN.getArtifactTypes()) {
|
||||
artifactTypeModel.add(count, new ArtifactTypeItem(artifactType));
|
||||
@@ -66,17 +66,22 @@ class ArtifactTypeFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
|
||||
artifactTypeCheckbox = new javax.swing.JCheckBox();
|
||||
artifactTypeScrollPane = new javax.swing.JScrollPane();
|
||||
jList1 = new javax.swing.JList<>();
|
||||
artifactList = new javax.swing.JList<>();
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(artifactTypeCheckbox, org.openide.util.NbBundle.getMessage(ArtifactTypeFilterPanel.class, "ArtifactTypeFilterPanel.artifactTypeCheckbox.text")); // NOI18N
|
||||
artifactTypeCheckbox.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
artifactTypeCheckboxActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
setPreferredSize(new java.awt.Dimension(27, 27));
|
||||
|
||||
artifactTypeScrollPane.setPreferredSize(new java.awt.Dimension(27, 27));
|
||||
|
||||
jList1.setModel(new DefaultListModel<ArtifactTypeItem>());
|
||||
jList1.setEnabled(false);
|
||||
artifactTypeScrollPane.setViewportView(jList1);
|
||||
artifactList.setModel(new DefaultListModel<ArtifactTypeItem>());
|
||||
artifactList.setEnabled(false);
|
||||
artifactTypeScrollPane.setViewportView(artifactList);
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
@@ -90,9 +95,21 @@ class ArtifactTypeFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void artifactTypeCheckboxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_artifactTypeCheckboxActionPerformed
|
||||
artifactTypeScrollPane.setEnabled(artifactTypeCheckbox.isSelected());
|
||||
artifactList.setEnabled(artifactTypeCheckbox.isSelected());
|
||||
}//GEN-LAST:event_artifactTypeCheckboxActionPerformed
|
||||
|
||||
@Override
|
||||
void configurePanel(boolean selected, int[] indicesSelected) {
|
||||
artifactTypeCheckbox.setSelected(selected);
|
||||
if (artifactTypeCheckbox.isEnabled() && artifactTypeCheckbox.isSelected()) {
|
||||
artifactTypeScrollPane.setEnabled(true);
|
||||
artifactList.setEnabled(true);
|
||||
} else {
|
||||
artifactTypeScrollPane.setEnabled(false);
|
||||
artifactList.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -153,8 +170,8 @@ class ArtifactTypeFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
}
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JList<ArtifactTypeItem> artifactList;
|
||||
private javax.swing.JCheckBox artifactTypeCheckbox;
|
||||
private javax.swing.JScrollPane artifactTypeScrollPane;
|
||||
private javax.swing.JList<ArtifactTypeItem> jList1;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
||||
|
||||
@@ -39,7 +39,6 @@ SizeFilterPanel.sizeCheckbox.text=File Size:
|
||||
DateFilterPanel.dateFilterCheckbox.text=Date Filter:
|
||||
DateFilterPanel.endCheckBox.text=End:
|
||||
DateFilterPanel.startCheckBox.text=Start:
|
||||
DateFilterPanel.mostRecentButton.text=Only last:
|
||||
DateFilterPanel.daysLabel.text=days of activity
|
||||
ImageThumbnailPanel.isDeletedLabel.toolTipText=
|
||||
ResultsPanel.pageControlsLabel.text=Pages:
|
||||
@@ -54,3 +53,4 @@ PastOccurrencesFilterPanel.pastOccurrencesCheckbox.text=Past Occurrences:
|
||||
DocumentFilterPanel.documentsFiltersSplitPane.border.title=Step 2: Filter which documents to show
|
||||
ObjectDetectedFilterPanel.text=Object Detected:
|
||||
DetailsPanel.instancesList.border.title=Instances
|
||||
DateFilterPanel.mostRecentRadioButton.text=Only last:
|
||||
|
||||
@@ -93,7 +93,6 @@ SizeFilterPanel.sizeCheckbox.text=File Size:
|
||||
DateFilterPanel.dateFilterCheckbox.text=Date Filter:
|
||||
DateFilterPanel.endCheckBox.text=End:
|
||||
DateFilterPanel.startCheckBox.text=Start:
|
||||
DateFilterPanel.mostRecentButton.text=Only last:
|
||||
DateFilterPanel.daysLabel.text=days of activity
|
||||
ImageThumbnailPanel.isDeletedLabel.toolTipText=
|
||||
ResultsPanel.pageControlsLabel.text=Pages:
|
||||
@@ -108,6 +107,7 @@ PastOccurrencesFilterPanel.pastOccurrencesCheckbox.text=Past Occurrences:
|
||||
DocumentFilterPanel.documentsFiltersSplitPane.border.title=Step 2: Filter which documents to show
|
||||
ObjectDetectedFilterPanel.text=Object Detected:
|
||||
DetailsPanel.instancesList.border.title=Instances
|
||||
DateFilterPanel.mostRecentRadioButton.text=Only last:
|
||||
VideoThumbnailPanel.bytes.text=bytes
|
||||
VideoThumbnailPanel.deleted.text=All instances of file are deleted.
|
||||
VideoThumbnailPanel.gigaBytes.text=GB
|
||||
|
||||
@@ -10,6 +10,9 @@
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/discovery/ui/Bundle.properties" key="DateFilterPanel.dateFilterCheckbox.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="dateFilterCheckboxActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
</NonVisualComponents>
|
||||
<AuxValues>
|
||||
@@ -51,7 +54,7 @@
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<Component id="mostRecentButton" min="-2" pref="90" max="-2" attributes="0"/>
|
||||
<Component id="mostRecentRadioButton" min="-2" pref="90" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="daysSpinner" min="-2" pref="80" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
@@ -76,7 +79,7 @@
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="1" attributes="0">
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="mostRecentButton" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="mostRecentRadioButton" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="daysSpinner" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="daysLabel" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
@@ -104,6 +107,9 @@
|
||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[75, 26]"/>
|
||||
</Property>
|
||||
<Property name="value" type="java.lang.Object" editor="org.netbeans.modules.form.RADConnectionPropertyEditor">
|
||||
<Connection code="7" type="code"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<AuxValues>
|
||||
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new javax.swing.JSpinner(numberModel)"/>
|
||||
@@ -117,18 +123,18 @@
|
||||
<Property name="enabled" type="boolean" value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JRadioButton" name="mostRecentButton">
|
||||
<Component class="javax.swing.JRadioButton" name="mostRecentRadioButton">
|
||||
<Properties>
|
||||
<Property name="buttonGroup" type="javax.swing.ButtonGroup" editor="org.netbeans.modules.form.RADComponent$ButtonGroupPropertyEditor">
|
||||
<ComponentRef name="buttonGroup1"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/discovery/ui/Bundle.properties" key="DateFilterPanel.mostRecentButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/discovery/ui/Bundle.properties" key="DateFilterPanel.mostRecentRadioButton.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="enabled" type="boolean" value="false"/>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="mostRecentButtonActionPerformed"/>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="mostRecentRadioButtonActionPerformed"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="startCheckBox">
|
||||
|
||||
@@ -60,7 +60,7 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
daysSpinner = new javax.swing.JSpinner(numberModel);
|
||||
daysLabel = new javax.swing.JLabel();
|
||||
mostRecentButton = new javax.swing.JRadioButton();
|
||||
mostRecentRadioButton = new javax.swing.JRadioButton();
|
||||
startCheckBox = new javax.swing.JCheckBox();
|
||||
startDatePicker = new com.github.lgooddatepicker.components.DatePicker();
|
||||
endDatePicker = new com.github.lgooddatepicker.components.DatePicker();
|
||||
@@ -68,19 +68,25 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
rangeRadioButton = new javax.swing.JRadioButton();
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(dateFilterCheckbox, org.openide.util.NbBundle.getMessage(DateFilterPanel.class, "DateFilterPanel.dateFilterCheckbox.text")); // NOI18N
|
||||
dateFilterCheckbox.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
dateFilterCheckboxActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
daysSpinner.setEnabled(false);
|
||||
daysSpinner.setPreferredSize(new java.awt.Dimension(75, 26));
|
||||
daysSpinner.setValue(7);
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(daysLabel, org.openide.util.NbBundle.getMessage(DateFilterPanel.class, "DateFilterPanel.daysLabel.text")); // NOI18N
|
||||
daysLabel.setEnabled(false);
|
||||
|
||||
buttonGroup1.add(mostRecentButton);
|
||||
org.openide.awt.Mnemonics.setLocalizedText(mostRecentButton, org.openide.util.NbBundle.getMessage(DateFilterPanel.class, "DateFilterPanel.mostRecentButton.text")); // NOI18N
|
||||
mostRecentButton.setEnabled(false);
|
||||
mostRecentButton.addActionListener(new java.awt.event.ActionListener() {
|
||||
buttonGroup1.add(mostRecentRadioButton);
|
||||
org.openide.awt.Mnemonics.setLocalizedText(mostRecentRadioButton, org.openide.util.NbBundle.getMessage(DateFilterPanel.class, "DateFilterPanel.mostRecentRadioButton.text")); // NOI18N
|
||||
mostRecentRadioButton.setEnabled(false);
|
||||
mostRecentRadioButton.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
mostRecentButtonActionPerformed(evt);
|
||||
mostRecentRadioButtonActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -121,7 +127,7 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
jPanel1Layout.setHorizontalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(mostRecentButton, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(mostRecentRadioButton, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(daysSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
@@ -141,7 +147,7 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(mostRecentButton)
|
||||
.addComponent(mostRecentRadioButton)
|
||||
.addComponent(daysSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(daysLabel))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
@@ -177,25 +183,48 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
|
||||
private void startCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_startCheckBoxStateChanged
|
||||
startDatePicker.setEnabled(startCheckBox.isSelected());
|
||||
// validateFilters(); //TODO JIRA-6714 when search will begin doing something
|
||||
}//GEN-LAST:event_startCheckBoxStateChanged
|
||||
|
||||
private void endCheckBoxStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_endCheckBoxStateChanged
|
||||
endDatePicker.setEnabled(endCheckBox.isSelected());
|
||||
// validateFilters(); //TODO JIRA-6714 when search will begin doing something
|
||||
}//GEN-LAST:event_endCheckBoxStateChanged
|
||||
|
||||
private void mostRecentButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mostRecentButtonActionPerformed
|
||||
|
||||
}//GEN-LAST:event_mostRecentButtonActionPerformed
|
||||
private void mostRecentRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mostRecentRadioButtonActionPerformed
|
||||
startCheckBox.setEnabled(false);
|
||||
endCheckBox.setEnabled(false);
|
||||
daysSpinner.setEnabled(true);
|
||||
daysLabel.setEnabled(true);
|
||||
}//GEN-LAST:event_mostRecentRadioButtonActionPerformed
|
||||
|
||||
private void rangeRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rangeRadioButtonActionPerformed
|
||||
// TODO add your handling code here:
|
||||
startCheckBox.setEnabled(true);
|
||||
endCheckBox.setEnabled(true);
|
||||
daysSpinner.setEnabled(false);
|
||||
daysLabel.setEnabled(false);
|
||||
}//GEN-LAST:event_rangeRadioButtonActionPerformed
|
||||
|
||||
private void dateFilterCheckboxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dateFilterCheckboxActionPerformed
|
||||
mostRecentRadioButton.setEnabled(dateFilterCheckbox.isSelected());
|
||||
rangeRadioButton.setEnabled(dateFilterCheckbox.isSelected());
|
||||
}//GEN-LAST:event_dateFilterCheckboxActionPerformed
|
||||
|
||||
@Override
|
||||
void configurePanel(boolean selected, int[] indicesSelected) {
|
||||
dateFilterCheckbox.setSelected(selected);
|
||||
if (dateFilterCheckbox.isEnabled() && dateFilterCheckbox.isSelected()) {
|
||||
mostRecentRadioButton.setEnabled(true);
|
||||
rangeRadioButton.setEnabled(true);
|
||||
mostRecentRadioButton.setSelected(true);
|
||||
} else {
|
||||
mostRecentRadioButton.setEnabled(false);
|
||||
rangeRadioButton.setEnabled(false);
|
||||
daysLabel.setEnabled(false);
|
||||
daysSpinner.setEnabled(false);
|
||||
startCheckBox.setEnabled(false);
|
||||
endCheckBox.setEnabled(false);
|
||||
startDatePicker.setEnabled(false);
|
||||
endDatePicker.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -232,7 +261,7 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
|
||||
private javax.swing.JCheckBox endCheckBox;
|
||||
private com.github.lgooddatepicker.components.DatePicker endDatePicker;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
private javax.swing.JRadioButton mostRecentButton;
|
||||
private javax.swing.JRadioButton mostRecentRadioButton;
|
||||
private javax.swing.JRadioButton rangeRadioButton;
|
||||
private javax.swing.JCheckBox startCheckBox;
|
||||
private com.github.lgooddatepicker.components.DatePicker startDatePicker;
|
||||
|
||||
@@ -512,6 +512,10 @@ final class DiscoveryDialog extends javax.swing.JDialog {
|
||||
remove(imageFilterPanel);
|
||||
imageFilterPanel.removePropertyChangeListener(listener);
|
||||
}
|
||||
if (domainFilterPanel != null) {
|
||||
remove(domainFilterPanel);
|
||||
domainFilterPanel.removePropertyChangeListener(listener);
|
||||
}
|
||||
if (documentFilterPanel != null) {
|
||||
remove(documentFilterPanel);
|
||||
documentFilterPanel.removePropertyChangeListener(listener);
|
||||
@@ -520,10 +524,6 @@ final class DiscoveryDialog extends javax.swing.JDialog {
|
||||
remove(videoFilterPanel);
|
||||
videoFilterPanel.removePropertyChangeListener(listener);
|
||||
}
|
||||
if (domainFilterPanel != null) {
|
||||
remove(domainFilterPanel);
|
||||
domainFilterPanel.removePropertyChangeListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
private void searchButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_searchButtonActionPerformed
|
||||
@@ -584,7 +584,7 @@ final class DiscoveryDialog extends javax.swing.JDialog {
|
||||
domainsButton.setBackground(SELECTED_COLOR);
|
||||
domainsButton.setForeground(Color.BLACK);
|
||||
type = SearchData.Type.DOMAIN;
|
||||
documentFilterPanel.addPropertyChangeListener(listener);
|
||||
domainFilterPanel.addPropertyChangeListener(listener);
|
||||
validateDialog();
|
||||
pack();
|
||||
repaint();
|
||||
|
||||
Reference in New Issue
Block a user