diff --git a/enigma-swing/src/main/java/org/quiltmc/enigma/gui/dialog/StatsDialog.java b/enigma-swing/src/main/java/org/quiltmc/enigma/gui/dialog/StatsDialog.java index b50e9c40e..d54f68952 100644 --- a/enigma-swing/src/main/java/org/quiltmc/enigma/gui/dialog/StatsDialog.java +++ b/enigma-swing/src/main/java/org/quiltmc/enigma/gui/dialog/StatsDialog.java @@ -95,10 +95,11 @@ public static void show(Gui gui, ProjectStatsResult result, String packageName) filterButton.addActionListener(action -> { dialog.dispose(); ProgressDialog.runOffThread(gui, listener -> { + String topLevelPackageSlashes = topLevelPackage.getText().replace('.', '/'); Config.main().stats.lastTopLevelPackage.setValue(topLevelPackage.getText(), true); - ProjectStatsResult projectResult = gui.getController().getStatsGenerator().getResult(EditableType.toStatTypes(gui.getEditableTypes()), syntheticParametersOption.isSelected()).filter(Config.main().stats.lastTopLevelPackage.value()); - SwingUtilities.invokeLater(() -> show(gui, projectResult, Config.main().stats.lastTopLevelPackage.value())); + ProjectStatsResult projectResult = gui.getController().getStatsGenerator().getResult(EditableType.toStatTypes(gui.getEditableTypes()), syntheticParametersOption.isSelected()).filter(topLevelPackageSlashes); + SwingUtilities.invokeLater(() -> show(gui, projectResult, topLevelPackageSlashes)); }); }); contentPane.add(filterButton, cb1.pos(0, result.getOverall().getTypes().size() + 3).anchor(GridBagConstraints.EAST).build()); diff --git a/enigma/src/main/java/org/quiltmc/enigma/api/stats/StatsResult.java b/enigma/src/main/java/org/quiltmc/enigma/api/stats/StatsResult.java index ad67869af..fa6af1546 100644 --- a/enigma/src/main/java/org/quiltmc/enigma/api/stats/StatsResult.java +++ b/enigma/src/main/java/org/quiltmc/enigma/api/stats/StatsResult.java @@ -72,11 +72,12 @@ public Set getTypes() { /** * Builds a tree representation of this stats result. - * @param topLevelPackageDot the top level package, separated by dots + * @param topLevelPackage the top level package * @param includedTypes the types to include in the tree * @return the tree */ - public StatsTree buildTree(String topLevelPackageDot, Set includedTypes) { + public StatsTree buildTree(String topLevelPackage, Set includedTypes) { + topLevelPackage = topLevelPackage.replace('/', '.'); StatsTree tree = new StatsTree<>(); for (Map.Entry> typedEntry : this.unmappedTreeData.entrySet()) { @@ -85,7 +86,7 @@ public StatsTree buildTree(String topLevelPackageDot, Set inc } for (Map.Entry entry : typedEntry.getValue().entrySet()) { - if (entry.getKey().startsWith(topLevelPackageDot)) { + if (entry.getKey().startsWith(topLevelPackage)) { StatsTree.Node node = tree.getNode(entry.getKey()); int value = node.getValue() == null ? 0 : node.getValue();