aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2015-03-27 18:15:38 +0100
committerJakob Odersky <jodersky@gmail.com>2015-03-27 18:15:38 +0100
commit18d586b51795475e261ec7583c73b9e78757656a (patch)
tree6316dd9afbb191bb04d546ed0c8773f5f898c383
parentf75765eb4652e0b6e3ba6bd7ecb266b15119f82b (diff)
downloadmavigator-18d586b51795475e261ec7583c73b9e78757656a.tar.gz
mavigator-18d586b51795475e261ec7583c73b9e78757656a.tar.bz2
mavigator-18d586b51795475e261ec7583c73b9e78757656a.zip
implement clock
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/ui/Layout.scala3
-rw-r--r--vfd-dashboard/src/main/scala/vfd/dashboard/ui/instruments/Clock.scala22
2 files changed, 24 insertions, 1 deletions
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 6465f26..1b1540e 100644
--- a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/Layout.scala
+++ b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/Layout.scala
@@ -12,6 +12,7 @@ import vfd.dashboard.ui.instruments.Generic
import vfd.dashboard.ui.instruments.Horizon
import org.mavlink.messages.Heartbeat
import org.mavlink.messages.Attitude
+import vfd.dashboard.ui.instruments.Clock
class Layout(socket: MavlinkSocket)(implicit env: Environment) {
@@ -59,7 +60,7 @@ class Layout(socket: MavlinkSocket)(implicit env: Environment) {
val top = header(
div("Flight Control Panel"),
- div("00:00:00"),
+ div((new Clock).element),
div("System #"))
val left = panel(
diff --git a/vfd-dashboard/src/main/scala/vfd/dashboard/ui/instruments/Clock.scala b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/instruments/Clock.scala
new file mode 100644
index 0000000..b456765
--- /dev/null
+++ b/vfd-dashboard/src/main/scala/vfd/dashboard/ui/instruments/Clock.scala
@@ -0,0 +1,22 @@
+package vfd.dashboard.ui.instruments
+
+import org.scalajs.dom
+import scala.scalajs.js.Date
+import scalatags.JsDom.all._
+
+class Clock extends Instrument[Date] {
+
+ def format(date: Date) = date.toLocaleTimeString()
+
+ val initial = new Date
+
+ val element = span(format(initial)).render
+
+ protected def update(value: Date) = {
+ element.innerHTML = format(value)
+ }
+
+ dom.setInterval(() => {value() = new Date}, 1000)
+ ready()
+
+} \ No newline at end of file