diff --git a/static/index.js b/static/index.js
index 90db301..96551f7 100644
--- a/static/index.js
+++ b/static/index.js
@@ -116,6 +116,8 @@ host.BrowserHost = class {
});
}
+
+
start() {
this.window.addEventListener('error', (e) => {
this.exception(e.error, true);
@@ -199,6 +201,41 @@ host.BrowserHost = class {
click: () => this._about()
});
+ const refreshButton = this.document.getElementById('refresh-graph');
+ refreshButton.addEventListener('click', () => {
+ this._view._updateGraph();
+ })
+
+ const resetButton = this.document.getElementById('reset-graph');
+ resetButton.addEventListener('click', () => {
+ this._view._graph.resetGraph();
+ this._view._updateGraph();
+ })
+
+ const downloadButton = this.document.getElementById('download-graph');
+ downloadButton.addEventListener('click', () => {
+ // console.log(this._host._view._graph._modelNodeName2State)
+ // https://healeycodes.com/talking-between-languages
+ fetch('/download', {
+ // Declare what type of data we're sending
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ // Specify the method
+ method: 'POST',
+ // https://blog.csdn.net/Crazy_SunShine/article/details/80624366
+ body: JSON.stringify(
+ this._mapToJson(this._view._graph._modelNodeName2State)
+ )
+ }).then(function (response) {
+ return response.text();
+ }).then(function (text) {
+ console.log('POST response: ');
+ // Should be 'OK' if everything was successful
+ console.log(text);
+ });
+ });
+
this.document.getElementById('version').innerText = this.version;
if (this._meta.file) {
@@ -565,6 +602,19 @@ host.BrowserHost = class {
this.document.body.addEventListener('click', eventHandler);
this._view.show('about');
}
+
+ _strMapToObj(strMap){
+ let obj = Object.create(null);
+ for (let[k, v] of strMap) {
+ obj[k] = v;
+ }
+ return obj;
+ }
+
+ _mapToJson(map) {
+ return JSON.stringify(this._strMapToObj(map));
+ }
+
};
host.Dropdown = class {
@@ -880,6 +930,8 @@ host.BrowserHost.BrowserContext = class {
}
};
+
+
if (typeof TextDecoder === "undefined") {
TextDecoder = function TextDecoder(encoding) {
this._encoding = encoding;
diff --git a/templates/index.html b/templates/index.html
index 6fdc172..cafdb9c 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -251,9 +251,9 @@ button { font-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI"
-
-
-
+
+
+