From ee3ced6ba9e86857bebbe0604a210aa2bfc72d28 Mon Sep 17 00:00:00 2001 From: jmillman Date: Fri, 13 Jun 2014 16:25:30 -0400 Subject: [PATCH] defer selection to ensure the new node is set as rootcontext first --- .../corecomponents/DataResultPanel.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java index 109bf54588..46095fb18a 100644 --- a/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java +++ b/Core/src/org/sleuthkit/autopsy/corecomponents/DataResultPanel.java @@ -36,7 +36,6 @@ import org.openide.nodes.NodeEvent; import org.openide.nodes.NodeListener; import org.openide.nodes.NodeMemberEvent; import org.openide.nodes.NodeReorderEvent; -import org.openide.util.Exceptions; import org.openide.util.Lookup; import org.openide.util.NbBundle; import org.sleuthkit.autopsy.casemodule.Case; @@ -369,7 +368,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C } @Override - public void setNode(Node selectedNode) { + public void setNode(final Node selectedNode) { if (this.rootNode != null) { this.rootNode.removeNodeListener(dummyNodeListener); } @@ -392,12 +391,19 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C if (selectedNode != null) { int childrenCount = selectedNode.getChildren().getNodesCount(); this.numberMatchLabel.setText(Integer.toString(childrenCount)); + + //if there is only one child, select it to be displayed in the content viewer if (childrenCount == 1) { - try { - explorerManager.setSelectedNodes(selectedNode.getChildren().getNodes()); - } catch (PropertyVetoException ex) { - Exceptions.printStackTrace(ex); - } + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + try { + explorerManager.setSelectedNodes(selectedNode.getChildren().getNodes()); + } catch (PropertyVetoException ex) { + logger.log(Level.INFO, "node selection vetoed"); + } + } + }); } } this.numberMatchLabel.setVisible(true);