diff options
author | Jakob Odersky <jodersky@gmail.com> | 2014-10-09 16:17:25 +0200 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2014-10-09 16:17:25 +0200 |
commit | 27826e19ef54cb45b8ca46ada856f60281c2de25 (patch) | |
tree | abc7a4e59a120854e2e70379a1da5d934198acc8 | |
parent | 0226a83f40e0126f8e75e155609f3f295661a3a5 (diff) | |
download | mavigator-27826e19ef54cb45b8ca46ada856f60281c2de25.tar.gz mavigator-27826e19ef54cb45b8ca46ada856f60281c2de25.tar.bz2 mavigator-27826e19ef54cb45b8ca46ada856f60281c2de25.zip |
implement separate application launcher
-rw-r--r-- | vfd-backend/app/views/index.scala.html | 8 | ||||
-rw-r--r-- | vfd-backend/app/views/main.scala.html | 3 | ||||
-rw-r--r-- | vfd-frontend/src/main/scala/vfd/frontend/Frontend.scala | 13 | ||||
-rw-r--r-- | vfd-frontend/src/main/scala/vfd/frontend/Launcher.scala | 25 |
4 files changed, 34 insertions, 15 deletions
diff --git a/vfd-backend/app/views/index.scala.html b/vfd-backend/app/views/index.scala.html index da7a79f..eaae450 100644 --- a/vfd-backend/app/views/index.scala.html +++ b/vfd-backend/app/views/index.scala.html @@ -2,12 +2,14 @@ @main("Main"){ - <div id="app"></div> + <div id="app"> + Loading... + </div> <script type="text/javascript"> window.onload = function () { - var frontend = new Frontend('app', '@routes.Assets.at("")', '@socket') - frontend.main() + var launcher = new Launcher + launcher.launch('app', '@routes.Assets.at("")', '@socket') } </script> } diff --git a/vfd-backend/app/views/main.scala.html b/vfd-backend/app/views/main.scala.html index f65ca66..beb7dbd 100644 --- a/vfd-backend/app/views/main.scala.html +++ b/vfd-backend/app/views/main.scala.html @@ -54,8 +54,9 @@ @content - <script type="text/javascript" src="@routes.Assets.at("lib/vfd-frontend-fastopt.js")"></script> <script type="text/javascript" src="@routes.Assets.at("lib/jquery/jquery.js")"></script> <script type="text/javascript" src="@routes.Assets.at("lib/bootstrap/js/bootstrap.min.js")"></script> + <script type="text/javascript" src="@routes.Assets.at("lib/vfd-frontend-fastopt.js")"></script> + </body> </html>
\ No newline at end of file diff --git a/vfd-frontend/src/main/scala/vfd/frontend/Frontend.scala b/vfd-frontend/src/main/scala/vfd/frontend/Frontend.scala index ffae846..8438b4c 100644 --- a/vfd-frontend/src/main/scala/vfd/frontend/Frontend.scala +++ b/vfd-frontend/src/main/scala/vfd/frontend/Frontend.scala @@ -1,9 +1,6 @@ package vfd.frontend - import scala.scalajs.js -import js.annotation.JSExport - import org.scalajs.dom import org.scalajs.spickling._ import org.scalajs.spickling.jsany._ @@ -16,15 +13,10 @@ import vfd.frontend.ui._ import vfd.frontend.util.Application import vfd.uav.DataFrame -@JSExport -class Frontend(rootId: String, assetsBase: String, socketUrl: String) { - - lazy val root = dom.document.getElementById(rootId) - implicit lazy val app = new Application(root, assetsBase) +class Frontend(socketUrl: String)(implicit app: Application) { PicklerRegistry.register[vfd.uav.DataFrame] - @JSExport def main() = { val connection = new dom.WebSocket(socketUrl); val input: Var[DataFrame] = Var(DataFrame(0,0,0,0,0)) @@ -70,8 +62,7 @@ class Frontend(rootId: String, assetsBase: String, socketUrl: String) { ) ) - root.appendChild(element.render) - + app.root.appendChild(element.render) } diff --git a/vfd-frontend/src/main/scala/vfd/frontend/Launcher.scala b/vfd-frontend/src/main/scala/vfd/frontend/Launcher.scala new file mode 100644 index 0000000..c4ca6fd --- /dev/null +++ b/vfd-frontend/src/main/scala/vfd/frontend/Launcher.scala @@ -0,0 +1,25 @@ +package vfd.frontend + +import scala.scalajs.js +import js.annotation.JSExport + +import org.scalajs.dom + +import vfd.frontend.util.Application + +@JSExport +class Launcher { + + @JSExport + def launch(rootId: String, assetsBase: String, socketUrl: String) = { + val root = dom.document.getElementById(rootId) + val app = new Application(root, assetsBase) + val frontend = new Frontend(socketUrl)(app) + + while(root.hasChildNodes) { + root.removeChild(root.firstChild) + } + frontend.main() + } + +}
\ No newline at end of file |