mirror of
https://github.com/elisspace/autopsy.git
synced 2026-10-02 07:19:53 +00:00
First cut at moving options panel into Autopsy
This commit is contained in:
@@ -0,0 +1,300 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
|
||||
<Form version="1.5" maxVersion="1.9" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
|
||||
<AuxValues>
|
||||
<AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="true"/>
|
||||
<AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="1"/>
|
||||
<AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
|
||||
<AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
|
||||
<AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout>
|
||||
<DimensionLayout dim="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace min="213" pref="213" max="-2" attributes="0"/>
|
||||
<Component id="filler1" max="32767" attributes="0"/>
|
||||
<EmptySpace min="58" pref="58" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace min="16" pref="16" max="-2" attributes="0"/>
|
||||
<Component id="spMainScrollPane" max="32767" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="16" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace min="16" pref="16" max="-2" attributes="0"/>
|
||||
<Component id="cbTimeoutEnabled" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="6" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="lbSecondsBetweenJobs" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbTimeoutText" min="-2" max="-2" attributes="0"/>
|
||||
<Group type="102" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="lbRetriesAllowed" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbConcurrentJobsPerCase" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbNumberOfThreads" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace min="-2" pref="25" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="spMaximumRetryAttempts" alignment="1" min="-2" pref="90" max="-2" attributes="0"/>
|
||||
<Component id="spConcurrentJobsPerCase" alignment="1" min="-2" pref="90" max="-2" attributes="0"/>
|
||||
<Component id="spTimeoutHours" alignment="1" min="-2" pref="90" max="-2" attributes="0"/>
|
||||
<Component id="spSecondsBetweenJobs" alignment="1" min="-2" pref="90" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Component id="lbSecondsBetweenJobsSeconds" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbTimeoutHours" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<Component id="numberOfFileIngestThreadsComboBox" min="-2" pref="91" max="-2" attributes="0"/>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Component id="lbRestartRequired" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
</Group>
|
||||
<EmptySpace pref="18" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
<DimensionLayout dim="1">
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" alignment="0" attributes="0">
|
||||
<EmptySpace min="-2" pref="20" max="-2" attributes="0"/>
|
||||
<Component id="spMainScrollPane" min="-2" pref="106" max="-2" attributes="0"/>
|
||||
<EmptySpace type="separate" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="lbSecondsBetweenJobs" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="spSecondsBetweenJobs" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbSecondsBetweenJobsSeconds" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="103" alignment="0" groupAlignment="3" attributes="0">
|
||||
<Component id="lbTimeoutText" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbTimeoutHours" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="spTimeoutHours" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<Component id="cbTimeoutEnabled" alignment="0" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="spMaximumRetryAttempts" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbRetriesAllowed" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace type="unrelated" max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="3" attributes="0">
|
||||
<Component id="spConcurrentJobsPerCase" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbConcurrentJobsPerCase" alignment="3" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Component id="filler1" min="-2" max="-2" attributes="0"/>
|
||||
<EmptySpace max="-2" attributes="0"/>
|
||||
<Group type="103" groupAlignment="2" attributes="0">
|
||||
<Component id="lbRestartRequired" alignment="2" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="lbNumberOfThreads" alignment="2" min="-2" max="-2" attributes="0"/>
|
||||
<Component id="numberOfFileIngestThreadsComboBox" alignment="2" min="-2" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
<EmptySpace pref="241" max="32767" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
</DimensionLayout>
|
||||
</Layout>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JLabel" name="lbSecondsBetweenJobs">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbSecondsBetweenJobs.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbSecondsBetweenJobs.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSpinner" name="spSecondsBetweenJobs">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
|
||||
<SpinnerModel initial="30" maximum="3600" minimum="30" numberType="java.lang.Integer" stepSize="10" type="number"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.spSecondsBetweenJobs.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lbNumberOfThreads">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbNumberOfThreads.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JComboBox" name="numberOfFileIngestThreadsComboBox">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.ComboBoxModel" editor="org.netbeans.modules.form.editors2.ComboBoxModelEditor">
|
||||
<StringArray count="0"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="numberOfFileIngestThreadsComboBoxActionPerformed"/>
|
||||
</Events>
|
||||
<AuxValues>
|
||||
<AuxValue name="JavaCodeGenerator_TypeParameters" type="java.lang.String" value="<Integer>"/>
|
||||
</AuxValues>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lbRestartRequired">
|
||||
<Properties>
|
||||
<Property name="icon" type="javax.swing.Icon" editor="org.netbeans.modules.form.editors2.IconEditor">
|
||||
<Image iconType="3" name="/org/sleuthkit/autopsy/corecomponents/warning16.png"/>
|
||||
</Property>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbRestartRequired.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lbRetriesAllowed">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbRetriesAllowed.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbRetriesAllowed.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="verticalAlignment" type="int" value="3"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Container class="javax.swing.JScrollPane" name="spMainScrollPane">
|
||||
<AuxValues>
|
||||
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
|
||||
</AuxValues>
|
||||
|
||||
<Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
|
||||
<SubComponents>
|
||||
<Component class="javax.swing.JTextArea" name="tbWarning">
|
||||
<Properties>
|
||||
<Property name="editable" type="boolean" value="false"/>
|
||||
<Property name="columns" type="int" value="20"/>
|
||||
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
|
||||
<Font name="Monospaced" size="14" style="1"/>
|
||||
</Property>
|
||||
<Property name="rows" type="int" value="5"/>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.tbWarning.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="autoscrolls" type="boolean" value="false"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Container>
|
||||
<Component class="javax.swing.JLabel" name="lbTimeoutText">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbTimeoutText.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbTimeoutText.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="mouseClicked" listener="java.awt.event.MouseListener" parameters="java.awt.event.MouseEvent" handler="lbTimeoutTextMouseClicked"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lbTimeoutHours">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbTimeoutHours.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JCheckBox" name="cbTimeoutEnabled">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.cbTimeoutEnabled.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.cbTimeoutEnabled.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<Events>
|
||||
<EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="cbTimeoutEnabledItemStateChanged"/>
|
||||
</Events>
|
||||
</Component>
|
||||
<Component class="javax.swing.Box$Filler" name="filler1">
|
||||
<Properties>
|
||||
<Property name="maximumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[130, 32767]"/>
|
||||
</Property>
|
||||
<Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[130, 0]"/>
|
||||
</Property>
|
||||
<Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
|
||||
<Dimension value="[130, 0]"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<AuxValues>
|
||||
<AuxValue name="classDetails" type="java.lang.String" value="Box.Filler.HorizontalStrut"/>
|
||||
</AuxValues>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSpinner" name="spMaximumRetryAttempts">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
|
||||
<SpinnerModel initial="2" maximum="9999999" minimum="0" numberType="java.lang.Integer" stepSize="1" type="number"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.spMaximumRetryAttempts.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
<AccessibilityProperties>
|
||||
<Property name="AccessibleContext.accessibleDescription" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.spMaximumRetryAttempts.AccessibleContext.accessibleDescription" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</AccessibilityProperties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lbConcurrentJobsPerCase">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbConcurrentJobsPerCase.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbConcurrentJobsPerCase.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
<Property name="verticalAlignment" type="int" value="3"/>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSpinner" name="spConcurrentJobsPerCase">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
|
||||
<SpinnerModel initial="3" maximum="100" minimum="1" numberType="java.lang.Integer" stepSize="1" type="number"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbConcurrentJobsPerCase.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JSpinner" name="spTimeoutHours">
|
||||
<Properties>
|
||||
<Property name="model" type="javax.swing.SpinnerModel" editor="org.netbeans.modules.form.editors2.SpinnerModelEditor">
|
||||
<SpinnerModel initial="60" maximum="100000" minimum="1" numberType="java.lang.Integer" stepSize="1" type="number"/>
|
||||
</Property>
|
||||
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.spTimeoutHours.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
<Component class="javax.swing.JLabel" name="lbSecondsBetweenJobsSeconds">
|
||||
<Properties>
|
||||
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
|
||||
<ResourceString bundle="org/sleuthkit/autopsy/configuration/Bundle.properties" key="AdvancedOptionsPanel.lbSecondsBetweenJobsSeconds.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, "{key}")"/>
|
||||
</Property>
|
||||
</Properties>
|
||||
</Component>
|
||||
</SubComponents>
|
||||
</Form>
|
||||
@@ -0,0 +1,336 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2015 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.sleuthkit.autopsy.configuration;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import javax.swing.DefaultComboBoxModel;
|
||||
import javax.swing.JComponent;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.sleuthkit.autopsy.core.UserPreferences;
|
||||
|
||||
class AdvancedOptionsPanel extends javax.swing.JPanel {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
AdvancedOptionsPanel(OptionsPanel.OptionsUiMode mode) {
|
||||
initComponents();
|
||||
tbWarning.setLineWrap(true);
|
||||
tbWarning.setWrapStyleWord(true);
|
||||
load(mode);
|
||||
}
|
||||
|
||||
private void initThreadCount() {
|
||||
int availableProcessors = Runtime.getRuntime().availableProcessors();
|
||||
Integer fileIngestThreadCountChoices[];
|
||||
if (availableProcessors >= 16) {
|
||||
fileIngestThreadCountChoices = new Integer[]{1, 2, 4, 6, 8, 12, 16};
|
||||
} else if (availableProcessors >= 12 && availableProcessors <= 15) {
|
||||
fileIngestThreadCountChoices = new Integer[]{1, 2, 4, 6, 8, 12};
|
||||
} else if (availableProcessors >= 8 && availableProcessors <= 11) {
|
||||
fileIngestThreadCountChoices = new Integer[]{1, 2, 4, 6, 8};
|
||||
} else if (availableProcessors >= 6 && availableProcessors <= 7) {
|
||||
fileIngestThreadCountChoices = new Integer[]{1, 2, 4, 6};
|
||||
} else if (availableProcessors >= 4 && availableProcessors <= 5) {
|
||||
fileIngestThreadCountChoices = new Integer[]{1, 2, 4};
|
||||
} else if (availableProcessors >= 2 && availableProcessors <= 3) {
|
||||
fileIngestThreadCountChoices = new Integer[]{1, 2};
|
||||
} else {
|
||||
fileIngestThreadCountChoices = new Integer[]{1};
|
||||
}
|
||||
numberOfFileIngestThreadsComboBox.setModel(new DefaultComboBoxModel<>(fileIngestThreadCountChoices));
|
||||
numberOfFileIngestThreadsComboBox.setSelectedItem(UserPreferences.numberOfFileIngestThreads());
|
||||
}
|
||||
|
||||
private void load(OptionsPanel.OptionsUiMode mode) {
|
||||
initThreadCount();
|
||||
spSecondsBetweenJobs.setValue(UserPreferences.getSecondsToSleepBetweenCases());
|
||||
spMaximumRetryAttempts.setValue(UserPreferences.getMaxNumTimesToProcessImage());
|
||||
int maxJobsPerCase = UserPreferences.getMaxConcurrentJobsForOneCase();
|
||||
spConcurrentJobsPerCase.setValue(maxJobsPerCase);
|
||||
spSecondsBetweenJobs.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM);
|
||||
spMaximumRetryAttempts.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM);
|
||||
cbTimeoutEnabled.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM);
|
||||
lbSecondsBetweenJobs.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM);
|
||||
lbTimeoutText.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM);
|
||||
lbRetriesAllowed.setEnabled(mode == OptionsPanel.OptionsUiMode.UTILITY || mode == OptionsPanel.OptionsUiMode.AIM);
|
||||
cbTimeoutEnabled.setSelected(UserPreferences.getIsTimeOutEnabled());
|
||||
int timeOutHrs = UserPreferences.getProcessTimeOutHrs();
|
||||
spTimeoutHours.setValue(timeOutHrs);
|
||||
setCheckboxEnabledState();
|
||||
|
||||
Collection<JComponent> uiComponents = new ArrayList<>();
|
||||
uiComponents.add(cbTimeoutEnabled);
|
||||
uiComponents.add(spSecondsBetweenJobs);
|
||||
uiComponents.add(spMaximumRetryAttempts);
|
||||
uiComponents.add(spSecondsBetweenJobs);
|
||||
uiComponents.add(lbSecondsBetweenJobs);
|
||||
uiComponents.add(lbTimeoutText);
|
||||
uiComponents.add(lbRetriesAllowed);
|
||||
uiComponents.add(lbNumberOfThreads);
|
||||
uiComponents.add(numberOfFileIngestThreadsComboBox);
|
||||
uiComponents.add(lbRestartRequired);
|
||||
uiComponents.add(lbTimeoutHours);
|
||||
uiComponents.add(spTimeoutHours);
|
||||
uiComponents.add(spConcurrentJobsPerCase);
|
||||
|
||||
String disabledText = " " + NbBundle.getMessage(OptionsPanel.class, "AdvancedOptionsPanel.ItemDisabled.text");
|
||||
for (JComponent item : uiComponents) {
|
||||
if (!item.isEnabled()) {
|
||||
item.setToolTipText(item.getToolTipText() + disabledText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void store() {
|
||||
UserPreferences.setSecondsToSleepBetweenCases((int) spSecondsBetweenJobs.getValue());
|
||||
UserPreferences.setMaxNumTimesToProcessImage((int) spMaximumRetryAttempts.getValue());
|
||||
UserPreferences.setMaxConcurrentIngestNodesForOneCase((int) spConcurrentJobsPerCase.getValue());
|
||||
UserPreferences.setNumberOfFileIngestThreads((Integer) numberOfFileIngestThreadsComboBox.getSelectedItem());
|
||||
boolean isChecked = cbTimeoutEnabled.isSelected();
|
||||
UserPreferences.setIsTimeOutEnabled(isChecked);
|
||||
if (isChecked) {
|
||||
// only store time out if it is enabled
|
||||
int timeOutHrs = (int) spTimeoutHours.getValue();
|
||||
UserPreferences.setProcessTimeOutHrs(timeOutHrs);
|
||||
}
|
||||
}
|
||||
|
||||
private void setCheckboxEnabledState() {
|
||||
// Enable the timeout edit box iff the checkbox is checked and enabled
|
||||
if (cbTimeoutEnabled.isEnabled() && cbTimeoutEnabled.isSelected()) {
|
||||
spTimeoutHours.setEnabled(true);
|
||||
lbTimeoutHours.setEnabled(true);
|
||||
} else {
|
||||
spTimeoutHours.setEnabled(false);
|
||||
lbTimeoutHours.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method is called from within the constructor to initialize the form.
|
||||
* WARNING: Do NOT modify this code. The content of this method is always
|
||||
* regenerated by the Form Editor.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
lbSecondsBetweenJobs = new javax.swing.JLabel();
|
||||
spSecondsBetweenJobs = new javax.swing.JSpinner();
|
||||
lbNumberOfThreads = new javax.swing.JLabel();
|
||||
numberOfFileIngestThreadsComboBox = new javax.swing.JComboBox<>();
|
||||
lbRestartRequired = new javax.swing.JLabel();
|
||||
lbRetriesAllowed = new javax.swing.JLabel();
|
||||
spMainScrollPane = new javax.swing.JScrollPane();
|
||||
tbWarning = new javax.swing.JTextArea();
|
||||
lbTimeoutText = new javax.swing.JLabel();
|
||||
lbTimeoutHours = new javax.swing.JLabel();
|
||||
cbTimeoutEnabled = new javax.swing.JCheckBox();
|
||||
filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(130, 0), new java.awt.Dimension(130, 0), new java.awt.Dimension(130, 32767));
|
||||
spMaximumRetryAttempts = new javax.swing.JSpinner();
|
||||
lbConcurrentJobsPerCase = new javax.swing.JLabel();
|
||||
spConcurrentJobsPerCase = new javax.swing.JSpinner();
|
||||
spTimeoutHours = new javax.swing.JSpinner();
|
||||
lbSecondsBetweenJobsSeconds = new javax.swing.JLabel();
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(lbSecondsBetweenJobs, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbSecondsBetweenJobs.text")); // NOI18N
|
||||
lbSecondsBetweenJobs.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbSecondsBetweenJobs.toolTipText")); // NOI18N
|
||||
|
||||
spSecondsBetweenJobs.setModel(new javax.swing.SpinnerNumberModel(30, 30, 3600, 10));
|
||||
spSecondsBetweenJobs.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.spSecondsBetweenJobs.toolTipText")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(lbNumberOfThreads, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbNumberOfThreads.text")); // NOI18N
|
||||
|
||||
numberOfFileIngestThreadsComboBox.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
numberOfFileIngestThreadsComboBoxActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
lbRestartRequired.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/sleuthkit/autopsy/corecomponents/warning16.png"))); // NOI18N
|
||||
org.openide.awt.Mnemonics.setLocalizedText(lbRestartRequired, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbRestartRequired.text")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(lbRetriesAllowed, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbRetriesAllowed.text")); // NOI18N
|
||||
lbRetriesAllowed.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbRetriesAllowed.toolTipText")); // NOI18N
|
||||
lbRetriesAllowed.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
|
||||
|
||||
tbWarning.setEditable(false);
|
||||
tbWarning.setColumns(20);
|
||||
tbWarning.setFont(new java.awt.Font("Monospaced", 1, 14)); // NOI18N
|
||||
tbWarning.setRows(5);
|
||||
tbWarning.setText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.tbWarning.text")); // NOI18N
|
||||
tbWarning.setAutoscrolls(false);
|
||||
spMainScrollPane.setViewportView(tbWarning);
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(lbTimeoutText, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbTimeoutText.text")); // NOI18N
|
||||
lbTimeoutText.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbTimeoutText.toolTipText")); // NOI18N
|
||||
lbTimeoutText.addMouseListener(new java.awt.event.MouseAdapter() {
|
||||
public void mouseClicked(java.awt.event.MouseEvent evt) {
|
||||
lbTimeoutTextMouseClicked(evt);
|
||||
}
|
||||
});
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(lbTimeoutHours, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbTimeoutHours.text")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(cbTimeoutEnabled, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.cbTimeoutEnabled.text")); // NOI18N
|
||||
cbTimeoutEnabled.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.cbTimeoutEnabled.toolTipText")); // NOI18N
|
||||
cbTimeoutEnabled.addItemListener(new java.awt.event.ItemListener() {
|
||||
public void itemStateChanged(java.awt.event.ItemEvent evt) {
|
||||
cbTimeoutEnabledItemStateChanged(evt);
|
||||
}
|
||||
});
|
||||
|
||||
spMaximumRetryAttempts.setModel(new javax.swing.SpinnerNumberModel(2, 0, 9999999, 1));
|
||||
spMaximumRetryAttempts.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.spMaximumRetryAttempts.toolTipText")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(lbConcurrentJobsPerCase, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbConcurrentJobsPerCase.text")); // NOI18N
|
||||
lbConcurrentJobsPerCase.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbConcurrentJobsPerCase.toolTipText")); // NOI18N
|
||||
lbConcurrentJobsPerCase.setVerticalAlignment(javax.swing.SwingConstants.BOTTOM);
|
||||
|
||||
spConcurrentJobsPerCase.setModel(new javax.swing.SpinnerNumberModel(3, 1, 100, 1));
|
||||
spConcurrentJobsPerCase.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbConcurrentJobsPerCase.toolTipText")); // NOI18N
|
||||
|
||||
spTimeoutHours.setModel(new javax.swing.SpinnerNumberModel(60, 1, 100000, 1));
|
||||
spTimeoutHours.setToolTipText(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.spTimeoutHours.toolTipText")); // NOI18N
|
||||
|
||||
org.openide.awt.Mnemonics.setLocalizedText(lbSecondsBetweenJobsSeconds, org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.lbSecondsBetweenJobsSeconds.text")); // NOI18N
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(213, 213, 213)
|
||||
.addComponent(filler1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGap(58, 58, 58))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(16, 16, 16)
|
||||
.addComponent(spMainScrollPane)
|
||||
.addGap(16, 16, 16))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(16, 16, 16)
|
||||
.addComponent(cbTimeoutEnabled)
|
||||
.addGap(6, 6, 6)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(lbSecondsBetweenJobs)
|
||||
.addComponent(lbTimeoutText)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(lbRetriesAllowed)
|
||||
.addComponent(lbConcurrentJobsPerCase)
|
||||
.addComponent(lbNumberOfThreads))
|
||||
.addGap(25, 25, 25)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(spMaximumRetryAttempts, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(spConcurrentJobsPerCase, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(spTimeoutHours, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(spSecondsBetweenJobs, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(lbSecondsBetweenJobsSeconds)
|
||||
.addComponent(lbTimeoutHours)))
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 91, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(lbRestartRequired)))))
|
||||
.addContainerGap(18, Short.MAX_VALUE))
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addGap(20, 20, 20)
|
||||
.addComponent(spMainScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(18, 18, 18)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(lbSecondsBetweenJobs)
|
||||
.addComponent(spSecondsBetweenJobs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(lbSecondsBetweenJobsSeconds))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(lbTimeoutText)
|
||||
.addComponent(lbTimeoutHours)
|
||||
.addComponent(spTimeoutHours, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addComponent(cbTimeoutEnabled))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(spMaximumRetryAttempts, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(lbRetriesAllowed))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(spConcurrentJobsPerCase, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(lbConcurrentJobsPerCase))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(filler1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
|
||||
.addComponent(lbRestartRequired)
|
||||
.addComponent(lbNumberOfThreads)
|
||||
.addComponent(numberOfFileIngestThreadsComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addContainerGap(241, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
spMaximumRetryAttempts.getAccessibleContext().setAccessibleDescription(org.openide.util.NbBundle.getMessage(AdvancedOptionsPanel.class, "AdvancedOptionsPanel.spMaximumRetryAttempts.AccessibleContext.accessibleDescription")); // NOI18N
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void cbTimeoutEnabledItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_cbTimeoutEnabledItemStateChanged
|
||||
setCheckboxEnabledState();
|
||||
}//GEN-LAST:event_cbTimeoutEnabledItemStateChanged
|
||||
|
||||
private void lbTimeoutTextMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_lbTimeoutTextMouseClicked
|
||||
if (cbTimeoutEnabled.isEnabled()) {
|
||||
if (cbTimeoutEnabled.isSelected()) {
|
||||
spTimeoutHours.setEnabled(true);
|
||||
lbTimeoutHours.setEnabled(true);
|
||||
cbTimeoutEnabled.setSelected(false);
|
||||
} else {
|
||||
spTimeoutHours.setEnabled(false);
|
||||
lbTimeoutHours.setEnabled(false);
|
||||
cbTimeoutEnabled.setSelected(true);
|
||||
}
|
||||
}
|
||||
}//GEN-LAST:event_lbTimeoutTextMouseClicked
|
||||
|
||||
private void numberOfFileIngestThreadsComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_numberOfFileIngestThreadsComboBoxActionPerformed
|
||||
// TODO add your handling code here:
|
||||
}//GEN-LAST:event_numberOfFileIngestThreadsComboBoxActionPerformed
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JCheckBox cbTimeoutEnabled;
|
||||
private javax.swing.Box.Filler filler1;
|
||||
private javax.swing.JLabel lbConcurrentJobsPerCase;
|
||||
private javax.swing.JLabel lbNumberOfThreads;
|
||||
private javax.swing.JLabel lbRestartRequired;
|
||||
private javax.swing.JLabel lbRetriesAllowed;
|
||||
private javax.swing.JLabel lbSecondsBetweenJobs;
|
||||
private javax.swing.JLabel lbSecondsBetweenJobsSeconds;
|
||||
private javax.swing.JLabel lbTimeoutHours;
|
||||
private javax.swing.JLabel lbTimeoutText;
|
||||
private javax.swing.JComboBox<Integer> numberOfFileIngestThreadsComboBox;
|
||||
private javax.swing.JSpinner spConcurrentJobsPerCase;
|
||||
private javax.swing.JScrollPane spMainScrollPane;
|
||||
private javax.swing.JSpinner spMaximumRetryAttempts;
|
||||
private javax.swing.JSpinner spSecondsBetweenJobs;
|
||||
private javax.swing.JSpinner spTimeoutHours;
|
||||
private javax.swing.JTextArea tbWarning;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
OptionsCategory_Name_General=Viking
|
||||
OptionsCategory_Keywords_General=Viking Options
|
||||
VikingOptionsPanel.restartRequiredLabel.text=Application restart required to take effect.
|
||||
VikingOptionsPanel.jRadioButtonCopyFiles.text=File Copy mode
|
||||
GeneralOptionsPanelController.moduleErr=Module Error
|
||||
GeneralOptionsPanelController.moduleErr.msg=A module caused an error listening to GeneralOptionsPanelController updates. See log to determine which module. Some data could be incomplete.
|
||||
VikingOptionsPanel.ImageDirectoryUnspecified=Shared images folder must be set
|
||||
VikingOptionsPanel.ResultsDirectoryUnspecified=Shared results folder must be set
|
||||
VikingOptionsPanel.PathInvalid=Path is not valid
|
||||
VikingOptionsPanel.globalSettingsCheckbox.text=Use shared configuration in folder:
|
||||
VikingOptionsPanel.browseGlobalSettingsButton.text=Browse
|
||||
VikingOptionsPanel.globalSettingsTextField.text=
|
||||
VikingOptionsPanel.globalSettingsErrorTextField.text=
|
||||
VikingOptionsPanel.EmptySettingsDirectory=Enter path to settings directory
|
||||
AIMIngestSettingsPanel.jButtonEditIngestSettings.toolTipText=Ingest job settings for the automated processing mode context.
|
||||
AIMIngestSettingsPanel.jButtonEditIngestSettings.text=Ingest Module Settings
|
||||
AIMIngestSettingsPanel.globalSettingsErrorTextField.text=
|
||||
AIMIngestSettingsPanel.browseGlobalSettingsButton.text=Browse
|
||||
AIMIngestSettingsPanel.globalSettingsTextField.text=
|
||||
AIMIngestSettingsPanel.globalSettingsCheckbox.text=Use shared configuration in folder:
|
||||
AIMIngestSettingsPanel.lbSecondsBetweenJobs.toolTipText=Increase this value if database locks cause problems. It gives a little more time for finalizing.
|
||||
AIMIngestSettingsPanel.lbSecondsBetweenJobs.text=Number of seconds to wait between jobs:
|
||||
AIMIngestSettingsPanel.spSecondsBetweenJobs.toolTipText=Increase this value if database locks cause problems. It gives a little more time for finalizing.
|
||||
AIMIngestSettingsPanel.jButton1.text=Download shared settings
|
||||
AIMIngestSettingsPanel.jLabel1.text=Download the current shared setting (highly recommended to do this before editing)
|
||||
VikingOptionsDialog.jButton1.text=jButton1
|
||||
VikingOptionsDialog.jCheckBox1.text=jCheckBox1
|
||||
VikingOptionsDialog.jLabel1.text=jLabel1
|
||||
VikingOptionsPanel.restartRequiredLabel.text=Application restart required
|
||||
VikingOptionsPanel.validationErrMsg.incomplete=Fill in all values
|
||||
VikingOptionsPanel.validationErrMsg.invalidDatabasePort=Invalid database port number
|
||||
VikingOptionsPanel.validationErrMsg.invalidMessageServicePort=Invalid message service port number
|
||||
VikingOptionsPanel.validationErrMsg.invalidIndexingServerPort=Invalid Solr server port number
|
||||
VikingOptionsPanel.ErrorSettingDefaultFolder=Error creating default folder
|
||||
OpenVikingOptionsPanelAction.name=Viking Options
|
||||
VikingOptionsPanel.KeywordSearchNull=Cannot find Keyword Search service
|
||||
VikingOptionsPanel.InvalidPortNumber=Invalid port number.
|
||||
VikingOptionsPanel.AdvancedOptionsPanel.Title=Advanced Settings
|
||||
VikingOptionsPanel.CannotAccess=Cannot access
|
||||
VikingOptionsPanel.CheckPermissions=Check permissions.
|
||||
VikingOptionsPanel.MustRestart=Viking must be restarted for new configuration to take effect
|
||||
TranslationSettingsPanel.lbIpAddress.text=IP Address or Hostname of Machine Translation Service
|
||||
TranslationSettingsPanel.tbIpAddress.text=
|
||||
TranslationSettingsPanel.tbOops.text=
|
||||
TranslationSettingsPanel.bnTest.text=Test
|
||||
TranslationSettingsPanel.lbTestIpAddress.text=
|
||||
TranslationSettingsPanel.IpAddress.toolTipText=IP Address or Hostname of Machine Translation Service
|
||||
TranslationSettingsPanel.IpAddress.CannotConnect=Cannot connect to machine translation service.
|
||||
AdvancedOptionsPanel.lbSecondsBetweenJobs.toolTipText=Increase this value if database locks cause problems. It gives a little more time for finalizing.
|
||||
AdvancedOptionsPanel.lbSecondsBetweenJobs.text=Time to wait between jobs:
|
||||
AdvancedOptionsPanel.spSecondsBetweenJobs.toolTipText=Increase this value if database locks cause problems. It gives a little more time for finalizing.
|
||||
AdvancedOptionsPanel.lbRetriesAllowed.text=Maximum job retries allowed:
|
||||
AdvancedOptionsPanel.tbWarning.text=WARNING: Ensure you know what you are doing before modifying\nthese values. Responsible use can improve system performance,\nlikewise, misuse can cause system degradation.
|
||||
AdvancedOptionsPanel.lbNumberOfThreads.text=Number of threads to use for file ingest:
|
||||
AdvancedOptionsPanel.lbRestartRequired.text=Application restart required to take effect.
|
||||
AdvancedOptionsPanel.lbTimeoutHours.text=hour(s)
|
||||
AdvancedOptionsPanel.spMaximumRetryAttempts.toolTipText=The maximum number of times Automated ingest will attempt to reprocess a job if processing fails.
|
||||
AdvancedOptionsPanel.spMaximumRetryAttempts.AccessibleContext.accessibleDescription=Maximum number of retries allowed in Automated Ingest Mode
|
||||
AdvancedOptionsPanel.lbRetriesAllowed.toolTipText=The maximum number of times Automated ingest will attempt to reprocess a job if processing fails.
|
||||
AdvancedOptionsPanel.threadCountLabel.text=For this computer, a maximum of {0} file ingest threads should be used.
|
||||
AdvancedOptionsPanel.ItemDisabled.text=Item disabled based upon current Viking mode.
|
||||
AdvancedOptionsPanel.lbTimeoutText.toolTipText=Maximum allowable run time. Can kill "stuck" modules.
|
||||
AdvancedOptionsPanel.lbTimeoutText.text=Enable timeout to allow modules to automatically terminate after a set amount of time:
|
||||
AdvancedOptionsPanel.cbTimeoutEnabled.toolTipText=Maximum allowable run time. Can kill "stuck" modules.
|
||||
AdvancedOptionsPanel.cbTimeoutEnabled.text=
|
||||
AdvancedOptionsPanel.lbTimeoutText.text=Modules automatically terminate after:
|
||||
AdvancedOptionsPanel.lbConcurrentJobsPerCase.toolTipText=Controls how many ingest nodes may operate concurrently on a case if there are other cases to process.
|
||||
AdvancedOptionsPanel.lbConcurrentJobsPerCase.text=Maximum concurrent jobs per case:
|
||||
AdvancedOptionsPanel.spTimeoutHours.toolTipText=The maximum number of times Automated ingest will attempt to reprocess a job if processing fails.
|
||||
AdvancedOptionsPanel.lbSecondsBetweenJobsSeconds.text=seconds
|
||||
VikingOptionsPanel.FileExportRules.text=File Export Rules
|
||||
OptionsPanel.bnSave.text=Save
|
||||
OptionsPanel.nodePanel.TabConstraints.tabTitle=Node Configuration
|
||||
OptionsPanel.multiUserRestartLabel.text=Application restart required after any changes
|
||||
OptionsPanel.tbOops.text=oops
|
||||
OptionsPanel.cbEnableMultiUser.text=Enable Multi-user cases
|
||||
OptionsPanel.lbTestDbWarning.text=
|
||||
OptionsPanel.lbTestDatabase.text=
|
||||
OptionsPanel.bnTestDatabase.text=Test
|
||||
OptionsPanel.lbDatabaseSettings.text=Database Settings
|
||||
OptionsPanel.tbDbPassword.toolTipText=Password
|
||||
OptionsPanel.tbDbPassword.text=
|
||||
OptionsPanel.tbDbUsername.toolTipText=User Name
|
||||
OptionsPanel.tbDbUsername.text=
|
||||
OptionsPanel.bnFileExport.text=File Export Settings
|
||||
OptionsPanel.bnAdvancedSettings.text=Advanced Settings
|
||||
OptionsPanel.bnEditIngestSettings.toolTipText=Ingest job settings for the automated processing mode context.
|
||||
OptionsPanel.bnEditIngestSettings.text=Ingest Module Settings
|
||||
OptionsPanel.jPanelIngestSettings.border.title=Automated Ingest Settings
|
||||
OptionsPanel.configButtonErrorTextField.text=configButtonErrorTextField
|
||||
OptionsPanel.jLabelTaskDescription.text=jLabel1
|
||||
OptionsPanel.jLabelCurrentTask.text=Current task:
|
||||
OptionsPanel.downloadButton.text=Download Config
|
||||
OptionsPanel.uploadButton.text=Save & Upload Config
|
||||
OptionsPanel.masterNodeCheckBox.text=Use this node as a master node that can upload settings
|
||||
OptionsPanel.tbDbPort.toolTipText=Port Number
|
||||
OptionsPanel.tbDbPort.text=
|
||||
OptionsPanel.sharedSettingsErrorTextField.text=globalSettingsErrorTextField
|
||||
OptionsPanel.tbDbHostname.toolTipText=Hostname or IP Address
|
||||
OptionsPanel.tbDbHostname.text=
|
||||
OptionsPanel.browseSharedSettingsButton.text=Browse
|
||||
OptionsPanel.lbTestSolrWarning.text=
|
||||
OptionsPanel.lbTestSolr.text=
|
||||
OptionsPanel.bnTestSolr.text=Test
|
||||
OptionsPanel.tbSolrPort.toolTipText=Port Number
|
||||
OptionsPanel.tbSolrHostname.toolTipText=Hostname or IP Address
|
||||
OptionsPanel.lbSolrSettings.text=Solr Settings
|
||||
OptionsPanel.sharedSettingsTextField.text=
|
||||
OptionsPanel.sharedConfigCheckbox.text=Use shared configuration in folder:
|
||||
OptionsPanel.jPanelSharedConfig.border.title=Shared Configuration
|
||||
OptionsPanel.multiUserErrorTextField.text=jTextField1
|
||||
OptionsPanel.jLabelInvalidResultsFolder.text=jLabelInvalidResultsFolder
|
||||
OptionsPanel.jLabelInvalidImageFolder.text=jLabelInvalidImageFolder
|
||||
OptionsPanel.jLabelVikingDiagram.text=
|
||||
OptionsPanel.browseOutputFolderButton.text=Browse
|
||||
OptionsPanel.lbTestMessageWarning.text=
|
||||
OptionsPanel.outputPathTextField.toolTipText=Results folder for automated processing, i.e., the location where results folders will be created by automated processing mode Viking for presentation to the user in review mode Viking. Also, cases that were single-user and were converted to multi-user cases will end up here.
|
||||
OptionsPanel.outputPathTextField.text=
|
||||
OptionsPanel.lbTestMessageService.text=
|
||||
OptionsPanel.jLabelSelectOutputFolder.text=Select shared results folder:
|
||||
OptionsPanel.bnTestMessageService.text=Test
|
||||
OptionsPanel.tbMsgPassword.toolTipText=Password (optional)
|
||||
OptionsPanel.tbMsgPassword.text=
|
||||
OptionsPanel.tbMsgPort.toolTipText=Port Number
|
||||
OptionsPanel.tbMsgPort.text=
|
||||
OptionsPanel.tbMsgUsername.toolTipText=User Name (optional)
|
||||
OptionsPanel.tbMsgUsername.text=
|
||||
OptionsPanel.tbMsgHostname.toolTipText=Hostname or IP Address
|
||||
OptionsPanel.tbMsgHostname.text=
|
||||
OptionsPanel.lbMessageServiceSettings.text=ActiveMQ Message Service Settings
|
||||
OptionsPanel.multiUserPanel.TabConstraints.tabTitle=Multi-user Settings
|
||||
OptionsPanel.browseInputFolderButton.text=Browse
|
||||
OptionsPanel.inputPathTextField.toolTipText=Input folder for automated processing, i.e., the location where input case folders will be created for ingest by automated processing mode Viking
|
||||
OptionsPanel.inputPathTextField.text=
|
||||
OptionsPanel.jLabelSelectInputFolder.text=Select shared images folder:
|
||||
OptionsPanel.jRadioButtonReview.toolTipText=Review cases created in automated processing mode
|
||||
OptionsPanel.jRadioButtonReview.text=Reviewer
|
||||
OptionsPanel.jRadioButtonAutomated.toolTipText=Automatically detect new data sources and create cases.
|
||||
OptionsPanel.jRadioButtonAutomated.text=Automated ingest
|
||||
OptionsPanel.jRadioButtonCopyFilesMode.text=Single user case import
|
||||
OptionsPanel.jRadioButtonStandalone.toolTipText=Run as Autopsy with advanced features.
|
||||
OptionsPanel.jRadioButtonStandalone.text=Standalone
|
||||
OptionsPanel.restartRequiredNodeLabel.text=Application restart required
|
||||
OptionsPanel.jLabelSelectMode.text=Select mode:
|
||||
OptionsPanel.bnCancel.text=Cancel
|
||||
OptionsPanel.jPanelNodeType.border.title=Node Type Setup
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2015 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.sleuthkit.autopsy.configuration;
|
||||
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import org.openide.awt.ActionID;
|
||||
import org.openide.awt.ActionReference;
|
||||
import org.openide.awt.ActionReferences;
|
||||
import org.openide.awt.ActionRegistration;
|
||||
import org.openide.util.HelpCtx;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.util.actions.SystemAction;
|
||||
import java.awt.Cursor;
|
||||
import org.openide.windows.WindowManager;
|
||||
|
||||
@ActionID(category = "Tools", id = "viking.configuration.OpenVikingOptionsPanelAction")
|
||||
@ActionRegistration(
|
||||
displayName = "#CTL_OpenVikingOptionsPanelAction",
|
||||
lazy = false)
|
||||
@ActionReferences({
|
||||
@ActionReference(path = "Menu/Tools", position = 1600)
|
||||
})
|
||||
@NbBundle.Messages(value = "CTL_OpenVikingOptionsPanelAction=Viking Options")
|
||||
|
||||
/**
|
||||
* Custom Viking options action that opens up the Viking options panel.
|
||||
* Contributes an entry in Tools menu
|
||||
*/
|
||||
public final class OpenOptionsPanelAction extends SystemAction implements ActionListener {
|
||||
|
||||
private static final String ACTION_NAME = NbBundle.getMessage(OpenOptionsPanelAction.class, "OpenVikingOptionsPanelAction.name");
|
||||
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
|
||||
OptionsDialog dialog = new OptionsDialog(null, true);
|
||||
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return ACTION_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HelpCtx getHelpCtx() {
|
||||
return HelpCtx.DEFAULT_HELP;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
/*
|
||||
* Autopsy Forensic Browser
|
||||
*
|
||||
* Copyright 2015 Basis Technology Corp.
|
||||
* Contact: carrier <at> sleuthkit <dot> org
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.sleuthkit.autopsy.configuration;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Container;
|
||||
import java.awt.Dialog;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Cursor;
|
||||
import java.awt.Window;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.JDialog;
|
||||
import javax.swing.KeyStroke;
|
||||
import org.openide.util.ImageUtilities;
|
||||
|
||||
/**
|
||||
*/
|
||||
public class OptionsDialog extends JDialog {
|
||||
|
||||
private static final String TITLE = "Options";
|
||||
private static final Dimension DIMENSIONS = new Dimension(791, 763);
|
||||
|
||||
/**
|
||||
* Constructs an instance of the dialog with its own frame. Could be modal.
|
||||
*
|
||||
* @param owner - the owner of this dialog. If this dialog should be
|
||||
* modal, the owner gets set to non modal.
|
||||
* @param shouldBeModal - true if this should be modal, false otherwise.
|
||||
*/
|
||||
public OptionsDialog(Container owner, Boolean shouldBeModal) {
|
||||
super((Window) owner, TITLE, Dialog.ModalityType.MODELESS);
|
||||
setIconImage(ImageUtilities.loadImage("viking/images/viking16.gif", false)); //NON-NLS
|
||||
if (shouldBeModal && owner instanceof JDialog) { // if called from a modal dialog, manipulate the parent be just under this in z order, and not modal.
|
||||
final JDialog pseudoOwner = (JDialog) owner;
|
||||
addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosed(WindowEvent e) { // Put it back to how it was before we manipulated it.
|
||||
pseudoOwner.setVisible(false);
|
||||
pseudoOwner.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
|
||||
pseudoOwner.toFront();
|
||||
pseudoOwner.setVisible(true);
|
||||
}
|
||||
});
|
||||
pseudoOwner.setVisible(false);
|
||||
pseudoOwner.setModalityType(Dialog.ModalityType.MODELESS);
|
||||
pseudoOwner.toFront();
|
||||
pseudoOwner.repaint();
|
||||
pseudoOwner.setVisible(true);
|
||||
}
|
||||
setResizable(true);
|
||||
setLayout(new BorderLayout());
|
||||
this.getRootPane().registerKeyboardAction(e -> {
|
||||
this.dispose();
|
||||
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
|
||||
add(new OptionsPanel(this));
|
||||
pack();
|
||||
setLocationRelativeTo(owner);
|
||||
setResizable(false);
|
||||
if (shouldBeModal) { // if called from a modal dialog, become modal, otherwise don't.
|
||||
setModal(true);
|
||||
}
|
||||
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
|
||||
setVisible(true);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user