First cut at moving options panel into Autopsy

This commit is contained in:
Eugene Livis
2016-08-09 16:40:13 -04:00
parent 3a6c7ae4e5
commit 1c8f9edb4e
8 changed files with 5834 additions and 0 deletions
@@ -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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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="&lt;Integer&gt;"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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, &quot;{key}&quot;)"/>
</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