Merge pull request #3267 from zhhl/3219-replaceJCalendarButtonWithLGoodDatePicker

3219 replace JCalendarButton with LGoodDatePicker
This commit is contained in:
Richard Cordovano 2017-12-08 15:40:49 -05:00 committed by GitHub
commit 0e3d2724f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 311 additions and 400 deletions

View File

@ -7,6 +7,7 @@ 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.jdom-2.0.5.jar=release/modules/ext/jdom-2.0.5.jar
file.reference.jsoup-1.10.3.jar=release/modules/ext/jsoup-1.10.3.jar file.reference.jsoup-1.10.3.jar=release/modules/ext/jsoup-1.10.3.jar
file.reference.jython-standalone-2.7.0.jar=release/modules/ext/jython-standalone-2.7.0.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.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.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 file.reference.postgresql-9.4.1211.jre7.jar=release/modules/ext/postgresql-9.4.1211.jre7.jar
@ -26,10 +27,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 file.reference.zookeeper-3.4.6.jar=release/modules/ext/zookeeper-3.4.6.jar
javac.source=1.8 javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial 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 license.file=../LICENSE-2.0.txt
nbm.homepage=http://www.sleuthkit.org/ nbm.homepage=http://www.sleuthkit.org/
nbm.module.author=Brian Carrier nbm.module.author=Brian Carrier
nbm.needs.restart=true nbm.needs.restart=true
source.reference.curator-recipes-2.8.0.jar=release/modules/ext/curator-recipes-2.8.0-sources.jar 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 spec.version.base=10.9

View File

@ -336,6 +336,10 @@
<runtime-relative-path>ext/tika-core-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/tika-core-1.14.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-core-1.14.jar</binary-origin> <binary-origin>release/modules/ext/tika-core-1.14.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/LGoodDatePicker-10.3.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/LGoodDatePicker-10.3.1.jar</binary-origin>
</class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/Tsk_DataModel_PostgreSQL.jar</runtime-relative-path> <runtime-relative-path>ext/Tsk_DataModel_PostgreSQL.jar</runtime-relative-path>
<binary-origin>release/modules/ext/Tsk_DataModel_PostgreSQL.jar</binary-origin> <binary-origin>release/modules/ext/Tsk_DataModel_PostgreSQL.jar</binary-origin>

View File

@ -12,11 +12,7 @@ DateSearchPanel.createdCheckBox.text=Created
DateSearchPanel.accessedCheckBox.text=Accessed DateSearchPanel.accessedCheckBox.text=Accessed
DateSearchPanel.changedCheckBox.text=Changed DateSearchPanel.changedCheckBox.text=Changed
DateSearchPanel.modifiedCheckBox.text=Modified DateSearchPanel.modifiedCheckBox.text=Modified
DateSearchPanel.dateToButtonCalendar.text=
DateSearchPanel.dateToTextField.text=
DateSearchPanel.jLabel1.text=to DateSearchPanel.jLabel1.text=to
DateSearchPanel.dateFromTextField.text=
DateSearchPanel.dateFromButtonCalendar.text=
NameSearchPanel.nameCheckBox.text=Name: NameSearchPanel.nameCheckBox.text=Name:
NameSearchPanel.noteNameLabel.text=<html>*Note: Name match is case insensitive and matches any part of the file name. Regular expressions are not currently supported.</html> NameSearchPanel.noteNameLabel.text=<html>*Note: Name match is case insensitive and matches any part of the file name. Regular expressions are not currently supported.</html>
NameSearchPanel.searchTextField.text= NameSearchPanel.searchTextField.text=

View File

