X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fserializing%2FCodeSnippetSupplier.java;h=8c13e96a96eff76793c5b5f3e6470cb1dcdab734;hb=9ca90120a47e07c9182162351dc47aa89ae703be;hp=abd0e73ca1933e3aeb0c6444fe5d8c3a7e11f477;hpb=5897a6d81c418d27ca5bb402e5f1038e10a191fb;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/CodeSnippetSupplier.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/CodeSnippetSupplier.java index abd0e73c..8c13e96a 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/CodeSnippetSupplier.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/serializing/CodeSnippetSupplier.java @@ -7,14 +7,11 @@ import java.util.Map; import com.google.gson.JsonElement; -import net.haspamelodica.swt.helper.swtobjectwrappers.Point; -import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle; import net.mograsim.logic.ui.serializing.snippets.Renderer; import net.mograsim.logic.ui.serializing.snippets.RendererProvider; +import net.mograsim.logic.ui.serializing.snippets.outlinerenderers.DefaultOutlineRendererProvider; +import net.mograsim.logic.ui.serializing.snippets.symbolrenderers.DefaultSymbolRendererProvider; import net.mograsim.logic.ui.util.JsonHandler; -import net.mograsim.preferences.ColorDefinition; -import net.mograsim.preferences.ColorManager; -import net.mograsim.preferences.Preferences; public class CodeSnippetSupplier { @@ -27,29 +24,13 @@ public class CodeSnippetSupplier private static final RendererProvider defaultSymbolRendererProvider; static { - // TODO this code does not belong here - defaultOutlineRendererProvider = (comp, params) -> (gc, visReg) -> - { - ColorDefinition fg = Preferences.current().getColorDefinition("net.mograsim.logic.ui.color.foreground"); - if (fg != null) - gc.setForeground(ColorManager.current().toColor(fg)); - gc.drawRectangle(comp.getBounds()); - }; - defaultSymbolRendererProvider = (comp, params) -> (gc, visReg) -> - { - ColorDefinition fg = Preferences.current().getColorDefinition("net.mograsim.logic.ui.color.text"); - if (fg != null) - gc.setForeground(ColorManager.current().toColor(fg)); - String id = "TODO";// TODO add an ID of sorts to DeserializedSubmodelComponent - Point idSize = gc.textExtent(id); - Rectangle bounds = comp.getBounds(); - gc.drawText(id, bounds.x + (bounds.width - idSize.x) / 2, bounds.y + (bounds.height - idSize.y) / 2, true); - }; + defaultOutlineRendererProvider = new DefaultOutlineRendererProvider(); + defaultSymbolRendererProvider = new DefaultSymbolRendererProvider(); } static { - try (InputStream s = IndirectGUIComponentCreator.class.getResourceAsStream("./mapping.json")) + try (InputStream s = IndirectGUIComponentCreator.class.getResourceAsStream("./standardSnippetIDMapping.json")) { if (s == null) throw new IOException("Resource not found"); @@ -105,23 +86,24 @@ public class CodeSnippetSupplier return specializedCode; } } + System.err.println("Couldn't load snippet " + id + "; using default"); return defaultSnippet; } private static void tryLoadSnippetClass(String snippetClassName) { - tryLoadClass(snippetClassName, "Error getting snippet code for component class: %s\n"); + tryInvokeStaticInitializer(snippetClassName, "Error getting snippet class: %s: %s\n"); } - public static void tryLoadClass(String className, String errorMessageFormat) + public static void tryInvokeStaticInitializer(String className, String errorMessageFormat) { try { - CodeSnippetSupplier.class.getClassLoader().loadClass(className); + Class.forName(className, true, CodeSnippetSupplier.class.getClassLoader()); } - catch (@SuppressWarnings("unused") ClassNotFoundException e) + catch (ClassNotFoundException e) { - System.err.printf(errorMessageFormat, className); + System.err.printf(errorMessageFormat, className, "ClassNotFoundException thrown: " + e.getMessage()); } } } \ No newline at end of file