a4f289ecee
This also makes sure the /canvas/by-index/canvas[3/4]/ nodes are removed and then recrated, as well as making sure the MapStructure del() path is followed and working. Unfortunately the NDs are still blank after reinit.
55 lines
1.5 KiB
Text
55 lines
1.5 KiB
Text
# Class things:
|
|
var parents = [SymbolLayer.Controller];
|
|
var __self__ = caller(0)[0];
|
|
SymbolLayer.Controller.add("VOR", __self__);
|
|
SymbolLayer.add("VOR", {
|
|
parents: [SymbolLayer],
|
|
type: "VOR", # Symbol type
|
|
df_controller: __self__, # controller to use by default -- this one
|
|
});
|
|
var a_instance = nil;
|
|
var new = func(layer) {
|
|
var m = {
|
|
parents: [__self__],
|
|
layer: layer,
|
|
active_vors: [],
|
|
navNs: props.globals.getNode("instrumentation").getChildren("nav"),
|
|
listeners: [],
|
|
query_type:'vor',
|
|
};
|
|
setsize(m.active_vors, size(m.navNs));
|
|
foreach (var navN; m.navNs) {
|
|
append(m.listeners, setlistener(
|
|
navN.getNode("frequencies/selected-mhz"),
|
|
func m.changed_freq()
|
|
));
|
|
}
|
|
#call(debug.dump, keys(layer));
|
|
m.changed_freq(update:0);
|
|
__self__.a_instance = m;
|
|
return m;
|
|
};
|
|
var del = func() {
|
|
printlog(_MP_dbg_lvl, "VOR.lcontroller.del()");
|
|
foreach (var l; me.listeners)
|
|
removelistener(l);
|
|
};
|
|
|
|
# Controller methods
|
|
var isActive = func(model) {
|
|
var my_freq = model.frequency/100;
|
|
foreach (var freq; me.active_vors)
|
|
if (freq == my_freq) return 1;
|
|
return 0;
|
|
};
|
|
var changed_freq = func(update=1) {
|
|
#debug.dump(me.active_vors);
|
|
foreach (var navN; me.navNs)
|
|
me.active_vors[ navN.getIndex() ] = navN.getValue("frequencies/selected-mhz");
|
|
if (update) me.layer.update();
|
|
};
|
|
var searchCmd = func {
|
|
printlog(_MP_dbg_lvl, "Running query:", me.query_type);
|
|
return positioned.findWithinRange(100, me.query_type); # the range should also be exposed, it will typically be controlled via a GUI widget or NavDisplay switch
|
|
};
|
|
|