@ -82,7 +82,7 @@ class DateSearchFilter extends AbstractFileSearchFilter<DateSearchPanel> {
// convert the date from the selected timezone to get the GMT // convert the date from the selected timezone to get the GMT
long fromDate = 0; long fromDate = 0;
String startDateValue = panel.getDateFromTextField().getText(); String startDateValue = panel.getFromDate();
Calendar startDate = getCalendarDate(startDateValue); Calendar startDate = getCalendarDate(startDateValue);
if (!startDateValue.isEmpty()) { if (!startDateValue.isEmpty()) {
if (startDate != null) { if (startDate != null) {
@ -91,7 +91,7 @@ class DateSearchFilter extends AbstractFileSearchFilter<DateSearchPanel> {
} }
long toDate = 0; long toDate = 0;
String endDateValue = panel.getDateToTextField().getText(); String endDateValue = panel.getToDate();
Calendar endDate = getCalendarDate(endDateValue); Calendar endDate = getCalendarDate(endDateValue);
if (!endDateValue.isEmpty()) { if (!endDateValue.isEmpty()) {
if (endDate != null) { if (endDate != null) {
@ -199,7 +199,7 @@ class DateSearchFilter extends AbstractFileSearchFilter<DateSearchPanel> {
@Override @Override
public void addActionListener(ActionListener l) { public void addActionListener(ActionListener l) {
getComponent().addActionListener(l); getComponent().addDateChangeListener();
} }
@Override @Override
@ -210,8 +210,8 @@ class DateSearchFilter extends AbstractFileSearchFilter<DateSearchPanel> {
public boolean isValid() { public boolean isValid() {
DateSearchPanel panel = this.getComponent(); DateSearchPanel panel = this.getComponent();
Calendar startDate = getCalendarDate(panel.getDateFromTextField().getText()); Calendar startDate = getCalendarDate(panel.getFromDate());
Calendar endDate = getCalendarDate(panel.getDateToTextField().getText()); Calendar endDate = getCalendarDate(panel.getToDate());
if ((startDate != null && startDate.after(endDate)) || (endDate != null && endDate.before(startDate))) { if ((startDate != null && startDate.after(endDate)) || (endDate != null && endDate.before(startDate))) {
setLastError(Bundle.DateSearchFilter_errorMessage_endDateBeforeStartDate()); setLastError(Bundle.DateSearchFilter_errorMessage_endDateBeforeStartDate());

View File

@ -55,28 +55,11 @@
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="0" max="-2" attributes="0"> <EmptySpace max="-2" attributes="0"/>
<Group type="102" attributes="0"> <Component id="jLabel2" min="-2" max="-2" attributes="0"/>
<Component id="dateCheckBox" min="-2" max="-2" attributes="0"/> <EmptySpace min="-2" pref="18" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <Component id="jLabel3" min="-2" max="-2" attributes="0"/>
<Component id="dateFromTextField" min="-2" pref="92" max="-2" attributes="0"/> <EmptySpace max="32767" attributes="0"/>
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
<Component id="dateFromButtonCalendar" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" min="-2" max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="dateToTextField" min="-2" pref="92" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
<Component id="dateToButtonCalendar" min="-2" max="-2" attributes="0"/>
</Group>
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel2" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="jLabel3" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<EmptySpace pref="26" max="32767" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="1" attributes="0"> <Group type="102" alignment="1" attributes="0">
<EmptySpace min="0" pref="0" max="32767" attributes="0"/> <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
@ -98,27 +81,31 @@
</Group> </Group>
<EmptySpace min="-2" pref="33" max="-2" attributes="0"/> <EmptySpace min="-2" pref="33" max="-2" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="0" attributes="0">
<Component id="dateCheckBox" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="fromDatePicker" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="jLabel1" min="-2" pref="10" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="10" max="-2" attributes="0"/>
<Component id="toDatePicker" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
<DimensionLayout dim="1"> <DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="0" max="-2" attributes="0"> <Group type="103" groupAlignment="0" max="-2" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="3" attributes="0"> <Component id="dateCheckBox" min="-2" max="-2" attributes="0"/>
<Component id="dateCheckBox" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="dateFromTextField" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="-2" pref="18" max="-2" attributes="0"/> <EmptySpace min="-2" pref="18" max="-2" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="0" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="dateToButtonCalendar" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" alignment="0" groupAlignment="3" attributes="0"> <Component id="fromDatePicker" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="jLabel1" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="toDatePicker" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="dateToTextField" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="dateFromButtonCalendar" alignment="0" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="32767" attributes="0"/> <EmptySpace max="32767" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
@ -147,20 +134,6 @@
</DimensionLayout> </DimensionLayout>
</Layout> </Layout>
<SubComponents> <SubComponents>
<Component class="javax.swing.JFormattedTextField" name="dateToTextField">
<Properties>
<Property name="editable" type="boolean" value="false"/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/filesearch/Bundle.properties" key="DateSearchPanel.dateToTextField.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="focusLost" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="dateToTextFieldFocusLost"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new JFormattedTextField(this.dateFormat);"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="jLabel1"> <Component class="javax.swing.JLabel" name="jLabel1">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
@ -199,36 +172,22 @@
</Component> </Component>
<Component class="javax.swing.JLabel" name="jLabel3"> <Component class="javax.swing.JLabel" name="jLabel3">
<Properties> <Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="10" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/filesearch/Bundle.properties" key="DateSearchPanel.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/filesearch/Bundle.properties" key="DateSearchPanel.jLabel3.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
</Properties>
</Component>
<Component class="javax.swing.JFormattedTextField" name="dateFromTextField">
<Properties>
<Property name="editable" type="boolean" value="false"/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/filesearch/Bundle.properties" key="DateSearchPanel.dateFromTextField.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="focusLost" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="dateFromTextFieldFocusLost"/>
</Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new JFormattedTextField(this.dateFormat);"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="jLabel2">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="10" style="0"/> <Font name="Tahoma" size="10" style="0"/>
</Property> </Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel2">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/filesearch/Bundle.properties" key="DateSearchPanel.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/filesearch/Bundle.properties" key="DateSearchPanel.jLabel2.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="10" style="0"/>
</Property>
</Properties> </Properties>
</Component> </Component>
<Component class="javax.swing.JCheckBox" name="modifiedCheckBox"> <Component class="javax.swing.JCheckBox" name="modifiedCheckBox">
@ -275,25 +234,23 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createdCheckBoxActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="createdCheckBoxActionPerformed"/>
</Events> </Events>
</Component> </Component>
<Component class="org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton" name="dateFromButtonCalendar"> <Component class="com.github.lgooddatepicker.components.DatePicker" name="fromDatePicker">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/filesearch/Bundle.properties" key="DateSearchPanel.dateFromButtonCalendar.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events> <Events>
<EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="dateFromPopupChanged"/> <EventHandler event="focusLost" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="fromDatePickerFocusLost"/>
<EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="fromDatePickerPropertyChange"/>
</Events> </Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new DatePicker(fromDateSettings);"/>
</AuxValues>
</Component> </Component>
<Component class="org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton" name="dateToButtonCalendar"> <Component class="com.github.lgooddatepicker.components.DatePicker" name="toDatePicker">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/filesearch/Bundle.properties" key="DateSearchPanel.dateToButtonCalendar.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events> <Events>
<EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="dateToPopupChanged"/> <EventHandler event="focusLost" listener="java.awt.event.FocusListener" parameters="java.awt.event.FocusEvent" handler="toDatePickerFocusLost"/>
<EventHandler event="propertyChange" listener="java.beans.PropertyChangeListener" parameters="java.beans.PropertyChangeEvent" handler="toDatePickerPropertyChange"/>
</Events> </Events>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new DatePicker(toDateSettings);"/>
</AuxValues>
</Component> </Component>
</SubComponents> </SubComponents>
</Form> </Form>

View File

@ -1,7 +1,7 @@
/* /*
* Autopsy Forensic Browser * Autopsy Forensic Browser
* *
* Copyright 2011 Basis Technology Corp. * Copyright 2011-2017 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");
@ -21,22 +21,28 @@ package org.sleuthkit.autopsy.filesearch;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException;
import java.util.Date;
import java.util.List; import java.util.List;
import javax.swing.JCheckBox; import javax.swing.JCheckBox;
import javax.swing.JComboBox; import javax.swing.JComboBox;
import javax.swing.JFormattedTextField; import javax.swing.JFormattedTextField;
import javax.swing.JMenuItem; import javax.swing.JMenuItem;
import javax.swing.JPopupMenu; import javax.swing.JPopupMenu;
import javax.swing.event.DocumentEvent; import com.github.lgooddatepicker.components.DatePicker;
import javax.swing.event.DocumentListener; import com.github.lgooddatepicker.optionalusertools.PickerUtilities;
import com.github.lgooddatepicker.components.DatePickerSettings;
import com.github.lgooddatepicker.optionalusertools.DateChangeListener;
import com.github.lgooddatepicker.zinternaltools.DateChangeEvent;
import java.text.ParseException;
import java.time.Instant;
import java.util.Date;
/** /**
* Subpanel with controls for file data filtering. * Subpanel with controls for file data filtering.
*/ */
class DateSearchPanel extends javax.swing.JPanel { class DateSearchPanel extends javax.swing.JPanel {
private final DatePickerSettings fromDateSettings = new DatePickerSettings();
private final DatePickerSettings toDateSettings = new DatePickerSettings();
DateFormat dateFormat; DateFormat dateFormat;
List<String> timeZones; List<String> timeZones;
@ -49,10 +55,11 @@ class DateSearchPanel extends javax.swing.JPanel {
} }
private void customizeComponents() { private void customizeComponents() {
fromDateSettings.setFormatForDatesCommonEra(PickerUtilities.createFormatterFromPatternString("MM/dd/yyyy", fromDateSettings.getLocale()));
dateFromTextField.setComponentPopupMenu(rightClickMenu); toDateSettings.setFormatForDatesCommonEra(PickerUtilities.createFormatterFromPatternString("MM/dd/yyyy", toDateSettings.getLocale()));
dateToTextField.setComponentPopupMenu(rightClickMenu); fromDateSettings.setAllowKeyboardEditing(false);
toDateSettings.setAllowKeyboardEditing(false);
ActionListener actList = new ActionListener() { ActionListener actList = new ActionListener() {
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -77,41 +84,7 @@ class DateSearchPanel extends javax.swing.JPanel {
copyMenuItem.addActionListener(actList); copyMenuItem.addActionListener(actList);
pasteMenuItem.addActionListener(actList); pasteMenuItem.addActionListener(actList);
selectAllMenuItem.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(); this.setComponentsEnabled();
} }
@ -131,12 +104,12 @@ class DateSearchPanel extends javax.swing.JPanel {
return dateCheckBox; return dateCheckBox;
} }
JFormattedTextField getDateFromTextField() { String getFromDate() {
return dateFromTextField; return fromDatePicker.getText();
} }
JFormattedTextField getDateToTextField() { String getToDate() {
return dateToTextField; return toDatePicker.getText();
} }
JCheckBox getModifiedCheckBox() { JCheckBox getModifiedCheckBox() {
@ -157,11 +130,9 @@ class DateSearchPanel extends javax.swing.JPanel {
private void setComponentsEnabled() { private void setComponentsEnabled() {
boolean enable = this.dateCheckBox.isSelected(); boolean enable = this.dateCheckBox.isSelected();
this.dateFromTextField.setEnabled(enable); this.fromDatePicker.setEnabled(enable);
this.dateFromButtonCalendar.setEnabled(enable);
this.jLabel1.setEnabled(enable); this.jLabel1.setEnabled(enable);
this.dateToTextField.setEnabled(enable); this.toDatePicker.setEnabled(enable);
this.dateToButtonCalendar.setEnabled(enable);
this.jLabel2.setEnabled(enable); this.jLabel2.setEnabled(enable);
this.jLabel3.setEnabled(enable); this.jLabel3.setEnabled(enable);
this.jLabel4.setEnabled(enable); this.jLabel4.setEnabled(enable);
@ -186,21 +157,19 @@ class DateSearchPanel extends javax.swing.JPanel {
copyMenuItem = new javax.swing.JMenuItem(); copyMenuItem = new javax.swing.JMenuItem();
pasteMenuItem = new javax.swing.JMenuItem(); pasteMenuItem = new javax.swing.JMenuItem();
selectAllMenuItem = new javax.swing.JMenuItem(); selectAllMenuItem = new javax.swing.JMenuItem();
dateToTextField = new JFormattedTextField(this.dateFormat);
jLabel1 = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel();
dateCheckBox = new javax.swing.JCheckBox(); dateCheckBox = new javax.swing.JCheckBox();
timeZoneComboBox = new JComboBox<>(this.timeZones.toArray(new String[this.timeZones.size()])); timeZoneComboBox = new JComboBox<>(this.timeZones.toArray(new String[this.timeZones.size()]));
timeZoneComboBox.setRenderer(new DateSearchFilter.ComboBoxRenderer()); timeZoneComboBox.setRenderer(new DateSearchFilter.ComboBoxRenderer());
jLabel3 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel();
dateFromTextField = new JFormattedTextField(this.dateFormat);
jLabel2 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel();
modifiedCheckBox = new javax.swing.JCheckBox(); modifiedCheckBox = new javax.swing.JCheckBox();
changedCheckBox = new javax.swing.JCheckBox(); changedCheckBox = new javax.swing.JCheckBox();
accessedCheckBox = new javax.swing.JCheckBox(); accessedCheckBox = new javax.swing.JCheckBox();
createdCheckBox = new javax.swing.JCheckBox(); createdCheckBox = new javax.swing.JCheckBox();
dateFromButtonCalendar = new org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton(); fromDatePicker = new DatePicker(fromDateSettings);
dateToButtonCalendar = new org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton(); toDatePicker = new DatePicker(toDateSettings);
cutMenuItem.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.cutMenuItem.text")); // NOI18N cutMenuItem.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.cutMenuItem.text")); // NOI18N
rightClickMenu.add(cutMenuItem); rightClickMenu.add(cutMenuItem);
@ -214,14 +183,6 @@ class DateSearchPanel extends javax.swing.JPanel {
selectAllMenuItem.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.selectAllMenuItem.text")); // NOI18N selectAllMenuItem.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.selectAllMenuItem.text")); // NOI18N
rightClickMenu.add(selectAllMenuItem); 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 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 jLabel4.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.jLabel4.text")); // NOI18N
@ -233,19 +194,11 @@ 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 jLabel3.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.jLabel3.text")); // NOI18N
jLabel3.setFont(new java.awt.Font("Tahoma", 0, 10)); // 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 jLabel2.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.jLabel2.text")); // NOI18N
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 10)); // NOI18N
modifiedCheckBox.setSelected(true); modifiedCheckBox.setSelected(true);
modifiedCheckBox.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.modifiedCheckBox.text")); // NOI18N modifiedCheckBox.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.modifiedCheckBox.text")); // NOI18N
@ -279,17 +232,25 @@ class DateSearchPanel extends javax.swing.JPanel {
} }
}); });
dateFromButtonCalendar.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.dateFromButtonCalendar.text")); // NOI18N fromDatePicker.addFocusListener(new java.awt.event.FocusAdapter() {
dateFromButtonCalendar.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void focusLost(java.awt.event.FocusEvent evt) {
fromDatePickerFocusLost(evt);
}
});
fromDatePicker.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) { public void propertyChange(java.beans.PropertyChangeEvent evt) {
dateFromPopupChanged(evt); fromDatePickerPropertyChange(evt);
} }
}); });
dateToButtonCalendar.setText(org.openide.util.NbBundle.getMessage(DateSearchPanel.class, "DateSearchPanel.dateToButtonCalendar.text")); // NOI18N toDatePicker.addFocusListener(new java.awt.event.FocusAdapter() {
dateToButtonCalendar.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void focusLost(java.awt.event.FocusEvent evt) {
toDatePickerFocusLost(evt);
}
});
toDatePicker.addPropertyChangeListener(new java.beans.PropertyChangeListener() {
public void propertyChange(java.beans.PropertyChangeEvent evt) { public void propertyChange(java.beans.PropertyChangeEvent evt) {
dateToPopupChanged(evt); toDatePickerPropertyChange(evt);
} }
}); });
@ -298,25 +259,11 @@ class DateSearchPanel extends javax.swing.JPanel {
layout.setHorizontalGroup( layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addContainerGap()
.addGroup(layout.createSequentialGroup() .addComponent(jLabel2)
.addComponent(dateCheckBox) .addGap(18, 18, 18)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel3)
.addComponent(dateFromTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.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))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE) .addGap(0, 0, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@ -333,23 +280,28 @@ class DateSearchPanel extends javax.swing.JPanel {
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(changedCheckBox))) .addComponent(changedCheckBox)))
.addGap(33, 33, 33)) .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.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(dateCheckBox)
.addComponent(dateCheckBox)
.addComponent(dateFromTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)) .addGap(18, 18, 18))
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(dateToButtonCalendar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(fromDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1) .addComponent(toDatePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.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))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3) .addComponent(jLabel3)
@ -369,45 +321,6 @@ class DateSearchPanel extends javax.swing.JPanel {
); );
}// </editor-fold>//GEN-END:initComponents }// </editor-fold>//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 private void dateCheckBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_dateCheckBoxActionPerformed
this.setComponentsEnabled(); this.setComponentsEnabled();
firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null); firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
@ -429,6 +342,44 @@ class DateSearchPanel extends javax.swing.JPanel {
firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null); firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
}//GEN-LAST:event_changedCheckBoxActionPerformed }//GEN-LAST:event_changedCheckBoxActionPerformed
private void fromDatePickerPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_fromDatePickerPropertyChange
if (evt.getNewValue() instanceof Date) {
setFromDate((Date) evt.getNewValue());
}
}//GEN-LAST:event_fromDatePickerPropertyChange
private void toDatePickerPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_toDatePickerPropertyChange
if (evt.getNewValue() instanceof Date) {
setToDate((Date) evt.getNewValue());
}
}//GEN-LAST:event_toDatePickerPropertyChange
private void fromDatePickerFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_fromDatePickerFocusLost
// set the "from" calendar button to listen to change in the text field
String fromDateString = this.fromDatePicker.getText();
if (!fromDateString.equals("")) {
try {
Date fromDate = dateFormat.parse(fromDateString);
fromDatePicker.setDate(fromDate.toInstant().atZone(dateFormat.getTimeZone().toZoneId()).toLocalDate());
} catch (ParseException ex) {
// for now, no need to show the error message to the user her
}
}
}//GEN-LAST:event_fromDatePickerFocusLost
private void toDatePickerFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_toDatePickerFocusLost
// set the "to" calendar button to listen to change in the text field
String toDateString = this.toDatePicker.getText();
if (!toDateString.equals("")) {
try {
Date toDate = dateFormat.parse(toDateString);
toDatePicker.setDate(toDate.toInstant().atZone(dateFormat.getTimeZone().toZoneId()).toLocalDate());
} catch (ParseException ex) {
// for now, no need to show the error message to the user here
}
}
}//GEN-LAST:event_toDatePickerFocusLost
/** /**
* Validate and set the datetime field on the screen given a datetime * Validate and set the datetime field on the screen given a datetime
* string. * string.
@ -437,12 +388,18 @@ class DateSearchPanel extends javax.swing.JPanel {
*/ */
private void setFromDate(Date date) { private void setFromDate(Date date) {
String dateStringResult = ""; String dateStringResult = "";
Instant ins = null;
if (date != null) { if (date != null) {
dateStringResult = dateFormat.format(date); dateStringResult = dateFormat.format(date);
ins = date.toInstant();
} }
dateFromTextField.setText(dateStringResult); fromDatePicker.setText(dateStringResult);
dateFromButtonCalendar.setTargetDate(date); if (ins != null) {
fromDatePicker.setDate(ins.atZone(dateFormat.getTimeZone().toZoneId()).toLocalDate());
} else {
fromDatePicker.setDate(null);
}
} }
/** /**
@ -452,13 +409,19 @@ class DateSearchPanel extends javax.swing.JPanel {
*/ */
private void setToDate(Date date) { private void setToDate(Date date) {
String dateStringResult = ""; String dateStringResult = "";
Instant ins = null;
if (date != null) { if (date != null) {
dateStringResult = dateFormat.format(date); dateStringResult = dateFormat.format(date);
ins = date.toInstant();
}
toDatePicker.setText(dateStringResult);
if (ins != null) {
toDatePicker.setDate(ins.atZone(dateFormat.getTimeZone().toZoneId()).toLocalDate());
} else {
toDatePicker.setDate(null);
} }
dateToTextField.setText(dateStringResult);
dateToButtonCalendar.setTargetDate(date);
} }
boolean isValidSearch() { boolean isValidSearch() {
return this.accessedCheckBox.isSelected() || return this.accessedCheckBox.isSelected() ||
this.changedCheckBox.isSelected() || this.changedCheckBox.isSelected() ||
@ -472,10 +435,7 @@ class DateSearchPanel extends javax.swing.JPanel {
private javax.swing.JCheckBox createdCheckBox; private javax.swing.JCheckBox createdCheckBox;
private javax.swing.JMenuItem cutMenuItem; private javax.swing.JMenuItem cutMenuItem;
private javax.swing.JCheckBox dateCheckBox; private javax.swing.JCheckBox dateCheckBox;
private org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton dateFromButtonCalendar; private com.github.lgooddatepicker.components.DatePicker fromDatePicker;
private javax.swing.JFormattedTextField dateFromTextField;
private org.jbundle.thin.base.screen.jcalendarbutton.JCalendarButton dateToButtonCalendar;
private javax.swing.JFormattedTextField dateToTextField;
private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel3;
@ -485,10 +445,17 @@ class DateSearchPanel extends javax.swing.JPanel {
private javax.swing.JPopupMenu rightClickMenu; private javax.swing.JPopupMenu rightClickMenu;
private javax.swing.JMenuItem selectAllMenuItem; private javax.swing.JMenuItem selectAllMenuItem;
private javax.swing.JComboBox<String> timeZoneComboBox; private javax.swing.JComboBox<String> timeZoneComboBox;
private com.github.lgooddatepicker.components.DatePicker toDatePicker;
// End of variables declaration//GEN-END:variables // End of variables declaration//GEN-END:variables
void addActionListener(ActionListener l) { void addDateChangeListener() {
dateFromTextField.addActionListener(l); DateChangeListener dcl = (DateChangeEvent event) -> {
dateToTextField.addActionListener(l); firePropertyChange(FileSearchPanel.EVENT.CHECKED.toString(), null, null);
};
fromDatePicker.addDateChangeListener(dcl);
toDatePicker.addDateChangeListener(dcl);
} }
} }

View File

@ -13,7 +13,6 @@
<dependency conf="autopsy_core->*" org="com.googlecode.gstreamer-java" name="gstreamer-java" rev="1.5"/> <dependency conf="autopsy_core->*" org="com.googlecode.gstreamer-java" name="gstreamer-java" rev="1.5"/>
<!-- for file search --> <!-- for file search -->
<dependency conf="autopsy_core->*" org="org.jbundle.thin.base.screen" name="jcalendarbutton" rev="1.4.6"/>
<dependency conf="autopsy_core->*" org="com.github.lgooddatepicker" name="LGoodDatePicker" rev="10.3.1"/> <dependency conf="autopsy_core->*" org="com.github.lgooddatepicker" name="LGoodDatePicker" rev="10.3.1"/>
<!-- commmon --> <!-- commmon -->

View File

@ -44,7 +44,6 @@ file.reference.imgscalr-lib-4.2-sources.jar=release/modules/ext/imgscalr-lib-4.2
file.reference.imgscalr-lib-4.2.jar=release/modules/ext/imgscalr-lib-4.2.jar file.reference.imgscalr-lib-4.2.jar=release/modules/ext/imgscalr-lib-4.2.jar
file.reference.javaee-api-5.0-2.jar=release/modules/ext/javaee-api-5.0-2.jar file.reference.javaee-api-5.0-2.jar=release/modules/ext/javaee-api-5.0-2.jar
file.reference.javassist-3.12.1.GA.jar=release/modules/ext/javassist-3.12.1.GA.jar file.reference.javassist-3.12.1.GA.jar=release/modules/ext/javassist-3.12.1.GA.jar
file.reference.jcalendarbutton-1.4.6.jar=release/modules/ext/jcalendarbutton-1.4.6.jar
file.reference.jfxtras-common-8.0-r4.jar=release/modules/ext/jfxtras-common-8.0-r4.jar file.reference.jfxtras-common-8.0-r4.jar=release/modules/ext/jfxtras-common-8.0-r4.jar
file.reference.jfxtras-controls-8.0-r4.jar=release/modules/ext/jfxtras-controls-8.0-r4.jar file.reference.jfxtras-controls-8.0-r4.jar=release/modules/ext/jfxtras-controls-8.0-r4.jar
file.reference.jfxtras-fxml-8.0-r4.jar=release/modules/ext/jfxtras-fxml-8.0-r4.jar file.reference.jfxtras-fxml-8.0-r4.jar=release/modules/ext/jfxtras-fxml-8.0-r4.jar

View File

@ -215,7 +215,6 @@
<package>jfxtras.scene.control</package> <package>jfxtras.scene.control</package>
<package>jfxtras.scene.layout</package> <package>jfxtras.scene.layout</package>
<package>jfxtras.util</package> <package>jfxtras.util</package>
<package>net.sourceforge.jcalendarbutton</package>
<package>org.apache.avalon.framework</package> <package>org.apache.avalon.framework</package>
<package>org.apache.avalon.framework.activity</package> <package>org.apache.avalon.framework.activity</package>
<package>org.apache.avalon.framework.component</package> <package>org.apache.avalon.framework.component</package>
@ -590,7 +589,6 @@
<package>org.hyperic.sigar.vmware</package> <package>org.hyperic.sigar.vmware</package>
<package>org.hyperic.sigar.win32</package> <package>org.hyperic.sigar.win32</package>
<package>org.imgscalr</package> <package>org.imgscalr</package>
<package>org.jbundle.thin.base.screen.jcalendarbutton</package>
<package>org.joda.time</package> <package>org.joda.time</package>
<package>org.joda.time.base</package> <package>org.joda.time.base</package>
<package>org.joda.time.chrono</package> <package>org.joda.time.chrono</package>
@ -633,7 +631,6 @@
<package>org.slf4j.helpers</package> <package>org.slf4j.helpers</package>
<package>org.slf4j.impl</package> <package>org.slf4j.impl</package>
<package>org.slf4j.spi</package> <package>org.slf4j.spi</package>
<package>org.sourceforge.jcalendarbutton</package>
<package>org.w3c.dom</package> <package>org.w3c.dom</package>
<package>org.w3c.dom.css</package> <package>org.w3c.dom.css</package>
<package>org.w3c.dom.events</package> <package>org.w3c.dom.events</package>
@ -770,10 +767,6 @@
<runtime-relative-path>ext/poi-excelant-3.15.jar</runtime-relative-path> <runtime-relative-path>ext/poi-excelant-3.15.jar</runtime-relative-path>
<binary-origin>release/modules/ext/poi-excelant-3.15.jar</binary-origin> <binary-origin>release/modules/ext/poi-excelant-3.15.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/jcalendarbutton-1.4.6.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jcalendarbutton-1.4.6.jar</binary-origin>
</class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/imageio-psd-3.2.jar</runtime-relative-path> <runtime-relative-path>ext/imageio-psd-3.2.jar</runtime-relative-path>
<binary-origin>release/modules/ext/imageio-psd-3.2.jar</binary-origin> <binary-origin>release/modules/ext/imageio-psd-3.2.jar</binary-origin>

View File

@ -5,7 +5,7 @@
<conf name="experimental"/> <conf name="experimental"/>
</configurations> </configurations>
<dependencies> <dependencies>
<dependency conf="experimental->default" org="com.github.lgooddatepicker" name="LGoodDatePicker" rev="4.3.1"/> <dependency conf="experimental->default" org="com.github.lgooddatepicker" name="LGoodDatePicker" rev="10.3.1"/>
<dependency conf="experimental->default" org="org.apache.tika" name="tika-core" rev="1.14"/> <dependency conf="experimental->default" org="org.apache.tika" name="tika-core" rev="1.14"/>
<dependency conf="experimental->default" org="org.postgresql" name="postgresql" rev="9.4-1201-jdbc41"/> <dependency conf="experimental->default" org="org.postgresql" name="postgresql" rev="9.4-1201-jdbc41"/>
<dependency conf="experimental->default" org="com.mchange" name="c3p0" rev="0.9.5"/> <dependency conf="experimental->default" org="com.mchange" name="c3p0" rev="0.9.5"/>

View File

@ -1,10 +1,10 @@
file.reference.c3p0-0.9.5.jar=release/modules/ext/c3p0-0.9.5.jar file.reference.c3p0-0.9.5.jar=release/modules/ext/c3p0-0.9.5.jar
file.reference.jackson-core-2.7.0.jar=release/modules/ext/jackson-core-2.7.0.jar file.reference.jackson-core-2.7.0.jar=release/modules/ext/jackson-core-2.7.0.jar
file.reference.LGoodDatePicker-4.3.1.jar=release/modules/ext/LGoodDatePicker-4.3.1.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.mchange-commons-java-0.2.9.jar=release/modules/ext/mchange-commons-java-0.2.9.jar
file.reference.postgresql-9.4-1201-jdbc41.jar=release/modules/ext/postgresql-9.4-1201-jdbc41.jar file.reference.postgresql-9.4-1201-jdbc41.jar=release/modules/ext/postgresql-9.4-1201-jdbc41.jar
file.reference.tika-core-1.14.jar=release/modules/ext/tika-core-1.14.jar file.reference.tika-core-1.14.jar=release/modules/ext/tika-core-1.14.jar
javac.source=1.8 javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial javac.compilerargs=-Xlint -Xlint:-serial
javadoc.reference.LGoodDatePicker-4.3.1.jar=release/modules/ext/LGoodDatePicker-4.3.1-javadoc.jar javadoc.reference.LGoodDatePicker-10.3.1.jar=release/modules/ext/LGoodDatePicker-10.3.1-javadoc.jar
source.reference.LGoodDatePicker-4.3.1.jar=release/modules/ext/LGoodDatePicker-4.3.1-sources.jar source.reference.LGoodDatePicker-10.3.1.jar=release/modules/ext/LGoodDatePicker-10.3.1-sources.jar

View File

@ -145,18 +145,18 @@
<package>org.sleuthkit.autopsy.experimental.autoingest</package> <package>org.sleuthkit.autopsy.experimental.autoingest</package>
<package>org.sleuthkit.autopsy.experimental.configuration</package> <package>org.sleuthkit.autopsy.experimental.configuration</package>
</public-packages> </public-packages>
<class-path-extension>
<runtime-relative-path>ext/mchange-commons-java-0.2.9.jar</runtime-relative-path>
<binary-origin>release/modules/ext/mchange-commons-java-0.2.9.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/LGoodDatePicker-4.3.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/LGoodDatePicker-4.3.1.jar</binary-origin>
</class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/tika-core-1.14.jar</runtime-relative-path> <runtime-relative-path>ext/tika-core-1.14.jar</runtime-relative-path>
<binary-origin>release/modules/ext/tika-core-1.14.jar</binary-origin> <binary-origin>release/modules/ext/tika-core-1.14.jar</binary-origin>
</class-path-extension> </class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/LGoodDatePicker-10.3.1.jar</runtime-relative-path>
<binary-origin>release/modules/ext/LGoodDatePicker-10.3.1.jar</binary-origin>
</class-path-extension>
<class-path-extension>
<runtime-relative-path>ext/mchange-commons-java-0.2.9.jar</runtime-relative-path>
<binary-origin>release/modules/ext/mchange-commons-java-0.2.9.jar</binary-origin>
</class-path-extension>
<class-path-extension> <class-path-extension>
<runtime-relative-path>ext/jackson-core-2.7.0.jar</runtime-relative-path> <runtime-relative-path>ext/jackson-core-2.7.0.jar</runtime-relative-path>
<binary-origin>release/modules/ext/jackson-core-2.7.0.jar</binary-origin> <binary-origin>release/modules/ext/jackson-core-2.7.0.jar</binary-origin>

View File

@ -31,9 +31,9 @@
<Component id="jScrollPane1" alignment="0" max="32767" attributes="0"/> <Component id="jScrollPane1" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<Component id="startingDataLabel" min="-2" max="-2" attributes="0"/> <Component id="startingDataLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="datePicker" min="-2" max="-2" attributes="0"/> <Component id="datePicker" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="7" max="32767" attributes="0"/> <EmptySpace max="32767" attributes="0"/>
<Component id="metricsButton" min="-2" max="-2" attributes="0"/> <Component id="metricsButton" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="1" attributes="0"> <Group type="102" alignment="1" attributes="0">
@ -51,8 +51,10 @@
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="metricsButton" min="-2" max="-2" attributes="0"/> <Component id="metricsButton" min="-2" max="-2" attributes="0"/>
<Component id="datePicker" alignment="0" min="-2" max="-2" attributes="0"/> <Group type="103" alignment="0" groupAlignment="3" attributes="0">
<Component id="startingDataLabel" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="startingDataLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="datePicker" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
</Group> </Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="jScrollPane1" min="-2" pref="128" max="-2" attributes="0"/> <Component id="jScrollPane1" min="-2" pref="128" max="-2" attributes="0"/>
@ -103,16 +105,6 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="metricsButtonActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="metricsButtonActionPerformed"/>
</Events> </Events>
</Component> </Component>
<Component class="com.github.lgooddatepicker.datepicker.DatePicker" name="datePicker">
<Properties>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="AutoIngestMetricsDialog.datePicker.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new DatePicker();"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="startingDataLabel"> <Component class="javax.swing.JLabel" name="startingDataLabel">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
@ -120,5 +112,12 @@
</Property> </Property>
</Properties> </Properties>
</Component> </Component>
<Component class="com.github.lgooddatepicker.components.DatePicker" name="datePicker">
<Properties>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="AutoIngestMetricsDialog.datePicker.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
</SubComponents> </SubComponents>
</Form> </Form>

View File

@ -18,7 +18,6 @@
*/ */
package org.sleuthkit.autopsy.experimental.autoingest; package org.sleuthkit.autopsy.experimental.autoingest;
import com.github.lgooddatepicker.datepicker.DatePicker;
import java.awt.Container; import java.awt.Container;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Window; import java.awt.Window;
@ -139,8 +138,8 @@ final class AutoIngestMetricsDialog extends javax.swing.JDialog {
jScrollPane1 = new javax.swing.JScrollPane(); jScrollPane1 = new javax.swing.JScrollPane();
reportTextArea = new javax.swing.JTextArea(); reportTextArea = new javax.swing.JTextArea();
metricsButton = new javax.swing.JButton(); metricsButton = new javax.swing.JButton();
datePicker = new DatePicker();
startingDataLabel = new javax.swing.JLabel(); startingDataLabel = new javax.swing.JLabel();
datePicker = new com.github.lgooddatepicker.components.DatePicker();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setAlwaysOnTop(true); setAlwaysOnTop(true);
@ -166,10 +165,10 @@ final class AutoIngestMetricsDialog extends javax.swing.JDialog {
} }
}); });
datePicker.setToolTipText(org.openide.util.NbBundle.getMessage(AutoIngestMetricsDialog.class, "AutoIngestMetricsDialog.datePicker.toolTipText")); // NOI18N
org.openide.awt.Mnemonics.setLocalizedText(startingDataLabel, org.openide.util.NbBundle.getMessage(AutoIngestMetricsDialog.class, "AutoIngestMetricsDialog.startingDataLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(startingDataLabel, org.openide.util.NbBundle.getMessage(AutoIngestMetricsDialog.class, "AutoIngestMetricsDialog.startingDataLabel.text")); // NOI18N
datePicker.setToolTipText(org.openide.util.NbBundle.getMessage(AutoIngestMetricsDialog.class, "AutoIngestMetricsDialog.datePicker.toolTipText")); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout); getContentPane().setLayout(layout);
layout.setHorizontalGroup( layout.setHorizontalGroup(
@ -180,9 +179,9 @@ final class AutoIngestMetricsDialog extends javax.swing.JDialog {
.addComponent(jScrollPane1) .addComponent(jScrollPane1)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addComponent(startingDataLabel) .addComponent(startingDataLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(datePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(datePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(metricsButton)) .addComponent(metricsButton))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE) .addGap(0, 0, Short.MAX_VALUE)
@ -195,8 +194,9 @@ final class AutoIngestMetricsDialog extends javax.swing.JDialog {
.addContainerGap() .addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(metricsButton) .addComponent(metricsButton)
.addComponent(datePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(startingDataLabel)) .addComponent(startingDataLabel)
.addComponent(datePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
@ -220,7 +220,7 @@ final class AutoIngestMetricsDialog extends javax.swing.JDialog {
// Variables declaration - do not modify//GEN-BEGIN:variables // Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton closeButton; private javax.swing.JButton closeButton;
private com.github.lgooddatepicker.datepicker.DatePicker datePicker; private com.github.lgooddatepicker.components.DatePicker datePicker;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton metricsButton; private javax.swing.JButton metricsButton;
private javax.swing.JTextArea reportTextArea; private javax.swing.JTextArea reportTextArea;

View File

@ -71,10 +71,10 @@
<SubComponents> <SubComponents>
<Container class="javax.swing.JPanel" name="mainPanel"> <Container class="javax.swing.JPanel" name="mainPanel">
<Properties> <Properties>
<Property name="autoscrolls" type="boolean" value="true"/>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[657, 425]"/> <Dimension value="[657, 425]"/>
</Property> </Property>
<Property name="autoscrolls" type="boolean" value="true"/>
</Properties> </Properties>
<Layout> <Layout>
@ -136,12 +136,12 @@
<SubComponents> <SubComponents>
<Component class="javax.swing.JTextField" name="tbRootDirectory"> <Component class="javax.swing.JTextField" name="tbRootDirectory">
<Properties> <Properties>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.RuleOutputTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[2000, 2000]"/> <Dimension value="[2000, 2000]"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.RuleOutputTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties> </Properties>
</Component> </Component>
<Container class="javax.swing.JPanel" name="pnEditRule"> <Container class="javax.swing.JPanel" name="pnEditRule">
@ -161,7 +161,7 @@
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/> <EmptySpace min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="21" max="-2" attributes="0"/> <EmptySpace min="-2" pref="21" max="-2" attributes="0"/>
@ -173,13 +173,6 @@
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="bnSaveRule" min="-2" pref="101" max="-2" attributes="0"/> <Component id="bnSaveRule" min="-2" pref="101" max="-2" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="0" attributes="0">
<Component id="comboBoxAttributeComparison" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="dateTimePicker" min="-2" pref="306" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbAttributeValue" pref="158" max="32767" attributes="0"/>
</Group>
<Group type="102" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
@ -202,6 +195,13 @@
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="bnDeleteAttribute" min="-2" max="-2" attributes="0"/> <Component id="bnDeleteAttribute" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<Group type="102" alignment="0" attributes="0">
<Component id="comboBoxAttributeComparison" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="dateTimePicker" min="-2" pref="306" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbAttributeValue" pref="158" max="32767" attributes="0"/>
</Group>
</Group> </Group>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/> <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group> </Group>
@ -236,7 +236,7 @@
<Component id="tbRuleName" pref="0" max="32767" attributes="0"/> <Component id="tbRuleName" pref="0" max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace min="-2" max="-2" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
@ -259,20 +259,16 @@
<EmptySpace min="-2" pref="78" max="-2" attributes="0"/> <EmptySpace min="-2" pref="78" max="-2" attributes="0"/>
<Component id="lbAttribute" min="-2" max="-2" attributes="0"/> <Component id="lbAttribute" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="8" max="-2" attributes="0"/> <EmptySpace min="-2" pref="8" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Group type="102" attributes="0"> <Component id="comboBoxAttributeName" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Component id="comboBoxArtifactName" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="comboBoxAttributeName" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="comboBoxValueType" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="comboBoxArtifactName" alignment="3" min="-2" max="-2" attributes="0"/> </Group>
<Component id="comboBoxValueType" alignment="3" min="-2" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> <Group type="103" groupAlignment="3" attributes="0">
<EmptySpace max="-2" attributes="0"/> <Component id="tbAttributeValue" alignment="3" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Component id="comboBoxAttributeComparison" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="tbAttributeValue" min="-2" max="-2" attributes="0"/> <Component id="dateTimePicker" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="dateTimePicker" min="-2" max="-2" attributes="0"/>
</Group>
</Group>
<Component id="comboBoxAttributeComparison" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
@ -380,12 +376,12 @@
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor"> <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="0"/> <StringArray count="0"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.FileSizeComparisonTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[32, 20]"/> <Dimension value="[32, 20]"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.FileSizeComparisonTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties> </Properties>
<AuxValues> <AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
@ -396,12 +392,12 @@
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor"> <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="0"/> <StringArray count="0"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.MimeTypeComparisonTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[32, 20]"/> <Dimension value="[32, 20]"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.MimeTypeComparisonTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties> </Properties>
<AuxValues> <AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
@ -409,15 +405,15 @@
</Component> </Component>
<Component class="javax.swing.JTextField" name="tbRuleName"> <Component class="javax.swing.JTextField" name="tbRuleName">
<Properties> <Properties>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.CurrentlySelectedRuleNameTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[10, 1000]"/> <Dimension value="[10, 1000]"/>
</Property> </Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[733, 20]"/> <Dimension value="[733, 20]"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.CurrentlySelectedRuleNameTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties> </Properties>
<Events> <Events>
<EventHandler event="keyTyped" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="tbRuleNameKeyTyped"/> <EventHandler event="keyTyped" listener="java.awt.event.KeyListener" parameters="java.awt.event.KeyEvent" handler="tbRuleNameKeyTyped"/>
@ -431,10 +427,10 @@
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.SaveText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.SaveText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="enabled" type="boolean" value="false"/>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.SaveTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.SaveTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="enabled" type="boolean" value="false"/>
</Properties> </Properties>
<Events> <Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnSaveRuleActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnSaveRuleActionPerformed"/>
@ -477,10 +473,10 @@
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor"> <Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
<StringArray count="0"/> <StringArray count="0"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" value="Select the conditional operator"/>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[32, 23]"/> <Dimension value="[32, 23]"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" value="Select the conditional operator"/>
</Properties> </Properties>
<AuxValues> <AuxValues>
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/> <AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="&lt;String&gt;"/>
@ -488,13 +484,13 @@
</Component> </Component>
<Component class="javax.swing.JTextField" name="tbAttributeValue"> <Component class="javax.swing.JTextField" name="tbAttributeValue">
<Properties> <Properties>
<Property name="toolTipText" type="java.lang.String" value="Type a value here"/>
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[6, 23]"/> <Dimension value="[6, 23]"/>
</Property> </Property>
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[6, 23]"/> <Dimension value="[6, 23]"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" value="Type a value here"/>
</Properties> </Properties>
</Component> </Component>
<Component class="javax.swing.JButton" name="bnAddAttribute"> <Component class="javax.swing.JButton" name="bnAddAttribute">
@ -503,8 +499,8 @@
<Image iconType="3" name="/org/sleuthkit/autopsy/experimental/images/left-arrow-16-icon.png"/> <Image iconType="3" name="/org/sleuthkit/autopsy/experimental/images/left-arrow-16-icon.png"/>
</Property> </Property>
<Property name="text" type="java.lang.String" value="Add Attribute"/> <Property name="text" type="java.lang.String" value="Add Attribute"/>
<Property name="toolTipText" type="java.lang.String" value="Click to add an attribute to the current rule"/>
<Property name="enabled" type="boolean" value="false"/> <Property name="enabled" type="boolean" value="false"/>
<Property name="toolTipText" type="java.lang.String" value="Click to add an attribute to the current rule"/>
</Properties> </Properties>
<Events> <Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnAddAttributeActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnAddAttributeActionPerformed"/>
@ -533,14 +529,6 @@
<EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="cbAttributeTypeItemStateChanged"/> <EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="cbAttributeTypeItemStateChanged"/>
</Events> </Events>
</Component> </Component>
<Component class="com.github.lgooddatepicker.datetimepicker.DateTimePicker" name="dateTimePicker">
<Properties>
<Property name="toolTipText" type="java.lang.String" value="Choose a date and time"/>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new DateTimePicker(null, timeSettings);"/>
</AuxValues>
</Component>
<Component class="javax.swing.JLabel" name="lbArtifact"> <Component class="javax.swing.JLabel" name="lbArtifact">
<Properties> <Properties>
<Property name="text" type="java.lang.String" value="Artifact"/> <Property name="text" type="java.lang.String" value="Artifact"/>
@ -554,8 +542,8 @@
<Component class="javax.swing.JButton" name="bnDeleteAttribute"> <Component class="javax.swing.JButton" name="bnDeleteAttribute">
<Properties> <Properties>
<Property name="text" type="java.lang.String" value="Delete Attribute"/> <Property name="text" type="java.lang.String" value="Delete Attribute"/>
<Property name="toolTipText" type="java.lang.String" value="Click to remove the selected attribute"/>
<Property name="enabled" type="boolean" value="false"/> <Property name="enabled" type="boolean" value="false"/>
<Property name="toolTipText" type="java.lang.String" value="Click to remove the selected attribute"/>
</Properties> </Properties>
<Events> <Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnDeleteAttributeActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnDeleteAttributeActionPerformed"/>
@ -593,6 +581,14 @@
<Property name="text" type="java.lang.String" value="To save, a rule must have a name and at least one condition."/> <Property name="text" type="java.lang.String" value="To save, a rule must have a name and at least one condition."/>
</Properties> </Properties>
</Component> </Component>
<Component class="com.github.lgooddatepicker.components.DateTimePicker" name="dateTimePicker">
<Properties>
<Property name="toolTipText" type="java.lang.String" value="Choose a date and time"/>
</Properties>
<AuxValues>
<AuxValue name="JavaCodeGenerator_CreateCodeCustom" type="java.lang.String" value="new DateTimePicker(null, timeSettings);"/>
</AuxValues>
</Component>
</SubComponents> </SubComponents>
</Container> </Container>
<Component class="javax.swing.JButton" name="bnBrowseReportDirectory"> <Component class="javax.swing.JButton" name="bnBrowseReportDirectory">
@ -610,12 +606,12 @@
</Component> </Component>
<Component class="javax.swing.JTextField" name="tbReportDirectory"> <Component class="javax.swing.JTextField" name="tbReportDirectory">
<Properties> <Properties>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.ReportOutputFolderTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor"> <Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
<Dimension value="[2000, 2000]"/> <Dimension value="[2000, 2000]"/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.ReportOutputFolderTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties> </Properties>
</Component> </Component>
<Container class="javax.swing.JScrollPane" name="ruleListScrollPane"> <Container class="javax.swing.JScrollPane" name="ruleListScrollPane">
@ -630,9 +626,9 @@
<Property name="model" type="javax.swing.tree.TreeModel" editor="org.netbeans.modules.form.editors2.TreeModelEditor"> <Property name="model" type="javax.swing.tree.TreeModel" editor="org.netbeans.modules.form.editors2.TreeModelEditor">
<TreeModel code=""/> <TreeModel code=""/>
</Property> </Property>
<Property name="toolTipText" type="java.lang.String" value="This tree shows the rules to collect files for automatic file export"/>
<Property name="name" type="java.lang.String" value="trRuleList" noResource="true"/> <Property name="name" type="java.lang.String" value="trRuleList" noResource="true"/>
<Property name="showsRootHandles" type="boolean" value="true"/> <Property name="showsRootHandles" type="boolean" value="true"/>
<Property name="toolTipText" type="java.lang.String" value="This tree shows the rules to collect files for automatic file export"/>
</Properties> </Properties>
<AccessibilityProperties> <AccessibilityProperties>
<Property name="AccessibleContext.accessibleParent" type="javax.accessibility.Accessible" editor="org.netbeans.modules.form.ComponentChooserEditor"> <Property name="AccessibleContext.accessibleParent" type="javax.accessibility.Accessible" editor="org.netbeans.modules.form.ComponentChooserEditor">
@ -700,10 +696,10 @@
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.DeleteText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.DeleteText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="enabled" type="boolean" value="false"/>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.DeleteTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties" key="FileExporterSettingsPanel.DeleteTooltip_1" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
<Property name="enabled" type="boolean" value="false"/>
</Properties> </Properties>
<Events> <Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnDeleteRuleActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnDeleteRuleActionPerformed"/>

View File

@ -1,7 +1,7 @@
/* /*
* Autopsy Forensic Browser * Autopsy Forensic Browser
* *
* Copyright 2015 Basis Technology Corp. * Copyright 2015-2017 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");
@ -18,9 +18,9 @@
*/ */
package org.sleuthkit.autopsy.experimental.autoingest; package org.sleuthkit.autopsy.experimental.autoingest;
import com.github.lgooddatepicker.datetimepicker.DateTimePicker; import com.github.lgooddatepicker.components.DateTimePicker;
import com.github.lgooddatepicker.optionalusertools.PickerUtilities; import com.github.lgooddatepicker.optionalusertools.PickerUtilities;
import com.github.lgooddatepicker.timepicker.TimePickerSettings; import com.github.lgooddatepicker.components.TimePickerSettings;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
import java.awt.event.FocusEvent; import java.awt.event.FocusEvent;
@ -632,7 +632,7 @@ public final class FileExporterSettingsPanel extends JPanel {
comboBoxValueType.setEnabled(null == attributeTypeMap.get(artifactConditionToPopulateWith.getAttributeTypeName())); comboBoxValueType.setEnabled(null == attributeTypeMap.get(artifactConditionToPopulateWith.getAttributeTypeName()));
if (valueType == BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME) { if (valueType == BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME) {
Instant instant = Instant.ofEpochMilli(artifactConditionToPopulateWith.getDateTimeValue().toDate().getTime()); Instant instant = Instant.ofEpochMilli(artifactConditionToPopulateWith.getDateTimeValue().toDate().getTime());
dateTimePicker.setDateTime(LocalDateTime.ofInstant(instant, ZoneId.systemDefault())); dateTimePicker.setDateTimeStrict(LocalDateTime.ofInstant(instant, ZoneId.systemDefault()));
} else { } else {
tbAttributeValue.setText(artifactConditionToPopulateWith.getStringRepresentationOfValue()); tbAttributeValue.setText(artifactConditionToPopulateWith.getStringRepresentationOfValue());
} }
@ -650,30 +650,30 @@ public final class FileExporterSettingsPanel extends JPanel {
mainPanel = new javax.swing.JPanel(); mainPanel = new javax.swing.JPanel();
tbRootDirectory = new javax.swing.JTextField(); tbRootDirectory = new javax.swing.JTextField();
pnEditRule = new javax.swing.JPanel(); pnEditRule = new javax.swing.JPanel();
comboBoxMimeValue = new javax.swing.JComboBox<String>(); comboBoxMimeValue = new javax.swing.JComboBox<>();
cbMimeType = new javax.swing.JCheckBox(); cbMimeType = new javax.swing.JCheckBox();
spFileSizeValue = new javax.swing.JSpinner(); spFileSizeValue = new javax.swing.JSpinner();
comboBoxFileSizeUnits = new javax.swing.JComboBox<String>(); comboBoxFileSizeUnits = new javax.swing.JComboBox<>();
cbFileSize = new javax.swing.JCheckBox(); cbFileSize = new javax.swing.JCheckBox();
comboBoxFileSizeComparison = new javax.swing.JComboBox<String>(); comboBoxFileSizeComparison = new javax.swing.JComboBox<>();
comboBoxMimeTypeComparison = new javax.swing.JComboBox<String>(); comboBoxMimeTypeComparison = new javax.swing.JComboBox<>();
tbRuleName = new javax.swing.JTextField(); tbRuleName = new javax.swing.JTextField();
bnSaveRule = new javax.swing.JButton(); bnSaveRule = new javax.swing.JButton();
comboBoxArtifactName = new javax.swing.JComboBox<String>(); comboBoxArtifactName = new javax.swing.JComboBox<>();
comboBoxAttributeName = new javax.swing.JComboBox<String>(); comboBoxAttributeName = new javax.swing.JComboBox<>();
comboBoxAttributeComparison = new javax.swing.JComboBox<String>(); comboBoxAttributeComparison = new javax.swing.JComboBox<>();
tbAttributeValue = new javax.swing.JTextField(); tbAttributeValue = new javax.swing.JTextField();
bnAddAttribute = new javax.swing.JButton(); bnAddAttribute = new javax.swing.JButton();
comboBoxValueType = new javax.swing.JComboBox<String>(); comboBoxValueType = new javax.swing.JComboBox<>();
cbAttributeType = new javax.swing.JCheckBox(); cbAttributeType = new javax.swing.JCheckBox();
dateTimePicker = new DateTimePicker(null, timeSettings);
lbArtifact = new javax.swing.JLabel(); lbArtifact = new javax.swing.JLabel();
lbAttribute = new javax.swing.JLabel(); lbAttribute = new javax.swing.JLabel();
bnDeleteAttribute = new javax.swing.JButton(); bnDeleteAttribute = new javax.swing.JButton();
jScrollPane1 = new javax.swing.JScrollPane(); jScrollPane1 = new javax.swing.JScrollPane();
lsAttributeList = new javax.swing.JList<String>(); lsAttributeList = new javax.swing.JList<>();
lbRuleName = new javax.swing.JLabel(); lbRuleName = new javax.swing.JLabel();
lbSaveRuleHelper = new javax.swing.JLabel(); lbSaveRuleHelper = new javax.swing.JLabel();
dateTimePicker = new DateTimePicker(null, timeSettings);
bnBrowseReportDirectory = new javax.swing.JButton(); bnBrowseReportDirectory = new javax.swing.JButton();
tbReportDirectory = new javax.swing.JTextField(); tbReportDirectory = new javax.swing.JTextField();
ruleListScrollPane = new javax.swing.JScrollPane(); ruleListScrollPane = new javax.swing.JScrollPane();
@ -690,11 +690,11 @@ public final class FileExporterSettingsPanel extends JPanel {
setBorder(javax.swing.BorderFactory.createEtchedBorder()); setBorder(javax.swing.BorderFactory.createEtchedBorder());
setName(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.Title")); // NOI18N setName(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.Title")); // NOI18N
mainPanel.setAutoscrolls(true);
mainPanel.setPreferredSize(new java.awt.Dimension(657, 425)); mainPanel.setPreferredSize(new java.awt.Dimension(657, 425));
mainPanel.setAutoscrolls(true);
tbRootDirectory.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.RuleOutputTooltip_1")); // NOI18N
tbRootDirectory.setMaximumSize(new java.awt.Dimension(2000, 2000)); tbRootDirectory.setMaximumSize(new java.awt.Dimension(2000, 2000));
tbRootDirectory.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.RuleOutputTooltip_1")); // NOI18N
pnEditRule.setBorder(javax.swing.BorderFactory.createEtchedBorder()); pnEditRule.setBorder(javax.swing.BorderFactory.createEtchedBorder());
pnEditRule.setAutoscrolls(true); pnEditRule.setAutoscrolls(true);
@ -716,7 +716,7 @@ public final class FileExporterSettingsPanel extends JPanel {
} }
}); });
spFileSizeValue.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(1024), Integer.valueOf(0), null, Integer.valueOf(1))); spFileSizeValue.setModel(new javax.swing.SpinnerNumberModel(1024, 0, null, 1));
spFileSizeValue.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.FileSizeValueToolTip_1")); // NOI18N spFileSizeValue.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.FileSizeValueToolTip_1")); // NOI18N
comboBoxFileSizeUnits.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.FileSizeUnitToolTip_1")); // NOI18N comboBoxFileSizeUnits.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.FileSizeUnitToolTip_1")); // NOI18N
@ -729,15 +729,15 @@ public final class FileExporterSettingsPanel extends JPanel {
} }
}); });
comboBoxFileSizeComparison.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.FileSizeComparisonTooltip_1")); // NOI18N
comboBoxFileSizeComparison.setMinimumSize(new java.awt.Dimension(32, 20)); comboBoxFileSizeComparison.setMinimumSize(new java.awt.Dimension(32, 20));
comboBoxFileSizeComparison.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.FileSizeComparisonTooltip_1")); // NOI18N
comboBoxMimeTypeComparison.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.MimeTypeComparisonTooltip_1")); // NOI18N
comboBoxMimeTypeComparison.setMinimumSize(new java.awt.Dimension(32, 20)); comboBoxMimeTypeComparison.setMinimumSize(new java.awt.Dimension(32, 20));
comboBoxMimeTypeComparison.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.MimeTypeComparisonTooltip_1")); // NOI18N
tbRuleName.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.CurrentlySelectedRuleNameTooltip_1")); // NOI18N
tbRuleName.setMaximumSize(new java.awt.Dimension(10, 1000)); tbRuleName.setMaximumSize(new java.awt.Dimension(10, 1000));
tbRuleName.setPreferredSize(new java.awt.Dimension(733, 20)); tbRuleName.setPreferredSize(new java.awt.Dimension(733, 20));
tbRuleName.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.CurrentlySelectedRuleNameTooltip_1")); // NOI18N
tbRuleName.addKeyListener(new java.awt.event.KeyAdapter() { tbRuleName.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent evt) { public void keyTyped(java.awt.event.KeyEvent evt) {
tbRuleNameKeyTyped(evt); tbRuleNameKeyTyped(evt);
@ -746,8 +746,8 @@ public final class FileExporterSettingsPanel extends JPanel {
bnSaveRule.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/experimental/images/save-icon.png"))); // NOI18N bnSaveRule.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/experimental/images/save-icon.png"))); // NOI18N
bnSaveRule.setText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.SaveText")); // NOI18N bnSaveRule.setText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.SaveText")); // NOI18N
bnSaveRule.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.SaveTooltip_1")); // NOI18N
bnSaveRule.setEnabled(false); bnSaveRule.setEnabled(false);
bnSaveRule.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.SaveTooltip_1")); // NOI18N
bnSaveRule.addActionListener(new java.awt.event.ActionListener() { bnSaveRule.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
bnSaveRuleActionPerformed(evt); bnSaveRuleActionPerformed(evt);
@ -772,17 +772,17 @@ public final class FileExporterSettingsPanel extends JPanel {
} }
}); });
comboBoxAttributeComparison.setToolTipText("Select the conditional operator");
comboBoxAttributeComparison.setMinimumSize(new java.awt.Dimension(32, 23)); comboBoxAttributeComparison.setMinimumSize(new java.awt.Dimension(32, 23));
comboBoxAttributeComparison.setToolTipText("Select the conditional operator");
tbAttributeValue.setToolTipText("Type a value here");
tbAttributeValue.setMinimumSize(new java.awt.Dimension(6, 23)); tbAttributeValue.setMinimumSize(new java.awt.Dimension(6, 23));
tbAttributeValue.setPreferredSize(new java.awt.Dimension(6, 23)); tbAttributeValue.setPreferredSize(new java.awt.Dimension(6, 23));
tbAttributeValue.setToolTipText("Type a value here");
bnAddAttribute.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/experimental/images/left-arrow-16-icon.png"))); // NOI18N bnAddAttribute.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/experimental/images/left-arrow-16-icon.png"))); // NOI18N
bnAddAttribute.setText("Add Attribute"); bnAddAttribute.setText("Add Attribute");
bnAddAttribute.setToolTipText("Click to add an attribute to the current rule");
bnAddAttribute.setEnabled(false); bnAddAttribute.setEnabled(false);
bnAddAttribute.setToolTipText("Click to add an attribute to the current rule");
bnAddAttribute.addActionListener(new java.awt.event.ActionListener() { bnAddAttribute.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
bnAddAttributeActionPerformed(evt); bnAddAttributeActionPerformed(evt);
@ -804,15 +804,13 @@ public final class FileExporterSettingsPanel extends JPanel {
} }
}); });
dateTimePicker.setToolTipText("Choose a date and time");
lbArtifact.setText("Artifact"); lbArtifact.setText("Artifact");
lbAttribute.setText("Attribute"); lbAttribute.setText("Attribute");
bnDeleteAttribute.setText("Delete Attribute"); bnDeleteAttribute.setText("Delete Attribute");
bnDeleteAttribute.setToolTipText("Click to remove the selected attribute");
bnDeleteAttribute.setEnabled(false); bnDeleteAttribute.setEnabled(false);
bnDeleteAttribute.setToolTipText("Click to remove the selected attribute");
bnDeleteAttribute.addActionListener(new java.awt.event.ActionListener() { bnDeleteAttribute.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
bnDeleteAttributeActionPerformed(evt); bnDeleteAttributeActionPerformed(evt);
@ -829,6 +827,8 @@ public final class FileExporterSettingsPanel extends JPanel {
lbSaveRuleHelper.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); lbSaveRuleHelper.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
lbSaveRuleHelper.setText("To save, a rule must have a name and at least one condition."); lbSaveRuleHelper.setText("To save, a rule must have a name and at least one condition.");
dateTimePicker.setToolTipText("Choose a date and time");
javax.swing.GroupLayout pnEditRuleLayout = new javax.swing.GroupLayout(pnEditRule); javax.swing.GroupLayout pnEditRuleLayout = new javax.swing.GroupLayout(pnEditRule);
pnEditRule.setLayout(pnEditRuleLayout); pnEditRule.setLayout(pnEditRuleLayout);
pnEditRuleLayout.setHorizontalGroup( pnEditRuleLayout.setHorizontalGroup(
@ -845,12 +845,6 @@ public final class FileExporterSettingsPanel extends JPanel {
.addComponent(lbSaveRuleHelper, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(lbSaveRuleHelper, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bnSaveRule, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(bnSaveRule, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(pnEditRuleLayout.createSequentialGroup()
.addComponent(comboBoxAttributeComparison, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(dateTimePicker, javax.swing.GroupLayout.PREFERRED_SIZE, 306, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tbAttributeValue, javax.swing.GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE))
.addGroup(pnEditRuleLayout.createSequentialGroup() .addGroup(pnEditRuleLayout.createSequentialGroup()
.addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(pnEditRuleLayout.createSequentialGroup() .addGroup(pnEditRuleLayout.createSequentialGroup()
@ -867,7 +861,13 @@ public final class FileExporterSettingsPanel extends JPanel {
.addGroup(pnEditRuleLayout.createSequentialGroup() .addGroup(pnEditRuleLayout.createSequentialGroup()
.addComponent(bnAddAttribute, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(bnAddAttribute, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bnDeleteAttribute))) .addComponent(bnDeleteAttribute))
.addGroup(pnEditRuleLayout.createSequentialGroup()
.addComponent(comboBoxAttributeComparison, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(dateTimePicker, javax.swing.GroupLayout.PREFERRED_SIZE, 306, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(tbAttributeValue, javax.swing.GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE)))
.addGap(0, 0, Short.MAX_VALUE)))) .addGap(0, 0, Short.MAX_VALUE))))
.addGroup(pnEditRuleLayout.createSequentialGroup() .addGroup(pnEditRuleLayout.createSequentialGroup()
.addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@ -910,17 +910,15 @@ public final class FileExporterSettingsPanel extends JPanel {
.addGap(78, 78, 78) .addGap(78, 78, 78)
.addComponent(lbAttribute) .addComponent(lbAttribute)
.addGap(8, 8, 8) .addGap(8, 8, 8)
.addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addGroup(pnEditRuleLayout.createSequentialGroup() .addComponent(comboBoxAttributeName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(comboBoxArtifactName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(comboBoxAttributeName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(comboBoxValueType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(comboBoxArtifactName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(comboBoxValueType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(tbAttributeValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(comboBoxAttributeComparison, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(tbAttributeValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(dateTimePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(dateTimePicker, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(comboBoxAttributeComparison, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(pnEditRuleLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(bnAddAttribute) .addComponent(bnAddAttribute)
@ -953,14 +951,14 @@ public final class FileExporterSettingsPanel extends JPanel {
} }
}); });
tbReportDirectory.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.ReportOutputFolderTooltip_1")); // NOI18N
tbReportDirectory.setMaximumSize(new java.awt.Dimension(2000, 2000)); tbReportDirectory.setMaximumSize(new java.awt.Dimension(2000, 2000));
tbReportDirectory.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.ReportOutputFolderTooltip_1")); // NOI18N
javax.swing.tree.DefaultMutableTreeNode treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("root"); javax.swing.tree.DefaultMutableTreeNode treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("root");
trRuleList.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1)); trRuleList.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
trRuleList.setToolTipText("This tree shows the rules to collect files for automatic file export");
trRuleList.setName("trRuleList"); // NOI18N trRuleList.setName("trRuleList"); // NOI18N
trRuleList.setShowsRootHandles(true); trRuleList.setShowsRootHandles(true);
trRuleList.setToolTipText("This tree shows the rules to collect files for automatic file export");
ruleListScrollPane.setViewportView(trRuleList); ruleListScrollPane.setViewportView(trRuleList);
trRuleList.getAccessibleContext().setAccessibleParent(ruleListScrollPane); trRuleList.getAccessibleContext().setAccessibleParent(ruleListScrollPane);
@ -1039,8 +1037,8 @@ public final class FileExporterSettingsPanel extends JPanel {
bnDeleteRule.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/experimental/images/minus-icon.png"))); // NOI18N bnDeleteRule.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/experimental/images/minus-icon.png"))); // NOI18N
bnDeleteRule.setText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.DeleteText")); // NOI18N bnDeleteRule.setText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.DeleteText")); // NOI18N
bnDeleteRule.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.DeleteTooltip_1")); // NOI18N
bnDeleteRule.setEnabled(false); bnDeleteRule.setEnabled(false);
bnDeleteRule.setToolTipText(org.openide.util.NbBundle.getMessage(FileExporterSettingsPanel.class, "FileExporterSettingsPanel.DeleteTooltip_1")); // NOI18N
bnDeleteRule.addActionListener(new java.awt.event.ActionListener() { bnDeleteRule.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) { public void actionPerformed(java.awt.event.ActionEvent evt) {
bnDeleteRuleActionPerformed(evt); bnDeleteRuleActionPerformed(evt);
@ -1260,7 +1258,7 @@ public final class FileExporterSettingsPanel extends JPanel {
} }
if (intrinsicType == BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME) { if (intrinsicType == BlackboardAttribute.TSK_BLACKBOARD_ATTRIBUTE_VALUE_TYPE.DATETIME) {
LocalDateTime localDateTime = dateTimePicker.getDateTime(); LocalDateTime localDateTime = dateTimePicker.getDateTimeStrict();
if (localDateTime == null) { if (localDateTime == null) {
throw new IllegalArgumentException("Bad date/time combination"); throw new IllegalArgumentException("Bad date/time combination");
} }
@ -2028,7 +2026,7 @@ public final class FileExporterSettingsPanel extends JPanel {
private javax.swing.JComboBox<String> comboBoxMimeTypeComparison; private javax.swing.JComboBox<String> comboBoxMimeTypeComparison;
private javax.swing.JComboBox<String> comboBoxMimeValue; private javax.swing.JComboBox<String> comboBoxMimeValue;
private javax.swing.JComboBox<String> comboBoxValueType; private javax.swing.JComboBox<String> comboBoxValueType;
private com.github.lgooddatepicker.datetimepicker.DateTimePicker dateTimePicker; private com.github.lgooddatepicker.components.DateTimePicker dateTimePicker;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JLabel lbArtifact; private javax.swing.JLabel lbArtifact;
private javax.swing.JLabel lbAttribute; private javax.swing.JLabel lbAttribute;