diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/artifactviewers/Bundle.properties-MERGED b/Core/src/org/sleuthkit/autopsy/contentviewers/artifactviewers/Bundle.properties-MERGED index c69da11d54..317d7050de 100644 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/artifactviewers/Bundle.properties-MERGED +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/artifactviewers/Bundle.properties-MERGED @@ -61,6 +61,7 @@ DefaultArtifactContentViewer.copyMenuItem.text=Copy DefaultArtifactContentViewer.selectAllMenuItem.text=Select All MessageAccountPanel_button_create_label=Create MessageAccountPanel_button_view_label=View +MessageAccountPanel_no_matches=No matches found. MessageAccountPanel_persona_label=Persona: MessageAccountPanel_unknown_label=Unknown MessageArtifactViewer.AttachmentPanel.title=Attachments diff --git a/Core/src/org/sleuthkit/autopsy/contentviewers/artifactviewers/MessageAccountPanel.java b/Core/src/org/sleuthkit/autopsy/contentviewers/artifactviewers/MessageAccountPanel.java index 61d14f19a0..050fca83fe 100755 --- a/Core/src/org/sleuthkit/autopsy/contentviewers/artifactviewers/MessageAccountPanel.java +++ b/Core/src/org/sleuthkit/autopsy/contentviewers/artifactviewers/MessageAccountPanel.java @@ -126,26 +126,47 @@ final class MessageAccountPanel extends JPanel { return dataList; } + @Messages({ + "MessageAccountPanel_no_matches=No matches found.", + }) @Override protected void done() { try { List dataList = get(); - dataList.forEach(container -> { - container.initalizeSwingControls(); - }); + if (!dataList.isEmpty()) { + dataList.forEach(container -> { + container.initalizeSwingControls(); + }); - GroupLayout layout = new GroupLayout(MessageAccountPanel.this); - layout.setHorizontalGroup( - layout.createParallelGroup(Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(getMainHorizontalGroup(layout, dataList)) - .addContainerGap(158, Short.MAX_VALUE))); + GroupLayout layout = new GroupLayout(MessageAccountPanel.this); + layout.setHorizontalGroup( + layout.createParallelGroup(Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addContainerGap() + .addGroup(getMainHorizontalGroup(layout, dataList)) + .addContainerGap(158, Short.MAX_VALUE))); - layout.setVerticalGroup(getMainVerticalGroup(layout, dataList)); - setLayout(layout); - repaint(); + layout.setVerticalGroup(getMainVerticalGroup(layout, dataList)); + setLayout(layout); + repaint(); + } else { + // No match found, display a message. + JPanel messagePanel = new javax.swing.JPanel(); + JLabel messageLabel = new javax.swing.JLabel(); + + messagePanel.setLayout(new java.awt.BorderLayout()); + + messageLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + messageLabel.setText(Bundle.MessageAccountPanel_no_matches()); + messageLabel.setEnabled(false); + messagePanel.add(messageLabel, java.awt.BorderLayout.CENTER); + + setLayout(new javax.swing.OverlayLayout(MessageAccountPanel.this)); + + add(messagePanel); + repaint(); + } } catch (CancellationException ex) { logger.log(Level.INFO, "MessageAccoutPanel thread cancelled", ex); } catch (InterruptedException | ExecutionException ex) {