Merge latest

This commit is contained in:
Eugene Livis 2015-10-23 10:33:59 -04:00
commit d5fd5778c3
17 changed files with 726 additions and 660 deletions

View File

@ -192,7 +192,6 @@ MissingImageDialog.ErrorSettingImage=Error setting image path. Please try again.
NewCaseVisualPanel1.getName.text=Case Info NewCaseVisualPanel1.getName.text=Case Info
NewCaseVisualPanel1.caseDirBrowse.selectButton.text=Select NewCaseVisualPanel1.caseDirBrowse.selectButton.text=Select
NewCaseVisualPanel1.badCredentials.text=Bad multi-user settings (see Tools, Options, Multi-user) or services are down. NewCaseVisualPanel1.badCredentials.text=Bad multi-user settings (see Tools, Options, Multi-user) or services are down.
NewCaseVisualPanel1.MultiUserDisabled.text=Multi-user cases are not enabled. See Tools, Options, Multi-user.
NewCaseVisualPanel2.getName.text=Additional Information NewCaseVisualPanel2.getName.text=Additional Information
NewCaseWizardAction.closeCurCase.confMsg.msg=Do you want to save and close this case and proceed with the new case creation? NewCaseWizardAction.closeCurCase.confMsg.msg=Do you want to save and close this case and proceed with the new case creation?
NewCaseWizardAction.closeCurCase.confMsg.title=Warning\: Closing the Current Case NewCaseWizardAction.closeCurCase.confMsg.title=Warning\: Closing the Current Case
@ -255,9 +254,13 @@ SingleUserCaseImporter.WillNotImport=Will not import:
SingleUserCaseImporter.None=None SingleUserCaseImporter.None=None
SingleUserCaseImporter.ContinueWithImport=Continue with import? SingleUserCaseImporter.ContinueWithImport=Continue with import?
SingleUserCaseImporter.Cancelled=Cancelled SingleUserCaseImporter.Cancelled=Cancelled
NewCaseVisualPanel1.caseParentDirWarningLabel.text=Case directory warning label NewCaseVisualPanel1.caseParentDirWarningLabel.text=
NewCaseVisualPanel1.multiUserCaseRadioButton.text=Multi-user NewCaseVisualPanel1.multiUserCaseRadioButton.text=Multi-user
NewCaseVisualPanel1.singleUserCaseRadioButton.text=Single-user NewCaseVisualPanel1.singleUserCaseRadioButton.text=Single-user
NewCaseVisualPanel1.multiUserSettingsWarningLabel.text=Multi-user settings warning label
Case.deleteReports.deleteFromDiskException.log.msg=Unable to delete the report from the disk. Case.deleteReports.deleteFromDiskException.log.msg=Unable to delete the report from the disk.
Case.deleteReports.deleteFromDiskException.msg=Unable to delete the report {0} from the disk.\nYou may manually delete it from {1} Case.deleteReports.deleteFromDiskException.msg=Unable to delete the report {0} from the disk.\nYou may manually delete it from {1}
CasePropertiesForm.lbDbType.text=Case Type:
CasePropertiesForm.tbDbType.text=
CasePropertiesForm.lbDbName.text=Database Name:
CasePropertiesForm.tbDbName.text=
CaseExceptionWarning.CheckMultiUserOptions=Check Multi-user options.

View File

