From 89f9c9cce25dc19df707847dee14e179a3363516 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Wed, 25 Aug 2021 16:37:26 -0400 Subject: [PATCH] Test fixes: put dialog creation on the swing thread; put layout change call into a task --- .../graph/visualization/DefaultGraphDisplay.java | 13 +++---------- .../actions/VersionControlCheckOutAction.java | 6 +++++- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/Ghidra/Features/GraphServices/src/main/java/ghidra/graph/visualization/DefaultGraphDisplay.java b/Ghidra/Features/GraphServices/src/main/java/ghidra/graph/visualization/DefaultGraphDisplay.java index 8868e1a795..5f32ddba74 100644 --- a/Ghidra/Features/GraphServices/src/main/java/ghidra/graph/visualization/DefaultGraphDisplay.java +++ b/Ghidra/Features/GraphServices/src/main/java/ghidra/graph/visualization/DefaultGraphDisplay.java @@ -1047,15 +1047,8 @@ public class DefaultGraphDisplay implements GraphDisplay { private void setInitialLayoutAlgorithm() { String layoutAlgorithmName = graphDisplayOptions.getDefaultLayoutAlgorithmNameLayout(); layoutAction.setCurrentActionStateByUserData(layoutAlgorithmName); - if (layoutAlgorithmName != null) { - layoutTransitionManager.setLayout(layoutAlgorithmName); - } - else { - LayoutAlgorithm initialLayoutAlgorithm = - layoutTransitionManager.getInitialLayoutAlgorithm(); - initialLayoutAlgorithm.setAfter(() -> centerAndScale()); - viewer.getVisualizationModel().setLayoutAlgorithm(initialLayoutAlgorithm); - } + TaskLauncher + .launch(new SetLayoutTask(viewer, layoutTransitionManager, layoutAlgorithmName)); } /** @@ -1549,7 +1542,7 @@ public class DefaultGraphDisplay implements GraphDisplay { // vertices if (e.getStateChange() == ItemEvent.SELECTED) { Set selectedVertices = getSelectedVertices(); - notifySelectionChanged(new HashSet(selectedVertices)); + notifySelectionChanged(new HashSet<>(selectedVertices)); if (selectedVertices.size() == 1) { // if only one vertex was selected, make it the focused vertex diff --git a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/projectdata/actions/VersionControlCheckOutAction.java b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/projectdata/actions/VersionControlCheckOutAction.java index e031fc1271..1cf08efe1c 100644 --- a/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/projectdata/actions/VersionControlCheckOutAction.java +++ b/Ghidra/Framework/Project/src/main/java/ghidra/framework/main/projectdata/actions/VersionControlCheckOutAction.java @@ -31,6 +31,7 @@ import ghidra.framework.plugintool.Plugin; import ghidra.framework.plugintool.PluginTool; import ghidra.framework.remote.User; import ghidra.util.Msg; +import ghidra.util.Swing; import ghidra.util.exception.CancelledException; import ghidra.util.task.*; import resources.ResourceManager; @@ -107,6 +108,7 @@ public class VersionControlCheckOutAction extends VersionControlAction { private class CheckOutTask extends Task { private Collection files; private boolean exclusive = true; + private CheckoutDialog checkout; CheckOutTask(Collection files) { super("Check Out", true, true, true); @@ -144,7 +146,9 @@ public class VersionControlCheckOutAction extends VersionControlAction { // note: a 'null' user means that we are using a local repository User user = getUser(); if (user != null && user.hasWritePermission()) { - CheckoutDialog checkout = new CheckoutDialog(); + + checkout = Swing.runNow(() -> new CheckoutDialog()); + if (checkout.showDialog(tool) != CheckoutDialog.OK) { return false; }