diff --git a/webinterface/build.gradle b/webinterface/build.gradle index 8996e1e..c1b04a1 100644 --- a/webinterface/build.gradle +++ b/webinterface/build.gradle @@ -1,5 +1,5 @@ group = 'asys' -version = '0.13-SNAPSHOT' +version = '0.14-SNAPSHOT' buildscript { repositories { diff --git a/webinterface/src/main/java/asys/webinterface/IndexHandler.java b/webinterface/src/main/java/asys/webinterface/IndexHandler.java index a663c0c..5ae7be2 100644 --- a/webinterface/src/main/java/asys/webinterface/IndexHandler.java +++ b/webinterface/src/main/java/asys/webinterface/IndexHandler.java @@ -18,9 +18,10 @@ public class IndexHandler implements HttpHandler { public IndexHandler(WebinterfaceImpl webinterface) { try { InputStream inputStream = getClass().getResourceAsStream("/index.html"); + WebinterfaceImpl.Module module = webinterface.getModule("modules"); htmlTemplate = IOUtils.toString(inputStream, "UTF-8") - .replace("<{moduleScript}>", webinterface.javascriptToTags()) - .replace("<{moduleStylesheet}>", webinterface.stylesheetToTags()); + .replace("<{moduleScript}>", module.javascriptToTags()) + .replace("<{moduleStylesheet}>", module.stylesheetToTags()); } catch (Exception e) { throw new RuntimeException("Error load htmlTemplate", e); } diff --git a/webinterface/src/main/java/asys/webinterface/WebinterfaceImpl.java b/webinterface/src/main/java/asys/webinterface/WebinterfaceImpl.java index ca678f7..91b6d3a 100644 --- a/webinterface/src/main/java/asys/webinterface/WebinterfaceImpl.java +++ b/webinterface/src/main/java/asys/webinterface/WebinterfaceImpl.java @@ -9,51 +9,83 @@ import asys.webinterface.api.Webinterface; import java.util.*; public class WebinterfaceImpl implements Webinterface { - // moduleName, links - private Map> javascripts = new HashMap<>(); - private Map> stylesheets = new HashMap<>(); + private Map modules = new HashMap<>(); private Map> menuItems = new HashMap<>(); public class MainMenuItem { public String title, link; + public MainMenuItem(String title, String link) { this.title = title; this.link = link; } } + public class Module { + List javascripts = new ArrayList<>(); + List stylesheets = new ArrayList<>(); + + public String javascriptToTags() { + StringJoiner sj = new StringJoiner("\n"); + + for (String link : javascripts) { + sj.add(String.format("", link)); + } + + return sj.toString(); + } + + public String stylesheetToTags() { + StringJoiner sj = new StringJoiner("\n"); + + for (String link : stylesheets) { + sj.add(String.format("", link)); + } + + return sj.toString(); + } + } + @Override public void addJavascript(String moduleName, String link) { - List list; - if (javascripts.containsKey(moduleName)) { - list = javascripts.get(moduleName); + Module module; + if (modules.containsKey(moduleName)) { + module = modules.get(moduleName); } else { - list = new ArrayList<>(); - javascripts.put(moduleName, list); + module = new Module(); + modules.put(moduleName, module); } - list.add(link); + + module.javascripts.add(link); } @Override public void removeJavascript(String moduleName) { - javascripts.remove(moduleName); + if (modules.containsKey(moduleName)) { + Module module = modules.get(moduleName); + module.javascripts.clear(); + } } @Override public void addStylesheet(String moduleName, String link) { - List list; - if (stylesheets.containsKey(moduleName)) { - list = stylesheets.get(moduleName); + Module module; + if (modules.containsKey(moduleName)) { + module = modules.get(moduleName); } else { - list = new ArrayList<>(); - stylesheets.put(moduleName, list); + module = new Module(); + modules.put(moduleName, module); } - list.add(link); + + module.stylesheets.add(link); } @Override public void removeStylesheet(String moduleName) { - stylesheets.remove(moduleName); + if (modules.containsKey(moduleName)) { + Module module = modules.get(moduleName); + module.stylesheets.clear(); + } } @Override @@ -88,27 +120,7 @@ public class WebinterfaceImpl implements Webinterface { return sj.toString(); } - public String javascriptToTags() { - StringJoiner sj = new StringJoiner("\n"); - - for (List items : javascripts.values()) { - for (String link : items) { - sj.add(String.format("", link)); - } - } - - return sj.toString(); - } - - public String stylesheetToTags() { - StringJoiner sj = new StringJoiner("\n"); - - for (List items : javascripts.values()) { - for (String link : items) { - sj.add(String.format("", link)); - } - } - - return sj.toString(); + public Module getModule(String moduleName) { + return this.modules.get(moduleName); } }