6861 check start before end, max spinner value 100k

This commit is contained in:
William Schaefer 2020-09-18 10:28:10 -04:00
parent 180f005b6b
commit bd544932b5
3 changed files with 29 additions and 4 deletions

View File

@ -9,6 +9,7 @@ DataSourceModuleWrapper.hashModule.text=Hash Lookup module was not run on data s
# {0} - timeZone # {0} - timeZone
DateFilterPanel.dateRange.text=Date Range ({0}): DateFilterPanel.dateRange.text=Date Range ({0}):
DateFilterPanel.invalidRange.text=Range or Only Last must be selected DateFilterPanel.invalidRange.text=Range or Only Last must be selected
DateFilterPanel.startAfterEnd.text=Start date should be before the end date when both are enabled.
DateFilterPanel.startOrEndNeeded.text=A start or end date must be specified to use the range filter DateFilterPanel.startOrEndNeeded.text=A start or end date must be specified to use the range filter
DiscoveryDialog.name.text=Discovery DiscoveryDialog.name.text=Discovery
DiscoveryTopComponent.cancelButton.text=Cancel Search DiscoveryTopComponent.cancelButton.text=Cancel Search

View File

@ -104,7 +104,7 @@
<Component class="javax.swing.JSpinner" name="daysSpinner"> <Component class="javax.swing.JSpinner" name="daysSpinner">
<Properties> <Properties>
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor"> <Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
<SpinnerModel initial="7" maximum="60" minimum="1" numberType="java.lang.Integer" stepSize="1" type="number"/> <SpinnerModel initial="7" maximum="100000" minimum="1" numberType="java.lang.Integer" stepSize="1" type="number"/>
</Property> </Property>
<Property name="editor" type="javax.swing.JComponent" editor="org.netbeans.modules.form.editors.SpinnerEditorEditor"> <Property name="editor" type="javax.swing.JComponent" editor="org.netbeans.modules.form.editors.SpinnerEditorEditor">
<SpinnerEditor format="" type="3"/> <SpinnerEditor format="" type="3"/>

View File

@ -18,7 +18,9 @@
*/ */
package org.sleuthkit.autopsy.discovery.ui; package org.sleuthkit.autopsy.discovery.ui;
import com.github.lgooddatepicker.optionalusertools.DateChangeListener;
import com.github.lgooddatepicker.zinternaltools.DateChangeEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.Period; import java.time.Period;
@ -85,7 +87,7 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
} }
}); });
daysSpinner.setModel(new javax.swing.SpinnerNumberModel(7, 1, 60, 1)); daysSpinner.setModel(new javax.swing.SpinnerNumberModel(7, 1, 100000, 1));
daysSpinner.setEditor(new javax.swing.JSpinner.NumberEditor(daysSpinner, "")); daysSpinner.setEditor(new javax.swing.JSpinner.NumberEditor(daysSpinner, ""));
daysSpinner.setEnabled(false); daysSpinner.setEnabled(false);
daysSpinner.setPreferredSize(new java.awt.Dimension(75, 26)); daysSpinner.setPreferredSize(new java.awt.Dimension(75, 26));
@ -259,6 +261,18 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
endCheckBox.addActionListener(actionListener); endCheckBox.addActionListener(actionListener);
rangeRadioButton.addActionListener(actionListener); rangeRadioButton.addActionListener(actionListener);
mostRecentRadioButton.addActionListener(actionListener); mostRecentRadioButton.addActionListener(actionListener);
startDatePicker.addDateChangeListener(new DateChangeListener() {
@Override
public void dateChanged(DateChangeEvent event) {
actionListener.actionPerformed(new ActionEvent(startDatePicker, ActionEvent.ACTION_PERFORMED, "StartDateChanged"));
}
});
endDatePicker.addDateChangeListener(new DateChangeListener() {
@Override
public void dateChanged(DateChangeEvent event) {
actionListener.actionPerformed(new ActionEvent(endDatePicker, ActionEvent.ACTION_PERFORMED, "EndDateChanged"));
}
});
} }
@Override @Override
@ -281,10 +295,17 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
for (ActionListener listener : endCheckBox.getActionListeners()) { for (ActionListener listener : endCheckBox.getActionListeners()) {
endCheckBox.removeActionListener(listener); endCheckBox.removeActionListener(listener);
} }
for (DateChangeListener listener : endDatePicker.getDateChangeListeners()) {
endDatePicker.removeDateChangeListener(listener);
}
for (DateChangeListener listener : startDatePicker.getDateChangeListeners()) {
startDatePicker.removeDateChangeListener(listener);
}
} }
@NbBundle.Messages({"DateFilterPanel.invalidRange.text=Range or Only Last must be selected", @NbBundle.Messages({"DateFilterPanel.invalidRange.text=Range or Only Last must be selected",
"DateFilterPanel.startOrEndNeeded.text=A start or end date must be specified to use the range filter"}) "DateFilterPanel.startOrEndNeeded.text=A start or end date must be specified to use the range filter",
"DateFilterPanel.startAfterEnd.text=Start date should be before the end date when both are enabled."})
@Override @Override
String checkForError() { String checkForError() {
if (dateFilterCheckBox.isSelected()) { if (dateFilterCheckBox.isSelected()) {
@ -292,6 +313,9 @@ class DateFilterPanel extends AbstractDiscoveryFilterPanel {
return Bundle.DateFilterPanel_invalidRange_text(); return Bundle.DateFilterPanel_invalidRange_text();
} else if (rangeRadioButton.isSelected() && !(startCheckBox.isSelected() || endCheckBox.isSelected())) { } else if (rangeRadioButton.isSelected() && !(startCheckBox.isSelected() || endCheckBox.isSelected())) {
return Bundle.DateFilterPanel_startOrEndNeeded_text(); return Bundle.DateFilterPanel_startOrEndNeeded_text();
} else if (startCheckBox.isSelected() && endCheckBox.isSelected() && startDatePicker.getDate().isAfter(endDatePicker.getDate())) {
//if the dates are equal it will effectively search just that day due to the rounding up of the end date in the getFilter code
return Bundle.DateFilterPanel_startAfterEnd_text();
} }
} }
return ""; return "";