Merge branch 'redundant' into keywordSearchErrors

This commit is contained in:
Jeff Wallace 2013-10-07 13:18:31 -04:00
commit ea4e30e2ee
2 changed files with 39 additions and 18 deletions

View File

@ -358,6 +358,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
this.rootNode = selectedNode; this.rootNode = selectedNode;
if (this.rootNode != null) { if (this.rootNode != null) {
dummyNodeListener.reset();
this.rootNode.addNodeListener(dummyNodeListener); this.rootNode.addNodeListener(dummyNodeListener);
} }
@ -612,23 +613,32 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
private class DummyNodeListener implements NodeListener { private class DummyNodeListener implements NodeListener {
private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait..."; private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait...";
private boolean reload = false; private volatile boolean load = true;
public void reset() {
load = true;
}
@Override @Override
public void childrenAdded(final NodeMemberEvent nme) { public void childrenAdded(NodeMemberEvent nme) {
if (reload) { Node[] delta = nme.getDelta();
if (load && containsReal(delta)) {
load = false;
setupTabs(nme.getNode()); setupTabs(nme.getNode());
reload = false;
} }
} }
private boolean containsReal(Node[] delta) {
for (Node n : delta) {
if (!n.getDisplayName().equals(DUMMY_NODE_DISPLAY_NAME)) {
return true;
}
}
return false;
}
@Override @Override
public void childrenRemoved(NodeMemberEvent nme) { public void childrenRemoved(NodeMemberEvent nme) {
Node removed = nme.getNode();
if (removed.getDisplayName().equals(DUMMY_NODE_DISPLAY_NAME)) {
// set up tabs if the node removed is a waiting node
reload = false;
}
} }
@Override @Override

View File

@ -243,8 +243,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
try { try {
boolean hasChildren = false; boolean hasChildren = false;
if (selectedNode != null) { if (selectedNode != null) {
hasChildren = selectedNode.getChildren().getNodesCount() > 0; hasChildren = selectedNode.getChildren().getNodesCount() > 0;
} }
@ -257,6 +256,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
// if there's no selection node, do nothing // if there's no selection node, do nothing
if (hasChildren) { if (hasChildren) {
Node root = selectedNode; Node root = selectedNode;
dummyNodeListener.reset();
root.addNodeListener(dummyNodeListener); root.addNodeListener(dummyNodeListener);
setupTable(root); setupTable(root);
} else { } else {
@ -478,21 +478,32 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
private class DummyNodeListener implements NodeListener { private class DummyNodeListener implements NodeListener {
private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait..."; private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait...";
private boolean reload = false; private volatile boolean load = true;
public void reset() {
load = true;
}
@Override @Override
public void childrenAdded(NodeMemberEvent nme) { public void childrenAdded(NodeMemberEvent nme) {
if (reload = true) { Node[] delta = nme.getDelta();
if (load && containsReal(delta)) {
load = false;
setupTable(nme.getNode()); setupTable(nme.getNode());
reload = false;
} }
} }
private boolean containsReal(Node[] delta) {
for (Node n : delta) {
if (!n.getDisplayName().equals(DUMMY_NODE_DISPLAY_NAME)) {
return true;
}
}
return false;
}
@Override @Override
public void childrenRemoved(NodeMemberEvent nme) { public void childrenRemoved(NodeMemberEvent nme) {
Node removed = nme.getNode();
if (removed.getDisplayName().equals(DUMMY_NODE_DISPLAY_NAME)) {
reload = true;
}
} }
@Override @Override