mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-06 21:00:22 +00:00
Added fix to ensure DataResultPanel sets up activated tabs on the EDT. Cleaned up NodeListener logic.
This commit is contained in:
parent
4b6d257760
commit
81b5761684
@ -26,6 +26,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Level;
|
||||
import javax.swing.JTabbedPane;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
import org.openide.explorer.ExplorerManager;
|
||||
@ -379,7 +380,10 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
|
||||
}
|
||||
}
|
||||
|
||||
private void setupTabs(Node selectedNode) {
|
||||
private void setupTabs(final Node selectedNode) {
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
//update/disable tabs based on if supported for this node
|
||||
int drvC = 0;
|
||||
for (UpdateWrapper drv : viewers) {
|
||||
@ -394,7 +398,7 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
|
||||
|
||||
// if the current tab is no longer enabled, then find one that is
|
||||
boolean hasViewerEnabled = true;
|
||||
int currentActiveTab = this.dataResultTabbedPanel.getSelectedIndex();
|
||||
int currentActiveTab = dataResultTabbedPanel.getSelectedIndex();
|
||||
if ((currentActiveTab == -1) || (dataResultTabbedPanel.isEnabledAt(currentActiveTab) == false)) {
|
||||
hasViewerEnabled = false;
|
||||
for (int i = 0; i < dataResultTabbedPanel.getTabCount(); i++) {
|
||||
@ -414,6 +418,9 @@ public class DataResultPanel extends javax.swing.JPanel implements DataResult, C
|
||||
viewers.get(currentActiveTab).setNode(selectedNode);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setTitle(String title) {
|
||||
@ -604,9 +611,15 @@ 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...";
|
||||
|
||||
@Override
|
||||
public void childrenAdded(NodeMemberEvent nme) {
|
||||
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;
|
||||
}
|
||||
setupTabs(nme.getNode());
|
||||
}
|
||||
|
||||
|
@ -481,20 +481,18 @@ public class DataResultViewerTable extends AbstractDataResultViewer {
|
||||
|
||||
@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;
|
||||
}
|
||||
setupTable(added);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void childrenRemoved(NodeMemberEvent nme) {
|
||||
Node removed = nme.getDelta()[0];
|
||||
if (! removed.getDisplayName().equals(DUMMY_NODE_DISPLAY_NAME)) {
|
||||
// If it's not the dummy waiting node, we don't want
|
||||
// to reload the table headers
|
||||
return;
|
||||
}
|
||||
|
||||
// dummy node removed. Reset the table headers.
|
||||
Node node = nme.getNode();
|
||||
setupTable(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user