X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fserializing%2FCodeSnippetSupplier.java;h=a6b9dae7868f4ece349bdf969cbe92dceaf21966;hb=69cb6725ef670328959d55649257ded6ac924b33;hp=d6bdbb45260bed16ff2b3711993b3e0fa5c6fda1;hpb=6a7d43ee5a2b2964389e46fc027e47e426774ea1;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 d6bdbb45..a6b9dae7 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 @@ -5,8 +5,10 @@ import java.io.InputStream; import java.util.HashMap; import java.util.Map; +import net.mograsim.logic.ui.serializing.snippets.HighLevelStateHandler; import net.mograsim.logic.ui.serializing.snippets.Renderer; import net.mograsim.logic.ui.serializing.snippets.SnippetSupplier; +import net.mograsim.logic.ui.serializing.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler; import net.mograsim.logic.ui.serializing.snippets.outlinerenderers.DefaultOutlineRenderer; import net.mograsim.logic.ui.serializing.snippets.symbolrenderers.DefaultSymbolRenderer; import net.mograsim.logic.ui.util.JsonHandler; @@ -14,24 +16,26 @@ import net.mograsim.logic.ui.util.JsonHandler; public class CodeSnippetSupplier { // public static members - public static final CodeSnippetSupplier symbolRendererProviderSupplier; - public static final CodeSnippetSupplier outlineRendererProviderSupplier; + public static final CodeSnippetSupplier symbolRendererSupplier; + public static final CodeSnippetSupplier outlineRendererSupplier; + public static final CodeSnippetSupplier highLevelStateHandlerSupplier; static { - symbolRendererProviderSupplier = new CodeSnippetSupplier<>(SnippetSupplier.create(Void.class, DefaultSymbolRenderer::new)); - outlineRendererProviderSupplier = new CodeSnippetSupplier<>(SnippetSupplier.create(Void.class, DefaultOutlineRenderer::new)); + symbolRendererSupplier = new CodeSnippetSupplier<>(SnippetSupplier.create(Void.class, DefaultSymbolRenderer::new)); + outlineRendererSupplier = new CodeSnippetSupplier<>(SnippetSupplier.create(Void.class, DefaultOutlineRenderer::new)); + highLevelStateHandlerSupplier = new CodeSnippetSupplier<>(SnippetSupplier.create(Void.class, DefaultHighLevelStateHandler::new)); } // per-instance members private final Map standardSnippetIDClassNames = new HashMap<>(); - private final Map> snippetProvidersForClassNames = new HashMap<>(); - private final SnippetSupplier defaultSnippetProvider; + private final Map> snippetSuppliersForClassNames = new HashMap<>(); + private final SnippetSupplier defaultSnippetSupplier; - private CodeSnippetSupplier(SnippetSupplier defaultSnippetProvider) + private CodeSnippetSupplier(SnippetSupplier defaultSnippetSupplier) { - this.defaultSnippetProvider = defaultSnippetProvider; + this.defaultSnippetSupplier = defaultSnippetSupplier; } public void addStandardSnippetID(String standardSnippetID, String associatedSnippetClassName) @@ -39,31 +43,31 @@ public class CodeSnippetSupplier standardSnippetIDClassNames.put(standardSnippetID, associatedSnippetClassName); } - public void setSnippetProvider(String id, SnippetSupplier snippetProvider) + public void setSnippetSupplier(String id, SnippetSupplier snippetSupplier) { - snippetProvidersForClassNames.put(id, snippetProvider); + snippetSuppliersForClassNames.put(id, snippetSupplier); } // TODO report errors - public SnippetSupplier getSnippetProvider(String id) + public SnippetSupplier getSnippetSupplier(String id) { if (id != null) { - String snippetProviderClassName; + String snippetClassName; if (id.startsWith("class:")) - snippetProviderClassName = id.substring(6); + snippetClassName = id.substring(6); else - snippetProviderClassName = standardSnippetIDClassNames.get(id); - if (snippetProviderClassName != null) + snippetClassName = standardSnippetIDClassNames.get(id); + if (snippetClassName != null) { - tryLoadSnippetClass(snippetProviderClassName); - SnippetSupplier snippetProvider = snippetProvidersForClassNames.get(snippetProviderClassName); - if (snippetProvider != null) - return snippetProvider; + tryLoadSnippetClass(snippetClassName); + SnippetSupplier snippetSupplier = snippetSuppliersForClassNames.get(snippetClassName); + if (snippetSupplier != null) + return snippetSupplier; } + System.err.println("Couldn't load snippet " + id + "; using default"); } - System.err.println("Couldn't load snippet " + id + "; using default"); - return defaultSnippetProvider; + return defaultSnippetSupplier; } // static helpers @@ -75,8 +79,9 @@ public class CodeSnippetSupplier if (s == null) throw new IOException("Resource not found"); SnippetIDClassNames tmp = JsonHandler.readJson(s, SnippetIDClassNames.class); - tmp.standardOutlineRendererProviders.forEach(outlineRendererProviderSupplier::addStandardSnippetID); - tmp.standardSymbolRendererProviders.forEach(symbolRendererProviderSupplier::addStandardSnippetID); + tmp.standardOutlineRendererSuppliers.forEach(outlineRendererSupplier::addStandardSnippetID); + tmp.standardSymbolRendererSuppliers.forEach(symbolRendererSupplier::addStandardSnippetID); + tmp.standardHighLevelStateHandlerSuppliers.forEach(highLevelStateHandlerSupplier::addStandardSnippetID); } catch (Exception e) { @@ -87,8 +92,9 @@ public class CodeSnippetSupplier private static class SnippetIDClassNames { - public Map standardOutlineRendererProviders; - public Map standardSymbolRendererProviders; + public Map standardOutlineRendererSuppliers; + public Map standardSymbolRendererSuppliers; + public Map standardHighLevelStateHandlerSuppliers; } private static void tryLoadSnippetClass(String snippetClassName)