Modified 'isValid()' to use NumberFormat.

This commit is contained in:
U-BASIS\dgrove 2018-03-29 15:30:13 -04:00
parent 83a06305a4
commit e1ec2b764c

View File

@ -1,7 +1,7 @@
/* /*
* Autopsy Forensic Browser * Autopsy Forensic Browser
* *
* Copyright 2011 Basis Technology Corp. * Copyright 2011-2018 Basis Technology Corp.
* Contact: carrier <at> sleuthkit <dot> org * Contact: carrier <at> sleuthkit <dot> org
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
@ -19,21 +19,31 @@
package org.sleuthkit.autopsy.filesearch; package org.sleuthkit.autopsy.filesearch;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.text.ParseException;
import java.util.Locale;
import javax.swing.JComboBox; import javax.swing.JComboBox;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import org.openide.util.NbBundle.Messages; import org.openide.util.NbBundle.Messages;
import org.python.icu.text.NumberFormat;
import org.sleuthkit.autopsy.filesearch.FileSearchFilter.FilterValidationException; import org.sleuthkit.autopsy.filesearch.FileSearchFilter.FilterValidationException;
/** /**
* * Filter search size input.
* @author pmartel
*/ */
class SizeSearchFilter extends AbstractFileSearchFilter<SizeSearchPanel> { class SizeSearchFilter extends AbstractFileSearchFilter<SizeSearchPanel> {
/**
* Instantiate a SizeSearchFilter object for a new SizeSearchPanel.
*/
SizeSearchFilter() { SizeSearchFilter() {
this(new SizeSearchPanel()); this(new SizeSearchPanel());
} }
/**
* Instantiate a SizeSearchFilter object for an existing SizeSearchPanel.
*
* @param component The SizeSearchPanel instance.
*/
SizeSearchFilter(SizeSearchPanel component) { SizeSearchFilter(SizeSearchPanel component) {
super(component); super(component);
} }
@ -53,6 +63,14 @@ class SizeSearchFilter extends AbstractFileSearchFilter<SizeSearchPanel> {
return "size " + operator + " " + size; //NON-NLS return "size " + operator + " " + size; //NON-NLS
} }
/**
* Get the comparison operator associated with the size comparison
* drop-down selection.
*
* @param compare The drop-down component.
*
* @return The operator.
*/
private String compareComboBoxToOperator(JComboBox<String> compare) { private String compareComboBoxToOperator(JComboBox<String> compare) {
String compareSize = compare.getSelectedItem().toString(); String compareSize = compare.getSelectedItem().toString();
@ -75,7 +93,7 @@ class SizeSearchFilter extends AbstractFileSearchFilter<SizeSearchPanel> {
} }
@Override @Override
@Messages ({ @Messages({
"SizeSearchFilter.errorMessage.nonNegativeNumber=Input size data is a negative number.", "SizeSearchFilter.errorMessage.nonNegativeNumber=Input size data is a negative number.",
"SizeSearchFilter.errorMessage.notANumber=Input size data is not a number." "SizeSearchFilter.errorMessage.notANumber=Input size data is not a number."
}) })
@ -83,12 +101,12 @@ class SizeSearchFilter extends AbstractFileSearchFilter<SizeSearchPanel> {
String input = this.getComponent().getSizeTextField().getText(); String input = this.getComponent().getSizeTextField().getText();
try { try {
int inputInt = Integer.parseInt(input); int inputInt = NumberFormat.getNumberInstance(Locale.US).parse(input).intValue();
if (inputInt < 0) { if (inputInt < 0) {
setLastError(Bundle.SizeSearchFilter_errorMessage_nonNegativeNumber()); setLastError(Bundle.SizeSearchFilter_errorMessage_nonNegativeNumber());
return false; return false;
} }
} catch (NumberFormatException | NullPointerException e) { } catch (ParseException ex) {
setLastError(Bundle.SizeSearchFilter_errorMessage_notANumber()); setLastError(Bundle.SizeSearchFilter_errorMessage_notANumber());
return false; return false;
} }