diff options
author | Jakob Odersky <jakob@odersky.com> | 2016-02-24 20:33:51 -0800 |
---|---|---|
committer | Jakob Odersky <jakob@odersky.com> | 2016-02-24 20:33:51 -0800 |
commit | 8186b3622ce1c9d2b50df3d264ab526dc1e61d77 (patch) | |
tree | b4446408291c9f179e1c270a561523023ac6a105 /mavigator-cockpit/src/main/scala/mavigator/util | |
parent | 6c4e8849d753734b3e50523dcdb372fbdbccc2c1 (diff) | |
parent | a41de68066007852d7d3dbf019d75b4caf7463ad (diff) | |
download | mavigator-8186b3622ce1c9d2b50df3d264ab526dc1e61d77.tar.gz mavigator-8186b3622ce1c9d2b50df3d264ab526dc1e61d77.tar.bz2 mavigator-8186b3622ce1c9d2b50df3d264ab526dc1e61d77.zip |
Merge branch 'akka-streams'
Diffstat (limited to 'mavigator-cockpit/src/main/scala/mavigator/util')
-rw-r--r-- | mavigator-cockpit/src/main/scala/mavigator/util/Application.scala | 26 | ||||
-rw-r--r-- | mavigator-cockpit/src/main/scala/mavigator/util/environment.scala | 24 |
2 files changed, 50 insertions, 0 deletions
diff --git a/mavigator-cockpit/src/main/scala/mavigator/util/Application.scala b/mavigator-cockpit/src/main/scala/mavigator/util/Application.scala new file mode 100644 index 0000000..7cb6f27 --- /dev/null +++ b/mavigator-cockpit/src/main/scala/mavigator/util/Application.scala @@ -0,0 +1,26 @@ +package mavigator +package util + +import scala.scalajs.js.annotation.JSExport +import scala.scalajs.js + +import org.scalajs.dom.html + +trait Application { + + def main(args: Map[String, String])(implicit env: Environment): Unit + + @JSExport + final def start(settings: js.Dynamic): Unit = { + + val env = new StaticEnvironment( + root = settings.root.asInstanceOf[html.Element], + assetsBase = settings.assetsBase.asInstanceOf[String] + ) + + val args = settings.args.asInstanceOf[js.Dictionary[Any]].mapValues(_.toString).toMap + + main(args)(env) + } + +} diff --git a/mavigator-cockpit/src/main/scala/mavigator/util/environment.scala b/mavigator-cockpit/src/main/scala/mavigator/util/environment.scala new file mode 100644 index 0000000..3d58c5a --- /dev/null +++ b/mavigator-cockpit/src/main/scala/mavigator/util/environment.scala @@ -0,0 +1,24 @@ +package mavigator +package util + +import org.scalajs.dom.html + +/** Represents an application's environment */ +trait Environment { + + /** The application's root element. */ + def root: html.Element + + /** Retrieve an asset's URL based on its file location. */ + def asset(file: String): String + +} + +class StaticEnvironment( + override val root: html.Element, + assetsBase: String +) extends Environment { + + override def asset(file: String): String = assetsBase + "/" + file + +} |