From 131538fe52f9e0969277a91407cd06db6eda77c5 Mon Sep 17 00:00:00 2001 From: Yanis48 Date: Wed, 7 Apr 2021 13:17:34 +0200 Subject: Allow only one selected entry in trees Didn't cause any issue, but who knows --- enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java | 8 ++++---- .../main/java/cuchaz/enigma/gui/panels/StructurePanel.java | 2 ++ .../java/cuchaz/enigma/gui/util/SingleTreeSelectionModel.java | 11 +++++++++++ 3 files changed, 17 insertions(+), 4 deletions(-) create mode 100644 enigma-swing/src/main/java/cuchaz/enigma/gui/util/SingleTreeSelectionModel.java diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java index ce4823e2..aaa04460 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/Gui.java @@ -47,10 +47,7 @@ import cuchaz.enigma.gui.renderer.CallsTreeCellRenderer; import cuchaz.enigma.gui.renderer.ImplementationsTreeCellRenderer; import cuchaz.enigma.gui.renderer.InheritanceTreeCellRenderer; import cuchaz.enigma.gui.renderer.MessageListCellRenderer; -import cuchaz.enigma.gui.util.History; -import cuchaz.enigma.gui.util.LanguageChangeListener; -import cuchaz.enigma.gui.util.LanguageUtil; -import cuchaz.enigma.gui.util.ScaleUtil; +import cuchaz.enigma.gui.util.*; import cuchaz.enigma.network.Message; import cuchaz.enigma.network.packet.MarkDeobfuscatedC2SPacket; import cuchaz.enigma.network.packet.MessageC2SPacket; @@ -172,6 +169,7 @@ public class Gui implements LanguageChangeListener { inheritanceTree = new JTree(); inheritanceTree.setModel(null); inheritanceTree.setCellRenderer(new InheritanceTreeCellRenderer(this)); + inheritanceTree.setSelectionModel(new SingleTreeSelectionModel()); inheritanceTree.setShowsRootHandles(true); inheritanceTree.addMouseListener(new MouseAdapter() { @Override @@ -205,6 +203,7 @@ public class Gui implements LanguageChangeListener { implementationsTree = new JTree(); implementationsTree.setModel(null); implementationsTree.setCellRenderer(new ImplementationsTreeCellRenderer(this)); + implementationsTree.setSelectionModel(new SingleTreeSelectionModel()); implementationsTree.setShowsRootHandles(true); implementationsTree.addMouseListener(new MouseAdapter() { @Override @@ -235,6 +234,7 @@ public class Gui implements LanguageChangeListener { callsTree = new JTree(); callsTree.setModel(null); callsTree.setCellRenderer(new CallsTreeCellRenderer(this)); + callsTree.setSelectionModel(new SingleTreeSelectionModel()); callsTree.setShowsRootHandles(true); callsTree.addMouseListener(new MouseAdapter() { @SuppressWarnings("unchecked") diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/StructurePanel.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/StructurePanel.java index 6078145f..d8c46614 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/StructurePanel.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/panels/StructurePanel.java @@ -3,6 +3,7 @@ package cuchaz.enigma.gui.panels; import cuchaz.enigma.analysis.StructureTreeNode; import cuchaz.enigma.gui.Gui; import cuchaz.enigma.gui.util.GuiUtil; +import cuchaz.enigma.gui.util.SingleTreeSelectionModel; import cuchaz.enigma.translation.representation.entry.ClassEntry; import cuchaz.enigma.translation.representation.entry.FieldEntry; import cuchaz.enigma.translation.representation.entry.MethodEntry; @@ -32,6 +33,7 @@ public class StructurePanel extends JPanel { this.structureTree = new JTree(); this.structureTree.setModel(null); this.structureTree.setCellRenderer(new StructureTreeCellRenderer(gui)); + this.structureTree.setSelectionModel(new SingleTreeSelectionModel()); this.structureTree.setShowsRootHandles(true); this.structureTree.addMouseListener(new MouseAdapter() { @Override diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/util/SingleTreeSelectionModel.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/util/SingleTreeSelectionModel.java new file mode 100644 index 00000000..8915264b --- /dev/null +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/util/SingleTreeSelectionModel.java @@ -0,0 +1,11 @@ +package cuchaz.enigma.gui.util; + +import javax.swing.tree.DefaultTreeSelectionModel; +import javax.swing.tree.TreeSelectionModel; + +public class SingleTreeSelectionModel extends DefaultTreeSelectionModel { + + public SingleTreeSelectionModel() { + this.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); + } +} -- cgit v1.2.3