- ZipOutputStream out = new ZipOutputStream(new FileOutputStream(f));
- ZipEntry e = new ZipEntry(widget.getName() + "/styles/styles.css");
- out.putNextEntry(new ZipEntry(widget.getName() + "/"));
- out.putNextEntry(new ZipEntry(widget.getName() + "/styles/"));
- out.putNextEntry(e);
- byte[] data = styles.getBytes();
- out.write(data, 0, data.length);
-
- String widgetData = namespace + "=" + namespace + "||{};" + "var res = " + namespace + ".widgetData;";
- String javascript = getWidgetController(widgetId).replace(widgetData, "").replace(namespace + ".controller =",
- "");
-
- String functionHeader = javascript.substring(javascript.indexOf("function"), javascript.indexOf(")") + 1);
- javascript = javascript.replaceFirst(controllerName, widget.getName() + "Ctrl");
- String functionParam = functionHeader.substring(functionHeader.indexOf("(") + 1, functionHeader.indexOf(")"));
- StringBuilder injectStr = new StringBuilder().append("[");
- List<String> paramList = Arrays.asList(functionParam.split(","));
- for (int i = 0; i < paramList.size(); i++) {
- if (i == paramList.size() - 1)
- injectStr.append("'" + paramList.get(i).trim() + "'];");
- else
- injectStr.append("'" + paramList.get(i).trim() + "',");
+ try(ZipOutputStream out = new ZipOutputStream(new FileOutputStream(f))){
+ ZipEntry e = new ZipEntry(widget.getName() + "/styles/styles.css");
+ out.putNextEntry(new ZipEntry(widget.getName() + "/"));
+ out.putNextEntry(new ZipEntry(widget.getName() + "/styles/"));
+ out.putNextEntry(e);
+ byte[] data = styles.getBytes();
+ out.write(data, 0, data.length);
+
+ String widgetData = namespace + "=" + namespace + "||{};" + "var res = " + namespace + ".widgetData;";
+ String javascript = getWidgetController(widgetId).replace(widgetData, "").replace(namespace + ".controller =",
+ "");
+
+ String functionHeader = javascript.substring(javascript.indexOf("function"), javascript.indexOf(")") + 1);
+ javascript = javascript.replaceFirst(controllerName, widget.getName() + "Ctrl");
+ String functionParam = functionHeader.substring(functionHeader.indexOf("(") + 1, functionHeader.indexOf(")"));
+ StringBuilder injectStr = new StringBuilder().append("[");
+ List<String> paramList = Arrays.asList(functionParam.split(","));
+ for (int i = 0; i < paramList.size(); i++) {
+ if (i == paramList.size() - 1)
+ injectStr.append("'" + paramList.get(i).trim() + "'];");
+ else
+ injectStr.append("'" + paramList.get(i).trim() + "',");
+ }
+ javascript = javascript.replace(";" + namespace + ".controller.$inject = " + injectStr.toString(), "");
+
+ e = new ZipEntry(widget.getName() + "/js/controller.js");
+ out.putNextEntry(new ZipEntry(widget.getName() + "/js/"));
+ out.putNextEntry(e);
+ data = javascript.getBytes();
+ out.write(data, 0, data.length);
+
+ String html = getWidgetMarkup(widgetId).replaceFirst(controllerName, widget.getName() + "Ctrl");
+
+ // new
+ // String(map.get(WidgetConstant.WIDGET_MARKUP_LOCATION)).replaceFirst(functionName,
+ // controllerName);;
+
+ e = new ZipEntry(widget.getName() + "/markup/markup.html");
+ out.putNextEntry(new ZipEntry(widget.getName() + "/markup/"));
+ out.putNextEntry(e);
+ data = html.getBytes();
+ out.write(data, 0, data.length);
+ out.closeEntry();
+ byte[] result = Files.readAllBytes(Paths.get(f.getPath()));
+ f.delete();
+ return result;