Изменение внутреннего строения веб апи
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
group = 'asys'
|
||||
version = '0.13-SNAPSHOT'
|
||||
version = '0.14-SNAPSHOT'
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -9,51 +9,83 @@ import asys.webinterface.api.Webinterface;
|
||||
import java.util.*;
|
||||
|
||||
public class WebinterfaceImpl implements Webinterface {
|
||||
// moduleName, links
|
||||
private Map<String, List<String>> javascripts = new HashMap<>();
|
||||
private Map<String, List<String>> stylesheets = new HashMap<>();
|
||||
private Map<String, Module> modules = new HashMap<>();
|
||||
private Map<String, List<MainMenuItem>> 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<String> javascripts = new ArrayList<>();
|
||||
List<String> stylesheets = new ArrayList<>();
|
||||
|
||||
public String javascriptToTags() {
|
||||
StringJoiner sj = new StringJoiner("\n");
|
||||
|
||||
for (String link : javascripts) {
|
||||
sj.add(String.format("<script src=\"%s\"></script>", link));
|
||||
}
|
||||
|
||||
return sj.toString();
|
||||
}
|
||||
|
||||
public String stylesheetToTags() {
|
||||
StringJoiner sj = new StringJoiner("\n");
|
||||
|
||||
for (String link : stylesheets) {
|
||||
sj.add(String.format("<link rel=\"stylesheet\" href=\"%s\">", link));
|
||||
}
|
||||
|
||||
return sj.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addJavascript(String moduleName, String link) {
|
||||
List<String> 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<String> 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<String> items : javascripts.values()) {
|
||||
for (String link : items) {
|
||||
sj.add(String.format("<script src=\"%s\"></script>", link));
|
||||
}
|
||||
}
|
||||
|
||||
return sj.toString();
|
||||
}
|
||||
|
||||
public String stylesheetToTags() {
|
||||
StringJoiner sj = new StringJoiner("\n");
|
||||
|
||||
for (List<String> items : javascripts.values()) {
|
||||
for (String link : items) {
|
||||
sj.add(String.format("<link rel=\"stylesheet\" href=\"%s\">", link));
|
||||
}
|
||||
}
|
||||
|
||||
return sj.toString();
|
||||
public Module getModule(String moduleName) {
|
||||
return this.modules.get(moduleName);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user