aboutsummaryrefslogtreecommitdiff
path: root/vfd-dashboard/src/main
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-03-16 19:55:41 +0100
committerJakob Odersky <jodersky@gmail.com>2015-03-16 19:55:41 +0100
commitdb5383fba80afcea1afe4ea06a81c7b4de4ec719 (patch)
tree186bce661a78ffa97fefed5f8ff4223133444a94 /vfd-dashboard/src/main
parent13eae49f4c48c03b2a7a9b40a08ca68063044c6d (diff)
downloadmavigator-db5383fba80afcea1afe4ea06a81c7b4de4ec719.tar.gz
mavigator-db5383fba80afcea1afe4ea06a81c7b4de4ec719.tar.bz2
mavigator-db5383fba80afcea1afe4ea06a81c7b4de4ec719.zip
update dependency versions
Diffstat (limited to 'vfd-dashboard/src/main')
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/Environment.scala4
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/Launcher.scala3
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/ui/Layout.scala11
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/SvgInstrument.scala18
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/ui/components/instruments.scala20
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Communication.scala15
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/ui/panels/Primary.scala4
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