From fc9c15757f2494ad7966d05a3f6180627d77245a Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Thu, 14 Dec 2017 17:44:14 -0500 Subject: [PATCH 1/9] 3278 do not allow invalid image files to be set as agency logo --- .../autopsy/corecomponents/AutopsyOptionsPanel.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java index dacab2a276..17aad44582 100755 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/AutopsyOptionsPanel.java @@ -72,6 +72,7 @@ import org.sleuthkit.autopsy.report.ReportBranding; "AutopsyOptionsPanel.specifyLogoRB.text=Specify a logo", "AutopsyOptionsPanel.browseLogosButton.text=Browse", "AutopsyOptionsPanel.agencyLogoPathFieldValidationLabel.invalidPath.text=Path is not valid.", + "AutopsyOptionsPanel.agencyLogoPathFieldValidationLabel.invalidImageSpecified.text=Invalid image file specified.", "AutopsyOptionsPanel.agencyLogoPathFieldValidationLabel.pathNotSet.text=Agency logo path must be set." }) @@ -416,7 +417,17 @@ final class AutopsyOptionsPanel extends javax.swing.JPanel { } else { File file = new File(agencyLogoPathField.getText()); if (file.exists() && file.isFile()) { - agencyLogoPathFieldValidationLabel.setText(""); + BufferedImage image; + try { //ensure the image can be read + image = ImageIO.read(file); //create it as an image first to support BMP files + if (image == null) { + throw new IOException("Unable to read file as a BufferedImage for file " + file.toString()); + } + agencyLogoPathFieldValidationLabel.setText(""); + } catch (IOException | IndexOutOfBoundsException ignored) { + agencyLogoPathFieldValidationLabel.setText(Bundle.AutopsyOptionsPanel_agencyLogoPathFieldValidationLabel_invalidImageSpecified_text()); + valid = false; + } } else { agencyLogoPathFieldValidationLabel.setText(Bundle.AutopsyOptionsPanel_agencyLogoPathFieldValidationLabel_invalidPath_text()); valid = false; From 7b1256f500ce2e36c6be49012524799c049287ad Mon Sep 17 00:00:00 2001 From: Raman Date: Fri, 15 Dec 2017 08:00:48 -0500 Subject: [PATCH 2/9] 913: The Images part of the HTML tab does not get cleared properly --- .../sleuthkit/autopsy/contentviewers/MessageContentViewer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java index df678a6635..2eb52076a2 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java @@ -494,6 +494,7 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont htmlbodyTextPane.setText(""); textbodyTextArea.setText(""); drp.setNode(null); + showImagesToggleButton.setEnabled(false); msgbodyTabbedPane.setEnabled(false); } @@ -599,6 +600,7 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont directionText.setEnabled(false); ccLabel.setEnabled(true); + showImagesToggleButton.setEnabled(true); showImagesToggleButton.setText("Show Images"); showImagesToggleButton.setSelected(false); From 3120993c5448fe360d9ac56cec3f3aec79b49a3d Mon Sep 17 00:00:00 2001 From: Raman Date: Fri, 15 Dec 2017 10:57:03 -0500 Subject: [PATCH 3/9] 922: Put DataSource name in AccountDeviceInstanceKey --- .../AccountDeviceInstanceKey.java | 10 ++++-- .../communications/AccountsRootChildren.java | 33 ++++++++++--------- 2 files changed, 25 insertions(+), 18 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/communications/AccountDeviceInstanceKey.java b/Core/src/org/sleuthkit/autopsy/communications/AccountDeviceInstanceKey.java index 92b6938ac0..fbc2c17feb 100644 --- a/Core/src/org/sleuthkit/autopsy/communications/AccountDeviceInstanceKey.java +++ b/Core/src/org/sleuthkit/autopsy/communications/AccountDeviceInstanceKey.java @@ -31,13 +31,15 @@ class AccountDeviceInstanceKey { private final AccountDeviceInstance accountDeviceInstance; private final CommunicationsFilter filter; private final long messageCount; + private final String dataSourceName; - AccountDeviceInstanceKey(AccountDeviceInstance accountDeviceInstance, CommunicationsFilter filter, long msgCount) { + AccountDeviceInstanceKey(AccountDeviceInstance accountDeviceInstance, CommunicationsFilter filter, long msgCount, String dataSourceName) { this.accountDeviceInstance = accountDeviceInstance; this.filter = filter; this.messageCount = msgCount; + this.dataSourceName = dataSourceName; } AccountDeviceInstance getAccountDeviceInstance() { @@ -48,7 +50,11 @@ class AccountDeviceInstanceKey { return filter; } - long getMessageCount() { + long getMessageCount() { return messageCount; } + + String getDataSourceName() { + return dataSourceName; + } } diff --git a/Core/src/org/sleuthkit/autopsy/communications/AccountsRootChildren.java b/Core/src/org/sleuthkit/autopsy/communications/AccountsRootChildren.java index 9b0b5081d2..fec972b463 100644 --- a/Core/src/org/sleuthkit/autopsy/communications/AccountsRootChildren.java +++ b/Core/src/org/sleuthkit/autopsy/communications/AccountsRootChildren.java @@ -58,7 +58,8 @@ class AccountsRootChildren extends ChildFactory { try { for (AccountDeviceInstance adi : commsManager.getAccountDeviceInstancesWithRelationships(commsFilter)) { long communicationsCount = commsManager.getRelationshipSourcesCount(adi, commsFilter); - accountDeviceInstanceKeys.add(new AccountDeviceInstanceKey(adi, commsFilter, communicationsCount)); + String dataSourceName = getDataSourceName(adi); + accountDeviceInstanceKeys.add(new AccountDeviceInstanceKey(adi, commsFilter, communicationsCount, dataSourceName)); }; } catch (TskCoreException tskCoreException) { logger.log(Level.SEVERE, "Error getting filtered account device instances", tskCoreException); @@ -73,6 +74,20 @@ class AccountsRootChildren extends ChildFactory { return new AccountDeviceInstanceNode(key, commsManager); } + private String getDataSourceName(AccountDeviceInstance adi) { + try { + final SleuthkitCase sleuthkitCase = Case.getCurrentCase().getSleuthkitCase(); + for (DataSource dataSource : sleuthkitCase.getDataSources()) { + if (dataSource.getDeviceId().equals(adi.getDeviceId())) { + return sleuthkitCase.getContentById(dataSource.getId()).getName(); + } + } + } catch (TskCoreException ex) { + logger.log(Level.SEVERE, "Error getting datasource name, falling back on device ID.", ex); + } + return adi.getDeviceId(); + } + /** * Node to represent an Account in the AccountsBrowser */ @@ -121,22 +136,8 @@ class AccountsRootChildren extends ChildFactory { properties.put(new NodeProperty<>("count", Bundle.AccountNode_messageCount(), "count", accountDeviceInstanceKey.getMessageCount())); // NON-NLS properties.put(new NodeProperty<>("device", Bundle.AccountNode_device(), "device", - getDataSourceName())); // NON-NLS + accountDeviceInstanceKey.getDataSourceName())); // NON-NLS return s; } - - private String getDataSourceName() { - try { - final SleuthkitCase sleuthkitCase = Case.getCurrentCase().getSleuthkitCase(); - for (DataSource dataSource : sleuthkitCase.getDataSources()) { - if (dataSource.getDeviceId().equals(getAccountDeviceInstance().getDeviceId())) { - return sleuthkitCase.getContentById(dataSource.getId()).getName(); - } - } - } catch (TskCoreException ex) { - logger.log(Level.SEVERE, "Error getting datasource name, falling back on device ID.", ex); - } - return getAccountDeviceInstance().getDeviceId(); - } } } From 0209d81d82d8002fd94c4c49106f10c32910f529 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Fri, 15 Dec 2017 12:34:40 -0500 Subject: [PATCH 4/9] 3350 move call to openCase when double clicking off EDT --- .../org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java index 018def8ad3..a9ea61a187 100755 --- a/Core/src/org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java @@ -593,7 +593,9 @@ final class MultiUserCasesPanel extends javax.swing.JPanel { int modelRow = casesTable.convertRowIndexToModel(casesTable.getSelectedRow()); String caseDirectory = (String) caseTableModel.getValueAt(modelRow, COLUMN_HEADERS.OUTPUTFOLDER.ordinal()); Path caseMetadataFilePath = Paths.get(caseDirectory, (String) caseTableModel.getValueAt(modelRow, COLUMN_HEADERS.METADATA_FILE.ordinal())); - openCase(caseMetadataFilePath); + new Thread(() -> { + openCase(caseMetadataFilePath); + }).start(); } }//GEN-LAST:event_casesTableMouseClicked From e3a303618da5d8a85d20656964843df3b9f8f350 Mon Sep 17 00:00:00 2001 From: Richard Cordovano Date: Fri, 15 Dec 2017 13:16:32 -0500 Subject: [PATCH 5/9] Rename RelationShipNode to RelationshipNode --- .../autopsy/communications/AccountDetailsNode.java | 2 +- .../{RelationShipNode.java => RelationshipNode.java} | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename Core/src/org/sleuthkit/autopsy/communications/{RelationShipNode.java => RelationshipNode.java} (97%) diff --git a/Core/src/org/sleuthkit/autopsy/communications/AccountDetailsNode.java b/Core/src/org/sleuthkit/autopsy/communications/AccountDetailsNode.java index 9d1e3b0361..88470e87e0 100644 --- a/Core/src/org/sleuthkit/autopsy/communications/AccountDetailsNode.java +++ b/Core/src/org/sleuthkit/autopsy/communications/AccountDetailsNode.java @@ -74,7 +74,7 @@ class AccountDetailsNode extends AbstractNode { @Override protected Node createNodeForKey(Content t) { if (t instanceof BlackboardArtifact) { - return new RelationShipNode((BlackboardArtifact) t); + return new RelationshipNode((BlackboardArtifact) t); } else { throw new UnsupportedOperationException("Cannot create a RelationshipNode for non BlackboardArtifact content."); } diff --git a/Core/src/org/sleuthkit/autopsy/communications/RelationShipNode.java b/Core/src/org/sleuthkit/autopsy/communications/RelationshipNode.java similarity index 97% rename from Core/src/org/sleuthkit/autopsy/communications/RelationShipNode.java rename to Core/src/org/sleuthkit/autopsy/communications/RelationshipNode.java index 5c060a262e..73fa033240 100644 --- a/Core/src/org/sleuthkit/autopsy/communications/RelationShipNode.java +++ b/Core/src/org/sleuthkit/autopsy/communications/RelationshipNode.java @@ -43,11 +43,11 @@ import org.sleuthkit.datamodel.TskCoreException; /** * Node for a relationship, as represented by a BlackboardArtifact. */ -public class RelationShipNode extends BlackboardArtifactNode { +public class RelationshipNode extends BlackboardArtifactNode { - private static final Logger logger = Logger.getLogger(RelationShipNode.class.getName()); + private static final Logger logger = Logger.getLogger(RelationshipNode.class.getName()); - public RelationShipNode(BlackboardArtifact artifact) { + public RelationshipNode(BlackboardArtifact artifact) { super(artifact); final String stripEnd = StringUtils.stripEnd(artifact.getDisplayName(), "s"); String removeEndIgnoreCase = StringUtils.removeEndIgnoreCase(stripEnd, "message"); From 94b156bbfd6c27996091237a4e09378fcd593fb4 Mon Sep 17 00:00:00 2001 From: Raman Date: Fri, 15 Dec 2017 13:52:23 -0500 Subject: [PATCH 6/9] 922: Put DataSource name in AccountDeviceInstanceKey - address review comments --- .../communications/AccountsRootChildren.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/communications/AccountsRootChildren.java b/Core/src/org/sleuthkit/autopsy/communications/AccountsRootChildren.java index fec972b463..63e1e17d82 100644 --- a/Core/src/org/sleuthkit/autopsy/communications/AccountsRootChildren.java +++ b/Core/src/org/sleuthkit/autopsy/communications/AccountsRootChildren.java @@ -56,10 +56,10 @@ class AccountsRootChildren extends ChildFactory { protected boolean createKeys(List list) { List accountDeviceInstanceKeys = new ArrayList<>(); try { - for (AccountDeviceInstance adi : commsManager.getAccountDeviceInstancesWithRelationships(commsFilter)) { - long communicationsCount = commsManager.getRelationshipSourcesCount(adi, commsFilter); - String dataSourceName = getDataSourceName(adi); - accountDeviceInstanceKeys.add(new AccountDeviceInstanceKey(adi, commsFilter, communicationsCount, dataSourceName)); + for (AccountDeviceInstance accountDeviceInstance : commsManager.getAccountDeviceInstancesWithRelationships(commsFilter)) { + long communicationsCount = commsManager.getRelationshipSourcesCount(accountDeviceInstance, commsFilter); + String dataSourceName = getDataSourceName(accountDeviceInstance); + accountDeviceInstanceKeys.add(new AccountDeviceInstanceKey(accountDeviceInstance, commsFilter, communicationsCount, dataSourceName)); }; } catch (TskCoreException tskCoreException) { logger.log(Level.SEVERE, "Error getting filtered account device instances", tskCoreException); @@ -74,18 +74,18 @@ class AccountsRootChildren extends ChildFactory { return new AccountDeviceInstanceNode(key, commsManager); } - private String getDataSourceName(AccountDeviceInstance adi) { + private String getDataSourceName(AccountDeviceInstance accountDeviceInstance) { try { final SleuthkitCase sleuthkitCase = Case.getCurrentCase().getSleuthkitCase(); for (DataSource dataSource : sleuthkitCase.getDataSources()) { - if (dataSource.getDeviceId().equals(adi.getDeviceId())) { + if (dataSource.getDeviceId().equals(accountDeviceInstance.getDeviceId())) { return sleuthkitCase.getContentById(dataSource.getId()).getName(); } } } catch (TskCoreException ex) { logger.log(Level.SEVERE, "Error getting datasource name, falling back on device ID.", ex); } - return adi.getDeviceId(); + return accountDeviceInstance.getDeviceId(); } /** From d98089bd31c615190fd2c34e66012602a9f29c14 Mon Sep 17 00:00:00 2001 From: William Schaefer Date: Fri, 15 Dec 2017 14:15:19 -0500 Subject: [PATCH 7/9] 3351 move opening of Welcome dialog and other UI elements back to EDT --- .../casemodule/MultiUserCasesPanel.java | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java b/Core/src/org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java index a9ea61a187..aa5674c0c8 100755 --- a/Core/src/org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java +++ b/Core/src/org/sleuthkit/autopsy/casemodule/MultiUserCasesPanel.java @@ -30,6 +30,7 @@ import java.util.logging.Level; import javax.swing.JDialog; import javax.swing.JOptionPane; import javax.swing.SortOrder; +import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; @@ -277,21 +278,30 @@ final class MultiUserCasesPanel extends javax.swing.JPanel { */ private void openCase(Path caseMetadataFilePath) { setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); - try { - StartupWindowProvider.getInstance().close(); - if (parentDialog != null) { - parentDialog.setVisible(false); - } - MultiUserCaseManager.getInstance().openCase(caseMetadataFilePath); - } catch (CaseActionException | MultiUserCaseManager.MultiUserCaseManagerException ex) { - if (null != ex.getCause() && !(ex.getCause() instanceof CaseActionCancelledException)) { - LOGGER.log(Level.SEVERE, String.format("Error opening case with metadata file path %s", caseMetadataFilePath), ex); //NON-NLS - MessageNotifyUtil.Message.error(ex.getCause().getLocalizedMessage()); - } - StartupWindowProvider.getInstance().open(); - } finally { - setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + + StartupWindowProvider.getInstance().close(); + if (parentDialog != null) { + parentDialog.setVisible(false); } + new Thread(() -> { + try { + MultiUserCaseManager.getInstance().openCase(caseMetadataFilePath); + } catch (CaseActionException | MultiUserCaseManager.MultiUserCaseManagerException ex) { + if (null != ex.getCause() && !(ex.getCause() instanceof CaseActionCancelledException)) { + LOGGER.log(Level.SEVERE, String.format("Error opening case with metadata file path %s", caseMetadataFilePath), ex); //NON-NLS + MessageNotifyUtil.Message.error(ex.getCause().getLocalizedMessage()); + } + SwingUtilities.invokeLater(() -> { + //GUI changes done back on the EDT + StartupWindowProvider.getInstance().open(); + }); + } finally { + SwingUtilities.invokeLater(() -> { + //GUI changes done back on the EDT + setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + }); + } + }).start(); } /** @@ -528,10 +538,7 @@ final class MultiUserCasesPanel extends javax.swing.JPanel { int modelRow = casesTable.convertRowIndexToModel(casesTable.getSelectedRow()); String caseDirectory = (String) caseTableModel.getValueAt(modelRow, COLUMN_HEADERS.OUTPUTFOLDER.ordinal()); Path caseMetadataFilePath = Paths.get(caseDirectory, (String) caseTableModel.getValueAt(modelRow, COLUMN_HEADERS.METADATA_FILE.ordinal())); - - new Thread(() -> { - openCase(caseMetadataFilePath); - }).start(); + openCase(caseMetadataFilePath); }//GEN-LAST:event_bnOpenActionPerformed /** @@ -593,9 +600,7 @@ final class MultiUserCasesPanel extends javax.swing.JPanel { int modelRow = casesTable.convertRowIndexToModel(casesTable.getSelectedRow()); String caseDirectory = (String) caseTableModel.getValueAt(modelRow, COLUMN_HEADERS.OUTPUTFOLDER.ordinal()); Path caseMetadataFilePath = Paths.get(caseDirectory, (String) caseTableModel.getValueAt(modelRow, COLUMN_HEADERS.METADATA_FILE.ordinal())); - new Thread(() -> { - openCase(caseMetadataFilePath); - }).start(); + openCase(caseMetadataFilePath); } }//GEN-LAST:event_casesTableMouseClicked From 5d59641eb0a2eeb8ad9b834a36636285a2e53b0f Mon Sep 17 00:00:00 2001 From: Raman Date: Fri, 15 Dec 2017 15:00:09 -0500 Subject: [PATCH 8/9] 914: CVT behaves strangely after resizing --- .../contentviewers/MessageContentViewer.form | 12 +++++++++++- .../contentviewers/MessageContentViewer.java | 13 ++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.form b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.form index 76cf355856..c1400964a9 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.form +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.form @@ -59,7 +59,7 @@ - + @@ -151,6 +151,10 @@ + + + + @@ -165,6 +169,9 @@ + + + @@ -179,6 +186,9 @@ + + + diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java index 2eb52076a2..228dc09c13 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/MessageContentViewer.java @@ -161,14 +161,18 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont org.openide.awt.Mnemonics.setLocalizedText(toLabel, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.toLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(toText, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.toText.text")); // NOI18N + toText.setAutoscrolls(true); + toText.setMinimumSize(new java.awt.Dimension(27, 14)); org.openide.awt.Mnemonics.setLocalizedText(ccLabel, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.ccLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(ccText, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.ccText.text")); // NOI18N + ccText.setMinimumSize(new java.awt.Dimension(27, 14)); org.openide.awt.Mnemonics.setLocalizedText(subjectLabel, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.subjectLabel.text")); // NOI18N org.openide.awt.Mnemonics.setLocalizedText(subjectText, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.subjectText.text")); // NOI18N + subjectText.setMinimumSize(new java.awt.Dimension(26, 14)); directionText.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT); org.openide.awt.Mnemonics.setLocalizedText(directionText, org.openide.util.NbBundle.getMessage(MessageContentViewer.class, "MessageContentViewer.directionText.text")); // NOI18N @@ -215,16 +219,16 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(envelopePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(toLabel) - .addComponent(toText) + .addComponent(toText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(directionText)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(envelopePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ccLabel) - .addComponent(ccText)) + .addComponent(ccText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(envelopePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(subjectLabel) - .addComponent(subjectText)) + .addComponent(subjectText, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(5, 5, 5)) ); @@ -606,9 +610,12 @@ public class MessageContentViewer extends javax.swing.JPanel implements DataCont try { this.fromText.setText(getAttributeValueSafe(artifact, TSK_EMAIL_FROM)); + this.fromText.setToolTipText(getAttributeValueSafe(artifact, TSK_EMAIL_FROM)); this.toText.setText(getAttributeValueSafe(artifact, TSK_EMAIL_TO)); + this.toText.setToolTipText(getAttributeValueSafe(artifact, TSK_EMAIL_TO)); this.directionText.setText(""); this.ccText.setText(getAttributeValueSafe(artifact, TSK_EMAIL_CC)); + this.ccText.setToolTipText(getAttributeValueSafe(artifact, TSK_EMAIL_CC)); this.subjectText.setText(getAttributeValueSafe(artifact, TSK_SUBJECT)); this.datetimeText.setText(getAttributeValueSafe(artifact, TSK_DATETIME_RCVD)); From 510b988f299811fe767bc7b5fa72b7f70d900180 Mon Sep 17 00:00:00 2001 From: Richard Cordovano Date: Fri, 15 Dec 2017 15:15:02 -0500 Subject: [PATCH 9/9] Change Cluster Metrics labels to Auto Ingest Metrics --- .../autoingest/AutoIngestControlPanel.form | 14 +++++++------- .../autoingest/AutoIngestControlPanel.java | 4 +++- .../autoingest/AutoIngestDashboard.form | 8 ++++---- .../autoingest/AutoIngestDashboard.java | 3 +++ .../autoingest/AutoIngestMetricsDialog.java | 2 +- .../experimental/autoingest/Bundle.properties | 2 +- 6 files changed, 19 insertions(+), 14 deletions(-) diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestControlPanel.form b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestControlPanel.form index f00e28374c..cf7db34165 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestControlPanel.form +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestControlPanel.form @@ -22,17 +22,17 @@ - + - + - + - + - + - + @@ -609,4 +609,4 @@ - \ No newline at end of file + diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestControlPanel.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestControlPanel.java index be8abbd1ee..8af4f819fa 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestControlPanel.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestControlPanel.java @@ -73,7 +73,7 @@ import org.sleuthkit.autopsy.ingest.IngestProgressSnapshotDialog; * one such panel per node. */ @Messages({ - "AutoIngestControlPanel.bnClusterMetrics.text=Cluster Metrics", + "AutoIngestControlPanel.bnClusterMetrics.text=Auto Ingest Metrics", "AutoIngestControlPanel.bnPause.text=Pause", "AutoIngestControlPanel.bnPause.paused=Paused", "AutoIngestControlPanel.bnPause.running=Running", @@ -1492,6 +1492,8 @@ public final class AutoIngestControlPanel extends JPanel implements Observer { layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {bnCancelJob, bnCancelModule, bnDeleteCase, bnShowProgress}); + layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {bnClusterMetrics, bnExit, bnOpenLogDir, bnOptions, bnPause, bnRefresh}); + layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestDashboard.form b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestDashboard.form index 78ae8fb2a4..45e2a2ef43 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestDashboard.form +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestDashboard.form @@ -34,13 +34,13 @@ - + - + - + - + diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestDashboard.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestDashboard.java index 421b1f92f0..46f6a0853a 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestDashboard.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestDashboard.java @@ -789,6 +789,9 @@ final class AutoIngestDashboard extends JPanel implements Observer { .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) ); + + layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {clusterMetricsButton, prioritizeCaseButton, prioritizeJobButton, refreshButton}); + layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMetricsDialog.java b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMetricsDialog.java index 990d04e244..f09f00c5cb 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMetricsDialog.java +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/AutoIngestMetricsDialog.java @@ -44,7 +44,7 @@ final class AutoIngestMetricsDialog extends javax.swing.JDialog { * @param parent The parent container. */ @Messages({ - "AutoIngestMetricsDialog.title.text=Auto Ingest Cluster Metrics", + "AutoIngestMetricsDialog.title.text=Auto Ingest Metrics", "AutoIngestMetricsDialog.initReportText=Select a date above and click the 'Generate Metrics Report' button to generate\na metrics report." }) AutoIngestMetricsDialog(Container parent) throws AutoIngestMetricsDialogException { diff --git a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties index d953b0ceb3..656ccafb3d 100755 --- a/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties +++ b/Experimental/src/org/sleuthkit/autopsy/experimental/autoingest/Bundle.properties @@ -227,7 +227,7 @@ AutoIngestDashboard.prioritizeJobButton.text=Prioritize &Job AutoIngestDashboard.prioritizeCaseButton.toolTipText=Move all images associated with a case to top of Pending queue. AutoIngestDashboard.prioritizeCaseButton.text=Prioritize &Case AutoIngestMetricsDialog.reportTextArea.text= -AutoIngestDashboard.clusterMetricsButton.text=Cluster Metrics +AutoIngestDashboard.clusterMetricsButton.text=Auto Ingest Metrics AutoIngestMetricsDialog.metricsButton.text=Generate Metrics Report AutoIngestMetricsDialog.closeButton.text=Close AutoIngestMetricsDialog.datePicker.toolTipText=Choose a date