Changes to the GTree code to improve performance. Completely changed

GTreeNode base implementations and filtering code.
This commit is contained in:
ghidravore 2019-09-11 15:54:23 -04:00
parent 04f7366a62
commit 5c6b32714c
137 changed files with 2834 additions and 3081 deletions

View file

@ -15,12 +15,11 @@
*/
package ghidra.bitpatterns.info;
import java.util.Collections;
import java.util.List;
import java.util.*;
import javax.swing.Icon;
import docking.widgets.tree.AbstractGTreeNode;
import docking.widgets.tree.GTreeNode;
import docking.widgets.tree.GTreeNode;
import resources.ResourceManager;
@ -29,7 +28,7 @@ import resources.ResourceManager;
* An object of this class represents a node in a tree of instruction sequences.
*
*/
public class FunctionBitPatternsGTreeNode extends AbstractGTreeNode {
public class FunctionBitPatternsGTreeNode extends GTreeNode {
private static final Icon DISABLED_ICON = ResourceManager.loadImage("images/ledred.png");
@ -65,7 +64,7 @@ public class FunctionBitPatternsGTreeNode extends AbstractGTreeNode {
for (GTreeNode node : getChildren()) {
((FunctionBitPatternsGTreeNode) node).sortAndSetFields();
}
List<GTreeNode> children = getChildren();
List<GTreeNode> children = new ArrayList<>(getChildren());
Collections.sort(children);
setChildren(children);
//now set isLeaf

View file

@ -15,12 +15,11 @@
*/
package ghidra.bitpatterns.info;
import java.util.Collections;
import java.util.List;
import java.util.*;
import javax.swing.Icon;
import docking.widgets.tree.AbstractGTreeRootNode;
import docking.widgets.tree.GTreeNode;
import docking.widgets.tree.GTreeNode;
/**
@ -30,7 +29,7 @@ import docking.widgets.tree.GTreeNode;
*
*/
public class FunctionBitPatternsGTreeRootNode extends AbstractGTreeRootNode {
public class FunctionBitPatternsGTreeRootNode extends GTreeNode {
@Override
public String getName() {
@ -54,7 +53,7 @@ public class FunctionBitPatternsGTreeRootNode extends AbstractGTreeRootNode {
for (GTreeNode node : getChildren()) {
((FunctionBitPatternsGTreeNode) node).sortAndSetFields();
}
List<GTreeNode> children = getChildren();
List<GTreeNode> children = new ArrayList<>(getChildren());
Collections.sort(children);
setChildren(children);
}