diff --git a/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/Bundle.properties b/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/Bundle.properties
index 5712fdfa9b..ccb6dbe236 100644
--- a/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/Bundle.properties
+++ b/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/Bundle.properties
@@ -121,7 +121,6 @@ ConfigVisualPanel1.configureFolderRadioButton.text_1=Configure in a folder:
ConfigVisualPanel1.descriptionTextArea.text=Select a location you will configure for use by the Logical Imager. A config file will be created if one does not already exist, and a copy of the Logical Imager executable will copied to this location. This will also be the location where the Logical Imager executable creates folders containing output.
ConfigVisualPanel1.refreshButton.text=Refresh
ConfigVisualPanel3.saveButton.text=Save
-ConfigVisualPanel3.descriptionTextArea.text=Save your configuration and the Logical imager executalbe to the location specified.
-ConfigVisualPanel3.configLabel.text=Logical Imager config file:
-ConfigVisualPanel3.executableLabel.text=Logical Imager executable:
+ConfigVisualPanel3.configLabel.text=Logical Imager config file save status:
+ConfigVisualPanel3.executableLabel.text=Logical Imager executable save status:
ConfigVisualPanel3.executableStatusLabel.text=
diff --git a/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/Bundle.properties-MERGED
index 81c49cf0fa..c7330f40d1 100644
--- a/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/Bundle.properties-MERGED
+++ b/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/Bundle.properties-MERGED
@@ -40,10 +40,13 @@ ConfigVisualPanel2.editRuleSet=Edit rule
ConfigVisualPanel2.ok=OK
ConfigVisualPanel2.rulesTable.columnModel.title0=Rule Name
ConfigVisualPanel2.rulesTable.columnModel.title1=Description
-ConfigVisualPanel3.copyStatus.error=Unable to save file.
-ConfigVisualPanel3.copyStatus.notSaved=File has not been saved.
+ConfigVisualPanel3.copyStatus.error=Unable to save file
+ConfigVisualPanel3.copyStatus.notSaved=File has not been saved
ConfigVisualPanel3.copyStatus.saved=Saved
-ConfigVisualPanel3.copyStatus.savingInProgress=Saving file, please wait.
+ConfigVisualPanel3.copyStatus.savingInProgress=Saving file, please wait
+# {0} - configurationFile
+# {1} - configurationLocation
+ConfigVisualPanel3.description.text=Press Save to write your configuration file {0} and the Logical imager executable to {1}.
# {0} - configFilename
ConfigVisualPanel3.failedToSaveConfigMsg=Failed to save configuration file: {0}
ConfigVisualPanel3.failedToSaveExeMsg=Failed to save tsk_logical_imager.exe file
@@ -182,9 +185,8 @@ ConfigVisualPanel1.configureFolderRadioButton.text_1=Configure in a folder:
ConfigVisualPanel1.descriptionTextArea.text=Select a location you will configure for use by the Logical Imager. A config file will be created if one does not already exist, and a copy of the Logical Imager executable will copied to this location. This will also be the location where the Logical Imager executable creates folders containing output.
ConfigVisualPanel1.refreshButton.text=Refresh
ConfigVisualPanel3.saveButton.text=Save
-ConfigVisualPanel3.descriptionTextArea.text=Save your configuration and the Logical imager executalbe to the location specified.
-ConfigVisualPanel3.configLabel.text=Logical Imager config file:
-ConfigVisualPanel3.executableLabel.text=Logical Imager executable:
+ConfigVisualPanel3.configLabel.text=Logical Imager config file save status:
+ConfigVisualPanel3.executableLabel.text=Logical Imager executable save status:
ConfigVisualPanel3.executableStatusLabel.text=
NewRuleSetPanel.attributeRule.description=Search for files based on one or more attributes or metadata fields.
NewRuleSetPanel.attributeRule.name=Attribute
diff --git a/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/ConfigVisualPanel3.form b/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/ConfigVisualPanel3.form
index c16dda3f94..ca2a6b6cff 100644
--- a/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/ConfigVisualPanel3.form
+++ b/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/ConfigVisualPanel3.form
@@ -17,29 +17,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -48,19 +46,19 @@
-
+
-
+
-
+
-
+
@@ -95,9 +93,6 @@
-
-
-
diff --git a/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/ConfigVisualPanel3.java b/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/ConfigVisualPanel3.java
index cd951c6f25..13501bf0ba 100644
--- a/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/ConfigVisualPanel3.java
+++ b/Core/src/org/sleuthkit/autopsy/logicalimager/configuration/ConfigVisualPanel3.java
@@ -33,6 +33,7 @@ import java.util.List;
import java.util.logging.Level;
import javax.swing.JOptionPane;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.FilenameUtils;
import org.openide.util.NbBundle;
import org.sleuthkit.autopsy.coreutils.Logger;
@@ -48,10 +49,10 @@ public class ConfigVisualPanel3 extends javax.swing.JPanel {
/**
* Creates new form ConfigVisualPanel3
*/
- @NbBundle.Messages({"ConfigVisualPanel3.copyStatus.notSaved=File has not been saved.",
- "ConfigVisualPanel3.copyStatus.savingInProgress=Saving file, please wait.",
+ @NbBundle.Messages({"ConfigVisualPanel3.copyStatus.notSaved=File has not been saved",
+ "ConfigVisualPanel3.copyStatus.savingInProgress=Saving file, please wait",
"ConfigVisualPanel3.copyStatus.saved=Saved",
- "ConfigVisualPanel3.copyStatus.error=Unable to save file."})
+ "ConfigVisualPanel3.copyStatus.error=Unable to save file"})
public ConfigVisualPanel3() {
initComponents();
configStatusLabel.setText(Bundle.ConfigVisualPanel3_copyStatus_notSaved());
@@ -71,9 +72,9 @@ public class ConfigVisualPanel3 extends javax.swing.JPanel {
void saveConfigFile() {
boolean saveSuccess = true;
executableStatusLabel.setForeground(Color.BLACK);
- setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
configStatusLabel.setText(Bundle.ConfigVisualPanel3_copyStatus_savingInProgress());
executableStatusLabel.setText(Bundle.ConfigVisualPanel3_copyStatus_savingInProgress());
+ setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
GsonBuilder gsonBuilder = new GsonBuilder()
.setPrettyPrinting()
.excludeFieldsWithoutExposeAnnotation()
@@ -158,7 +159,6 @@ public class ConfigVisualPanel3 extends javax.swing.JPanel {
descriptionTextArea.setFont(new java.awt.Font("Tahoma", 0, 11)); // NOI18N
descriptionTextArea.setLineWrap(true);
descriptionTextArea.setRows(5);
- descriptionTextArea.setText(org.openide.util.NbBundle.getMessage(ConfigVisualPanel3.class, "ConfigVisualPanel3.descriptionTextArea.text")); // NOI18N
descriptionTextArea.setWrapStyleWord(true);
descriptionTextArea.setEnabled(false);
descriptionScrollPane.setViewportView(descriptionTextArea);
@@ -173,41 +173,41 @@ public class ConfigVisualPanel3 extends javax.swing.JPanel {
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
+ .addComponent(configLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(executableLabel))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(configStatusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 237, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(executableStatusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 238, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(0, 10, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(descriptionScrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
- .addGroup(layout.createSequentialGroup()
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 79, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
- .addComponent(executableLabel)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(executableStatusLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
- .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
- .addComponent(configLabel)
- .addGap(18, 18, 18)
- .addComponent(configStatusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))))
- .addGap(0, 0, Short.MAX_VALUE)))
+ .addComponent(descriptionScrollPane)
.addContainerGap())
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(descriptionScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addGap(57, 57, 57)
+ .addGap(18, 18, 18)
.addComponent(saveButton)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 64, Short.MAX_VALUE)
+ .addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(configLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(configStatusLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addComponent(configStatusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(executableLabel)
.addComponent(executableStatusLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(35, 35, 35))
+ .addContainerGap(120, Short.MAX_VALUE))
);
}// //GEN-END:initComponents
@@ -226,8 +226,14 @@ public class ConfigVisualPanel3 extends javax.swing.JPanel {
private javax.swing.JButton saveButton;
// End of variables declaration//GEN-END:variables
- void setConfigInfoForSaving(String configFilename, LogicalImagerConfig config) {
- this.configFilename = configFilename;
+ @NbBundle.Messages({
+ "# {0} - configurationFile",
+ "# {1} - configurationLocation",
+ "ConfigVisualPanel3.description.text=Press Save to write your configuration file {0} and the Logical imager executable to {1}."
+ })
+ void setConfigInfoForSaving(String configFile, LogicalImagerConfig config) {
+ this.configFilename = configFile;
this.config = config;
+ descriptionTextArea.setText(Bundle.ConfigVisualPanel3_description_text(FilenameUtils.getName(configFilename), FilenameUtils.getPath(configFilename)));
}
}