From db5383fba80afcea1afe4ea06a81c7b4de4ec719 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Mon, 16 Mar 2015 19:55:41 +0100 Subject: update dependency versions --- project/Build.scala | 27 +++++++++++----------- project/Dependencies.scala | 19 --------------- project/project/BuildBuild.scala | 4 ++-- project/util.scala | 6 ++--- .../src/main/scala/vfd/dashboard/Environment.scala | 4 ++-- .../src/main/scala/vfd/dashboard/Launcher.scala | 3 ++- .../src/main/scala/vfd/dashboard/ui/Layout.scala | 11 +++++---- .../dashboard/ui/components/SvgInstrument.scala | 18 ++++++++------- .../vfd/dashboard/ui/components/instruments.scala | 20 ++++++++-------- .../vfd/dashboard/ui/panels/Communication.scala | 15 ++++++++---- .../scala/vfd/dashboard/ui/panels/Primary.scala | 4 ++-- 11 files changed, 62 insertions(+), 69 deletions(-) delete mode 100644 project/Dependencies.scala diff --git a/project/Build.scala b/project/Build.scala index b2b835c..ffb6fde 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -3,9 +3,8 @@ import sbt.Keys._ import util._ import play._ import play.PlayImport.PlayKeys._ -import scala.scalajs.sbtplugin.ScalaJSPlugin -import scala.scalajs.sbtplugin.ScalaJSPlugin.ScalaJSKeys._ -import Dependencies._ +import org.scalajs.sbtplugin.ScalaJSPlugin +import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._ import com.github.jodersky.sbt.mavlink.MavlinkKeys._ import com.github.jodersky.sbt.SbtMavlink @@ -14,7 +13,7 @@ object ApplicationBuild extends Build { //settings common to all projects val common = Seq( - scalaVersion := "2.11.4", + scalaVersion := "2.11.6", scalacOptions ++= Seq("-feature", "-deprecation"), mavlinkDialect := (baseDirectory in ThisBuild).value / "mavlink" / "concise.xml" ) @@ -33,9 +32,9 @@ object ApplicationBuild extends Build { settings( resolvers += Resolver.url("scala-js-releases", url("http://dl.bintray.com/content/scala-js/scala-js-releases"))(Resolver.ivyStylePatterns), libraryDependencies ++= Seq( - bootstrap, - fontawesome, - jquery + "org.webjars" % "bootstrap" % "3.3.1", + "org.webjars" % "font-awesome" % "4.2.0", + "org.webjars" % "jquery" % "2.1.3" ) ) dependsOn(uav) @@ -48,23 +47,23 @@ object ApplicationBuild extends Build { settings(common: _*) settings( libraryDependencies ++= Seq( - akkaActor, - flow, - flowNative + "com.typesafe.akka" %% "akka-actor" % "2.3.9", + "com.github.jodersky" %% "flow" % "2.1.0", + "com.github.jodersky" % "flow-native" % "2.1.0" ) ) ) lazy val dashboard = ( Project("vfd-dashboard", file("vfd-dashboard")) - settings(ScalaJSPlugin.scalaJSSettings: _*) + enablePlugins(ScalaJSPlugin) enablePlugins(SbtMavlink) settings(common: _*) settings( libraryDependencies ++= Seq( - rx, - dom, - tag + "org.scala-js" %%% "scalajs-dom" % "0.8.0", + "com.lihaoyi" %%% "scalatags" % "0.4.6", + "com.lihaoyi" %%% "scalarx" % "0.2.8" ) ) ) diff --git a/project/Dependencies.scala b/project/Dependencies.scala deleted file mode 100644 index 2d68c10..0000000 --- a/project/Dependencies.scala +++ /dev/null @@ -1,19 +0,0 @@ -import sbt._ -import scala.scalajs.sbtplugin.ScalaJSPlugin._ - -object Dependencies { - - val akkaActor = "com.typesafe.akka" %% "akka-actor" % "2.3.6" - - val flow = "com.github.jodersky" %% "flow" % "2.0.9" - val flowNative = "com.github.jodersky" % "flow-native" % "2.0.9" - - val bootstrap = "org.webjars" % "bootstrap" % "3.3.1" - val fontawesome = "org.webjars" % "font-awesome" % "4.2.0" - val jquery = "org.webjars" % "jquery" % "2.1.3" - - val dom = "org.scala-lang.modules.scalajs" %%%! "scalajs-dom" % "0.6" - val tag = "com.scalatags" %%%! "scalatags" % "0.4.1" - val rx = "com.scalarx" %%%! "scalarx" % "0.2.6" - -} \ No newline at end of file diff --git a/project/project/BuildBuild.scala b/project/project/BuildBuild.scala index ce79999..ac1974b 100644 --- a/project/project/BuildBuild.scala +++ b/project/project/BuildBuild.scala @@ -9,8 +9,8 @@ object BuildBuild extends Build { Project("root", file(".")) settings( resolvers += "Typesafe repository" at "https://repo.typesafe.com/typesafe/releases/", - addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.7"), - addSbtPlugin("org.scala-lang.modules.scalajs" % "scalajs-sbt-plugin" % "0.5.6") + addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.3.8"), + addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.1") ) dependsOn(mavlinkPlugin) ) diff --git a/project/util.scala b/project/util.scala index 497adc1..4df9127 100644 --- a/project/util.scala +++ b/project/util.scala @@ -2,8 +2,8 @@ import sbt._ import sbt.Keys._ import play._ import play.PlayImport.PlayKeys._ -import scala.scalajs.sbtplugin.ScalaJSPlugin -import scala.scalajs.sbtplugin.ScalaJSPlugin.ScalaJSKeys._ +import org.scalajs.sbtplugin.ScalaJSPlugin +import org.scalajs.sbtplugin.ScalaJSPlugin.autoImport._ import com.typesafe.sbt.packager.universal.UniversalKeys package object util extends UniversalKeys { @@ -19,7 +19,7 @@ package object util extends UniversalKeys { stage <<= stage dependsOn (fullOptJS in (scalajs, Compile)), playMonitoredFiles += (scalaSource in (scalajs, Compile)).value.getCanonicalPath ).settings( - Seq(packageLauncher, fastOptJS, fullOptJS) map { packageJSKey => + Seq(packageScalaJSLauncher, fastOptJS, fullOptJS) map { packageJSKey => crossTarget in (scalajs, Compile, packageJSKey) := jsOutputDir.value }: _* ) 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 -- cgit v1.2.3