| 86 | } |
| 87 | |
| 88 | private static String readTemplate(String name) { |
| 89 | char[] buffer = new char[4000]; |
| 90 | int offset = 0; |
| 91 | |
| 92 | try (InputStream is = SourcecodeTab.class.getResourceAsStream("/"+name)) { |
| 93 | if (is == null) throw new FileNotFoundException(name); |
| 94 | |
| 95 | Reader reader = new InputStreamReader(is, StandardCharsets.UTF_8); |
| 96 | int len; |
| 97 | |
| 98 | while ((len = reader.read(buffer, offset, buffer.length - offset)) != -1) { |
| 99 | offset += len; |
| 100 | |
| 101 | if (offset == buffer.length) buffer = Arrays.copyOf(buffer, buffer.length * 2); |
| 102 | } |
| 103 | |
| 104 | return new String(buffer, 0, offset); |
| 105 | } catch (IOException e) { |
| 106 | throw new UncheckedIOException(e); |
| 107 | } |
| 108 | } |
| 109 | |
| 110 | private final String template; |
| 111 | private final WebView webView = new WebView(); |