Merge pull request #767 from millmanorama/autoselect_single_result

autoselect a single row in the result viewer
This commit is contained in:
Richard Cordovano 2014-06-13 16:48:59 -04:00
commit 18bf6d4517

View File

@ -22,6 +22,7 @@ import java.awt.Cursor;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport; import java.beans.PropertyChangeSupport;
import java.beans.PropertyVetoException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.logging.Level;
@ -367,7 +368,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
} }
@Override @Override
public void setNode(Node selectedNode) { public void setNode(final Node selectedNode) {
if (this.rootNode != null) { if (this.rootNode != null) {
this.rootNode.removeNodeListener(dummyNodeListener); this.rootNode.removeNodeListener(dummyNodeListener);
} }
@ -390,6 +391,20 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
if (selectedNode != null) { if (selectedNode != null) {
int childrenCount = selectedNode.getChildren().getNodesCount(); int childrenCount = selectedNode.getChildren().getNodesCount();
this.numberMatchLabel.setText(Integer.toString(childrenCount)); this.numberMatchLabel.setText(Integer.toString(childrenCount));
//if there is only one child, select it to be displayed in the content viewer
if (childrenCount == 1) {
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); this.numberMatchLabel.setVisible(true);
} }