diff options
Diffstat (limited to 'main.js')
| -rw-r--r-- | main.js | 64 |
1 files changed, 45 insertions, 19 deletions
@@ -1,35 +1,61 @@ -const electron = require("electron") -const app = electron.app -const BrowserWindow = electron.BrowserWindow +const { app, BrowserWindow, ipcMain } = require('electron'); -const path = require("path") -const url = require("url") +const path = require("path"); +const url = require("url"); -let mainWindow +let uiWindow; +let queryExecutorProcess; -function createWindow () { - mainWindow = new BrowserWindow({width: 800, height: 600}) - mainWindow.loadURL(url.format({ +function createMainWindow () { + uiWindow = new BrowserWindow({ + width: 800, + height: 600 + }); + uiWindow.loadURL(url.format({ pathname: path.join(__dirname, "index.html"), protocol: "file:", slashes: true - })) + })); - mainWindow.on("closed", function () { - mainWindow = null - }) + uiWindow.on("closed", function () { + uiWindow = null; + app.quit(); + }); } -app.on("ready", createWindow) +function createQueryExecutorProcess() { + queryExecutorProcess = new BrowserWindow({ + show: false + }); + + queryExecutorProcess.loadURL(url.format({ + pathname: path.join(__dirname, "./query-executor-wrapper.html"), + protocol: "file:", + slashes: true + })); + + queryExecutorProcess.on("closed", function () { + queryExecutorProcess = null; + }); + +} + +app.on("ready", function() { + createMainWindow(); + createQueryExecutorProcess(); +}); app.on("window-all-closed", function () { if (process.platform !== "darwin") { - app.quit() + app.quit(); } -}) +}); app.on("activate", function () { - if (mainWindow === null) { - createWindow() + if (uiWindow === null) { + createWindow(); } -}) +}); + +ipcMain.on("queryExecutor.runQueryComplete", (event, payload) => uiWindow.webContents.send("queryExecutor.runQueryComplete", payload)); +ipcMain.on("queryExecutor.runQuery", (event, payload) => queryExecutorProcess.webContents.send("queryExecutor.runQuery", payload));
\ No newline at end of file |