This commit is contained in:
Jeff Wallace 2013-10-15 09:18:00 -04:00
commit 1ba9f2b9be
3 changed files with 43 additions and 15 deletions

View File

@ -106,3 +106,6 @@ MediaViewVideoPanel.pauseButton.text=\u25ba
MediaViewVideoPanel.progressLabel.text=00:00
DataContentViewerMedia.AccessibleContext.accessibleDescription=
MediaViewVideoPanel.infoLabel.text=info
GeneralPanel.jLabel2.text=When displaying times:
GeneralPanel.useLocalTimeRB.text=Use local timezone
GeneralPanel.useGMTTimeRB.text=Use GMT

View File

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

View File

@ -244,7 +244,6 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
try {
boolean hasChildren = false;
if (selectedNode != null) {
hasChildren = selectedNode.getChildren().getNodesCount() > 0;
}
@ -257,6 +256,7 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
// if there's no selection node, do nothing
if (hasChildren) {
Node root = selectedNode;
dummyNodeListener.reset();
root.addNodeListener(dummyNodeListener);
setupTable(root);
} else {
@ -478,21 +478,32 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
private class DummyNodeListener implements NodeListener {
private static final String DUMMY_NODE_DISPLAY_NAME = "Please Wait...";
private volatile boolean load = true;
public void reset() {
load = true;
}
@Override
public void childrenAdded(NodeMemberEvent nme) {
Node added = nme.getNode();
if (added.getDisplayName().equals(DUMMY_NODE_DISPLAY_NAME)) {
// If it's the dummy waiting node, we don't want
// to reload the table headers
return;
Node[] delta = nme.getDelta();
if (load && containsReal(delta)) {
load = false;
setupTable(nme.getNode());
}
setupTable(added);
}
private boolean containsReal(Node[] delta) {
for (Node n : delta) {
if (!n.getDisplayName().equals(DUMMY_NODE_DISPLAY_NAME)) {
return true;
}
}
return false;
}
@Override
public void childrenRemoved(NodeMemberEvent nme) {
}
@Override