From 75c6da42ca360084b57f7a384cd4a7bf93bdea0a Mon Sep 17 00:00:00 2001 From: NebelNidas Date: Mon, 9 Oct 2023 14:22:40 +0200 Subject: Use System Property for Mapping-IO --- .../main/java/cuchaz/enigma/gui/GuiController.java | 48 ++++++---------------- .../java/cuchaz/enigma/gui/elements/MenuBar.java | 42 +++++-------------- 2 files changed, 22 insertions(+), 68 deletions(-) (limited to 'enigma-swing') 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 2c153050..88dc070d 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/GuiController.java @@ -29,11 +29,6 @@ import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import com.google.common.collect.Lists; -import net.fabricmc.mappingio.MappingReader; -import net.fabricmc.mappingio.MappingWriter; -import net.fabricmc.mappingio.tree.MemoryMappingTree; -import net.fabricmc.mappingio.tree.VisitOrder; -import net.fabricmc.mappingio.tree.VisitableMappingTree; import cuchaz.enigma.Enigma; import cuchaz.enigma.EnigmaProfile; @@ -82,7 +77,6 @@ import cuchaz.enigma.translation.mapping.EntryUtil; import cuchaz.enigma.translation.mapping.MappingDelta; import cuchaz.enigma.translation.mapping.ResolutionStrategy; import cuchaz.enigma.translation.mapping.serde.MappingFormat; -import cuchaz.enigma.translation.mapping.serde.MappingIoConverter; import cuchaz.enigma.translation.mapping.serde.MappingParseException; import cuchaz.enigma.translation.mapping.serde.MappingSaveParameters; import cuchaz.enigma.translation.mapping.tree.EntryTree; @@ -105,7 +99,6 @@ public class GuiController implements ClientPacketHandler { private Path loadedMappingPath; private MappingFormat loadedMappingFormat; - public boolean useMappingIo = true; private ClassHandleProvider chp; @@ -146,6 +139,11 @@ public class GuiController implements ClientPacketHandler { this.gui.onCloseJar(); } + public CompletableFuture openMappings(MappingFormat format, Path path, boolean useMappingIo) { + System.getProperties().setProperty("enigma.use_mappingio", useMappingIo ? "true" : "false"); + return openMappings(format, path); + } + public CompletableFuture openMappings(MappingFormat format, Path path) { if (project == null) { return CompletableFuture.completedFuture(null); @@ -156,26 +154,7 @@ public class GuiController implements ClientPacketHandler { return ProgressDialog.runOffThread(gui.getFrame(), progress -> { try { MappingSaveParameters saveParameters = enigma.getProfile().getMappingSaveParameters(); - EntryTree mappings; - - if (useMappingIo) { - String loadingMessage; - - if (format.getMappingIoCounterpart().hasSingleFile()) { - loadingMessage = I18n.translate("progress.mappings.loading_file"); - } else { - loadingMessage = I18n.translate("progress.mappings.loading_directory"); - } - - progress.init(1, loadingMessage); - VisitableMappingTree mappingTree = new MemoryMappingTree(); - MappingReader.read(path, format.getMappingIoCounterpart(), mappingTree); - mappings = MappingIoConverter.fromMappingIo(mappingTree, progress); - } else { - mappings = format.read(path, progress, saveParameters); - } - - project.setMappings(mappings); + project.setMappings(format.read(path, progress, saveParameters)); loadedMappingFormat = format; loadedMappingPath = path; @@ -203,6 +182,11 @@ public class GuiController implements ClientPacketHandler { return saveMappings(path, loadedMappingFormat); } + public CompletableFuture saveMappings(Path path, MappingFormat format, boolean useMappingIo) { + System.getProperties().setProperty("enigma.use_mappingio", useMappingIo ? "true" : "false"); + return saveMappings(path, format); + } + /** * Saves the mappings, with a dialog popping up, showing the progress. * @@ -229,15 +213,7 @@ public class GuiController implements ClientPacketHandler { loadedMappingFormat = format; loadedMappingPath = path; - if (useMappingIo) { - VisitableMappingTree mappingTree = MappingIoConverter.toMappingIo(mapper.getObfToDeobf(), progress); - - progress.init(1, I18n.translate("progress.mappings.writing")); - MappingWriter writer = MappingWriter.create(path, format.getMappingIoCounterpart()); - mappingTree.accept(writer, VisitOrder.createByName()); - writer.close(); - progress.step(1, I18n.translate("progress.done")); - } else if (saveAll) { + if (saveAll) { format.write(mapper.getObfToDeobf(), path, progress, saveParameters); } else { format.write(mapper.getObfToDeobf(), delta, path, progress, saveParameters); diff --git a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java index 59362e52..30e35861 100644 --- a/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java +++ b/enigma-swing/src/main/java/cuchaz/enigma/gui/elements/MenuBar.java @@ -7,7 +7,6 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.Arrays; -import java.util.List; import java.util.Locale; import java.util.Map; import java.util.stream.Collectors; @@ -404,22 +403,11 @@ public class MenuBar { } private static void prepareOpenMappingsMenu(JMenu openMappingsMenu, Gui gui) { - List readableMappingIoFormats = Arrays.asList( - MappingFormat.ENIGMA_DIRECTORY, - MappingFormat.ENIGMA_FILE, - MappingFormat.TINY_FILE, - MappingFormat.TINY_V2, - MappingFormat.SRG_FILE, - MappingFormat.TSRG_FILE, - MappingFormat.TSRG_2_FILE, - MappingFormat.PROGUARD); - // Mapping-IO readers - for (MappingFormat format : readableMappingIoFormats) { - addOpenMappingsMenuEntry(I18n.translate(format.getMappingIoCounterpart().name), - format, true, openMappingsMenu, gui); - } - + MappingFormat.getReadableFormats().stream() + .filter(format -> format.getMappingIoCounterpart() != null) + .forEach(format -> addOpenMappingsMenuEntry(I18n.translate(format.getMappingIoCounterpart().name), + format, true, openMappingsMenu, gui)); openMappingsMenu.addSeparator(); // Enigma's own readers @@ -438,8 +426,7 @@ public class MenuBar { if (gui.enigmaMappingsFileChooser.showOpenDialog(gui.getFrame()) == JFileChooser.APPROVE_OPTION) { File selectedFile = gui.enigmaMappingsFileChooser.getSelectedFile(); - gui.getController().useMappingIo = mappingIo; - gui.getController().openMappings(format, selectedFile.toPath()); + gui.getController().openMappings(format, selectedFile.toPath(), mappingIo); UiConfig.setLastSelectedDir(gui.enigmaMappingsFileChooser.getCurrentDirectory().toString()); } }); @@ -447,19 +434,11 @@ public class MenuBar { } private static void prepareSaveMappingsAsMenu(JMenu saveMappingsAsMenu, JMenuItem saveMappingsItem, Gui gui) { - List writableMappingIoFormats = Arrays.asList( - MappingFormat.ENIGMA_DIRECTORY, - MappingFormat.ENIGMA_FILE, - MappingFormat.TINY_FILE, - MappingFormat.TINY_V2, - MappingFormat.PROGUARD); - // Mapping-IO writers - for (MappingFormat format : writableMappingIoFormats) { - addSaveMappingsAsMenuEntry(format.getMappingIoCounterpart().name, - format, true, saveMappingsAsMenu, saveMappingsItem, gui); - } - + MappingFormat.getWritableFormats().stream() + .filter(format -> format.hasMappingIoWriter()) + .forEach(format -> addSaveMappingsAsMenuEntry(format.getMappingIoCounterpart().name, + format, true, saveMappingsAsMenu, saveMappingsItem, gui)); saveMappingsAsMenu.addSeparator(); // Enigma's own writers @@ -480,8 +459,7 @@ public class MenuBar { } if (gui.enigmaMappingsFileChooser.showSaveDialog(gui.getFrame()) == JFileChooser.APPROVE_OPTION) { - gui.getController().useMappingIo = mappingIo; - gui.getController().saveMappings(gui.enigmaMappingsFileChooser.getSelectedFile().toPath(), format); + gui.getController().saveMappings(gui.enigmaMappingsFileChooser.getSelectedFile().toPath(), format, mappingIo); saveMappingsItem.setEnabled(true); UiConfig.setLastSelectedDir(gui.enigmaMappingsFileChooser.getCurrentDirectory().toString()); } -- cgit v1.2.3