diff options
author | Jakob Odersky <jodersky@gmail.com> | 2015-03-16 19:55:41 +0100 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2015-03-16 19:55:41 +0100 |
commit | db5383fba80afcea1afe4ea06a81c7b4de4ec719 (patch) | |
tree | 186bce661a78ffa97fefed5f8ff4223133444a94 /vfd-dashboard | |
parent | 13eae49f4c48c03b2a7a9b40a08ca68063044c6d (diff) | |
download | mavigator-db5383fba80afcea1afe4ea06a81c7b4de4ec719.tar.gz mavigator-db5383fba80afcea1afe4ea06a81c7b4de4ec719.tar.bz2 mavigator-db5383fba80afcea1afe4ea06a81c7b4de4ec719.zip |
update dependency versions
Diffstat (limited to 'vfd-dashboard')
7 files changed, 44 insertions, 31 deletions
diff --git a/vfd-dashboard/src/main/scala/vfd/dashboard/Environment.scala b/vfd-dashboard/src/main/scala/vfd/dashboard/Environment.scala index d4dd306..57cd39d 100644 --- a/vfd-dashboard/src/main/scala/vfd/dashboard/Environment.scala +++ b/vfd-dashboard/src/main/scala/vfd/dashboard/Environment.scala @@ -1,12 +1,12 @@ package vfd.dashboard -import org.scalajs.dom.HTMLElement +import org.scalajs.dom.html /** Represents an application's environment */ trait Environment { /** The application's root element. */ - def root: HTMLElement + def root: html.Element /** Retrieve an asset's URL based on its file location. */ def asset(file: String): String diff --git a/vfd-dashboard/src/main/scala/vfd/dashboard/Launcher.scala b/vfd-dashboard/src/main/scala/vfd/dashboard/Launcher.scala index 6a9ba82..d091911 100644 --- a/vfd-dashboard/src/main/scala/vfd/dashboard/Launcher.scala +++ b/vfd-dashboard/src/main/scala/vfd/dashboard/Launcher.scala @@ -3,12 +3,13 @@ package vfd.dashboard import scala.scalajs.js.annotation.JSExport import org.scalajs.dom +import org.scalajs.dom.html @JSExport("Launcher") class Launcher(rootId: String, assetsBase: String) { lazy val env = new Environment { - val root = dom.document.getElementById(rootId) + val root = dom.document.getElementById(rootId).asInstanceOf[html.Element] def asset(file: String) = assetsBase + "/" + file } diff --git a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/Layout.scala b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/Layout.scala index 29ca4ca..4ec695e 100644 --- a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/Layout.scala +++ b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/Layout.scala @@ -1,8 +1,9 @@ package vfd.dashboard.ui -import org.scalajs.dom.HTMLElement +import org.scalajs.dom.html import scalatags.JsDom.all.ExtendedString +import scalatags.JsDom.all.Int2CssNumber import scalatags.JsDom.all.bindNode import scalatags.JsDom.all.`class` import scalatags.JsDom.all.div @@ -12,7 +13,7 @@ import scalatags.JsDom.all.p import scalatags.JsDom.all.src import scalatags.JsDom.all.stringAttr import scalatags.JsDom.all.stringFrag -import scalatags.JsDom.all.stringStyle +import scalatags.JsDom.all.stringPixelStyle import scalatags.JsDom.all.style import scalatags.JsDom.all.width import vfd.dashboard.Environment @@ -23,8 +24,8 @@ import vfd.dashboard.ui.panels.Primary class Layout(socket: MavlinkSocket) { val map = iframe( - width := "100%", - height := "350px", + width := 100.pct, + height := 350.px, "frameborder".attr := "0", "scrolling".attr := "no", "marginheight".attr := "0", @@ -34,7 +35,7 @@ class Layout(socket: MavlinkSocket) { val feed = div(style := "width: 100%; height: 460px; color: #ffffff; background-color: #c2c2c2; text-align: center;")( p(style := "padding-top: 220px")("video feed")) - def element(implicit env: Environment): HTMLElement = div(`class` := "container-fluid")( + def element(implicit env: Environment): html.Element = div(`class` := "container-fluid")( div(`class` := "row")( div(`class` := "col-xs-12")( div(`class` := "panel panel-default")( diff --git a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/SvgInstrument.scala b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/SvgInstrument.scala index 8ddba1a..dc8ee5e 100644 --- a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/SvgInstrument.scala +++ b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/SvgInstrument.scala @@ -3,12 +3,14 @@ package vfd.dashboard.ui.components import scala.scalajs.js.Any.fromFunction1 import org.scalajs.dom +import org.scalajs.dom.html import scalatags.JsDom.all.ExtendedString +import scalatags.JsDom.all.Int2CssNumber import scalatags.JsDom.all.`object` import scalatags.JsDom.all.stringAttr import scalatags.JsDom.all.stringFrag -import scalatags.JsDom.all.stringStyle +import scalatags.JsDom.all.stringPixelStyle import scalatags.JsDom.all.`type` import scalatags.JsDom.all.width import vfd.dashboard.Environment @@ -16,13 +18,13 @@ import vfd.dashboard.Environment trait SvgInstrument[A] { /** SVG object element that contains the rendered instrument */ - def element: dom.HTMLObjectElement + def element: html.Object /** Actual svg document */ - protected def content: dom.Document = element.contentDocument + protected def content = element.contentDocument /** Moveable parts of the instrument */ - protected def moveable: Seq[dom.HTMLElement] + protected def moveable: Seq[html.Element] /** Updates the instrument to show a new value */ def update(value: A): Unit @@ -38,17 +40,17 @@ trait SvgInstrument[A] { object SvgInstrument { - def svg(name: String)(implicit app: Environment): dom.HTMLObjectElement = { + def svg(name: String)(implicit app: Environment): html.Object = { val path = app.asset("images/instruments/" + name + ".svg") - `object`(`type` := "image/svg+xml", "data".attr := path, width := "100%")( + `object`(`type` := "image/svg+xml", "data".attr := path, width := 100.pct)( "Error loading instrument " + name).render } - def translate(elem: dom.HTMLElement, x: Int, y: Int): Unit = { + def translate(elem: html.Element, x: Int, y: Int): Unit = { elem.style.transform = "translate(" + x + "px, " + y + "px)"; } - def rotate(elem: dom.HTMLElement, deg: Int): Unit = { + def rotate(elem: html.Element, deg: Int): Unit = { elem.style.transform = "rotateZ(" + deg + "deg)"; } diff --git a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/instruments.scala b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/instruments.scala index 1cde83c..a508eb0 100644 --- a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/instruments.scala +++ b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/instruments.scala @@ -1,18 +1,20 @@ package vfd.dashboard.ui.components import org.scalajs.dom +import org.scalajs.dom.html import scalatags.JsDom.all.ExtendedString +import scalatags.JsDom.all.Int2CssNumber import scalatags.JsDom.all.`object` import scalatags.JsDom.all.stringAttr import scalatags.JsDom.all.stringFrag -import scalatags.JsDom.all.stringStyle +import scalatags.JsDom.all.stringPixelStyle import scalatags.JsDom.all.`type` import scalatags.JsDom.all.width import vfd.dashboard.Environment class Led(implicit env: Environment) extends SvgInstrument[String] { - lazy val element = `object`(`type` := "image/svg+xml", "data".attr := env.asset("images/leds/led.svg"), width := "100%")( + lazy val element = `object`(`type` := "image/svg+xml", "data".attr := env.asset("images/leds/led.svg"), width := 100.pct)( "Error loading led.").render def update(color: String) = { @@ -26,8 +28,8 @@ class Led(implicit env: Environment) extends SvgInstrument[String] { class Horizon(implicit env: Environment) extends SvgInstrument[(Double, Double)] { lazy val element = SvgInstrument.svg("horizon") - def pitch = content.getElementById("pitch") - def roll = content.getElementById("roll") + def pitch = content.getElementById("pitch").asInstanceOf[html.Element] + def roll = content.getElementById("roll").asInstanceOf[html.Element] protected def moveable = Seq(pitch, roll) def update(pitchRoll: (Double, Double)) = { @@ -39,7 +41,7 @@ class Horizon(implicit env: Environment) extends SvgInstrument[(Double, Double)] class Altimeter(implicit env: Environment) extends SvgInstrument[Double] { lazy val element = SvgInstrument.svg("altimeter") - def hand = content.getElementById("hand") + def hand = content.getElementById("hand").asInstanceOf[html.Element] protected def moveable = Seq(hand) // 36deg === 1m @@ -51,7 +53,7 @@ class Altimeter(implicit env: Environment) extends SvgInstrument[Double] { class Compass(implicit env: Environment) extends SvgInstrument[Double] { lazy val element = SvgInstrument.svg("compass") - def plate = content.getElementById("heading") + def plate = content.getElementById("heading").asInstanceOf[html.Element] protected def moveable = Seq(plate) def update(heading: Double) = { @@ -67,7 +69,7 @@ class Generic( lazy val element = SvgInstrument.svg("generic") - def handElement = content.getElementById("hand") + def handElement = content.getElementById("hand").asInstanceOf[html.Element] def unitElement = content.getElementById("unit") def valueElement = content.getElementById("value") def minElement = content.getElementById("min") @@ -94,7 +96,7 @@ class Bar(implicit env: Environment) extends SvgInstrument[Double] { lazy val element = SvgInstrument.svg("bar") - def level = content.getElementById("level") + def level = content.getElementById("level").asInstanceOf[html.Element] protected def moveable = Seq(level) def update(value: Double) = { @@ -106,7 +108,7 @@ class Bar(implicit env: Environment) extends SvgInstrument[Double] { class Balance(implicit env: Environment) extends SvgInstrument[(Double, Double, Double, Double)] { lazy val element = SvgInstrument.svg("balance") - def position = content.getElementById("position") + def position = content.getElementById("position").asInstanceOf[html.Element] protected def moveable = Seq(position) def update(value: (Double, Double, Double, Double)) = { diff --git a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Communication.scala b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Communication.scala index dd43ab4..220a7b8 100644 --- a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Communication.scala +++ b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Communication.scala @@ -3,26 +3,33 @@ package vfd.dashboard.ui.panels import org.mavlink.messages.Heartbeat import org.mavlink.messages.Motor import org.mavlink.messages.Power -import org.scalajs.dom.HTMLElement +import org.scalajs.dom.html + import rx.core.Obs import scalatags.JsDom.all.bindNode import scalatags.JsDom.all.`class` import scalatags.JsDom.all.div +import scalatags.JsDom.all.i import scalatags.JsDom.all.stringAttr +import scalatags.JsDom.all.stringFrag +import scalatags.JsDom.all.stringPixelStyle +import scalatags.JsDom.all.style import scalatags.JsDom.all.table import scalatags.JsDom.all.tbody import scalatags.JsDom.all.td -import scalatags.JsDom.all._ +import scalatags.JsDom.all.thead +import scalatags.JsDom.all.tr +import scalatags.JsDom.all.width import vfd.dashboard.Environment import vfd.dashboard.MavlinkSocket -import vfd.dashboard.ui.components.Generic import vfd.dashboard.ui.components.Balance import vfd.dashboard.ui.components.Bar +import vfd.dashboard.ui.components.Generic import vfd.dashboard.ui.components.Led object Communication { - def apply(socket: MavlinkSocket)(implicit app: Environment): HTMLElement = { + def apply(socket: MavlinkSocket)(implicit app: Environment): html.Element = { val hb = i(`class` := "fa fa-heart heartbeat").render diff --git a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Primary.scala b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Primary.scala index 14b26f6..6f66208 100644 --- a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Primary.scala +++ b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Primary.scala @@ -1,7 +1,7 @@ package vfd.dashboard.ui.panels import org.mavlink.messages.Attitude -import org.scalajs.dom.HTMLElement +import org.scalajs.dom.html import rx.core.Obs import scalatags.JsDom.all.bindNode @@ -19,7 +19,7 @@ import vfd.dashboard.ui.components.Horizon object Primary { - def apply(socket: MavlinkSocket)(implicit env: Environment): HTMLElement = { + def apply(socket: MavlinkSocket)(implicit env: Environment): html.Element = { val compass = new Compass val horizon = new Horizon |