A framework to manage multiple dockable HTML windows.
This extension is designed to support multiple different different encapsulation runtimes.
See API Documentation for more information.
Runtimes supported:
Future runtimes:
You can see a live demo at Eikos Partners Blotter Demonstration.
An open source example can be found at: https://github.com/aesalazar/windowmanagerjsdemo
A basic example to get started:
// Create a new window:letchildWindow=newwindowmanager.Window({url: "child.html",// Loads "child.html" based on the current window's url.width: 500,height: 500});// Execute code when window is ready for commands:childWindow.onReady(()=>{childWindow.focus();// Set focus to childWindow.});// Use the layout manager.letstate={width: 400,height: 400,url: 'child.html',title: 'Child Window',frame: false};letconfigs=[state,state,state];letlayout=newwindowmanager.Layout('tabbed','layout-div',configs);npm install --save windowmanagerLoading the package via require in node only gives you access to the script paths to make it easier to serve up the script:
constwindowmanager=require('windowmanager');
...
// Start windowmanager in this node instance:windowmanager.start({// Optionally override the windowmanager package.json options for Electron's runtime:endpoint: "http://localhost:5000/",// The starting window's page locationconfig: "http://localhost:5000/app.json"// Where the OpenFin/Electron app.json startup file is});
...
// Set up to access windowmanager debug, minified and map scripts via root url:// Will give access to windowmanager through: example.com/windowmanager.jsapp.use('/',express.static(windowmanager.distPath,{index: false}));// Set up access to windowmanager.js via get:app.get('/js/windowmanager.js',function(req,res){res.sendFile(windowmanager.debug.scriptPath);});app.get('/js/windowmanager.min.js',function(req,res){res.sendFile(windowmanager.min.scriptPath);});Manually download either one of the following scripts from the dist folder (which contains the latest nightly version), and add it to your application.
NOTE: Bundling or compiling with babelify will break the script.
- Download dist script
- Put in its own folder in root directory
- in webpack config, under your
module:rules:test: /\.js$/,make sure toexclude:/folderName/ - npm install
copy-webpack-pluginand - in webpack config, import
const CopyWebpackPlugin = require('copy-webpack-plugin') - under plugins include
new CopyWebpackPlugin([
{from:'folderName',to:'folderName'} ]), - in your entry point html page, include
<script src="./folderName/windowmanager.js></script>