From b7427210851202a748ae0e25693f19e01b2afc4a Mon Sep 17 00:00:00 2001 From: Joe Date: Thu, 21 Aug 2025 02:39:03 +0100 Subject: Add ProjectService to listen for the project lifecycle --- .../src/main/java/cuchaz/enigma/gui/GuiController.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'enigma-swing/src/main/java') diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java index a9795bc..9faa0d0 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java @@ -49,6 +49,7 @@ import cuchaz.enigma.analysis.StructureTreeOptions; import cuchaz.enigma.api.DataInvalidationEvent; import cuchaz.enigma.api.DataInvalidationListener; import cuchaz.enigma.api.service.ObfuscationTestService; +import cuchaz.enigma.api.service.ProjectService; import cuchaz.enigma.api.view.GuiView; import cuchaz.enigma.api.view.entry.EntryReferenceView; import cuchaz.enigma.classhandle.ClassHandle; @@ -133,11 +134,15 @@ public class GuiController implements ClientPacketHandler, GuiView, DataInvalida this.gui.onStartOpenJar(); return ProgressDialog.runOffThread(gui.getFrame(), progress -> { - project = enigma.openJars(jarPaths, new ClasspathClassProvider(), progress); + project = enigma.openJars(jarPaths, new ClasspathClassProvider(), progress, false); project.addDataInvalidationListener(this); indexTreeBuilder = new IndexTreeBuilder(project.getJarIndex()); chp = new ClassHandleProvider(project, UiConfig.getDecompiler().service); SwingUtilities.invokeLater(() -> { + for (ProjectService projectService : enigma.getServices().get(ProjectService.TYPE)) { + projectService.onProjectOpen(project); + } + gui.onFinishOpenJar(getFileNames(jarPaths)); refreshClasses(); }); @@ -152,6 +157,10 @@ public class GuiController implements ClientPacketHandler, GuiView, DataInvalida } public void closeJar() { + for (ProjectService projectService : enigma.getServices().get(ProjectService.TYPE)) { + projectService.onProjectClose(project); + } + this.chp.destroy(); this.chp = null; this.project = null; -- cgit v1.2.3