From 39233ca3eb697432b4cd413bbe9e59dc5365563e Mon Sep 17 00:00:00 2001 From: Konloch Date: Thu, 15 Jul 2021 08:29:42 -0700 Subject: [PATCH] Swing Fixes Call on the tree update from the swing thread --- .../gui/resourcelist/ResourceListPane.java | 21 ++++++++----------- .../resources/importing/ImportResource.java | 12 ++++++++--- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/gui/resourcelist/ResourceListPane.java b/src/main/java/the/bytecode/club/bytecodeviewer/gui/resourcelist/ResourceListPane.java index 5e3bf31a..1072c3d2 100644 --- a/src/main/java/the/bytecode/club/bytecodeviewer/gui/resourcelist/ResourceListPane.java +++ b/src/main/java/the/bytecode/club/bytecodeviewer/gui/resourcelist/ResourceListPane.java @@ -14,14 +14,7 @@ import java.io.File; import java.util.Enumeration; import java.util.Map.Entry; import java.util.Objects; -import javax.swing.AbstractAction; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JPanel; -import javax.swing.JPopupMenu; -import javax.swing.JScrollPane; -import javax.swing.JTextField; -import javax.swing.JTree; +import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; @@ -163,7 +156,6 @@ public class ResourceListPane extends TranslatedVisibleComponent implements File { try { - //TODO refresh while preserving the opened files from before the refresh treeRoot.removeAllChildren(); for (ResourceContainer container : BytecodeViewer.resourceContainers) @@ -347,9 +339,14 @@ public class ResourceListPane extends TranslatedVisibleComponent implements File try { imp.getImporter().open(tempFile); - try { - updateTree(); - } catch (NullPointerException ignored) { } + SwingUtilities.invokeLater(()-> + { + try + { + updateTree(); + } + catch (NullPointerException ignored) { } + }); } catch (Exception e) { diff --git a/src/main/java/the/bytecode/club/bytecodeviewer/resources/importing/ImportResource.java b/src/main/java/the/bytecode/club/bytecodeviewer/resources/importing/ImportResource.java index 8746aa5d..80e88eb4 100644 --- a/src/main/java/the/bytecode/club/bytecodeviewer/resources/importing/ImportResource.java +++ b/src/main/java/the/bytecode/club/bytecodeviewer/resources/importing/ImportResource.java @@ -4,6 +4,7 @@ import org.apache.commons.io.FilenameUtils; import the.bytecode.club.bytecodeviewer.BytecodeViewer; import the.bytecode.club.bytecodeviewer.Settings; +import javax.swing.*; import java.io.File; /*************************************************************************** @@ -74,9 +75,14 @@ public class ImportResource implements Runnable finally { BytecodeViewer.updateBusyStatus(false); - try { - BytecodeViewer.viewer.resourcePane.updateTree(); - } catch (NullPointerException ignored) { } + SwingUtilities.invokeLater(()-> + { + try + { + BytecodeViewer.viewer.resourcePane.updateTree(); + } + catch (NullPointerException ignored) { } + }); } }