summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorLi Haoyi <haoyi@dropbox.com>2014-09-05 14:17:29 -0700
committerLi Haoyi <haoyi@dropbox.com>2014-09-05 14:17:29 -0700
commitb9624be0c341ad070869497d2d10db0bb6beb3ed (patch)
treeee6e5ee7b7c07248acbf9b6f97911d6541c72572 /client
parentfa3b7505ee26c4db0abbe72a4139ea4dafaaad60 (diff)
downloadworkbench-b9624be0c341ad070869497d2d10db0bb6beb3ed.tar.gz
workbench-b9624be0c341ad070869497d2d10db0bb6beb3ed.tar.bz2
workbench-b9624be0c341ad070869497d2d10db0bb6beb3ed.zip
0.2.0
Diffstat (limited to 'client')
-rw-r--r--client/src/main/scala/workbench/WorkbenchClient.scala28
1 files changed, 14 insertions, 14 deletions
diff --git a/client/src/main/scala/workbench/WorkbenchClient.scala b/client/src/main/scala/workbench/WorkbenchClient.scala
index 662e797..9fc5b89 100644
--- a/client/src/main/scala/workbench/WorkbenchClient.scala
+++ b/client/src/main/scala/workbench/WorkbenchClient.scala
@@ -6,24 +6,24 @@ import upickle.{Reader, Writer, Js}
import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
import scalajs.concurrent.JSExecutionContext.Implicits.runNow
-object WireServer extends autowire.Server[Js.Value, upickle.Reader, upickle.Writer]{
- def write[Result: Writer](r: Result) = upickle.writeJs(r)
- def read[Result: Reader](p: Js.Value) = upickle.readJs[Result](p)
+/**
+ * The connection from workbench server to the client
+ */
+object Wire extends autowire.Server[Js.Value, upickle.Reader, upickle.Writer] with ReadWrite{
def wire(parsed: Js.Arr): Unit = {
val Js.Arr(path, args: Js.Obj) = parsed
-
- val req = new Request(
- upickle.readJs[Seq[String]](path),
- args.value.toMap
- )
- WireServer.route[Api](WorkbenchClient).apply(req)
+ val req = new Request(upickle.readJs[Seq[String]](path), args.value.toMap)
+ Wire.route[Api](WorkbenchClient).apply(req)
}
}
@JSExport
object WorkbenchClient extends Api{
+ @JSExport
val shadowBody = dom.document.body.cloneNode(deep = true)
+ @JSExport
var interval = 1000
+ @JSExport
var success = false
@JSExport
def main(bootSnippet: String, host: String, port: Int): Unit = {
@@ -35,7 +35,7 @@ object WorkbenchClient extends Api{
json.read(data.responseText)
.asInstanceOf[Js.Arr]
.value
- .foreach(v => WireServer.wire(v.asInstanceOf[Js.Arr]))
+ .foreach(v => Wire.wire(v.asInstanceOf[Js.Arr]))
main(bootSnippet, host, port)
case util.Failure(e) =>
if (!success) println("Workbench disconnected " + e)
@@ -44,7 +44,7 @@ object WorkbenchClient extends Api{
dom.setTimeout(() => main(bootSnippet, host, port), interval)
}
}
-
+ @JSExport
override def clear(): Unit = {
dom.document.asInstanceOf[js.Dynamic].body = shadowBody.cloneNode(true)
for(i <- 0 until 100000){
@@ -52,12 +52,12 @@ object WorkbenchClient extends Api{
dom.clearInterval(i)
}
}
-
+ @JSExport
override def reload(): Unit = {
dom.console.log("Reloading page...")
dom.location.reload()
}
-
+ @JSExport
override def run(path: String, bootSnippet: Option[String]): Unit = {
val tag = dom.document.createElement("script")
var loaded = false
@@ -75,7 +75,7 @@ object WorkbenchClient extends Api{
}
dom.document.head.appendChild(tag)
}
-
+ @JSExport
override def print(level: String, msg: String): Unit = {
level match {
case "error" => dom.console.error(msg)