|
@@ -10,35 +10,65 @@
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
-<p id="loading">Loading Amber for development ...</p>
|
|
|
-<p id="startlegacy">To start legacy in-page IDE, <a href="#" onclick="require('amber/helpers').globals.Browser._open(); return false;">click here</a>.</p>
|
|
|
-<p id="starthelios">To popup Helios IDE, <a href="#" onclick="require('amber/helpers').popupHelios(); return false;">click here</a>.</p>
|
|
|
+<div>
|
|
|
+ <button id="startlegacy" disabled type="button"
|
|
|
+ onclick="ifReady(function (amber) {amber.globals.Browser._open();});">
|
|
|
+ Start legacy in-page IDE
|
|
|
+ </button>
|
|
|
+ <button id="starthelios" disabled type="button"
|
|
|
+ onclick="ifReady(function (amber) {amber.popupHelios();});">
|
|
|
+ Popup Helios IDE
|
|
|
+ </button>
|
|
|
+</div>
|
|
|
+<div>
|
|
|
+ <span id="loadingKernel">Loading Amber kernel ... </span>
|
|
|
+ <span id="initializingKernel">initializing Amber kernel ... </span>
|
|
|
+ <span id="loadingTheRest">loading rest of development image ... </span>
|
|
|
+ <span id="done">done.</span>
|
|
|
+</div>
|
|
|
<script type='text/javascript'>
|
|
|
+ "use strict";
|
|
|
var startLegacy = document.getElementById("startlegacy");
|
|
|
- startLegacy.parentNode.removeChild(startLegacy);
|
|
|
var startHelios = document.getElementById("starthelios");
|
|
|
- startHelios.parentNode.removeChild(startHelios);
|
|
|
+ var messageBox = document.getElementById("loadingKernel").parentNode;
|
|
|
+ var initializingKernel = messageBox.removeChild(document.getElementById("initializingKernel"));
|
|
|
+ var loadingTheRest = messageBox.removeChild(document.getElementById("loadingTheRest"));
|
|
|
+ var done = messageBox.removeChild(document.getElementById("done"));
|
|
|
var global = typeof global === "undefined" ? window : global || window;
|
|
|
+ var loadAll;
|
|
|
+
|
|
|
require(["require", "amber/es6-promise"], function (require, promiseLib) {
|
|
|
promiseLib.polyfill();
|
|
|
- var loadHelpers = new Promise(function (resolve, reject) {
|
|
|
- setTimeout(function () {
|
|
|
- require(["amber/legacy/IDE", "amber/web/Web", "amber/legacy/Benchfib", "helios/all", "amber_cli/AmberCli"], resolve, reject);
|
|
|
- }, 250);
|
|
|
- });
|
|
|
- require(["amber/devel", "amber_core/Platform-Browser"], function (amber) {
|
|
|
- loadHelpers
|
|
|
+ require(["amber/deploy", "amber_core/Platform-Browser"], function (amber) {
|
|
|
+ messageBox.appendChild(initializingKernel);
|
|
|
+ loadAll = amber.initialize({'transport.defaultAmdNamespace': "amber_core"})
|
|
|
.then(function () {
|
|
|
- return amber.initialize({'transport.defaultAmdNamespace': "amber_core"})
|
|
|
+ messageBox.appendChild(loadingTheRest);
|
|
|
+ return new Promise(function (resolve, reject) {
|
|
|
+ require(["amber/devel", "amber/legacy/IDE", "amber/web/Web", "amber/legacy/Benchfib", "helios/all", "amber_cli/AmberCli"], resolve, reject);
|
|
|
+ });
|
|
|
})
|
|
|
.then(function () {
|
|
|
- var loading = document.getElementById("loading");
|
|
|
- loading.parentNode.appendChild(startLegacy);
|
|
|
- loading.parentNode.appendChild(startHelios);
|
|
|
- loading.parentNode.removeChild(loading);
|
|
|
+ amber.globals.Smalltalk._postLoad();
|
|
|
+ messageBox.appendChild(done);
|
|
|
+ return amber;
|
|
|
});
|
|
|
+ disableButtons(false);
|
|
|
});
|
|
|
});
|
|
|
+
|
|
|
+ function ifReady (action) {
|
|
|
+ disableButtons(true);
|
|
|
+ loadAll.then(function (amber) {
|
|
|
+ disableButtons(false);
|
|
|
+ action(amber);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ function disableButtons (value) {
|
|
|
+ startLegacy.disabled = value;
|
|
|
+ startHelios.disabled = value;
|
|
|
+ }
|
|
|
</script>
|
|
|
</body>
|
|
|
</html>
|