diff --git a/js/constants.js b/js/constants.js new file mode 100644 index 0000000..1ed2200 --- /dev/null +++ b/js/constants.js @@ -0,0 +1,7 @@ + +const CHART_URL = 'https://cdn.openfin.co/embed-web/chart.html'; +const TRADEVIEW_URL = 'https://www.tradingview.com/chart/?symbol=NASDAQ:AAPL'; +const NEWS_URL = 'https://www.google.com/search?q=INDEXDJX:+.DJI'; +const URLS_ARRAY = [CHART_URL, TRADEVIEW_URL, NEWS_URL]; + +export { CHART_URL, TRADEVIEW_URL, NEWS_URL, URLS_ARRAY }; \ No newline at end of file diff --git a/js/platform-provider.js b/js/platform-provider.js index aad96ae..e255593 100644 --- a/js/platform-provider.js +++ b/js/platform-provider.js @@ -1,4 +1,5 @@ import { generateExternalWindowSnapshot, restoreExternalWindowPositionAndState } from './external-window-snapshot.js'; +import { URLS_ARRAY } from './constants.js'; //We have customized out platform provider to keep track of a specific notepad window. //Look for the "my_platform_notes.txt" file and launch it in notepad or add another external window to this array @@ -9,9 +10,28 @@ const externalWindowsToTrack = [ } ]; +const pooledViews = {}; +const createPooledView = async (url) => { + console.log('about to create'); + const view = await fin.Platform.getCurrentSync().createView({ url }, fin.me.identity); + pooledViews[url] = view.identity.name; +}; + +fin.Platform.getCurrentSync().once('platform-snapshot-applied', () => URLS_ARRAY.forEach(createPooledView)); + fin.Platform.init({ overrideCallback: async (Provider) => { class Override extends Provider { + async createView(payload) { + const { opts } = payload; + if (!opts.name && pooledViews[opts.url]) { + console.log('replacing name'); + opts.name = pooledViews[opts.url]; + delete pooledViews[opts.url]; + setTimeout(() => createPooledView(opts.url),1); + } + return super.createView(payload); + } async getSnapshot() { const snapshot = await super.getSnapshot(); diff --git a/js/platform-window.js b/js/platform-window.js index 19a6c50..3725342 100644 --- a/js/platform-window.js +++ b/js/platform-window.js @@ -1,7 +1,10 @@ import { html, render } from 'https://unpkg.com/lit-html@1.0.0/lit-html.js'; import { getTemplates, storeTemplate, getTemplateByName, onStoreUpdate } from './template-store.js'; +import { CHART_URL, TRADEVIEW_URL, NEWS_URL } from './constants.js'; + window.addEventListener('DOMContentLoaded', () => { + console.log('dom content'); fin.me.on('layout-ready', async () => { // Whenever a new layout is ready on this window (on init, replace, or applyPreset) @@ -17,7 +20,6 @@ window.addEventListener('DOMContentLoaded', () => { fin.Platform.Layout.init({containerId: CONTAINER_ID}); }); -const CHART_URL = 'https://cdn.openfin.co/embed-web/chart.html'; const LAYOUT_STORE_KEY = 'LayoutMenu'; const SNAPSHOT_STORE_KEY = 'SnapshotMenu'; const CONTAINER_ID = 'layout-container'; @@ -42,17 +44,14 @@ class LeftMenu extends HTMLElement { { url: CHART_URL, printName: 'OF Chart', - processAffinity: 'ps_1' }, { - url: 'https://www.tradingview.com/chart/?symbol=NASDAQ:AAPL', + url: TRADEVIEW_URL, printName: 'TradeView', - processAffinity: 'tv_1' }, { - url: 'https://www.google.com/search?q=INDEXDJX:+.DJI&stick=H4sIAAAAAAAAAONgecRozC3w8sc9YSmtSWtOXmNU4eIKzsgvd80rySypFBLjYoOyeKS4uDj0c_UNkgsry3kWsfJ5-rm4Rrh4RVgp6Ll4eQIAqJT5uUkAAAA&source=lnms&sa=X&ved=0ahUKEwii_NWT9fzoAhU3mHIEHWy3AWIQ_AUIDSgA&biw=1280&bih=1366&dpr=1', + url: NEWS_URL, printName: 'News', - processAffinity: 'mw_1' } ];