@ -18,6 +18,7 @@
*/ */
package org.sleuthkit.autopsy.casemodule; package org.sleuthkit.autopsy.casemodule;
import java.awt.Cursor;
import java.awt.Frame; import java.awt.Frame;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
@ -322,6 +323,9 @@ public class Case implements SleuthkitCase.ErrorObserver {
Case oldCase = Case.currentCase; Case oldCase = Case.currentCase;
Case.currentCase = null; Case.currentCase = null;
if (oldCase != null) { if (oldCase != null) {
SwingUtilities.invokeLater(() -> {
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
});
doCaseChange(null); //closes windows, etc doCaseChange(null); //closes windows, etc
if (null != oldCase.tskErrorReporter) { if (null != oldCase.tskErrorReporter) {
oldCase.tskErrorReporter.shutdown(); // stop listening for TSK errors for the old case oldCase.tskErrorReporter.shutdown(); // stop listening for TSK errors for the old case
@ -345,7 +349,7 @@ public class Case implements SleuthkitCase.ErrorObserver {
} }
// start listening for TSK errors for the new case // start listening for TSK errors for the new case
currentCase.tskErrorReporter = new IntervalErrorReportData(currentCase, MIN_SECONDS_BETWEEN_ERROR_REPORTS, currentCase.tskErrorReporter = new IntervalErrorReportData(currentCase, MIN_SECONDS_BETWEEN_ERROR_REPORTS,
NbBundle.getMessage(Case.class, "IntervalErrorReport.ErrorText")); NbBundle.getMessage(Case.class, "IntervalErrorReport.ErrorText"));
doCaseChange(currentCase); doCaseChange(currentCase);
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
RecentCases.getInstance().addRecentCase(currentCase.name, currentCase.configFilePath); // update the recent cases RecentCases.getInstance().addRecentCase(currentCase.name, currentCase.configFilePath); // update the recent cases
@ -370,6 +374,9 @@ public class Case implements SleuthkitCase.ErrorObserver {
} else { } else {
Logger.setLogDirectory(PlatformUtil.getLogDirectory()); Logger.setLogDirectory(PlatformUtil.getLogDirectory());
} }
SwingUtilities.invokeLater(() -> {
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
});
} }
@Override @Override
@ -453,9 +460,11 @@ public class Case implements SleuthkitCase.ErrorObserver {
db = SleuthkitCase.newCase(dbName, UserPreferences.getDatabaseConnectionInfo(), caseDir); db = SleuthkitCase.newCase(dbName, UserPreferences.getDatabaseConnectionInfo(), caseDir);
} }
} catch (TskCoreException ex) { } catch (TskCoreException ex) {
logger.log(Level.SEVERE, "Error creating a case: " + caseName + " in dir " + caseDir, ex); //NON-NLS logger.log(Level.SEVERE, "Error creating a case: " + caseName + " in dir " + caseDir + " " + ex.getMessage(), ex); //NON-NLS
throw new CaseActionException( SwingUtilities.invokeLater(() -> {
NbBundle.getMessage(Case.class, "Case.create.exception.msg", caseName, caseDir), ex); WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
});
throw new CaseActionException(ex.getMessage(), ex); //NON-NLS
} catch (UserPreferencesException ex) { } catch (UserPreferencesException ex) {
logger.log(Level.SEVERE, "Error accessing case database connection info", ex); //NON-NLS logger.log(Level.SEVERE, "Error accessing case database connection info", ex); //NON-NLS
throw new CaseActionException( throw new CaseActionException(
@ -615,19 +624,29 @@ public class Case implements SleuthkitCase.ErrorObserver {
Case openedCase = new Case(caseName, caseNumber, examiner, caseMetadataFilePath, xmlcm, db, caseType); Case openedCase = new Case(caseName, caseNumber, examiner, caseMetadataFilePath, xmlcm, db, caseType);
changeCase(openedCase); changeCase(openedCase);
} catch (CaseMetadataException | TskCoreException ex) { } catch (CaseMetadataException ex) {
/** /**
* Clean-up the case if it was actually opened. TODO: Do this * Clean-up the case if it was actually opened. TODO: Do this
* better. * better.
*/ */
try {
Case badCase = Case.getCurrentCase();
badCase.closeCase();
} catch (IllegalStateException unused) {
// Already logged.
}
throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.open.exception.gen.msg") + ": " + ex.getMessage(), ex); //NON-NLS
} catch (TskCoreException ex) {
try { try {
Case badCase = Case.getCurrentCase(); Case badCase = Case.getCurrentCase();
badCase.closeCase(); badCase.closeCase();
} catch (CaseActionException | IllegalStateException unused) { } catch (CaseActionException | IllegalStateException unused) {
// Already logged. // Already logged.
} }
SwingUtilities.invokeLater(() -> {
throw new CaseActionException(NbBundle.getMessage(Case.class, "Case.open.exception.gen.msg") + ". " + ex.getMessage(), ex); WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
});
throw new CaseActionException(ex.getMessage(), ex); //NON-NLS
} }
} }
@ -654,8 +673,7 @@ public class Case implements SleuthkitCase.ErrorObserver {
for (Map.Entry<Long, String> entry : imgPaths.entrySet()) { for (Map.Entry<Long, String> entry : imgPaths.entrySet()) {
long obj_id = entry.getKey(); long obj_id = entry.getKey();
String path = entry.getValue(); String path = entry.getValue();
boolean fileExists = (pathExists(path) boolean fileExists = (pathExists(path) || driveExists(path));
|| driveExists(path));
if (!fileExists) { if (!fileExists) {
int ret = JOptionPane.showConfirmDialog(null, int ret = JOptionPane.showConfirmDialog(null,
NbBundle.getMessage(Case.class, NbBundle.getMessage(Case.class,

View File

@ -18,6 +18,7 @@
*/ */
package org.sleuthkit.autopsy.casemodule; package org.sleuthkit.autopsy.casemodule;
import java.awt.Cursor;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.File; import java.io.File;
@ -80,18 +81,22 @@ public final class CaseOpenAction implements ActionListener {
} }
/** /**
* Try to open the caswe associated with the case meta data file the * Try to open the case associated with the case meta data file the
* user selected. * user selected.
*/ */
final String path = fileChooser.getSelectedFile().getPath(); final String path = fileChooser.getSelectedFile().getPath();
String dirPath = fileChooser.getSelectedFile().getParent(); String dirPath = fileChooser.getSelectedFile().getParent();
ModuleSettings.setConfigSetting(ModuleSettings.MAIN_SETTINGS, PROP_BASECASE, dirPath.substring(0, dirPath.lastIndexOf(File.separator))); ModuleSettings.setConfigSetting(ModuleSettings.MAIN_SETTINGS, PROP_BASECASE, dirPath.substring(0, dirPath.lastIndexOf(File.separator)));
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
new Thread(() -> { new Thread(() -> {
try { try {
Case.open(path); Case.open(path);
} catch (CaseActionException ex) { } catch (CaseActionException ex) {
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
JOptionPane.showMessageDialog(null, ex.getMessage(), NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), ex.getMessage() + " "
+ NbBundle.getMessage(this.getClass(), "CaseExceptionWarning.CheckMultiUserOptions"),
NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); //NON-NLS
if (!Case.isCaseOpen()) { if (!Case.isCaseOpen()) {
StartupWindowProvider.getInstance().open(); StartupWindowProvider.getInstance().open();
} }
@ -100,5 +105,4 @@ public final class CaseOpenAction implements ActionListener {
}).start(); }).start();
} }
} }
} }

View File

@ -1,4 +1,4 @@
<?xml version="1.1" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo"> <Form version="1.5" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
<NonVisualComponents> <NonVisualComponents>
@ -37,49 +37,44 @@
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="casePropLabel" pref="440" max="32767" attributes="0"/> <Component id="casePropLabel" pref="440" max="32767" attributes="0"/>
<Component id="genInfoLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="imgInfoLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="imagesTableScrollPane" alignment="0" pref="440" max="32767" attributes="0"/> <Component id="imagesTableScrollPane" alignment="0" pref="440" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="181" max="-2" attributes="0"/> <Group type="103" groupAlignment="0" attributes="0">
<Component id="OKButton" min="-2" pref="78" max="-2" attributes="0"/> <Component id="caseNameLabel" alignment="0" min="-2" max="-2" attributes="0"/>
</Group> <Component id="caseNumberLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0"> <Component id="examinerLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0"> <Component id="caseDirLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="1" attributes="0"> <Component id="crDateLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Component id="lbDbType" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="caseNameLabel" alignment="0" min="-2" max="-2" attributes="0"/> </Group>
<Component id="caseNumberLabel" alignment="0" min="-2" max="-2" attributes="0"/> <EmptySpace type="separate" max="-2" attributes="0"/>
</Group> <Group type="103" groupAlignment="0" attributes="0">
<EmptySpace min="-2" pref="25" max="-2" attributes="0"/> <Component id="caseNameTextField" alignment="0" pref="245" max="32767" attributes="1"/>
<Group type="103" groupAlignment="0" attributes="0"> <Component id="caseNumberTextField" alignment="0" pref="245" max="32767" attributes="1"/>
<Component id="caseNameTextField" pref="246" max="32767" attributes="1"/> <Component id="examinerTextField" alignment="0" pref="245" max="32767" attributes="1"/>
<Component id="caseNumberTextField" alignment="0" pref="246" max="32767" attributes="1"/> <Component id="crDateTextField" alignment="0" max="32767" attributes="1"/>
</Group> <Component id="jScrollPane2" alignment="0" max="32767" attributes="0"/>
</Group> <Component id="tbDbType" alignment="0" max="32767" attributes="0"/>
<Group type="102" attributes="0"> <Component id="tbDbName" alignment="0" max="32767" attributes="0"/>
<Component id="examinerLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="45" max="-2" attributes="0"/>
<Component id="examinerTextField" pref="246" max="32767" attributes="1"/>
</Group>
<Group type="102" alignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="caseDirLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="crDateLabel" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="jScrollPane2" pref="246" max="32767" attributes="0"/>
<Component id="crDateTextField" alignment="0" pref="246" max="32767" attributes="1"/>
</Group>
</Group>
</Group> </Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace type="unrelated" max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="updateCaseNameButton" min="-2" max="-2" attributes="1"/> <Component id="deleteCaseButton" max="32767" attributes="1"/>
<Component id="deleteCaseButton" alignment="0" max="32767" attributes="1"/> <Component id="updateCaseNameButton" max="32767" attributes="1"/>
</Group> </Group>
</Group> </Group>
<Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="genInfoLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="imgInfoLabel" alignment="0" min="-2" max="-2" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="181" max="-2" attributes="0"/>
<Component id="OKButton" min="-2" pref="78" max="-2" attributes="0"/>
</Group>
<Component id="lbDbName" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> </Group>
@ -92,38 +87,51 @@
<Component id="casePropLabel" min="-2" pref="33" max="-2" attributes="0"/> <Component id="casePropLabel" min="-2" pref="33" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/> <EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="genInfoLabel" min="-2" max="-2" attributes="0"/> <Component id="genInfoLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="caseNameLabel" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="caseNameLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="caseNameTextField" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="caseNameTextField" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="updateCaseNameButton" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="updateCaseNameButton" alignment="3" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="caseNumberLabel" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="caseNumberLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="caseNumberTextField" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="caseNumberTextField" alignment="3" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace type="separate" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="examinerLabel" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="examinerLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="examinerTextField" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="examinerTextField" alignment="3" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace pref="19" max="32767" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0"> <Group type="103" groupAlignment="3" attributes="0">
<Component id="crDateLabel" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="crDateLabel" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="crDateTextField" alignment="3" min="-2" max="-2" attributes="0"/> <Component id="crDateTextField" alignment="3" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0"> <Group type="102" attributes="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="caseDirLabel" min="-2" max="-2" attributes="0"/>
<Component id="jScrollPane2" min="-2" pref="40" max="-2" attributes="0"/> <Component id="jScrollPane2" min="-2" pref="40" max="-2" attributes="0"/>
<Component id="caseDirLabel" min="-2" pref="14" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace min="-2" pref="39" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="tbDbType" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="lbDbType" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="3" attributes="0">
<Component id="lbDbName" alignment="3" min="-2" max="-2" attributes="0"/>
<Component id="tbDbName" alignment="3" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="imgInfoLabel" min="-2" max="-2" attributes="0"/> <Component id="imgInfoLabel" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<Component id="deleteCaseButton" min="-2" max="-2" attributes="0"/> <Group type="102" alignment="0" attributes="0">
<EmptySpace min="-2" pref="9" max="-2" attributes="0"/>
<Component id="deleteCaseButton" min="-2" max="-2" attributes="0"/>
</Group>
</Group> </Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="imagesTableScrollPane" min="-2" pref="170" max="-2" attributes="0"/> <Component id="imagesTableScrollPane" min="-2" pref="170" max="-2" attributes="0"/>
@ -253,11 +261,11 @@
<SubComponents> <SubComponents>
<Component class="javax.swing.JTextArea" name="caseDirTextArea"> <Component class="javax.swing.JTextArea" name="caseDirTextArea">
<Properties> <Properties>
<Property name="editable" type="boolean" value="false"/>
<Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> <Property name="background" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="f0" green="f0" red="f0" type="rgb"/> <Color blue="f0" green="f0" red="f0" type="rgb"/>
</Property> </Property>
<Property name="columns" type="int" value="20"/> <Property name="columns" type="int" value="20"/>
<Property name="editable" type="boolean" value="false"/>
<Property name="rows" type="int" value="1"/> <Property name="rows" type="int" value="1"/>
<Property name="requestFocusEnabled" type="boolean" value="false"/> <Property name="requestFocusEnabled" type="boolean" value="false"/>
</Properties> </Properties>
@ -304,5 +312,35 @@
</Property> </Property>
</Properties> </Properties>
</Component> </Component>
<Component class="javax.swing.JLabel" name="lbDbType">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="CasePropertiesForm.lbDbType.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbDbType">
<Properties>
<Property name="editable" type="boolean" value="false"/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="CasePropertiesForm.tbDbType.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbDbName">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="CasePropertiesForm.lbDbName.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbDbName">
<Properties>
<Property name="editable" type="boolean" value="false"/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="CasePropertiesForm.tbDbName.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
</SubComponents> </SubComponents>
</Form> </Form>

View File

@ -24,12 +24,11 @@
*/ */
package org.sleuthkit.autopsy.casemodule; package org.sleuthkit.autopsy.casemodule;
import java.awt.*; import java.nio.file.Paths;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.io.File; import java.io.File;
import java.util.Map; import java.util.Map;
import java.util.logging.Level; import java.util.logging.Level;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
@ -47,7 +46,9 @@ import org.openide.util.actions.CallableSystemAction;
*/ */
class CasePropertiesForm extends javax.swing.JPanel { class CasePropertiesForm extends javax.swing.JPanel {
Case current = null; private static final long serialVersionUID = 1L;
private Case current = null;
private static JPanel caller; // panel for error private static JPanel caller; // panel for error
// Shrink a path to fit in targetLength (if necessary), by replaceing part // Shrink a path to fit in targetLength (if necessary), by replaceing part
@ -78,16 +79,25 @@ class CasePropertiesForm extends javax.swing.JPanel {
/** /**
* Creates new form CasePropertiesForm * Creates new form CasePropertiesForm
*/ */
CasePropertiesForm(Case currentCase, String crDate, String caseDir, Map<Long, String> imgPaths) { CasePropertiesForm(Case currentCase, String crDate, String caseDir, Map<Long, String> imgPaths) throws CaseMetadata.CaseMetadataException {
initComponents(); initComponents();
caseNameTextField.setText(currentCase.getName()); caseNameTextField.setText(currentCase.getName());
caseNumberTextField.setText(currentCase.getNumber()); caseNumberTextField.setText(currentCase.getNumber());
examinerTextField.setText(currentCase.getExaminer()); examinerTextField.setText(currentCase.getExaminer());
crDateTextField.setText(crDate); crDateTextField.setText(crDate);
caseDirTextArea.setText(caseDir); caseDirTextArea.setText(caseDir);
current = currentCase; current = currentCase;
CaseMetadata caseMetadata = new CaseMetadata(Paths.get(currentCase.getConfigFilePath()));
tbDbName.setText(caseMetadata.getCaseDatabaseName());
Case.CaseType caseType = caseMetadata.getCaseType();
tbDbType.setText(caseType.toString());
if (caseType == Case.CaseType.SINGLE_USER_CASE) {
deleteCaseButton.setEnabled(true);
} else {
deleteCaseButton.setEnabled(false);
}
int totalImages = imgPaths.size(); int totalImages = imgPaths.size();
// create the headers and add all the rows // create the headers and add all the rows
@ -186,12 +196,16 @@ class CasePropertiesForm extends javax.swing.JPanel {
examinerLabel = new javax.swing.JLabel(); examinerLabel = new javax.swing.JLabel();
caseNumberTextField = new javax.swing.JTextField(); caseNumberTextField = new javax.swing.JTextField();
examinerTextField = new javax.swing.JTextField(); examinerTextField = new javax.swing.JTextField();
lbDbType = new javax.swing.JLabel();
tbDbType = new javax.swing.JTextField();
lbDbName = new javax.swing.JLabel();
tbDbName = new javax.swing.JTextField();
jTextArea1.setColumns(20); jTextArea1.setColumns(20);
jTextArea1.setRows(5); jTextArea1.setRows(5);
jScrollPane1.setViewportView(jTextArea1); jScrollPane1.setViewportView(jTextArea1);
casePropLabel.setFont(casePropLabel.getFont().deriveFont(Font.BOLD, 24)); casePropLabel.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
casePropLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); casePropLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
casePropLabel.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.casePropLabel.text")); // NOI18N casePropLabel.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.casePropLabel.text")); // NOI18N
@ -213,11 +227,10 @@ class CasePropertiesForm extends javax.swing.JPanel {
} }
}); });
genInfoLabel.setFont(genInfoLabel.getFont().deriveFont(Font.BOLD, 14)); genInfoLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
genInfoLabel.setText( genInfoLabel.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.genInfoLabel.text")); // NOI18N
org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.genInfoLabel.text")); // NOI18N
imgInfoLabel.setFont(imgInfoLabel.getFont().deriveFont(Font.BOLD, 14)); imgInfoLabel.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
imgInfoLabel.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.imgInfoLabel.text")); // NOI18N imgInfoLabel.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.imgInfoLabel.text")); // NOI18N
OKButton.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.OKButton.text")); // NOI18N OKButton.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.OKButton.text")); // NOI18N
@ -227,7 +240,7 @@ class CasePropertiesForm extends javax.swing.JPanel {
}, },
new String [] { new String [] {
"Path", "Remove" //NON-NLS "Path", "Remove"
} }
) { ) {
boolean[] canEdit = new boolean [] { boolean[] canEdit = new boolean [] {
@ -244,9 +257,9 @@ class CasePropertiesForm extends javax.swing.JPanel {
imagesTable.setUpdateSelectionOnSort(false); imagesTable.setUpdateSelectionOnSort(false);
imagesTableScrollPane.setViewportView(imagesTable); imagesTableScrollPane.setViewportView(imagesTable);
caseDirTextArea.setEditable(false);
caseDirTextArea.setBackground(new java.awt.Color(240, 240, 240)); caseDirTextArea.setBackground(new java.awt.Color(240, 240, 240));
caseDirTextArea.setColumns(20); caseDirTextArea.setColumns(20);
caseDirTextArea.setEditable(false);
caseDirTextArea.setRows(1); caseDirTextArea.setRows(1);
caseDirTextArea.setRequestFocusEnabled(false); caseDirTextArea.setRequestFocusEnabled(false);
jScrollPane2.setViewportView(caseDirTextArea); jScrollPane2.setViewportView(caseDirTextArea);
@ -268,6 +281,16 @@ class CasePropertiesForm extends javax.swing.JPanel {
examinerTextField.setEditable(false); examinerTextField.setEditable(false);
examinerTextField.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.examinerTextField.text")); // NOI18N examinerTextField.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.examinerTextField.text")); // NOI18N
lbDbType.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.lbDbType.text")); // NOI18N
tbDbType.setEditable(false);
tbDbType.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.tbDbType.text")); // NOI18N
lbDbName.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.lbDbName.text")); // NOI18N
tbDbName.setEditable(false);
tbDbName.setText(org.openide.util.NbBundle.getMessage(CasePropertiesForm.class, "CasePropertiesForm.tbDbName.text")); // NOI18N
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout); this.setLayout(layout);
layout.setHorizontalGroup( layout.setHorizontalGroup(
@ -276,38 +299,37 @@ class CasePropertiesForm extends javax.swing.JPanel {
.addContainerGap() .addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(casePropLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE) .addComponent(casePropLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE)
.addComponent(genInfoLabel)
.addComponent(imgInfoLabel)
.addComponent(imagesTableScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE) .addComponent(imagesTableScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGap(181, 181, 181) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(OKButton, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(caseNameLabel)
.addGroup(layout.createSequentialGroup() .addComponent(caseNumberLabel)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(examinerLabel)
.addGroup(layout.createSequentialGroup() .addComponent(caseDirLabel)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(crDateLabel)
.addComponent(caseNameLabel) .addComponent(lbDbType))
.addComponent(caseNumberLabel)) .addGap(18, 18, 18)
.addGap(25, 25, 25) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(caseNameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE)
.addComponent(caseNameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE) .addComponent(caseNumberTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE)
.addComponent(caseNumberTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE))) .addComponent(examinerTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 245, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup() .addComponent(crDateTextField)
.addComponent(examinerLabel) .addComponent(jScrollPane2)
.addGap(45, 45, 45) .addComponent(tbDbType)
.addComponent(examinerTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)) .addComponent(tbDbName))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(caseDirLabel)
.addComponent(crDateLabel))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addComponent(crDateTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE))))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(updateCaseNameButton) .addComponent(deleteCaseButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(deleteCaseButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addComponent(updateCaseNameButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(genInfoLabel)
.addComponent(imgInfoLabel)
.addGroup(layout.createSequentialGroup()
.addGap(181, 181, 181)
.addComponent(OKButton, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(lbDbName))
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap()) .addContainerGap())
); );
layout.setVerticalGroup( layout.setVerticalGroup(
@ -317,32 +339,42 @@ class CasePropertiesForm extends javax.swing.JPanel {
.addComponent(casePropLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(casePropLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18) .addGap(18, 18, 18)
.addComponent(genInfoLabel) .addComponent(genInfoLabel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(caseNameLabel) .addComponent(caseNameLabel)
.addComponent(caseNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(caseNameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(updateCaseNameButton)) .addComponent(updateCaseNameButton))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(caseNumberLabel) .addComponent(caseNumberLabel)
.addComponent(caseNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(caseNumberTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(examinerLabel) .addComponent(examinerLabel)
.addComponent(examinerTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(examinerTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 19, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(crDateLabel) .addComponent(crDateLabel)
.addComponent(crDateTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(crDateTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(caseDirLabel) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(caseDirLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(39, 39, 39) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(tbDbType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lbDbType))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lbDbName)
.addComponent(tbDbName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addComponent(imgInfoLabel)) .addComponent(imgInfoLabel))
.addComponent(deleteCaseButton)) .addGroup(layout.createSequentialGroup()
.addGap(9, 9, 9)
.addComponent(deleteCaseButton)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(imagesTableScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(imagesTableScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
@ -445,6 +477,10 @@ class CasePropertiesForm extends javax.swing.JPanel {
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2; private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextArea jTextArea1; private javax.swing.JTextArea jTextArea1;
private javax.swing.JLabel lbDbName;
private javax.swing.JLabel lbDbType;
private javax.swing.JTextField tbDbName;
private javax.swing.JTextField tbDbType;
private javax.swing.JButton updateCaseNameButton; private javax.swing.JButton updateCaseNameButton;
// End of variables declaration//GEN-END:variables // End of variables declaration//GEN-END:variables

View File

@ -43,7 +43,6 @@
<EmptySpace min="-2" pref="26" max="-2" attributes="0"/> <EmptySpace min="-2" pref="26" max="-2" attributes="0"/>
<Component id="caseNameTextField" max="32767" attributes="0"/> <Component id="caseNameTextField" max="32767" attributes="0"/>
</Group> </Group>
<Component id="multiUserSettingsWarningLabel" alignment="1" max="32767" attributes="0"/>
</Group> </Group>
<EmptySpace type="unrelated" max="-2" attributes="0"/> <EmptySpace type="unrelated" max="-2" attributes="0"/>
<Component id="caseDirBrowseButton" min="-2" max="-2" attributes="0"/> <Component id="caseDirBrowseButton" min="-2" max="-2" attributes="0"/>
@ -93,9 +92,7 @@
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="caseParentDirWarningLabel" min="-2" max="-2" attributes="0"/> <Component id="caseParentDirWarningLabel" min="-2" max="-2" attributes="0"/>
<EmptySpace min="-2" pref="1" max="-2" attributes="0"/> <EmptySpace pref="35" max="32767" attributes="0"/>
<Component id="multiUserSettingsWarningLabel" min="-2" pref="23" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
@ -190,16 +187,6 @@
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="multiUserCaseRadioButtonActionPerformed"/> <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="multiUserCaseRadioButtonActionPerformed"/>
</Events> </Events>
</Component> </Component>
<Component class="javax.swing.JLabel" name="multiUserSettingsWarningLabel">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/casemodule/Bundle.properties" key="NewCaseVisualPanel1.multiUserSettingsWarningLabel.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="caseParentDirWarningLabel"> <Component class="javax.swing.JLabel" name="caseParentDirWarningLabel">
<Properties> <Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">

View File

@ -62,11 +62,9 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener {
if (UserPreferences.getIsMultiUserModeEnabled()) { if (UserPreferences.getIsMultiUserModeEnabled()) {
multiUserCaseRadioButton.setEnabled(true); multiUserCaseRadioButton.setEnabled(true);
multiUserCaseRadioButton.setSelected(true); multiUserCaseRadioButton.setSelected(true);
multiUserSettingsWarningLabel.setVisible(false);
} else { } else {
multiUserCaseRadioButton.setEnabled(false); multiUserCaseRadioButton.setEnabled(false);
singleUserCaseRadioButton.setSelected(true); singleUserCaseRadioButton.setSelected(true);
multiUserSettingsWarningLabel.setText(NbBundle.getMessage(this.getClass(), "NewCaseVisualPanel1.MultiUserDisabled.text"));
} }
validateSettings(); validateSettings();
} }
@ -214,7 +212,6 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener {
caseDirTextField = new javax.swing.JTextField(); caseDirTextField = new javax.swing.JTextField();
singleUserCaseRadioButton = new javax.swing.JRadioButton(); singleUserCaseRadioButton = new javax.swing.JRadioButton();
multiUserCaseRadioButton = new javax.swing.JRadioButton(); multiUserCaseRadioButton = new javax.swing.JRadioButton();
multiUserSettingsWarningLabel = new javax.swing.JLabel();
caseParentDirWarningLabel = new javax.swing.JLabel(); caseParentDirWarningLabel = new javax.swing.JLabel();
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
@ -256,9 +253,6 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener {
} }
}); });
multiUserSettingsWarningLabel.setForeground(new java.awt.Color(255, 0, 0));
org.openide.awt.Mnemonics.setLocalizedText(multiUserSettingsWarningLabel, org.openide.util.NbBundle.getMessage(NewCaseVisualPanel1.class, "NewCaseVisualPanel1.multiUserSettingsWarningLabel.text")); // NOI18N
caseParentDirWarningLabel.setForeground(new java.awt.Color(255, 0, 0)); caseParentDirWarningLabel.setForeground(new java.awt.Color(255, 0, 0));
org.openide.awt.Mnemonics.setLocalizedText(caseParentDirWarningLabel, org.openide.util.NbBundle.getMessage(NewCaseVisualPanel1.class, "NewCaseVisualPanel1.caseParentDirWarningLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(caseParentDirWarningLabel, org.openide.util.NbBundle.getMessage(NewCaseVisualPanel1.class, "NewCaseVisualPanel1.caseParentDirWarningLabel.text")); // NOI18N
@ -285,8 +279,7 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener {
.addGroup(layout.createSequentialGroup() .addGroup(layout.createSequentialGroup()
.addComponent(caseNameLabel) .addComponent(caseNameLabel)
.addGap(26, 26, 26) .addGap(26, 26, 26)
.addComponent(caseNameTextField)) .addComponent(caseNameTextField)))
.addComponent(multiUserSettingsWarningLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(caseDirBrowseButton))) .addComponent(caseDirBrowseButton)))
.addContainerGap()) .addContainerGap())
@ -323,9 +316,7 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener {
.addComponent(multiUserCaseRadioButton)) .addComponent(multiUserCaseRadioButton))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(caseParentDirWarningLabel) .addComponent(caseParentDirWarningLabel)
.addGap(1, 1, 1) .addContainerGap(35, Short.MAX_VALUE))
.addComponent(multiUserSettingsWarningLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
); );
}// </editor-fold>//GEN-END:initComponents }// </editor-fold>//GEN-END:initComponents
@ -370,7 +361,6 @@ final class NewCaseVisualPanel1 extends JPanel implements DocumentListener {
private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel2;
private javax.swing.JRadioButton multiUserCaseRadioButton; private javax.swing.JRadioButton multiUserCaseRadioButton;
private javax.swing.JLabel multiUserSettingsWarningLabel;
private javax.swing.JRadioButton singleUserCaseRadioButton; private javax.swing.JRadioButton singleUserCaseRadioButton;
// End of variables declaration//GEN-END:variables // End of variables declaration//GEN-END:variables

View File

@ -41,12 +41,21 @@ import org.sleuthkit.autopsy.core.UserPreferences;
import org.sleuthkit.datamodel.CaseDbConnectionInfo; import org.sleuthkit.datamodel.CaseDbConnectionInfo;
import org.sleuthkit.datamodel.SleuthkitCase; import org.sleuthkit.datamodel.SleuthkitCase;
import org.sleuthkit.datamodel.TskData.DbType; import org.sleuthkit.datamodel.TskData.DbType;
import java.awt.HeadlessException;
import java.util.MissingResourceException;
import java.util.concurrent.ExecutionException;
import org.openide.windows.WindowManager;
import org.sleuthkit.datamodel.TskCoreException;
import java.awt.Cursor;
import org.sleuthkit.autopsy.core.UserPreferencesException;
/** /**
* Action to open the New Case wizard. * Action to open the New Case wizard.
*/ */
final class NewCaseWizardAction extends CallableSystemAction { final class NewCaseWizardAction extends CallableSystemAction {
private static final long serialVersionUID = 1L;
private WizardDescriptor.Panel<WizardDescriptor>[] panels; private WizardDescriptor.Panel<WizardDescriptor>[] panels;
private static final Logger logger = Logger.getLogger(NewCaseWizardAction.class.getName()); private static final Logger logger = Logger.getLogger(NewCaseWizardAction.class.getName());
@ -102,39 +111,32 @@ final class NewCaseWizardAction extends CallableSystemAction {
final String caseName = (String) wizardDescriptor.getProperty("caseName"); //NON-NLS final String caseName = (String) wizardDescriptor.getProperty("caseName"); //NON-NLS
String createdDirectory = (String) wizardDescriptor.getProperty("createdDirectory"); //NON-NLS String createdDirectory = (String) wizardDescriptor.getProperty("createdDirectory"); //NON-NLS
CaseType caseType = CaseType.values()[(int) wizardDescriptor.getProperty("caseType")]; //NON-NLS CaseType caseType = CaseType.values()[(int) wizardDescriptor.getProperty("caseType")]; //NON-NLS
Case.create(createdDirectory, caseName, caseNumber, examiner, caseType); Case.create(createdDirectory, caseName, caseNumber, examiner, caseType);
return null; return null;
} }
@Override @Override
protected void done() { protected void done() {
final String caseName = (String) wizardDescriptor.getProperty("caseName"); //NON-NLS
try { try {
get(); get();
CaseType currentCaseType = CaseType.values()[(int) wizardDescriptor.getProperty("caseType")]; //NON-NLS AddImageAction addImageAction = SystemAction.get(AddImageAction.class);
CaseDbConnectionInfo info = UserPreferences.getDatabaseConnectionInfo(); addImageAction.actionPerformed(null);
if ((currentCaseType == CaseType.SINGLE_USER_CASE) || ((info.getDbType() != DbType.SQLITE) && SleuthkitCase.tryConnectOld(info.getHost(), info.getPort(), info.getUserName(), info.getPassword(), info.getDbType()))) {
AddImageAction addImageAction = SystemAction.get(AddImageAction.class);
addImageAction.actionPerformed(null);
} else {
// @@@ Should we log here?
JOptionPane.showMessageDialog(null,
NbBundle.getMessage(this.getClass(), "NewCaseWizardAction.databaseProblem1.text"),
NbBundle.getMessage(this.getClass(), "NewCaseWizardAction.databaseProblem2.text"),
JOptionPane.ERROR_MESSAGE);
doFailedCaseCleanup(wizardDescriptor);
}
} catch (Exception ex) { } catch (Exception ex) {
logger.log(Level.SEVERE, "Error creating case", ex); //NON-NLS logger.log(Level.SEVERE, "Error creating case", ex); //NON-NLS
final String caseName = (String) wizardDescriptor.getProperty("caseName"); //NON-NLS
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
JOptionPane.showMessageDialog(null, NbBundle.getMessage(this.getClass(), JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), ex.getCause().getMessage() + " "
"CaseCreateAction.msgDlg.cantCreateCase.msg") + " " + caseName, + NbBundle.getMessage(this.getClass(), "CaseExceptionWarning.CheckMultiUserOptions"),
NbBundle.getMessage(this.getClass(), NbBundle.getMessage(this.getClass(), "CaseCreateAction.msgDlg.cantCreateCase.msg"),
"CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); //NON-NLS
JOptionPane.ERROR_MESSAGE);
try {
StartupWindowProvider.getInstance().close();
} catch (Exception unused) {
}
if (!Case.isCaseOpen()) {
StartupWindowProvider.getInstance().open();
}
}); });
doFailedCaseCleanup(wizardDescriptor); doFailedCaseCleanup(wizardDescriptor);
} }
@ -154,6 +156,9 @@ final class NewCaseWizardAction extends CallableSystemAction {
logger.log(Level.INFO, "Deleting a created case directory due to an error, dir: {0}", createdDirectory); //NON-NLS logger.log(Level.INFO, "Deleting a created case directory due to an error, dir: {0}", createdDirectory); //NON-NLS
Case.deleteCaseDirectory(new File(createdDirectory)); Case.deleteCaseDirectory(new File(createdDirectory));
} }
SwingUtilities.invokeLater(() -> {
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
});
} }
/** /**

View File

@ -28,6 +28,8 @@ import javax.swing.SwingUtilities;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.Logger; import org.sleuthkit.autopsy.coreutils.Logger;
import org.openide.windows.WindowManager;
import java.awt.Cursor;
/** /**
* Panel show from the splash dialog that shows recent cases and allows them to * Panel show from the splash dialog that shows recent cases and allows them to
@ -196,7 +198,7 @@ class OpenRecentCasePanel extends javax.swing.JPanel {
} }
// Open the recent cases // Open the recent cases
if (caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())) { if (caseName.equals("") || casePath.equals("") || (!new File(casePath).exists())) {
JOptionPane.showMessageDialog(null, JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(),
NbBundle.getMessage(this.getClass(), NbBundle.getMessage(this.getClass(),
"OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg", "OpenRecentCasePanel.openCase.msgDlg.caseDoesntExist.msg",
caseName), caseName),
@ -211,12 +213,17 @@ class OpenRecentCasePanel extends javax.swing.JPanel {
} }
} else { } else {
SwingUtilities.invokeLater(() -> {
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
});
new Thread(() -> { new Thread(() -> {
try { try {
Case.open(casePath); Case.open(casePath);
} catch (CaseActionException ex) { } catch (CaseActionException ex) {
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
JOptionPane.showMessageDialog(null, ex.getMessage(), NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), ex.getMessage(),
NbBundle.getMessage(this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); //NON-NLS
if (!Case.isCaseOpen()) { if (!Case.isCaseOpen()) {
StartupWindowProvider.getInstance().open(); StartupWindowProvider.getInstance().open();
} }

View File

@ -26,6 +26,8 @@ import javax.swing.JOptionPane;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import org.openide.util.NbBundle; import org.openide.util.NbBundle;
import org.openide.windows.WindowManager;
import java.awt.Cursor;
/** /**
* This class is used to add the action to the recent case menu item. When the * This class is used to add the action to the recent case menu item. When the
@ -70,13 +72,18 @@ class RecentItems implements ActionListener {
} }
} else { } else {
SwingUtilities.invokeLater(() -> {
WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
});
new Thread(() -> { new Thread(() -> {
// Create case. // Create case.
try { try {
Case.open(casePath); Case.open(casePath);
} catch (CaseActionException ex) { } catch (CaseActionException ex) {
SwingUtilities.invokeLater(() -> { SwingUtilities.invokeLater(() -> {
JOptionPane.showMessageDialog(null, ex.getMessage(), NbBundle.getMessage(RecentItems.this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); WindowManager.getDefault().getMainWindow().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
JOptionPane.showMessageDialog(WindowManager.getDefault().getMainWindow(), ex.getMessage(),
NbBundle.getMessage(RecentItems.this.getClass(), "CaseOpenAction.msgDlg.cantOpenCase.title"), JOptionPane.ERROR_MESSAGE); //NON-NLS
if (!Case.isCaseOpen()) { if (!Case.isCaseOpen()) {
StartupWindowProvider.getInstance().open(); StartupWindowProvider.getInstance().open();
} }

View File

@ -27,7 +27,7 @@ Format_OperatingSystem_Value={0} version {1} running on {2}
LBL_Copyright=<div style\="font-size\: 12pt; font-family\: Verdana, 'Verdana CE', Arial, 'Arial CE', 'Lucida Grande CE', lucida, 'Helvetica CE', sans-serif; ">Autopsy&trade; is a digital forensics platform based on The Sleuth Kit&trade; and other tools. <br><ul><li>General Information: <a style\="color\: \#1E2A60;" href\="http\://www.sleuthkit.org">http\://www.sleuthkit.org</a>.</li><li>Training: <a style\="color\: \#1E2A60;" href\="http://www.basistech.com/autopsy-training">http://www.basistech.com/autopsy-training</a></li><li>Commercial Support: <a style\="color\: \#1E2A60;" href\="http://www.basistech.com/digital-forensics/autopsy/support/">http://www.basistech.com/digital-forensics/autopsy/support/</a></li></ul>Copyright &copy; 2003-2014. </div> LBL_Copyright=<div style\="font-size\: 12pt; font-family\: Verdana, 'Verdana CE', Arial, 'Arial CE', 'Lucida Grande CE', lucida, 'Helvetica CE', sans-serif; ">Autopsy&trade; is a digital forensics platform based on The Sleuth Kit&trade; and other tools. <br><ul><li>General Information: <a style\="color\: \#1E2A60;" href\="http\://www.sleuthkit.org">http\://www.sleuthkit.org</a>.</li><li>Training: <a style\="color\: \#1E2A60;" href\="http://www.basistech.com/autopsy-training">http://www.basistech.com/autopsy-training</a></li><li>Commercial Support: <a style\="color\: \#1E2A60;" href\="http://www.basistech.com/digital-forensics/autopsy/support/">http://www.basistech.com/digital-forensics/autopsy/support/</a></li></ul>Copyright &copy; 2003-2014. </div>
URL_ON_IMG=http://www.sleuthkit.org/ URL_ON_IMG=http://www.sleuthkit.org/
URL_ON_HELP=http://sleuthkit.org/autopsy/docs/user-docs/3.1/ URL_ON_HELP=http://sleuthkit.org/autopsy/docs/user-docs/4.0/
FILE_FOR_LOCAL_HELP=file:/// FILE_FOR_LOCAL_HELP=file:///
INDEX_FOR_LOCAL_HELP=/docs/index.html INDEX_FOR_LOCAL_HELP=/docs/index.html

View File

@ -16,86 +16,36 @@
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="pnOverallPanel" min="-2" max="-2" attributes="0"/> <Component id="jScrollPane" alignment="0" pref="555" max="32767" attributes="0"/>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
<DimensionLayout dim="1"> <DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="pnOverallPanel" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="jScrollPane" alignment="0" pref="559" max="32767" attributes="0"/>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
</Layout> </Layout>
<SubComponents> <SubComponents>
<Container class="javax.swing.JPanel" name="pnOverallPanel"> <Container class="javax.swing.JScrollPane" name="jScrollPane">
<Layout> <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
<DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" max="-2" attributes="0">
<Group type="102" alignment="0" attributes="0">
<Component id="cbEnableMultiUser" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbOops" max="32767" attributes="0"/>
</Group>
<Component id="pnSolrSettings" alignment="0" max="32767" attributes="0"/>
<Component id="pnDatabaseSettings" alignment="0" max="32767" attributes="0"/>
<Component id="pnMessagingSettings" alignment="0" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0">
<Group type="103" groupAlignment="2" attributes="0">
<Component id="tbOops" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="cbEnableMultiUser" alignment="2" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="pnDatabaseSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="pnSolrSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="pnMessagingSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="39" max="32767" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents> <SubComponents>
<Container class="javax.swing.JPanel" name="pnDatabaseSettings"> <Container class="javax.swing.JPanel" name="pnOverallPanel">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
<EtchetBorder/>
</Border>
</Property>
</Properties>
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" max="-2" attributes="0">
<Component id="tbDbHostname" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Component id="lbDatabaseSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="bnTestDatabase" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="lbTestDatabase" min="-2" pref="16" max="-2" attributes="0"/>
</Group>
<Component id="tbDbPort" alignment="0" max="32767" attributes="0"/>
<Component id="tbDbUsername" alignment="0" max="32767" attributes="0"/>
<Component id="tbDbPassword" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0"> <Group type="102" alignment="0" attributes="0">
<Component id="lbTestDbWarning" min="-2" max="-2" attributes="0"/> <Component id="cbEnableMultiUser" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="tbOops" max="32767" attributes="0"/>
</Group> </Group>
<Component id="pnSolrSettings" alignment="0" max="32767" attributes="0"/>
<Component id="pnDatabaseSettings" alignment="0" max="32767" attributes="0"/>
<Component id="pnMessagingSettings" alignment="0" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> </Group>
@ -104,416 +54,472 @@
<DimensionLayout dim="1"> <DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="1" attributes="0"> <Group type="102" alignment="1" attributes="0">
<EmptySpace max="-2" attributes="0"/> <Group type="103" groupAlignment="2" attributes="0">
<Group type="103" groupAlignment="0" attributes="0"> <Component id="tbOops" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="bnTestDatabase" alignment="0" min="-2" max="-2" attributes="0"/> <Component id="cbEnableMultiUser" alignment="2" min="-2" max="-2" attributes="0"/>
<Component id="lbTestDatabase" alignment="0" min="-2" pref="23" max="-2" attributes="0"/>
<Component id="lbDatabaseSettings" min="-2" max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="32767" attributes="0"/>
<Component id="tbDbHostname" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="tbDbPort" min="-2" max="-2" attributes="0"/> <Component id="pnDatabaseSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="tbDbUsername" min="-2" max="-2" attributes="0"/> <Component id="pnSolrSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbDbPassword" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lbTestDbWarning" min="-2" pref="16" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Component id="pnMessagingSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="39" max="32767" attributes="0"/>
</Group> </Group>
</Group> </Group>
</DimensionLayout> </DimensionLayout>
</Layout> </Layout>
<SubComponents> <SubComponents>
<Component class="javax.swing.JTextField" name="tbDbHostname"> <Container class="javax.swing.JPanel" name="pnDatabaseSettings">
<Properties> <Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Font name="Tahoma" size="12" style="0"/> <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
</Property> <EtchetBorder/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> </Border>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbHostname.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbHostname.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
</Properties> </Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbDbPort">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbPort.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbPort.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbDbUsername">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbUsername.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbUsername.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JPasswordField" name="tbDbPassword">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbPassword.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbPassword.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbDatabaseSettings">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbDatabaseSettings.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="verticalAlignment" type="int" value="1"/>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="bnTestDatabase">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.bnTestDatabase.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnTestDatabaseActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="lbTestDatabase">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestDatabase.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="autoscrolls" type="boolean" value="true"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbTestDbWarning">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestDbWarning.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnSolrSettings">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
<EtchetBorder/>
</Border>
</Property>
</Properties>
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="tbSolrHostname" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Component id="lbSolrSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="bnTestSolr" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="lbTestSolr" min="-2" pref="16" max="-2" attributes="0"/>
</Group>
<Component id="tbSolrPort" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="lbTestSolrWarning" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="bnTestSolr" alignment="1" min="-2" max="-2" attributes="0"/> <Component id="tbDbHostname" max="32767" attributes="0"/>
<Component id="lbSolrSettings" min="-2" max="-2" attributes="0"/> <Group type="102" attributes="0">
<Component id="lbDatabaseSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="bnTestDatabase" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="lbTestDatabase" min="-2" pref="16" max="-2" attributes="0"/>
</Group>
<Component id="tbDbPort" alignment="0" max="32767" attributes="0"/>
<Component id="tbDbUsername" alignment="0" max="32767" attributes="0"/>
<Component id="tbDbPassword" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="lbTestDbWarning" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group> </Group>
<Component id="lbTestSolr" alignment="1" min="-2" pref="23" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbSolrHostname" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="tbSolrPort" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lbTestSolrWarning" min="-2" pref="16" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group> </Group>
</Group> </DimensionLayout>
</DimensionLayout> <DimensionLayout dim="1">
</Layout> <Group type="103" groupAlignment="0" attributes="0">
<SubComponents> <Group type="102" alignment="1" attributes="0">
<Component class="javax.swing.JLabel" name="lbSolrSettings"> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="bnTestDatabase" alignment="0" min="-2" max="-2" attributes="0"/>
<Component id="lbTestDatabase" alignment="0" min="-2" pref="23" max="-2" attributes="0"/>
<Component id="lbDatabaseSettings" min="-2" max="-2" attributes="0"/>
</Group>
<EmptySpace max="32767" attributes="0"/>
<Component id="tbDbHostname" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbDbPort" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbDbUsername" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbDbPassword" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lbTestDbWarning" min="-2" pref="16" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JTextField" name="tbDbHostname">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbHostname.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbHostname.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbDbPort">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbPort.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbPort.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbDbUsername">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbUsername.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbUsername.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JPasswordField" name="tbDbPassword">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbPassword.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbDbPassword.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbDatabaseSettings">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbDatabaseSettings.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="verticalAlignment" type="int" value="1"/>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="bnTestDatabase">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.bnTestDatabase.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnTestDatabaseActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="lbTestDatabase">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestDatabase.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="autoscrolls" type="boolean" value="true"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbTestDbWarning">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestDbWarning.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnSolrSettings">
<Properties> <Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Font name="Tahoma" size="12" style="0"/> <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
</Property> <EtchetBorder/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> </Border>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbSolrSettings.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
</Properties> </Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbSolrHostname">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbSolrHostname.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbSolrPort">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbSolrPort.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="bnTestSolr">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.bnTestSolr.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnTestSolrActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="lbTestSolr">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestSolr.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbTestSolrWarning">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestSolrWarning.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnMessagingSettings">
<Properties>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
<EtchetBorder/>
</Border>
</Property>
</Properties>
<Layout> <Layout>
<DimensionLayout dim="0"> <DimensionLayout dim="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Group type="102" attributes="0"> <Group type="102" attributes="0">
<EmptySpace max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Component id="tbMsgHostname" max="32767" attributes="0"/>
<Group type="102" attributes="0">
<Component id="lbMessageServiceSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace pref="229" max="32767" attributes="0"/>
<Component id="bnTestMessageService" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="lbTestMessageService" min="-2" pref="16" max="-2" attributes="0"/>
</Group>
<Component id="tbMsgPort" alignment="0" max="32767" attributes="0"/>
<Component id="tbMsgUsername" alignment="0" max="32767" attributes="0"/>
<Component id="tbMsgPassword" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="lbTestMessageWarning" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
<DimensionLayout dim="1">
<Group type="103" groupAlignment="0" attributes="0">
<Group type="102" alignment="0" attributes="0">
<EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="1" attributes="0">
<Group type="103" groupAlignment="0" attributes="0"> <Group type="103" groupAlignment="0" attributes="0">
<Component id="bnTestMessageService" alignment="1" min="-2" max="-2" attributes="0"/> <Component id="tbSolrHostname" max="32767" attributes="0"/>
<Component id="lbMessageServiceSettings" min="-2" max="-2" attributes="0"/> <Group type="102" attributes="0">
<Component id="lbSolrSettings" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="bnTestSolr" min="-2" max="-2" attributes="0"/>
<EmptySpace type="separate" max="-2" attributes="0"/>
<Component id="lbTestSolr" min="-2" pref="16" max="-2" attributes="0"/>
</Group>
<Component id="tbSolrPort" alignment="0" max="32767" attributes="0"/>
<Group type="102" alignment="0" attributes="0">
<Component id="lbTestSolrWarning" min="-2" max="-2" attributes="0"/>
<EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Group>
</Group> </Group>
<Component id="lbTestMessageService" min="-2" pref="23" max="-2" attributes="0"/> <EmptySpace max="-2" attributes="0"/>
</Group> </Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbMsgHostname" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbMsgPort" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbMsgUsername" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbMsgPassword" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lbTestMessageWarning" min="-2" pref="16" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
</Group> </Group>
</Group> </DimensionLayout>
</DimensionLayout> <DimensionLayout dim="1">
</Layout> <Group type="103" groupAlignment="0" attributes="0">
<SubComponents> <Group type="102" alignment="0" attributes="0">
<Component class="javax.swing.JLabel" name="lbMessageServiceSettings"> <EmptySpace max="-2" attributes="0"/>
<Group type="103" groupAlignment="0" attributes="0">
<Group type="103" groupAlignment="0" attributes="0">
<Component id="bnTestSolr" alignment="1" min="-2" max="-2" attributes="0"/>
<Component id="lbSolrSettings" min="-2" max="-2" attributes="0"/>
</Group>
<Component id="lbTestSolr" alignment="1" min="-2" pref="23" max="-2" attributes="0"/>
</Group>
<EmptySpace max="-2" attributes="0"/>
<Component id="tbSolrHostname" min="-2" max="-2" attributes="0"/>
<EmptySpace max="32767" attributes="0"/>
<Component id="tbSolrPort" min="-2" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
<Component id="lbTestSolrWarning" min="-2" pref="16" max="-2" attributes="0"/>
<EmptySpace max="-2" attributes="0"/>
</Group>
</Group>
</DimensionLayout>
</Layout>
<SubComponents>
<Component class="javax.swing.JLabel" name="lbSolrSettings">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbSolrSettings.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbSolrHostname">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbSolrHostname.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbSolrPort">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbSolrPort.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="bnTestSolr">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.bnTestSolr.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnTestSolrActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="lbTestSolr">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestSolr.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbTestSolrWarning">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestSolrWarning.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
<Container class="javax.swing.JPanel" name="pnMessagingSettings">
<Properties> <Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Font name="Tahoma" size="12" style="0"/> <Border info="org.netbeans.modules.form.compat2.border.EtchedBorderInfo">
</Property> <EtchetBorder/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> </Border>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbMessageServiceSettings.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
</Properties> </Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbMsgHostname"> <Layout>
<Properties> <DimensionLayout dim="0">
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Group type="103" groupAlignment="0" attributes="0">
<Font name="Tahoma" size="12" style="0"/> <Group type="102" attributes="0">
</Property> <EmptySpace max="-2" attributes="0"/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Group type="103" groupAlignment="0" attributes="0">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgHostname.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <Component id="tbMsgHostname" max="32767" attributes="0"/>
</Property> <Group type="102" attributes="0">
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Component id="lbMessageServiceSettings" min="-2" max="-2" attributes="0"/>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgHostname.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <EmptySpace pref="229" max="32767" attributes="0"/>
</Property> <Component id="bnTestMessageService" min="-2" max="-2" attributes="0"/>
</Properties> <EmptySpace type="separate" max="-2" attributes="0"/>
</Component> <Component id="lbTestMessageService" min="-2" pref="16" max="-2" attributes="0"/>
<Component class="javax.swing.JTextField" name="tbMsgUsername"> </Group>
<Properties> <Component id="tbMsgPort" alignment="0" max="32767" attributes="0"/>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Component id="tbMsgUsername" alignment="0" max="32767" attributes="0"/>
<Font name="Tahoma" size="12" style="0"/> <Component id="tbMsgPassword" alignment="0" max="32767" attributes="0"/>
</Property> <Group type="102" alignment="0" attributes="0">
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Component id="lbTestMessageWarning" min="-2" max="-2" attributes="0"/>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgUsername.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <EmptySpace min="0" pref="0" max="32767" attributes="0"/>
</Property> </Group>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> </Group>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgUsername.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <EmptySpace max="-2" attributes="0"/>
</Property> </Group>
</Properties> </Group>
</Component> </DimensionLayout>
<Component class="javax.swing.JTextField" name="tbMsgPort"> <DimensionLayout dim="1">
<Properties> <Group type="103" groupAlignment="0" attributes="0">
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <Group type="102" alignment="0" attributes="0">
<Font name="Tahoma" size="12" style="0"/> <EmptySpace max="-2" attributes="0"/>
</Property> <Group type="103" groupAlignment="1" attributes="0">
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Group type="103" groupAlignment="0" attributes="0">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgPort.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <Component id="bnTestMessageService" alignment="1" min="-2" max="-2" attributes="0"/>
</Property> <Component id="lbMessageServiceSettings" min="-2" max="-2" attributes="0"/>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> </Group>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgPort.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <Component id="lbTestMessageService" min="-2" pref="23" max="-2" attributes="0"/>
</Property> </Group>
</Properties> <EmptySpace max="-2" attributes="0"/>
</Component> <Component id="tbMsgHostname" min="-2" max="-2" attributes="0"/>
<Component class="javax.swing.JPasswordField" name="tbMsgPassword"> <EmptySpace max="-2" attributes="0"/>
<Properties> <Component id="tbMsgPort" min="-2" max="-2" attributes="0"/>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor"> <EmptySpace max="-2" attributes="0"/>
<Font name="Tahoma" size="12" style="0"/> <Component id="tbMsgUsername" min="-2" max="-2" attributes="0"/>
</Property> <EmptySpace max="-2" attributes="0"/>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Component id="tbMsgPassword" min="-2" max="-2" attributes="0"/>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgPassword.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <EmptySpace max="-2" attributes="0"/>
</Property> <Component id="lbTestMessageWarning" min="-2" pref="16" max="-2" attributes="0"/>
<Property name="toolTipText" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <EmptySpace max="32767" attributes="0"/>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgPassword.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> </Group>
</Property> </Group>
</Properties> </DimensionLayout>
</Component> </Layout>
<Component class="javax.swing.JButton" name="bnTestMessageService"> <SubComponents>
<Component class="javax.swing.JLabel" name="lbMessageServiceSettings">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbMessageServiceSettings.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbMsgHostname">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgHostname.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgHostname.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbMsgUsername">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgUsername.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgUsername.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JTextField" name="tbMsgPort">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgPort.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgPort.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JPasswordField" name="tbMsgPassword">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="0"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgPassword.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/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbMsgPassword.toolTipText" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="bnTestMessageService">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.bnTestMessageService.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnTestMessageServiceActionPerformed"/>
</Events>
</Component>
<Component class="javax.swing.JLabel" name="lbTestMessageService">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestMessageService.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbTestMessageWarning">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestMessageWarning.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
</Properties>
</Component>
</SubComponents>
</Container>
<Component class="javax.swing.JCheckBox" name="cbEnableMultiUser">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.bnTestMessageService.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.cbEnableMultiUser.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property> </Property>
</Properties> </Properties>
<Events> <Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="bnTestMessageServiceActionPerformed"/> <EventHandler event="itemStateChanged" listener="java.awt.event.ItemListener" parameters="java.awt.event.ItemEvent" handler="cbEnableMultiUserItemStateChanged"/>
</Events> </Events>
</Component> </Component>
<Component class="javax.swing.JLabel" name="lbTestMessageService"> <Component class="javax.swing.JTextField" name="tbOops">
<Properties> <Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="editable" type="boolean" value="false"/>
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestMessageService.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="1"/>
</Property> </Property>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="lbTestMessageWarning">
<Properties>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor"> <Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="ff" type="rgb"/> <Color blue="0" green="0" red="ff" type="rgb"/>
</Property> </Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor"> <Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.lbTestMessageWarning.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/> <ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbOops.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="null"/>
</Property> </Property>
</Properties> </Properties>
</Component> </Component>
</SubComponents> </SubComponents>
</Container> </Container>
<Component class="javax.swing.JCheckBox" name="cbEnableMultiUser">
<Properties>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.cbEnableMultiUser.text" 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="cbEnableMultiUserItemStateChanged"/>
</Events>
</Component>
<Component class="javax.swing.JTextField" name="tbOops">
<Properties>
<Property name="editable" type="boolean" value="false"/>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="12" style="1"/>
</Property>
<Property name="foreground" type="java.awt.Color" editor="org.netbeans.beaninfo.editors.ColorEditor">
<Color blue="0" green="0" red="ff" type="rgb"/>
</Property>
<Property name="text" type="java.lang.String" editor="org.netbeans.modules.i18n.form.FormI18nStringEditor">
<ResourceString bundle="org/sleuthkit/autopsy/corecomponents/Bundle.properties" key="MultiUserSettingsPanel.tbOops.text" replaceFormat="org.openide.util.NbBundle.getMessage({sourceFileName}.class, &quot;{key}&quot;)"/>
</Property>
<Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
<Border info="null"/>
</Property>
</Properties>
</Component>
</SubComponents> </SubComponents>
</Container> </Container>
</SubComponents> </SubComponents>

View File

@ -149,6 +149,7 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() { private void initComponents() {
jScrollPane = new javax.swing.JScrollPane();
pnOverallPanel = new javax.swing.JPanel(); pnOverallPanel = new javax.swing.JPanel();
pnDatabaseSettings = new javax.swing.JPanel(); pnDatabaseSettings = new javax.swing.JPanel();
tbDbHostname = new javax.swing.JTextField(); tbDbHostname = new javax.swing.JTextField();
@ -438,15 +439,17 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
.addContainerGap(39, Short.MAX_VALUE)) .addContainerGap(39, Short.MAX_VALUE))
); );
jScrollPane.setViewportView(pnOverallPanel);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout); this.setLayout(layout);
layout.setHorizontalGroup( layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(pnOverallPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 555, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 555, Short.MAX_VALUE)
); );
layout.setVerticalGroup( layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(pnOverallPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 559, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 559, Short.MAX_VALUE)
); );
}// </editor-fold>//GEN-END:initComponents }// </editor-fold>//GEN-END:initComponents
@ -818,6 +821,7 @@ public final class MultiUserSettingsPanel extends javax.swing.JPanel {
private javax.swing.JButton bnTestMessageService; private javax.swing.JButton bnTestMessageService;
private javax.swing.JButton bnTestSolr; private javax.swing.JButton bnTestSolr;
private javax.swing.JCheckBox cbEnableMultiUser; private javax.swing.JCheckBox cbEnableMultiUser;
private javax.swing.JScrollPane jScrollPane;
private javax.swing.JLabel lbDatabaseSettings; private javax.swing.JLabel lbDatabaseSettings;
private javax.swing.JLabel lbMessageServiceSettings; private javax.swing.JLabel lbMessageServiceSettings;
private javax.swing.JLabel lbSolrSettings; private javax.swing.JLabel lbSolrSettings;

View File

@ -158,7 +158,6 @@ public class Server {
public static final Charset DEFAULT_INDEXED_TEXT_CHARSET = Charset.forName("UTF-8"); ///< default Charset to index text as public static final Charset DEFAULT_INDEXED_TEXT_CHARSET = Charset.forName("UTF-8"); ///< default Charset to index text as
private static final int MAX_SOLR_MEM_MB = 512; //TODO set dynamically based on avail. system resources private static final int MAX_SOLR_MEM_MB = 512; //TODO set dynamically based on avail. system resources
private Process curSolrProcess = null; private Process curSolrProcess = null;
private static Ingester ingester = null;
static final String PROPERTIES_FILE = KeywordSearchSettings.MODULE_NAME; static final String PROPERTIES_FILE = KeywordSearchSettings.MODULE_NAME;
static final String PROPERTIES_CURRENT_SERVER_PORT = "IndexingServerPort"; //NON-NLS static final String PROPERTIES_CURRENT_SERVER_PORT = "IndexingServerPort"; //NON-NLS
static final String PROPERTIES_CURRENT_STOP_PORT = "IndexingServerStopPort"; //NON-NLS static final String PROPERTIES_CURRENT_STOP_PORT = "IndexingServerStopPort"; //NON-NLS
@ -168,6 +167,7 @@ public class Server {
static final int DEFAULT_SOLR_STOP_PORT = 34343; static final int DEFAULT_SOLR_STOP_PORT = 34343;
private int currentSolrServerPort = 0; private int currentSolrServerPort = 0;
private int currentSolrStopPort = 0; private int currentSolrStopPort = 0;
private volatile Core currentCore = null;
private static final boolean DEBUG = false;//(Version.getBuildType() == Version.Type.DEVELOPMENT); private static final boolean DEBUG = false;//(Version.getBuildType() == Version.Type.DEVELOPMENT);
private final UNCPathUtilities uncPathUtilities = new UNCPathUtilities(); private final UNCPathUtilities uncPathUtilities = new UNCPathUtilities();
@ -183,7 +183,7 @@ public class Server {
// This could be a local or remote server. // This could be a local or remote server.
private HttpSolrServer currentSolrServer; private HttpSolrServer currentSolrServer;
private final String instanceDir; // private final String instanceDir;
private final File solrFolder; private final File solrFolder;
private final ServerAction serverAction; private final ServerAction serverAction;
private InputStreamPrinterThread errorRedirectThread; private InputStreamPrinterThread errorRedirectThread;
@ -198,7 +198,7 @@ public class Server {
this.localSolrServer = new HttpSolrServer("http://localhost:" + currentSolrServerPort + "/solr"); //NON-NLS this.localSolrServer = new HttpSolrServer("http://localhost:" + currentSolrServerPort + "/solr"); //NON-NLS
serverAction = new ServerAction(); serverAction = new ServerAction();
solrFolder = InstalledFileLocator.getDefault().locate("solr", Server.class.getPackage().getName(), false); //NON-NLS solrFolder = InstalledFileLocator.getDefault().locate("solr", Server.class.getPackage().getName(), false); //NON-NLS
instanceDir = solrFolder.getAbsolutePath() + File.separator + "solr"; //NON-NLS // instanceDir = solrFolder.getAbsolutePath() + File.separator + "solr"; //NON-NLS
javaPath = PlatformUtil.getJavaPath(); javaPath = PlatformUtil.getJavaPath();
logger.log(Level.INFO, "Created Server instance"); //NON-NLS logger.log(Level.INFO, "Created Server instance"); //NON-NLS
@ -291,13 +291,12 @@ public class Server {
@Override @Override
public void run() { public void run() {
InputStreamReader isr = new InputStreamReader(stream);
BufferedReader br = new BufferedReader(isr); try (InputStreamReader isr = new InputStreamReader(stream);
OutputStreamWriter osw = null; BufferedReader br = new BufferedReader(isr);
BufferedWriter bw = null; OutputStreamWriter osw = new OutputStreamWriter(out, PlatformUtil.getDefaultPlatformCharset());
try { BufferedWriter bw = new BufferedWriter(osw);) {
osw = new OutputStreamWriter(out, PlatformUtil.getDefaultPlatformCharset());
bw = new BufferedWriter(osw);
String line = null; String line = null;
while (doRun && (line = br.readLine()) != null) { while (doRun && (line = br.readLine()) != null) {
bw.write(line); bw.write(line);
@ -309,22 +308,7 @@ public class Server {
} }
bw.flush(); bw.flush();
} catch (IOException ex) { } catch (IOException ex) {
logger.log(Level.WARNING, "Error redirecting Solr output stream"); //NON-NLS logger.log(Level.SEVERE, "Error redirecting Solr output stream", ex); //NON-NLS
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException ex) {
logger.log(Level.WARNING, "Error closing Solr output stream writer"); //NON-NLS
}
}
if (br != null) {
try {
br.close();
} catch (IOException ex) {
logger.log(Level.WARNING, "Error closing Solr output stream reader"); //NON-NLS
}
}
} }
} }
} }
@ -357,7 +341,7 @@ public class Server {
void killSolr() { void killSolr() {
List<Long> solrPids = getSolrPIDs(); List<Long> solrPids = getSolrPIDs();
for (long pid : solrPids) { for (long pid : solrPids) {
logger.log(Level.INFO, "Trying to kill old Solr process, PID: " + pid); //NON-NLS logger.log(Level.INFO, "Trying to kill old Solr process, PID: {0}", pid); //NON-NLS
PlatformUtil.killProcess(pid); PlatformUtil.killProcess(pid);
} }
} }
@ -399,22 +383,12 @@ public class Server {
} }
} }
logger.log(Level.INFO, "Starting Solr server from: " + solrFolder.getAbsolutePath()); //NON-NLS logger.log(Level.INFO, "Starting Solr server from: {0}", solrFolder.getAbsolutePath()); //NON-NLS
if (isPortAvailable(currentSolrServerPort)) { if (isPortAvailable(currentSolrServerPort)) {
logger.log(Level.INFO, "Port [" + currentSolrServerPort + "] available, starting Solr"); //NON-NLS logger.log(Level.INFO, "Port [{0}] available, starting Solr", currentSolrServerPort); //NON-NLS
try { try {
final String MAX_SOLR_MEM_MB_PAR = "-Xmx" + Integer.toString(MAX_SOLR_MEM_MB) + "m"; //NON-NLS final String MAX_SOLR_MEM_MB_PAR = "-Xmx" + Integer.toString(MAX_SOLR_MEM_MB) + "m"; //NON-NLS
// String loggingPropertiesOpt = "-Djava.util.logging.config.file="; //NON-NLS
// String loggingPropertiesFilePath = instanceDir + File.separator + "conf" + File.separator; //NON-NLS
//
// if (DEBUG) {
// loggingPropertiesFilePath += "logging-development.properties"; //NON-NLS
// } else {
// loggingPropertiesFilePath += "logging-release.properties"; //NON-NLS
// }
// final String loggingProperties = loggingPropertiesOpt + loggingPropertiesFilePath;
List<String> commandLine = new ArrayList<>(); List<String> commandLine = new ArrayList<>();
commandLine.add(javaPath); commandLine.add(javaPath);
commandLine.add(MAX_SOLR_MEM_MB_PAR); commandLine.add(MAX_SOLR_MEM_MB_PAR);
@ -434,7 +408,7 @@ public class Server {
Path solrStderrPath = Paths.get(Places.getUserDirectory().getAbsolutePath(), "var", "log", "solr.log.stderr"); Path solrStderrPath = Paths.get(Places.getUserDirectory().getAbsolutePath(), "var", "log", "solr.log.stderr");
solrProcessBuilder.redirectError(solrStderrPath.toFile()); solrProcessBuilder.redirectError(solrStderrPath.toFile());
logger.log(Level.INFO, "Starting Solr using: " + solrProcessBuilder.command()); //NON-NLS logger.log(Level.INFO, "Starting Solr using: {0}", solrProcessBuilder.command()); //NON-NLS
curSolrProcess = solrProcessBuilder.start(); curSolrProcess = solrProcessBuilder.start();
logger.log(Level.INFO, "Finished starting Solr"); //NON-NLS logger.log(Level.INFO, "Finished starting Solr"); //NON-NLS
@ -447,7 +421,7 @@ public class Server {
} }
final List<Long> pids = this.getSolrPIDs(); final List<Long> pids = this.getSolrPIDs();
logger.log(Level.INFO, "New Solr process PID: " + pids); //NON-NLS logger.log(Level.INFO, "New Solr process PID: {0}", pids); //NON-NLS
} catch (SecurityException ex) { } catch (SecurityException ex) {
logger.log(Level.SEVERE, "Could not start Solr process!", ex); //NON-NLS logger.log(Level.SEVERE, "Could not start Solr process!", ex); //NON-NLS
throw new KeywordSearchModuleException( throw new KeywordSearchModuleException(
@ -526,7 +500,7 @@ public class Server {
} }
try { try {
logger.log(Level.INFO, "Stopping Solr server from: " + solrFolder.getAbsolutePath()); //NON-NLS logger.log(Level.INFO, "Stopping Solr server from: {0}", solrFolder.getAbsolutePath()); //NON-NLS
//try graceful shutdown //try graceful shutdown
final String[] SOLR_STOP_CMD = { final String[] SOLR_STOP_CMD = {
@ -613,10 +587,10 @@ public class Server {
return true; return true;
} }
/**
/*
* ** Convenience methods for use while we only open one case at a time *** * ** Convenience methods for use while we only open one case at a time ***
*/ */
private volatile Core currentCore = null;
synchronized void openCore() throws KeywordSearchModuleException { synchronized void openCore() throws KeywordSearchModuleException {
if (currentCore != null) { if (currentCore != null) {
@ -1278,6 +1252,7 @@ public class Server {
} }
class ServerAction extends AbstractAction { class ServerAction extends AbstractAction {
private static final long serialVersionUID = 1L;
@Override @Override
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
@ -1289,11 +1264,12 @@ public class Server {
* Exception thrown if solr port not available * Exception thrown if solr port not available
*/ */
class SolrServerNoPortException extends SocketException { class SolrServerNoPortException extends SocketException {
private static final long serialVersionUID = 1L;
/** /**
* the port number that is not available * the port number that is not available
*/ */
private int port; private final int port;
SolrServerNoPortException(int port) { SolrServerNoPortException(int port) {
super(NbBundle.getMessage(Server.class, "Server.solrServerNoPortException.msg", port, super(NbBundle.getMessage(Server.class, "Server.solrServerNoPortException.msg", port,

View File

@ -1,5 +1,5 @@
#Updated by build script #Updated by build script
#Tue, 13 Oct 2015 17:00:33 -0400 #Fri, 23 Oct 2015 09:28:23 -0400
LBL_splash_window_title=Starting Autopsy LBL_splash_window_title=Starting Autopsy
SPLASH_HEIGHT=314 SPLASH_HEIGHT=314
SPLASH_WIDTH=538 SPLASH_WIDTH=538

View File

@ -1,4 +1,4 @@
#Updated by build script #Updated by build script
#Tue, 13 Oct 2015 17:00:33 -0400 #Fri, 23 Oct 2015 09:28:23 -0400
CTL_MainWindow_Title=Autopsy 3.1.3 CTL_MainWindow_Title=Autopsy 3.1.3
CTL_MainWindow_Title_No_Project=Autopsy 3.1.3 CTL_MainWindow_Title_No_Project=Autopsy 3.1.3

View File

@ -1,4 +1,5 @@
branding.token=autopsy branding.token=autopsy
nbjdk.active=JDK_1.8_66
# Version of platform that is automatically downloaded # Version of platform that is automatically downloaded
# Note build.xml has similar definitions that should be kept in sync (manually) # Note build.xml has similar definitions that should be kept in sync (manually)
netbeans-plat-version=8.0.2 netbeans-plat-version=8.0.2
@ -13,15 +14,12 @@ cluster.path=\
${nbplatform.active.dir}/java:\ ${nbplatform.active.dir}/java:\
${nbplatform.active.dir}/platform ${nbplatform.active.dir}/platform
disabled.modules=\ disabled.modules=\
org.apache.tools.ant.module,\
org.netbeans.api.debugger.jpda,\ org.netbeans.api.debugger.jpda,\
org.netbeans.api.java,\ org.netbeans.api.java,\
org.netbeans.api.maven,\
org.netbeans.lib.nbjavac,\ org.netbeans.lib.nbjavac,\
org.netbeans.libs.cglib,\ org.netbeans.libs.cglib,\
org.netbeans.libs.javacapi,\ org.netbeans.libs.javacapi,\
org.netbeans.libs.javacimpl,\ org.netbeans.libs.javacimpl,\
org.netbeans.libs.javafx,\
org.netbeans.libs.springframework,\ org.netbeans.libs.springframework,\
org.netbeans.modules.ant.browsetask,\ org.netbeans.modules.ant.browsetask,\
org.netbeans.modules.ant.debugger,\ org.netbeans.modules.ant.debugger,\
@ -33,7 +31,6 @@ disabled.modules=\
org.netbeans.modules.dbschema,\ org.netbeans.modules.dbschema,\
org.netbeans.modules.debugger.jpda,\ org.netbeans.modules.debugger.jpda,\
org.netbeans.modules.debugger.jpda.ant,\ org.netbeans.modules.debugger.jpda.ant,\
org.netbeans.modules.debugger.jpda.js,\
org.netbeans.modules.debugger.jpda.kit,\ org.netbeans.modules.debugger.jpda.kit,\
org.netbeans.modules.debugger.jpda.projects,\ org.netbeans.modules.debugger.jpda.projects,\
org.netbeans.modules.debugger.jpda.ui,\ org.netbeans.modules.debugger.jpda.ui,\
@ -46,8 +43,6 @@ disabled.modules=\
org.netbeans.modules.form.nb,\ org.netbeans.modules.form.nb,\
org.netbeans.modules.form.refactoring,\ org.netbeans.modules.form.refactoring,\
org.netbeans.modules.hibernate,\ org.netbeans.modules.hibernate,\
org.netbeans.modules.hibernate4lib,\
org.netbeans.modules.hibernatelib,\
org.netbeans.modules.hudson.ant,\ org.netbeans.modules.hudson.ant,\
org.netbeans.modules.hudson.maven,\ org.netbeans.modules.hudson.maven,\
org.netbeans.modules.i18n,\ org.netbeans.modules.i18n,\
@ -69,21 +64,16 @@ disabled.modules=\
org.netbeans.modules.java.examples,\ org.netbeans.modules.java.examples,\
org.netbeans.modules.java.freeform,\ org.netbeans.modules.java.freeform,\
org.netbeans.modules.java.guards,\ org.netbeans.modules.java.guards,\
org.netbeans.modules.java.helpset,\
org.netbeans.modules.java.hints,\ org.netbeans.modules.java.hints,\
org.netbeans.modules.java.hints.declarative,\ org.netbeans.modules.java.hints.declarative,\
org.netbeans.modules.java.hints.declarative.test,\ org.netbeans.modules.java.hints.declarative.test,\
org.netbeans.modules.java.hints.legacy.spi,\ org.netbeans.modules.java.hints.legacy.spi,\
org.netbeans.modules.java.hints.test,\ org.netbeans.modules.java.hints.test,\
org.netbeans.modules.java.hints.ui,\ org.netbeans.modules.java.hints.ui,\
org.netbeans.modules.java.j2sedeploy,\
org.netbeans.modules.java.j2seembedded,\
org.netbeans.modules.java.j2seplatform,\ org.netbeans.modules.java.j2seplatform,\
org.netbeans.modules.java.j2seprofiles,\
org.netbeans.modules.java.j2seproject,\ org.netbeans.modules.java.j2seproject,\
org.netbeans.modules.java.kit,\ org.netbeans.modules.java.kit,\
org.netbeans.modules.java.lexer,\ org.netbeans.modules.java.lexer,\
org.netbeans.modules.java.metrics,\
org.netbeans.modules.java.navigation,\ org.netbeans.modules.java.navigation,\
org.netbeans.modules.java.platform,\ org.netbeans.modules.java.platform,\
org.netbeans.modules.java.preprocessorbridge,\ org.netbeans.modules.java.preprocessorbridge,\
@ -95,7 +85,6 @@ disabled.modules=\
org.netbeans.modules.java.sourceui,\ org.netbeans.modules.java.sourceui,\
org.netbeans.modules.java.testrunner,\ org.netbeans.modules.java.testrunner,\
org.netbeans.modules.javadoc,\ org.netbeans.modules.javadoc,\
org.netbeans.modules.javaee.injection,\
org.netbeans.modules.javawebstart,\ org.netbeans.modules.javawebstart,\
org.netbeans.modules.jellytools.java,\ org.netbeans.modules.jellytools.java,\
org.netbeans.modules.junit,\ org.netbeans.modules.junit,\
@ -116,8 +105,6 @@ disabled.modules=\
org.netbeans.modules.maven.repository,\ org.netbeans.modules.maven.repository,\
org.netbeans.modules.maven.search,\ org.netbeans.modules.maven.search,\
org.netbeans.modules.maven.spring,\ org.netbeans.modules.maven.spring,\
org.netbeans.modules.nashorn.execution,\
org.netbeans.modules.performance,\
org.netbeans.modules.performance.java,\ org.netbeans.modules.performance.java,\
org.netbeans.modules.projectimport.eclipse.core,\ org.netbeans.modules.projectimport.eclipse.core,\
org.netbeans.modules.projectimport.eclipse.j2se,\ org.netbeans.modules.projectimport.eclipse.j2se,\
@ -130,8 +117,6 @@ disabled.modules=\
org.netbeans.modules.websvc.jaxws21,\ org.netbeans.modules.websvc.jaxws21,\
org.netbeans.modules.websvc.jaxws21api,\ org.netbeans.modules.websvc.jaxws21api,\
org.netbeans.modules.websvc.saas.codegen.java,\ org.netbeans.modules.websvc.saas.codegen.java,\
org.netbeans.modules.whitelist,\
org.netbeans.modules.xml.jaxb,\ org.netbeans.modules.xml.jaxb,\
org.netbeans.modules.xml.tools.java,\ org.netbeans.modules.xml.tools.java,\
org.netbeans.spi.java.hints org.netbeans.spi.java.hints