blob: 86c27e1c0cc48f432c2236ac90f2e16039a73651 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package vfd.dashboard.ui.instruments
import org.scalajs.dom
import org.scalajs.dom.html
import rx._
import vfd.dashboard.Environment
class Generic(
min: Double,
med: Double,
max: Double,
unit: String,
val value: Rx[Double])
(implicit env: Environment)
extends SvgInstrument[Double] {
import SvgInstrument._
lazy val element = svgObject("generic")
lazy val handElement = part("hand")
lazy val unitElement = element.contentDocument.getElementById("unit")
lazy val valueElement = element.contentDocument.getElementById("value")
lazy val minElement = element.contentDocument.getElementById("min")
lazy val medElement = element.contentDocument.getElementById("med")
lazy val maxElement = element.contentDocument.getElementById("max")
lazy val moveable = Seq(handElement)
override protected def load(e: dom.Event) = {
unitElement.textContent = unit
minElement.textContent = min.toString
medElement.textContent = med.toString
maxElement.textContent = max.toString
super.load(e)
}
protected def update(value: Double) = {
rotate(handElement, value / (max - min) * math.Pi * 3 / 2)
valueElement.textContent = value.toString
}
}
|