diff options
| author | 2018-12-08 11:21:18 +0100 | |
|---|---|---|
| committer | 2018-12-08 11:21:18 +0100 | |
| commit | 4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5 (patch) | |
| tree | 99e43aa385d7fa1248c7fe474c022db55c364592 /src/main/java/cuchaz/enigma/config | |
| parent | work around Procyon weirdness (diff) | |
| download | enigma-fork-4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5.tar.gz enigma-fork-4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5.tar.xz enigma-fork-4bc3afe4ff08b9f0c08952ec7f6e0ac930280cc5.zip | |
add barebones plugin framework, cleanup
Diffstat (limited to 'src/main/java/cuchaz/enigma/config')
| -rw-r--r-- | src/main/java/cuchaz/enigma/config/Config.java | 85 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/config/Themes.java | 22 |
2 files changed, 64 insertions, 43 deletions
diff --git a/src/main/java/cuchaz/enigma/config/Config.java b/src/main/java/cuchaz/enigma/config/Config.java index 8c16c47..47bd0a7 100644 --- a/src/main/java/cuchaz/enigma/config/Config.java +++ b/src/main/java/cuchaz/enigma/config/Config.java | |||
| @@ -6,12 +6,32 @@ import com.google.gson.*; | |||
| 6 | 6 | ||
| 7 | import javax.swing.*; | 7 | import javax.swing.*; |
| 8 | import javax.swing.plaf.metal.MetalLookAndFeel; | 8 | import javax.swing.plaf.metal.MetalLookAndFeel; |
| 9 | import java.awt.*; | ||
| 9 | import java.io.File; | 10 | import java.io.File; |
| 10 | import java.io.IOException; | 11 | import java.io.IOException; |
| 11 | import java.lang.reflect.Type; | 12 | import java.lang.reflect.Type; |
| 12 | import java.nio.charset.Charset; | 13 | import java.nio.charset.Charset; |
| 13 | 14 | ||
| 14 | public class Config { | 15 | public class Config { |
| 16 | public static class AlphaColorEntry { | ||
| 17 | public Integer rgb; | ||
| 18 | public float alpha = 1.0f; | ||
| 19 | |||
| 20 | public AlphaColorEntry(Integer rgb, float alpha) { | ||
| 21 | this.rgb = rgb; | ||
| 22 | this.alpha = alpha; | ||
| 23 | } | ||
| 24 | |||
| 25 | public Color get() { | ||
| 26 | if (rgb == null) { | ||
| 27 | return new Color(0, 0, 0, 0); | ||
| 28 | } | ||
| 29 | |||
| 30 | Color baseColor = new Color(rgb); | ||
| 31 | return new Color(baseColor.getRed(), baseColor.getGreen(), baseColor.getBlue(), (int)(255 * alpha)); | ||
| 32 | } | ||
| 33 | } | ||
| 34 | |||
| 15 | public enum LookAndFeel { | 35 | public enum LookAndFeel { |
| 16 | DEFAULT("Default"), | 36 | DEFAULT("Default"), |
| 17 | DARCULA("Dank"); | 37 | DARCULA("Dank"); |
| @@ -47,16 +67,13 @@ public class Config { | |||
| 47 | config.lineNumbersForeground = 0x333300; | 67 | config.lineNumbersForeground = 0x333300; |
| 48 | config.lineNumbersBackground = 0xEEEEFF; | 68 | config.lineNumbersBackground = 0xEEEEFF; |
| 49 | config.lineNumbersSelected = 0xCCCCEE; | 69 | config.lineNumbersSelected = 0xCCCCEE; |
| 50 | config.obfuscatedColor = 0xFFDCDC; | 70 | config.obfuscatedColor = new AlphaColorEntry(0xFFDCDC, 1.0f); |
| 51 | config.obfuscatedHiglightAlpha = 1.0F; | 71 | config.obfuscatedColorOutline = new AlphaColorEntry(0xA05050, 1.0f); |
| 52 | config.obfuscatedColorOutline = 0xA05050; | 72 | config.proposedColor = new AlphaColorEntry(0x000000, 0.075f); |
| 53 | config.obfuscatedOutlineAlpha = 1.0F; | 73 | config.proposedColorOutline = new AlphaColorEntry(0x000000, 0.15f); |
| 54 | config.deobfuscatedColor = 0xDCFFDC; | 74 | config.deobfuscatedColor = new AlphaColorEntry(0xDCFFDC, 1.0f); |
| 55 | config.deobfuscatedHiglightAlpha = 1.0F; | 75 | config.deobfuscatedColorOutline = new AlphaColorEntry(0x50A050, 1.0f); |
| 56 | config.deobfuscatedColorOutline = 0x50A050; | 76 | config.otherColorOutline = new AlphaColorEntry(0xB4B4B4, 1.0f); |
| 57 | config.deobfuscatedOutlineAlpha = 1.0F; | ||
| 58 | config.otherColorOutline = 0xB4B4B4; | ||
| 59 | config.otherOutlineAlpha = 1.0F; | ||
| 60 | config.editorBackground = 0xFFFFFF; | 77 | config.editorBackground = 0xFFFFFF; |
| 61 | config.highlightColor = 0x3333EE; | 78 | config.highlightColor = 0x3333EE; |
| 62 | config.stringColor = 0xCC6600; | 79 | config.stringColor = 0xCC6600; |
| @@ -72,16 +89,13 @@ public class Config { | |||
| 72 | config.lineNumbersForeground = 0xA4A4A3; | 89 | config.lineNumbersForeground = 0xA4A4A3; |
| 73 | config.lineNumbersBackground = 0x313335; | 90 | config.lineNumbersBackground = 0x313335; |
| 74 | config.lineNumbersSelected = 0x606366; | 91 | config.lineNumbersSelected = 0x606366; |
| 75 | config.obfuscatedColor = 0xFF5555; | 92 | config.obfuscatedColor = new AlphaColorEntry(0xFF5555, 0.3f); |
| 76 | config.obfuscatedHiglightAlpha = 0.3F; | 93 | config.obfuscatedColorOutline = new AlphaColorEntry(0xFF5555, 0.5f); |
| 77 | config.obfuscatedColorOutline = 0xFF5555; | 94 | config.deobfuscatedColor = new AlphaColorEntry(0x50FA7B, 0.3f); |
| 78 | config.obfuscatedOutlineAlpha = 0.5F; | 95 | config.deobfuscatedColorOutline = new AlphaColorEntry(0x50FA7B, 0.5f); |
| 79 | config.deobfuscatedColor = 0x50FA7B; | 96 | config.proposedColor = new AlphaColorEntry(0x606366, 0.3f); |
| 80 | config.deobfuscatedHiglightAlpha = 0.3F; | 97 | config.proposedColorOutline = new AlphaColorEntry(0x606366, 0.5f); |
| 81 | config.deobfuscatedColorOutline = 0x50FA7B; | 98 | config.otherColorOutline = new AlphaColorEntry(0xB4B4B4, 0.0f); |
| 82 | config.deobfuscatedOutlineAlpha = 0.5F; | ||
| 83 | config.otherColorOutline = 0xB4B4B4; | ||
| 84 | config.otherOutlineAlpha = 0.0F; | ||
| 85 | config.editorBackground = 0x282A36; | 99 | config.editorBackground = 0x282A36; |
| 86 | config.highlightColor = 0xFF79C6; | 100 | config.highlightColor = 0xFF79C6; |
| 87 | config.stringColor = 0xF1FA8C; | 101 | config.stringColor = 0xF1FA8C; |
| @@ -103,16 +117,13 @@ public class Config { | |||
| 103 | 117 | ||
| 104 | private final transient Gson gson; // transient to exclude it from being exposed | 118 | private final transient Gson gson; // transient to exclude it from being exposed |
| 105 | 119 | ||
| 106 | public Integer obfuscatedColor; | 120 | public AlphaColorEntry obfuscatedColor; |
| 107 | public float obfuscatedHiglightAlpha; | 121 | public AlphaColorEntry obfuscatedColorOutline; |
| 108 | public Integer obfuscatedColorOutline; | 122 | public AlphaColorEntry proposedColor; |
| 109 | public float obfuscatedOutlineAlpha; | 123 | public AlphaColorEntry proposedColorOutline; |
| 110 | public Integer deobfuscatedColor; | 124 | public AlphaColorEntry deobfuscatedColor; |
| 111 | public float deobfuscatedHiglightAlpha; | 125 | public AlphaColorEntry deobfuscatedColorOutline; |
| 112 | public Integer deobfuscatedColorOutline; | 126 | public AlphaColorEntry otherColorOutline; |
| 113 | public float deobfuscatedOutlineAlpha; | ||
| 114 | public Integer otherColorOutline; | ||
| 115 | public float otherOutlineAlpha; | ||
| 116 | 127 | ||
| 117 | //Defaults found here: https://github.com/Sciss/SyntaxPane/blob/122da367ff7a5d31627a70c62a48a9f0f4f85a0a/src/main/resources/de/sciss/syntaxpane/defaultsyntaxkit/config.properties#L139 | 128 | //Defaults found here: https://github.com/Sciss/SyntaxPane/blob/122da367ff7a5d31627a70c62a48a9f0f4f85a0a/src/main/resources/de/sciss/syntaxpane/defaultsyntaxkit/config.properties#L139 |
| 118 | public Integer editorBackground; | 129 | public Integer editorBackground; |
| @@ -152,8 +163,18 @@ public class Config { | |||
| 152 | public void loadConfig() throws IOException { | 163 | public void loadConfig() throws IOException { |
| 153 | if (!ENIGMA_DIR.exists()) ENIGMA_DIR.mkdirs(); | 164 | if (!ENIGMA_DIR.exists()) ENIGMA_DIR.mkdirs(); |
| 154 | File configFile = new File(ENIGMA_DIR, "config.json"); | 165 | File configFile = new File(ENIGMA_DIR, "config.json"); |
| 155 | if (configFile.exists()) gson.fromJson(Files.asCharSource(configFile, Charset.defaultCharset()).read(), Config.class); | 166 | boolean loaded = false; |
| 156 | else { | 167 | |
| 168 | if (configFile.exists()) { | ||
| 169 | try { | ||
| 170 | gson.fromJson(Files.asCharSource(configFile, Charset.defaultCharset()).read(), Config.class); | ||
| 171 | loaded = true; | ||
| 172 | } catch (Exception e) { | ||
| 173 | e.printStackTrace(); | ||
| 174 | } | ||
| 175 | } | ||
| 176 | |||
| 177 | if (!loaded) { | ||
| 157 | this.reset(); | 178 | this.reset(); |
| 158 | Files.touch(configFile); | 179 | Files.touch(configFile); |
| 159 | } | 180 | } |
diff --git a/src/main/java/cuchaz/enigma/config/Themes.java b/src/main/java/cuchaz/enigma/config/Themes.java index 8a4c341..00324f4 100644 --- a/src/main/java/cuchaz/enigma/config/Themes.java +++ b/src/main/java/cuchaz/enigma/config/Themes.java | |||
| @@ -1,15 +1,12 @@ | |||
| 1 | package cuchaz.enigma.config; | 1 | package cuchaz.enigma.config; |
| 2 | 2 | ||
| 3 | import com.bulenkov.darcula.DarculaLaf; | 3 | import com.google.common.collect.ImmutableMap; |
| 4 | import cuchaz.enigma.gui.Gui; | 4 | import cuchaz.enigma.gui.Gui; |
| 5 | import cuchaz.enigma.gui.MinecraftSyntaxKit; | 5 | import cuchaz.enigma.gui.EnigmaSyntaxKit; |
| 6 | import cuchaz.enigma.gui.highlight.DeobfuscatedHighlightPainter; | 6 | import cuchaz.enigma.gui.highlight.BoxHighlightPainter; |
| 7 | import cuchaz.enigma.gui.highlight.ObfuscatedHighlightPainter; | ||
| 8 | import cuchaz.enigma.gui.highlight.OtherHighlightPainter; | ||
| 9 | import de.sciss.syntaxpane.DefaultSyntaxKit; | 7 | import de.sciss.syntaxpane.DefaultSyntaxKit; |
| 10 | 8 | ||
| 11 | import javax.swing.*; | 9 | import javax.swing.*; |
| 12 | import java.awt.*; | ||
| 13 | import java.io.IOException; | 10 | import java.io.IOException; |
| 14 | 11 | ||
| 15 | public class Themes { | 12 | public class Themes { |
| @@ -27,12 +24,15 @@ public class Themes { | |||
| 27 | } catch (IOException e) { | 24 | } catch (IOException e) { |
| 28 | e.printStackTrace(); | 25 | e.printStackTrace(); |
| 29 | } | 26 | } |
| 30 | MinecraftSyntaxKit.invalidate(); | 27 | EnigmaSyntaxKit.invalidate(); |
| 31 | DefaultSyntaxKit.initKit(); | 28 | DefaultSyntaxKit.initKit(); |
| 32 | DefaultSyntaxKit.registerContentType("text/minecraft", MinecraftSyntaxKit.class.getName()); | 29 | DefaultSyntaxKit.registerContentType("text/enigma-sources", EnigmaSyntaxKit.class.getName()); |
| 33 | gui.obfuscatedHighlightPainter = new ObfuscatedHighlightPainter(); | 30 | gui.boxHighlightPainters = ImmutableMap.of( |
| 34 | gui.deobfuscatedHighlightPainter = new DeobfuscatedHighlightPainter(); | 31 | "obfuscated", BoxHighlightPainter.create(Config.getInstance().obfuscatedColor, Config.getInstance().obfuscatedColorOutline), |
| 35 | gui.otherHighlightPainter = new OtherHighlightPainter(); | 32 | "proposed", BoxHighlightPainter.create(Config.getInstance().proposedColor, Config.getInstance().proposedColorOutline), |
| 33 | "deobfuscated", BoxHighlightPainter.create(Config.getInstance().deobfuscatedColor, Config.getInstance().deobfuscatedColorOutline), | ||
| 34 | "other", BoxHighlightPainter.create(null, Config.getInstance().otherColorOutline) | ||
| 35 | ); | ||
| 36 | gui.setEditorTheme(Config.getInstance().lookAndFeel); | 36 | gui.setEditorTheme(Config.getInstance().lookAndFeel); |
| 37 | SwingUtilities.updateComponentTreeUI(gui.getFrame()); | 37 | SwingUtilities.updateComponentTreeUI(gui.getFrame()); |
| 38 | } | 38 | } |