diff --git a/Core/ivy.xml b/Core/ivy.xml
index eea67feb19..c2b6142ebc 100755
--- a/Core/ivy.xml
+++ b/Core/ivy.xml
@@ -22,5 +22,6 @@
+
diff --git a/Core/nbproject/project.properties b/Core/nbproject/project.properties
index 7c36c61db7..9d3e275ca5 100755
--- a/Core/nbproject/project.properties
+++ b/Core/nbproject/project.properties
@@ -6,6 +6,7 @@ file.reference.commons-pool2-2.4.2.jar=release\\modules\\ext\\commons-pool2-2.4.
file.reference.jdom-2.0.5-contrib.jar=release/modules/ext/jdom-2.0.5-contrib.jar
file.reference.jdom-2.0.5.jar=release/modules/ext/jdom-2.0.5.jar
file.reference.jython-standalone-2.7.0.jar=release/modules/ext/jython-standalone-2.7.0.jar
+file.reference.LGoodDatePicker-10.3.1.jar=release/modules/ext/LGoodDatePicker-10.3.1.jar
file.reference.mchange-commons-java-0.2.9.jar=release/modules/ext/mchange-commons-java-0.2.9.jar
file.reference.metadata-extractor-2.9.1.jar=release/modules/ext/metadata-extractor-2.9.1.jar
file.reference.postgresql-9.4.1211.jre7.jar=release/modules/ext/postgresql-9.4.1211.jre7.jar
@@ -25,10 +26,12 @@ file.reference.curator-recipes-2.8.0.jar=release/modules/ext/curator-recipes-2.8
file.reference.zookeeper-3.4.6.jar=release/modules/ext/zookeeper-3.4.6.jar
javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial
+javadoc.reference.LGoodDatePicker-10.3.1.jar=release/modules/ext/LGoodDatePicker-10.3.1-javadoc.jar
license.file=../LICENSE-2.0.txt
nbm.homepage=http://www.sleuthkit.org/
nbm.module.author=Brian Carrier
nbm.needs.restart=true
source.reference.curator-recipes-2.8.0.jar=release/modules/ext/curator-recipes-2.8.0-sources.jar
+source.reference.LGoodDatePicker-10.3.1.jar=release/modules/ext/LGoodDatePicker-10.3.1-sources.jar
spec.version.base=10.9
diff --git a/Core/nbproject/project.xml b/Core/nbproject/project.xml
index 525e6da6a7..0b1523da09 100755
--- a/Core/nbproject/project.xml
+++ b/Core/nbproject/project.xml
@@ -332,6 +332,10 @@
ext/tika-core-1.14.jar
release/modules/ext/tika-core-1.14.jar
+
+ ext/LGoodDatePicker-10.3.1.jar
+ release/modules/ext/LGoodDatePicker-10.3.1.jar
+
ext/Tsk_DataModel_PostgreSQL.jar
release/modules/ext/Tsk_DataModel_PostgreSQL.jar
diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle.properties b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle.properties
index bb91c8e05c..6d83acae14 100755
--- a/Core/src/org/sleuthkit/autopsy/filesearch/Bundle.properties
+++ b/Core/src/org/sleuthkit/autopsy/filesearch/Bundle.properties
@@ -12,11 +12,7 @@ DateSearchPanel.createdCheckBox.text=Created
DateSearchPanel.accessedCheckBox.text=Accessed
DateSearchPanel.changedCheckBox.text=Changed
DateSearchPanel.modifiedCheckBox.text=Modified
-DateSearchPanel.dateToButtonCalendar.text=
-DateSearchPanel.dateToTextField.text=
DateSearchPanel.jLabel1.text=to
-DateSearchPanel.dateFromTextField.text=
-DateSearchPanel.dateFromButtonCalendar.text=
NameSearchPanel.nameCheckBox.text=Name:
NameSearchPanel.noteNameLabel.text=*Note: Name match is case insensitive and matches any part of the file name. Regular expressions are not currently supported.
NameSearchPanel.searchTextField.text=
diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java
index 3291c5ae42..64666e66d9 100755
--- a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java
+++ b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchFilter.java
@@ -82,7 +82,7 @@ class DateSearchFilter extends AbstractFileSearchFilter {
// convert the date from the selected timezone to get the GMT
long fromDate = 0;
- String startDateValue = panel.getDateFromTextField().getText();
+ String startDateValue = panel.getFromDate();
Calendar startDate = getCalendarDate(startDateValue);
if (!startDateValue.isEmpty()) {
if (startDate != null) {
@@ -91,7 +91,7 @@ class DateSearchFilter extends AbstractFileSearchFilter {
}
long toDate = 0;
- String endDateValue = panel.getDateToTextField().getText();
+ String endDateValue = panel.getToDate();
Calendar endDate = getCalendarDate(endDateValue);
if (!endDateValue.isEmpty()) {
if (endDate != null) {
@@ -199,7 +199,7 @@ class DateSearchFilter extends AbstractFileSearchFilter {
@Override
public void addActionListener(ActionListener l) {
- getComponent().addActionListener(l);
+ getComponent().addDateChangeListener();
}
@Override
@@ -210,8 +210,8 @@ class DateSearchFilter extends AbstractFileSearchFilter {
public boolean isValid() {
DateSearchPanel panel = this.getComponent();
- Calendar startDate = getCalendarDate(panel.getDateFromTextField().getText());
- Calendar endDate = getCalendarDate(panel.getDateToTextField().getText());
+ Calendar startDate = getCalendarDate(panel.getFromDate());
+ Calendar endDate = getCalendarDate(panel.getToDate());
if ((startDate != null && startDate.after(endDate)) || (endDate != null && endDate.before(startDate))) {
setLastError(Bundle.DateSearchFilter_errorMessage_endDateBeforeStartDate());
diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchPanel.form b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchPanel.form
index 59082745da..1912ad3742 100755
--- a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchPanel.form
+++ b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchPanel.form
@@ -55,28 +55,11 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -98,27 +81,31 @@
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
@@ -147,20 +134,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -207,20 +180,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -275,25 +234,21 @@
-
+
-
-
-
+
-
-
-
+
+
+
-
+
-
-
-
+
-
-
-
+
+
+
diff --git a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchPanel.java b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchPanel.java
index b9f490041b..c1ef741233 100755
--- a/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchPanel.java
+++ b/Core/src/org/sleuthkit/autopsy/filesearch/DateSearchPanel.java
@@ -21,22 +21,25 @@ package org.sleuthkit.autopsy.filesearch;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DateFormat;
-import java.text.ParseException;
-import java.util.Date;
import java.util.List;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
-import javax.swing.event.DocumentEvent;
-import javax.swing.event.DocumentListener;
+import com.github.lgooddatepicker.components.DatePicker;
+import com.github.lgooddatepicker.optionalusertools.PickerUtilities;
+import com.github.lgooddatepicker.components.DatePickerSettings;
+import com.github.lgooddatepicker.optionalusertools.DateChangeListener;
+import com.github.lgooddatepicker.zinternaltools.DateChangeEvent;
/**
* Subpanel with controls for file data filtering.
*/
class DateSearchPanel extends javax.swing.JPanel {
+ private final DatePickerSettings fromDateSettings = new DatePickerSettings();
+ private final DatePickerSettings toDateSettings = new DatePickerSettings();
DateFormat dateFormat;
List timeZones;
@@ -49,10 +52,11 @@ class DateSearchPanel extends javax.swing.JPanel {
}
private void customizeComponents() {
-
- dateFromTextField.setComponentPopupMenu(rightClickMenu);
- dateToTextField.setComponentPopupMenu(rightClickMenu);
-
+ fromDateSettings.setFormatForDatesCommonEra(PickerUtilities.createFormatterFromPatternString("MM/dd/yyyy", fromDateSettings.getLocale()));
+ toDateSettings.setFormatForDatesCommonEra(PickerUtilities.createFormatterFromPatternString("MM/dd/yyyy", toDateSettings.getLocale()));
+ fromDateSettings.setAllowKeyboardEditing(false);
+ toDateSettings.setAllowKeyboardEditing(false);
+
ActionListener actList = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
@@ -77,41 +81,7 @@ class DateSearchPanel extends javax.swing.JPanel {
copyMenuItem.addActionListener(actList);
pasteMenuItem.addActionListener(actList);
selectAllMenuItem.addActionListener(actList);
- this.dateFromTextField.getDocument().addDocumentListener(new DocumentListener() {
- @Override
- public void insertUpdate(DocumentEvent e) {
- firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
- }
-
- @Override
- public void removeUpdate(DocumentEvent e) {
- firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
- }
-
- @Override
- public void changedUpdate(DocumentEvent e) {
- firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
- }
- });
-
- this.dateToTextField.getDocument().addDocumentListener(new DocumentListener() {
- @Override
- public void insertUpdate(DocumentEvent e) {
- firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
- }
-
- @Override
- public void removeUpdate(DocumentEvent e) {
- firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
- }
-
- @Override
- public void changedUpdate(DocumentEvent e) {
- firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
- }
- });
-
-
+
this.setComponentsEnabled();
}
@@ -131,12 +101,12 @@ class DateSearchPanel extends javax.swing.JPanel {
return dateCheckBox;
}
- JFormattedTextField getDateFromTextField() {
- return dateFromTextField;
+ String getFromDate() {
+ return fromDatePicker.getText();
}
- JFormattedTextField getDateToTextField() {
- return dateToTextField;
+ String getToDate() {
+ return toDatePicker.getText();
}
JCheckBox getModifiedCheckBox() {
@@ -157,11 +127,9 @@ class DateSearchPanel extends javax.swing.JPanel {
private void setComponentsEnabled() {
boolean enable = this.dateCheckBox.isSelected();
- this.dateFromTextField.setEnabled(enable);
- this.dateFromButtonCalendar.setEnabled(enable);
+ this.fromDatePicker.setEnabled(enable);
this.jLabel1.setEnabled(enable);
- this.dateToTextField.setEnabled(enable);
- this.dateToButtonCalendar.setEnabled(enable);
+ this.toDatePicker.setEnabled(enable);
this.jLabel2.setEnabled(enable);
this.jLabel3.setEnabled(enable);
this.jLabel4.setEnabled(enable);
@@ -186,21 +154,19 @@ class DateSearchPanel extends javax.swing.JPanel {
copyMenuItem = new javax.swing.JMenuItem();
pasteMenuItem = new javax.swing.JMenuItem();
selectAllMenuItem = new javax.swing.JMenuItem();
- dateToTextField = new JFormattedTextField(this.dateFormat);
jLabel1 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
dateCheckBox = new javax.swing.JCheckBox();
timeZoneComboBox = new JComboBox<>(this.timeZones.toArray(new String[this.timeZones.size()]));
timeZoneComboBox.setRenderer(new DateSearchFilter.ComboBoxRenderer());
jLabel3 = new javax.swing.JLabel();
- dateFromTextField = new JFormattedTextField(this.dateFormat);
jLabel2 = new javax.swing.JLabel();
modifiedCheckBox = new javax.swing.JCheckBox();
changedCheckBox = new javax.swing.JCheckBox();
accessedCheckBox = new javax.swing.JCheckBox();
createdCheckBox = new javax.swing.JCheckBox();
- dateFromButtonCalendar = new org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton();
- dateToButtonCalendar = new org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton();
+ fromDatePicker = new DatePicker(fromDateSettings);
+ toDatePicker = new DatePicker(toDateSettings);
cutMenuItem.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.cutMenuItem.text")); // NOI18N
rightClickMenu.add(cutMenuItem);
@@ -214,14 +180,6 @@ class DateSearchPanel extends javax.swing.JPanel {
selectAllMenuItem.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.selectAllMenuItem.text")); // NOI18N
rightClickMenu.add(selectAllMenuItem);
- dateToTextField.setEditable(false);
- dateToTextField.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.dateToTextField.text")); // NOI18N
- dateToTextField.addFocusListener(new java.awt.event.FocusAdapter() {
- public void focusLost(java.awt.event.FocusEvent evt) {
- dateToTextFieldFocusLost(evt);
- }
- });
-
jLabel1.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.jLabel1.text")); // NOI18N
jLabel4.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.jLabel4.text")); // NOI18N
@@ -236,14 +194,6 @@ class DateSearchPanel extends javax.swing.JPanel {
jLabel3.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
jLabel3.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.jLabel3.text")); // NOI18N
- dateFromTextField.setEditable(false);
- dateFromTextField.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.dateFromTextField.text")); // NOI18N
- dateFromTextField.addFocusListener(new java.awt.event.FocusAdapter() {
- public void focusLost(java.awt.event.FocusEvent evt) {
- dateFromTextFieldFocusLost(evt);
- }
- });
-
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
jLabel2.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.jLabel2.text")); // NOI18N
@@ -279,44 +229,20 @@ class DateSearchPanel extends javax.swing.JPanel {
}
});
- dateFromButtonCalendar.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.dateFromButtonCalendar.text")); // NOI18N
- dateFromButtonCalendar.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
- public void propertyChange(java.beans.PropertyChangeEvent evt) {
- dateFromPopupChanged(evt);
- }
- });
+ fromDatePicker.setAutoscrolls(true);
- dateToButtonCalendar.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.dateToButtonCalendar.text")); // NOI18N
- dateToButtonCalendar.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
- public void propertyChange(java.beans.PropertyChangeEvent evt) {
- dateToPopupChanged(evt);
- }
- });
+ toDatePicker.setAutoscrolls(true);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
- .addGroup(layout.createSequentialGroup()
- .addComponent(dateCheckBox)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(dateFromTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(0, 0, 0)
- .addComponent(dateFromButtonCalendar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jLabel1)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(dateToTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(0, 0, 0)
- .addComponent(dateToButtonCalendar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
- .addContainerGap()
- .addComponent(jLabel2)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jLabel3)))
- .addContainerGap(26, Short.MAX_VALUE))
+ .addContainerGap()
+ .addComponent(jLabel2)
+ .addGap(18, 18, 18)
+ .addComponent(jLabel3)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -333,23 +259,28 @@ class DateSearchPanel extends javax.swing.JPanel {
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(changedCheckBox)))
.addGap(33, 33, 33))
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(dateCheckBox)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(fromDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(10, 10, 10)
+ .addComponent(toDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(dateCheckBox)
- .addComponent(dateFromTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(dateCheckBox)
.addGap(18, 18, 18))
.addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(dateToButtonCalendar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
- .addComponent(jLabel1)
- .addComponent(dateToTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addComponent(dateFromButtonCalendar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel1)
+ .addComponent(fromDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(toDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
@@ -369,45 +300,6 @@ class DateSearchPanel extends javax.swing.JPanel {
);
}// //GEN-END:initComponents
- private void dateFromTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_dateFromTextFieldFocusLost
- // set the "from" calendar button to listen to change in the text field
- String fromDateString = this.dateFromTextField.getText();
- if (!fromDateString.equals("")) {
- try {
- Date fromDate = dateFormat.parse(fromDateString);
- dateFromButtonCalendar.setTargetDate(fromDate);
- } catch (ParseException ex) {
- // for now, no need to show the error message to the user her
- }
- }
- }//GEN-LAST:event_dateFromTextFieldFocusLost
-
- private void dateToTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_dateToTextFieldFocusLost
- // set the "to" calendar button to listen to change in the text field
- String toDateString = this.dateToTextField.getText();
- if (!toDateString.equals("")) {
- try {
- Date toDate = dateFormat.parse(toDateString);
- dateToButtonCalendar.setTargetDate(toDate);
- } catch (ParseException ex) {
- // for now, no need to show the error message to the user here
- }
- }
- }//GEN-LAST:event_dateToTextFieldFocusLost
-
- private void dateFromPopupChanged(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_dateFromPopupChanged
- if (evt.getNewValue() instanceof Date) {
- setFromDate((Date) evt.getNewValue());
- }
- }//GEN-LAST:event_dateFromPopupChanged
-
- private void dateToPopupChanged(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_dateToPopupChanged
- if (evt.getNewValue() instanceof Date) {
- setToDate((Date) evt.getNewValue());
- }
-
- }//GEN-LAST:event_dateToPopupChanged
-
private void dateCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dateCheckBoxActionPerformed
this.setComponentsEnabled();
firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
@@ -428,36 +320,6 @@ class DateSearchPanel extends javax.swing.JPanel {
private void changedCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_changedCheckBoxActionPerformed
firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
}//GEN-LAST:event_changedCheckBoxActionPerformed
-
- /**
- * Validate and set the datetime field on the screen given a datetime
- * string.
- *
- * @param date The date object
- */
- private void setFromDate(Date date) {
- String dateStringResult = "";
- if (date != null) {
- dateStringResult = dateFormat.format(date);
- }
-
- dateFromTextField.setText(dateStringResult);
- dateFromButtonCalendar.setTargetDate(date);
- }
-
- /**
- * Validate and set the datetime field on the screen given a date.
- *
- * @param date The date object
- */
- private void setToDate(Date date) {
- String dateStringResult = "";
- if (date != null) {
- dateStringResult = dateFormat.format(date);
- }
- dateToTextField.setText(dateStringResult);
- dateToButtonCalendar.setTargetDate(date);
- }
boolean isValidSearch() {
return this.accessedCheckBox.isSelected() ||
@@ -472,10 +334,7 @@ class DateSearchPanel extends javax.swing.JPanel {
private javax.swing.JCheckBox createdCheckBox;
private javax.swing.JMenuItem cutMenuItem;
private javax.swing.JCheckBox dateCheckBox;
- private org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton dateFromButtonCalendar;
- private javax.swing.JFormattedTextField dateFromTextField;
- private org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton dateToButtonCalendar;
- private javax.swing.JFormattedTextField dateToTextField;
+ private com.github.lgooddatepicker.components.DatePicker fromDatePicker;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
@@ -485,10 +344,17 @@ class DateSearchPanel extends javax.swing.JPanel {
private javax.swing.JPopupMenu rightClickMenu;
private javax.swing.JMenuItem selectAllMenuItem;
private javax.swing.JComboBox timeZoneComboBox;
+ private com.github.lgooddatepicker.components.DatePicker toDatePicker;
// End of variables declaration//GEN-END:variables
- void addActionListener(ActionListener l) {
- dateFromTextField.addActionListener(l);
- dateToTextField.addActionListener(l);
+ void addDateChangeListener() {
+ DateChangeListener dcl = (DateChangeEvent event) -> {
+ firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
+ };
+
+ fromDatePicker.addDateChangeListener(dcl);
+ toDatePicker.addDateChangeListener(dcl);
}
+
}
+