blob: 61f240c505fd700835216eb278a826c3a1d164d3 (
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
|
package mavigator.dashboard.ui.instruments
import rx._
import org.scalajs.dom.html
/** Common trait to all flight instruments. */
trait Instrument[A] {
/** Current value that is displayed in the instrument. */
val value: Rx[A]
/** HTML element that contains the rendered instrument */
val element: html.Element
/** Performs the actual UI update of this instrument. */
protected def update(newValue: A): Unit
/** Call when instrument has finished setting up its UI. */
protected def ready() = {
Obs(value, skipInitial = true) {
update(value())
}
}
}
|