diff options
| author | 2020-07-06 18:48:36 +0200 | |
|---|---|---|
| committer | 2020-07-06 12:48:36 -0400 | |
| commit | 57af19a99b2c7358d78f102b91482b2073126881 (patch) | |
| tree | c61f16b670a4ee9eed736b38cb7351900587a166 /enigma/src/main/java | |
| parent | Fix crash on remapping [T (#261) (diff) | |
| download | enigma-fork-57af19a99b2c7358d78f102b91482b2073126881.tar.gz enigma-fork-57af19a99b2c7358d78f102b91482b2073126881.tar.xz enigma-fork-57af19a99b2c7358d78f102b91482b2073126881.zip | |
Add menu entry to reload jar & mappings from disk (#263)
* Add button to reload jar & mappings from disk
* Disable menu entry when currently loading
* Add menu entry that reloads mappings only
* Remove duplicate user query code
Diffstat (limited to 'enigma/src/main/java')
| -rw-r--r-- | enigma/src/main/java/cuchaz/enigma/Enigma.java | 17 | ||||
| -rw-r--r-- | enigma/src/main/java/cuchaz/enigma/EnigmaProject.java | 45 |
2 files changed, 35 insertions, 27 deletions
diff --git a/enigma/src/main/java/cuchaz/enigma/Enigma.java b/enigma/src/main/java/cuchaz/enigma/Enigma.java index 2e9be34..d100a75 100644 --- a/enigma/src/main/java/cuchaz/enigma/Enigma.java +++ b/enigma/src/main/java/cuchaz/enigma/Enigma.java | |||
| @@ -11,8 +11,16 @@ | |||
| 11 | 11 | ||
| 12 | package cuchaz.enigma; | 12 | package cuchaz.enigma; |
| 13 | 13 | ||
| 14 | import java.io.IOException; | ||
| 15 | import java.nio.file.Path; | ||
| 16 | import java.util.List; | ||
| 17 | import java.util.ServiceLoader; | ||
| 18 | import java.util.Set; | ||
| 19 | |||
| 14 | import com.google.common.base.Preconditions; | 20 | import com.google.common.base.Preconditions; |
| 15 | import com.google.common.collect.ImmutableListMultimap; | 21 | import com.google.common.collect.ImmutableListMultimap; |
| 22 | import org.objectweb.asm.Opcodes; | ||
| 23 | |||
| 16 | import cuchaz.enigma.analysis.index.JarIndex; | 24 | import cuchaz.enigma.analysis.index.JarIndex; |
| 17 | import cuchaz.enigma.api.EnigmaPlugin; | 25 | import cuchaz.enigma.api.EnigmaPlugin; |
| 18 | import cuchaz.enigma.api.EnigmaPluginContext; | 26 | import cuchaz.enigma.api.EnigmaPluginContext; |
| @@ -25,13 +33,6 @@ import cuchaz.enigma.classprovider.ClassProvider; | |||
| 25 | import cuchaz.enigma.classprovider.CombiningClassProvider; | 33 | import cuchaz.enigma.classprovider.CombiningClassProvider; |
| 26 | import cuchaz.enigma.classprovider.JarClassProvider; | 34 | import cuchaz.enigma.classprovider.JarClassProvider; |
| 27 | import cuchaz.enigma.utils.Utils; | 35 | import cuchaz.enigma.utils.Utils; |
| 28 | import org.objectweb.asm.Opcodes; | ||
| 29 | |||
| 30 | import java.io.IOException; | ||
| 31 | import java.nio.file.Path; | ||
| 32 | import java.util.List; | ||
| 33 | import java.util.ServiceLoader; | ||
| 34 | import java.util.Set; | ||
| 35 | 36 | ||
| 36 | public class Enigma { | 37 | public class Enigma { |
| 37 | public static final String NAME = "Enigma"; | 38 | public static final String NAME = "Enigma"; |
| @@ -64,7 +65,7 @@ public class Enigma { | |||
| 64 | index.indexJar(scope, classProvider, progress); | 65 | index.indexJar(scope, classProvider, progress); |
| 65 | services.get(JarIndexerService.TYPE).forEach(indexer -> indexer.acceptJar(scope, classProvider, index)); | 66 | services.get(JarIndexerService.TYPE).forEach(indexer -> indexer.acceptJar(scope, classProvider, index)); |
| 66 | 67 | ||
| 67 | return new EnigmaProject(this, classProvider, index, Utils.zipSha1(path)); | 68 | return new EnigmaProject(this, path, classProvider, index, Utils.zipSha1(path)); |
| 68 | } | 69 | } |
| 69 | 70 | ||
| 70 | public EnigmaProfile getProfile() { | 71 | public EnigmaProfile getProfile() { |
diff --git a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java index 76413ab..2abd39c 100644 --- a/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java +++ b/enigma/src/main/java/cuchaz/enigma/EnigmaProject.java | |||
| @@ -1,7 +1,26 @@ | |||
| 1 | package cuchaz.enigma; | 1 | package cuchaz.enigma; |
| 2 | 2 | ||
| 3 | import java.io.BufferedWriter; | ||
| 4 | import java.io.IOException; | ||
| 5 | import java.io.PrintWriter; | ||
| 6 | import java.io.StringWriter; | ||
| 7 | import java.nio.file.Files; | ||
| 8 | import java.nio.file.Path; | ||
| 9 | import java.util.Collection; | ||
| 10 | import java.util.List; | ||
| 11 | import java.util.Map; | ||
| 12 | import java.util.Objects; | ||
| 13 | import java.util.concurrent.atomic.AtomicInteger; | ||
| 14 | import java.util.jar.JarEntry; | ||
| 15 | import java.util.jar.JarOutputStream; | ||
| 16 | import java.util.stream.Collectors; | ||
| 17 | import java.util.stream.Stream; | ||
| 18 | |||
| 3 | import com.google.common.base.Functions; | 19 | import com.google.common.base.Functions; |
| 4 | import com.google.common.base.Preconditions; | 20 | import com.google.common.base.Preconditions; |
| 21 | import org.objectweb.asm.ClassWriter; | ||
| 22 | import org.objectweb.asm.tree.ClassNode; | ||
| 23 | |||
| 5 | import cuchaz.enigma.analysis.EntryReference; | 24 | import cuchaz.enigma.analysis.EntryReference; |
| 6 | import cuchaz.enigma.analysis.index.JarIndex; | 25 | import cuchaz.enigma.analysis.index.JarIndex; |
| 7 | import cuchaz.enigma.api.service.NameProposalService; | 26 | import cuchaz.enigma.api.service.NameProposalService; |
| @@ -23,37 +42,21 @@ import cuchaz.enigma.translation.representation.entry.Entry; | |||
| 23 | import cuchaz.enigma.translation.representation.entry.LocalVariableEntry; | 42 | import cuchaz.enigma.translation.representation.entry.LocalVariableEntry; |
| 24 | import cuchaz.enigma.translation.representation.entry.MethodEntry; | 43 | import cuchaz.enigma.translation.representation.entry.MethodEntry; |
| 25 | import cuchaz.enigma.utils.I18n; | 44 | import cuchaz.enigma.utils.I18n; |
| 26 | import org.objectweb.asm.ClassWriter; | ||
| 27 | import org.objectweb.asm.tree.ClassNode; | ||
| 28 | |||
| 29 | import java.io.BufferedWriter; | ||
| 30 | import java.io.IOException; | ||
| 31 | import java.io.PrintWriter; | ||
| 32 | import java.io.StringWriter; | ||
| 33 | import java.nio.file.Files; | ||
| 34 | import java.nio.file.Path; | ||
| 35 | import java.util.Collection; | ||
| 36 | import java.util.List; | ||
| 37 | import java.util.Map; | ||
| 38 | import java.util.Objects; | ||
| 39 | import java.util.concurrent.atomic.AtomicInteger; | ||
| 40 | import java.util.jar.JarEntry; | ||
| 41 | import java.util.jar.JarOutputStream; | ||
| 42 | import java.util.stream.Collectors; | ||
| 43 | import java.util.stream.Stream; | ||
| 44 | 45 | ||
| 45 | public class EnigmaProject { | 46 | public class EnigmaProject { |
| 46 | private final Enigma enigma; | 47 | private final Enigma enigma; |
| 47 | 48 | ||
| 49 | private final Path jarPath; | ||
| 48 | private final ClassProvider classProvider; | 50 | private final ClassProvider classProvider; |
| 49 | private final JarIndex jarIndex; | 51 | private final JarIndex jarIndex; |
| 50 | private final byte[] jarChecksum; | 52 | private final byte[] jarChecksum; |
| 51 | 53 | ||
| 52 | private EntryRemapper mapper; | 54 | private EntryRemapper mapper; |
| 53 | 55 | ||
| 54 | public EnigmaProject(Enigma enigma, ClassProvider classProvider, JarIndex jarIndex, byte[] jarChecksum) { | 56 | public EnigmaProject(Enigma enigma, Path jarPath, ClassProvider classProvider, JarIndex jarIndex, byte[] jarChecksum) { |
| 55 | Preconditions.checkArgument(jarChecksum.length == 20); | 57 | Preconditions.checkArgument(jarChecksum.length == 20); |
| 56 | this.enigma = enigma; | 58 | this.enigma = enigma; |
| 59 | this.jarPath = jarPath; | ||
| 57 | this.classProvider = classProvider; | 60 | this.classProvider = classProvider; |
| 58 | this.jarIndex = jarIndex; | 61 | this.jarIndex = jarIndex; |
| 59 | this.jarChecksum = jarChecksum; | 62 | this.jarChecksum = jarChecksum; |
| @@ -73,6 +76,10 @@ public class EnigmaProject { | |||
| 73 | return enigma; | 76 | return enigma; |
| 74 | } | 77 | } |
| 75 | 78 | ||
| 79 | public Path getJarPath() { | ||
| 80 | return jarPath; | ||
| 81 | } | ||
| 82 | |||
| 76 | public ClassProvider getClassProvider() { | 83 | public ClassProvider getClassProvider() { |
| 77 | return classProvider; | 84 | return classProvider; |
| 78 | } | 85 | } |