public ResourceMonitor() { _bindingManager = BindingServiceProvider.BindingManager; BindingServiceProvider.BindingManager = this; _bindings = new List<WeakReference>(); _viewModels = new List<WeakReference>(); _views = new List<WeakReference>(); ViewManager.ViewInitialized += (manager, model, arg3, arg4) => { lock (_views) _views.Add(new WeakReference(arg3, true)); ++ViewCount; }; Tracer.TraceViewModelHandler += (auditAction, viewModel) => { if (auditAction != AuditAction.Created) return; lock (_viewModels) _viewModels.Add(new WeakReference(viewModel, true)); ++ViewModelCount; }; // ReSharper disable once ObjectCreationAsStatement new ReferenceCollector(this); }
public DisplayValue ( Expression <Func <double> > source, Unit sourceUnit, Unit[] units, double minSourceValue = double.NaN, double maxSourceValue = double.NaN ) { Bindings = new BindingManager(); Units = new DisplayUnits(this, sourceUnit, units); Bindings.BindTwoWay ( source, () => Value, sourceValue => UnitConverter.Convert(sourceValue, from: Units.Source, to: Units.Target), targetValue => UnitConverter.Convert(targetValue, from: Units.Target, to: Units.Source) ); MinSourceValue = minSourceValue; MaxSourceValue = maxSourceValue; Refresh(); }
public BindingsElementDriver( IBindingManager bindingManager, IContentDefinitionManager contentDefinitionManager) { _bindingManager = bindingManager; _contentDefinitionManager = contentDefinitionManager; }
public Container(IBindingManager bindingManager, IBindingDiscoverer bindingDiscoverer, IActivationManager activationManager, ITypeSystem typeSystem) { _bindingManager = bindingManager; _bindingDiscoverer = bindingDiscoverer; _activationManager = activationManager; TypeSystem = typeSystem; }
public void EnableActiveFlyByWire(IBindingManager manager) { foreach (KeyValuePair <string, bool> kvp in flyByWire) { manager.ToggleFlyByWire(kvp.Key, kvp.Value); } }
internal void Initialize(IBindingManager bindingManager, IBindingDiscoverer bindingDiscoverer, IActivationManager activationManager) { _bindingManager = bindingManager; _bindingDiscoverer = bindingDiscoverer; _activationManager = activationManager; Register(typeof(IContainer), this); }
public void BindTo(IBindingManager manager) { #if DEBUG manager.AddGetter("TEST1", cpu => 4); manager.AddSetter("TEST1", (cpu, val) => cpu.StdOut(val.ToString())); #endif }
public void BindTo(IBindingManager manager) { manager.AddGetter("LOADDISTANCE", cpu => Vessel.loadDistance ); manager.AddSetter("LOADDISTANCE", delegate(ICPU cpu, object val) { var distance = (float) val; Vessel.loadDistance = distance; Vessel.unloadDistance = distance - 250; }); manager.AddGetter("WARP", cpu => TimeWarp.fetch.current_rate_index); manager.AddSetter("WARP", delegate(ICPU cpu, object val) { int newRate; if (int.TryParse(val.ToString(), out newRate)) { TimeWarp.SetRate(newRate, false); } }); foreach (var body in FlightGlobals.fetch.bodies) { var cBody = body; manager.AddGetter(body.name, cpu => new BodyTarget(cBody, cpu.Vessel)); } }
public FormService( ILayoutSerializer serializer, IClock clock, IRepository <Submission> submissionRepository, IFormElementEventHandler elementHandlers, IContentDefinitionManager contentDefinitionManager, IBindingManager bindingManager, IDynamicFormEventHandler formEventHandler, Lazy <IEnumerable <IElementValidator> > validators, IDateLocalizationServices dateLocalizationServices, IOrchardServices services, ICultureAccessor cultureAccessor) { _serializer = serializer; _clock = clock; _submissionRepository = submissionRepository; _elementHandlers = elementHandlers; _contentManager = services.ContentManager; _contentDefinitionManager = contentDefinitionManager; _bindingManager = bindingManager; _formEventHandler = formEventHandler; _validators = validators; _dateLocalizationServices = dateLocalizationServices; _services = services; _cultureAccessor = cultureAccessor; }
public CPU(object parent, string context) { Mode = CPUMode.READY; this.parent = parent; this.context = context; bindingManager = new BindingManager(this, this.context); if (context == "ksp") { RunType = KOSRunType.KSP; if (Vessel != null) { Archive = new Archive(Vessel); } Volumes.Add(Archive); } else { RunType = KOSRunType.WINFORMS; } RegisterkOSExternalFunction(new object[] { "test2", this, "testFunction", 2 }); }
public void BindTo(IBindingManager manager) { manager.AddGetter("LOADDISTANCE", cpu => Vessel.loadDistance); manager.AddSetter("LOADDISTANCE", delegate(ICPU cpu, object val) { var distance = (float)val; Vessel.loadDistance = distance; Vessel.unloadDistance = distance - 250; }); manager.AddGetter("WARP", cpu => TimeWarp.fetch.current_rate_index); manager.AddSetter("WARP", delegate(ICPU cpu, object val) { int newRate; if (int.TryParse(val.ToString(), out newRate)) { TimeWarp.SetRate(newRate, false); } }); foreach (var body in FlightGlobals.fetch.bodies) { var cBody = body; manager.AddGetter(body.name, cpu => new BodyTarget(cBody, cpu.Vessel)); } }
internal static void SetDefaultValues() { _valueConverter = BindingReflectionExtensions.Convert; _resourceResolver = new BindingResourceResolver(); _memberProvider = new BindingMemberProvider(); _visualTreeManager = new VisualTreeManager(); _weakEventManager = new WeakEventManager(); _bindingManager = new BindingManager(); _bindingProvider = new BindingProvider(); _observerProvider = new ObserverProvider(); _contextManager = new BindingContextManager(); }
internal static void Clear(IMenuItem item, IBindingManager bindingManager) { if (item == null) { return; } bindingManager.ClearBindings(item); if (item.HasSubMenu) { MenuTemplate.Clear(item.SubMenu, bindingManager); } BindingExtensions.AttachedParentMember.SetValue(item, BindingExtensions.NullValue); }
public FlightCtrlParam(string name, SharedObjects sharedObjects) { this.name = name; shared = sharedObjects; control = GetControllerByVessel(sharedObjects.Vessel); binding = sharedObjects.BindingMgr; Enabled = false; value = null; HookEvents(); }
public LockableControl(string name, string propertyName, ICPU cpu, IBindingManager manager) { Name = name; Cpu = cpu; Vessel = cpu.Vessel; Locked = false; Value = 0; manager.AddGetter(name, c => Value); manager.AddSetter(name, delegate { }); this.propertyName = propertyName; }
public void BindTo(IBindingManager manager) { manager.AddSetter("TARGET", delegate(ICPU cpu, object val) { if (val is ITargetable) { VesselUtils.SetTarget((ITargetable) val); } else if (val is VesselTarget) { VesselUtils.SetTarget(((VesselTarget) val).Target); } else if (val is BodyTarget) { VesselUtils.SetTarget(((BodyTarget) val).Target); } else { var body = VesselUtils.GetBodyByName(val.ToString()); if (body != null) { VesselUtils.SetTarget(body); return; } var vessel = VesselUtils.GetVesselByName(val.ToString(), cpu.Vessel); if (vessel != null) { VesselUtils.SetTarget(vessel); } } }); manager.AddGetter("TARGET", delegate(ICPU cpu) { var currentTarget = FlightGlobals.fetch.VesselTarget; if (currentTarget is Vessel) { return new VesselTarget((Vessel) currentTarget, cpu); } if (currentTarget is CelestialBody) { return new BodyTarget((CelestialBody) currentTarget, cpu.Vessel); } return null; }); }
internal static void SetDefaultValues() { BindingCultureInfo = null; _updateEventFinder = FindUpdateEvent; _bindingPathFactory = BindingPath.Create; _valueConverter = BindingReflectionExtensions.Convert; _resourceResolver = new BindingResourceResolver(); _memberProvider = new BindingMemberProvider(); _visualTreeManager = new VisualTreeManager(); _weakEventManager = new WeakEventManager(); _bindingManager = new BindingManager(); _bindingProvider = new BindingProvider(); _observerProvider = new ObserverProvider(); _contextManager = new BindingContextManager(); }
internal static void Clear(IMenu menu, IBindingManager bindingManager) { if (menu == null) { return; } bindingManager.ClearBindings(menu); int size = menu.Size(); for (int i = 0; i < size; i++) { MenuItemTemplate.Clear(menu.GetItem(i), bindingManager); } menu.Clear(); BindingExtensions.AttachedParentMember.SetValue(menu, BindingExtensions.NullValue); }
public FlightCtrlParam(string name, SharedObjects sharedObjects) { this.name = name; shared = sharedObjects; control = GetControllerByVessel(sharedObjects.Vessel); binding = sharedObjects.BindingMgr; Enabled = false; value = null; if (string.Equals(name, "steering", StringComparison.CurrentCultureIgnoreCase)) { steeringManager = SteeringManagerProvider.GetInstance(sharedObjects); } HookEvents(); }
public void DisableActiveFlyByWire(IBindingManager manager) { foreach (KeyValuePair <string, bool> kvp in flyByWire) { if (kvp.Value) { try { manager.ToggleFlyByWire(kvp.Key, false); } catch (Exception ex) // intentionally catch any exception thrown so we don't crash in the middle of breaking execution { // log the exception only when "super verbose" is enabled Utilities.SafeHouse.Logger.SuperVerbose(string.Format("Excepton in ProgramContext.DisableActiveFlyByWire\r\n{0}", ex)); } } } }
public void BindTo(IBindingManager manager) { manager.AddSetter("TARGET", delegate(ICPU cpu, object val) { var targetable = val as IKOSTargetable; if (targetable != null) { VesselUtils.SetTarget(targetable); } else { var body = VesselUtils.GetBodyByName(val.ToString()); if (body != null) { VesselUtils.SetTarget(body); return; } var vessel = VesselUtils.GetVesselByName(val.ToString(), cpu.Vessel); if (vessel != null) { VesselUtils.SetTarget(vessel); } } }); manager.AddGetter("TARGET", delegate(ICPU cpu) { var currentTarget = FlightGlobals.fetch.VesselTarget; var vessel = currentTarget as Vessel; if (vessel != null) { return new VesselTarget(vessel, cpu); } var body = currentTarget as CelestialBody; if (body != null) { return new BodyTarget(body, cpu.Vessel); } return null; }); }
public void BindTo(IBindingManager manager) { manager.AddSetter("TARGET", delegate(ICPU cpu, object val) { var targetable = val as IKOSTargetable; if (targetable != null) { VesselUtils.SetTarget(targetable); } else { var body = VesselUtils.GetBodyByName(val.ToString()); if (body != null) { VesselUtils.SetTarget(body); return; } var vessel = VesselUtils.GetVesselByName(val.ToString(), cpu.Vessel); if (vessel != null) { VesselUtils.SetTarget(vessel); } } }); manager.AddGetter("TARGET", delegate(ICPU cpu) { var currentTarget = FlightGlobals.fetch.VesselTarget; var vessel = currentTarget as Vessel; if (vessel != null) { return(new VesselTarget(vessel, cpu)); } var body = currentTarget as CelestialBody; if (body != null) { return(new BodyTarget(body, cpu.Vessel)); } return(null); }); }
public VoltmeterViewModel(IDeviceManager deviceManager, ITimer timer = null) { Contract.Requires<ArgumentNullException>(deviceManager != null); Bindings = new BindingManager(); Voltmeter = new Model.Voltmeter(deviceManager, new CurrentContextTaskQueue()); DeviceMonitor = new DeviceMonitor(deviceManager, DeviceConstants.SearchPattern); StopWatch = new Stopwatch(); Timer = timer ?? new UiTimer { AutoReset = true, Interval = TimeSpan.FromMilliseconds(50), }; Timer.Tick += (s, e) => { if (IsRunning) this.Notify(PropertyChanged, me => me.SessionDuration); }; AvailableDevices.ListChanged += (s, e) => AutoSelectDevice(forceDeviceChange: false); AddDisplayValues(); AddBindings(); AutoSelectDevice(forceDeviceChange: true); }
public void BindTo(IBindingManager manager) { manager.AddSetter("SAS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.SAS, (bool) val)); manager.AddSetter("GEAR", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Gear, (bool) val)); manager.AddSetter("LEGS", (cpu, val) => VesselUtils.LandingLegsCtrl(cpu.Vessel, (bool) val)); manager.AddSetter("CHUTES", (cpu, val) => VesselUtils.DeployParachutes(cpu.Vessel, (bool) val)); manager.AddSetter("LIGHTS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Light, (bool) val)); manager.AddSetter("PANELS", (cpu, val) => VesselUtils.SolarPanelCtrl(cpu.Vessel, (bool) val)); manager.AddSetter("BRAKES", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Brakes, (bool) val)); manager.AddSetter("RCS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.RCS, (bool) val)); manager.AddSetter("ABORT", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Abort, (bool) val)); manager.AddSetter("AG1", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom01, (bool) val)); manager.AddSetter("AG2", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom02, (bool) val)); manager.AddSetter("AG3", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom03, (bool) val)); manager.AddSetter("AG4", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom04, (bool) val)); manager.AddSetter("AG5", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom05, (bool) val)); manager.AddSetter("AG6", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom06, (bool) val)); manager.AddSetter("AG7", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom07, (bool) val)); manager.AddSetter("AG8", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom08, (bool) val)); manager.AddSetter("AG9", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom09, (bool) val)); manager.AddSetter("AG10", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom10, (bool) val)); manager.AddGetter("SAS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.SAS]); manager.AddGetter("GEAR", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Gear]); manager.AddGetter("LEGS", cpu => VesselUtils.GetLandingLegStatus(cpu.Vessel)); manager.AddGetter("CHUTES", cpu => VesselUtils.GetChuteStatus(cpu.Vessel)); manager.AddGetter("LIGHTS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Light]); manager.AddGetter("PANELS", cpu => VesselUtils.GetSolarPanelStatus(cpu.Vessel)); manager.AddGetter("BRAKES", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Brakes]); manager.AddGetter("RCS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.RCS]); manager.AddGetter("ABORT", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Abort]); manager.AddGetter("AG1", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom01]); manager.AddGetter("AG2", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom02]); manager.AddGetter("AG3", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom03]); manager.AddGetter("AG4", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom04]); manager.AddGetter("AG5", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom05]); manager.AddGetter("AG6", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom06]); manager.AddGetter("AG7", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom07]); manager.AddGetter("AG8", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom08]); manager.AddGetter("AG9", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom09]); manager.AddGetter("AG10", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom10]); }
public void BindTo(IBindingManager manager) { manager.AddSetter("SAS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.SAS, (bool)val)); manager.AddSetter("GEAR", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Gear, (bool)val)); manager.AddSetter("LEGS", (cpu, val) => VesselUtils.LandingLegsCtrl(cpu.Vessel, (bool)val)); manager.AddSetter("CHUTES", (cpu, val) => VesselUtils.DeployParachutes(cpu.Vessel, (bool)val)); manager.AddSetter("LIGHTS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Light, (bool)val)); manager.AddSetter("PANELS", (cpu, val) => VesselUtils.SolarPanelCtrl(cpu.Vessel, (bool)val)); manager.AddSetter("BRAKES", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Brakes, (bool)val)); manager.AddSetter("RCS", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.RCS, (bool)val)); manager.AddSetter("ABORT", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Abort, (bool)val)); manager.AddSetter("AG1", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom01, (bool)val)); manager.AddSetter("AG2", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom02, (bool)val)); manager.AddSetter("AG3", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom03, (bool)val)); manager.AddSetter("AG4", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom04, (bool)val)); manager.AddSetter("AG5", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom05, (bool)val)); manager.AddSetter("AG6", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom06, (bool)val)); manager.AddSetter("AG7", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom07, (bool)val)); manager.AddSetter("AG8", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom08, (bool)val)); manager.AddSetter("AG9", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom09, (bool)val)); manager.AddSetter("AG10", (cpu, val) => cpu.Vessel.ActionGroups.SetGroup(KSPActionGroup.Custom10, (bool)val)); manager.AddGetter("SAS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.SAS]); manager.AddGetter("GEAR", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Gear]); manager.AddGetter("LEGS", cpu => VesselUtils.GetLandingLegStatus(cpu.Vessel)); manager.AddGetter("CHUTES", cpu => VesselUtils.GetChuteStatus(cpu.Vessel)); manager.AddGetter("LIGHTS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Light]); manager.AddGetter("PANELS", cpu => VesselUtils.GetSolarPanelStatus(cpu.Vessel)); manager.AddGetter("BRAKES", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Brakes]); manager.AddGetter("RCS", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.RCS]); manager.AddGetter("ABORT", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Abort]); manager.AddGetter("AG1", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom01]); manager.AddGetter("AG2", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom02]); manager.AddGetter("AG3", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom03]); manager.AddGetter("AG4", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom04]); manager.AddGetter("AG5", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom05]); manager.AddGetter("AG6", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom06]); manager.AddGetter("AG7", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom07]); manager.AddGetter("AG8", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom08]); manager.AddGetter("AG9", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom09]); manager.AddGetter("AG10", cpu => cpu.Vessel.ActionGroups[KSPActionGroup.Custom10]); }
public void BindTo(IBindingManager manager) { cpu = manager.Cpu; vessel = manager.Cpu.Vessel; controls.Add(new LockableControl("THROTTLE", "throttle", cpu, manager)); controls.Add(new LockableControl("STEERING", "steering", cpu, manager)); controls.Add(new LockableControl("WHEELSTEERING", "wheelsteering", cpu, manager)); controls.Add(new LockableControl("WHEELTHROTTLE", "wheelthrottle", cpu, manager)); // Temporarily removing the ability of RT2 to take over // the on-rails autpilot as it seems to be buggy //if (RTHook.Instance == null || !RTHook.Instance.HasFlightComputer(vessel.id)) //{ // vessel.OnFlyByWire += OnFlyByWire; //} vessel.OnFlyByWire += OnFlyByWire; }
public CPU(object parent, string context) { Mode = CPUMode.READY; this.parent = parent; this.context = context; bindingManager = new BindingManager(this, this.context); if (context == "ksp") { RunType = KOSRunType.KSP; if (Vessel != null) Archive = new Archive(Vessel); Volumes.Add(Archive); } else { RunType = KOSRunType.WINFORMS; } RegisterkOSExternalFunction(new object[] {"test2", this, "testFunction", 2}); }
public void BindTo(IBindingManager manager) { manager.AddGetter("ALT:APOAPSIS", cpu => cpu.Vessel.orbit.ApA); manager.AddGetter("ALT:PERIAPSIS", cpu => cpu.Vessel.orbit.PeA); manager.AddGetter("ALT:RADAR", cpu => cpu.Vessel.heightFromTerrain > 0 ? Mathf.Min(cpu.Vessel.heightFromTerrain, (float)cpu.Vessel.altitude) : (float)cpu.Vessel.altitude); manager.AddGetter("ANGULARVELOCITY", cpu => cpu.Vessel.transform.InverseTransformDirection(cpu.Vessel.rigidbody.angularVelocity)); manager.AddGetter("COMMRANGE", cpu => VesselUtils.GetCommRange(cpu.Vessel)); manager.AddGetter("ENCOUNTER", cpu => VesselUtils.TryGetEncounter(cpu.Vessel)); manager.AddGetter("ETA:APOAPSIS", cpu => cpu.Vessel.orbit.timeToAp); manager.AddGetter("ETA:PERIAPSIS", cpu => cpu.Vessel.orbit.timeToPe); manager.AddGetter("ETA:TRANSITION", cpu => cpu.Vessel.orbit.EndUT - cpu.Vessel.missionTime); manager.AddGetter("INCOMMRANGE", cpu => Convert.ToDouble(CheckCommRange(cpu.Vessel))); manager.AddGetter("MISSIONTIME", cpu => cpu.Vessel.missionTime); manager.AddGetter("OBT", cpu => new OrbitInfo(cpu.Vessel.orbit, cpu.Vessel)); manager.AddGetter("TIME", cpu => new TimeSpan(Planetarium.GetUniversalTime())); manager.AddGetter("SHIP", cpu => new VesselTarget(cpu.Vessel, cpu)); manager.AddGetter("STATUS", cpu => cpu.Vessel.situation.ToString()); manager.AddGetter("STAGE", cpu => new StageValues(cpu.Vessel)); manager.AddSetter("VESSELNAME", delegate(ICPU cpu, object value) { cpu.Vessel.vesselName = value.ToString(); }); manager.AddGetter("NEXTNODE", delegate(ICPU cpu) { var vessel = cpu.Vessel; if (vessel.patchedConicSolver.maneuverNodes.Count == 0) { throw new KOSException("No maneuver nodes present!"); } return(Node.FromExisting(vessel, vessel.patchedConicSolver.maneuverNodes[0])); }); // These are now considered shortcuts to SHIP:suffix foreach (var scName in VesselTarget.ShortCuttableShipSuffixes) { var cName = scName; manager.AddGetter(scName, cpu => new VesselTarget(cpu.Vessel, cpu).GetSuffix(cName)); } }
public void BindTo(IBindingManager manager) { manager.AddGetter("ALT:APOAPSIS", cpu => cpu.Vessel.orbit.ApA); manager.AddGetter("ALT:PERIAPSIS", cpu => cpu.Vessel.orbit.PeA); manager.AddGetter("ALT:RADAR", cpu => cpu.Vessel.heightFromTerrain > 0 ? Mathf.Min(cpu.Vessel.heightFromTerrain, (float) cpu.Vessel.altitude) : (float) cpu.Vessel.altitude); manager.AddGetter("ANGULARVELOCITY", cpu => cpu.Vessel.transform.InverseTransformDirection(cpu.Vessel.rigidbody.angularVelocity)); manager.AddGetter("COMMRANGE", cpu => VesselUtils.GetCommRange(cpu.Vessel)); manager.AddGetter("ENCOUNTER", cpu => VesselUtils.TryGetEncounter(cpu.Vessel)); manager.AddGetter("ETA:APOAPSIS", cpu => cpu.Vessel.orbit.timeToAp); manager.AddGetter("ETA:PERIAPSIS", cpu => cpu.Vessel.orbit.timeToPe); manager.AddGetter("ETA:TRANSITION", cpu => cpu.Vessel.orbit.EndUT - cpu.Vessel.missionTime); manager.AddGetter("INCOMMRANGE", cpu => Convert.ToDouble(CheckCommRange(cpu.Vessel))); manager.AddGetter("MISSIONTIME", cpu => cpu.Vessel.missionTime); manager.AddGetter("OBT", cpu => new OrbitInfo(cpu.Vessel.orbit, cpu.Vessel)); manager.AddGetter("TIME", cpu => new TimeSpan(Planetarium.GetUniversalTime())); manager.AddGetter("SHIP", cpu => new VesselTarget(cpu.Vessel, cpu)); manager.AddGetter("STATUS", cpu => cpu.Vessel.situation.ToString()); manager.AddGetter("STAGE", cpu => new StageValues(cpu.Vessel)); manager.AddSetter("VESSELNAME", delegate(ICPU cpu, object value) { cpu.Vessel.vesselName = value.ToString(); }); manager.AddGetter("NEXTNODE", delegate(ICPU cpu) { var vessel = cpu.Vessel; if (vessel.patchedConicSolver.maneuverNodes.Count == 0) { throw new KOSException("No maneuver nodes present!"); } return Node.FromExisting(vessel, vessel.patchedConicSolver.maneuverNodes[0]); }); // These are now considered shortcuts to SHIP:suffix foreach (var scName in VesselTarget.ShortCuttableShipSuffixes) { var cName = scName; manager.AddGetter(scName, cpu => new VesselTarget(cpu.Vessel, cpu).GetSuffix(cName)); } }
public VoltmeterViewModel(IDeviceManager deviceManager, ITimer timer = null) { Contract.Requires <ArgumentNullException>(deviceManager != null); Bindings = new BindingManager(); Voltmeter = new Model.Voltmeter(deviceManager, new CurrentContextTaskQueue()); DeviceMonitor = new DeviceMonitor(deviceManager, DeviceConstants.SearchPattern); StopWatch = new Stopwatch(); Timer = timer ?? new UiTimer { AutoReset = true, Interval = TimeSpan.FromMilliseconds(50), }; Timer.Tick += (s, e) => { if (IsRunning) { this.Notify(PropertyChanged, me => me.SessionDuration); } }; AvailableDevices.ListChanged += (s, e) => AutoSelectDevice(forceDeviceChange: false); AddDisplayValues(); AddBindings(); AutoSelectDevice(forceDeviceChange: true); }
public DisplayValue( Expression<Func<double>> source, Unit sourceUnit, Unit[] units, double minSourceValue = double.NaN, double maxSourceValue = double.NaN ) { Bindings = new BindingManager(); Units = new DisplayUnits(this, sourceUnit, units); Bindings.BindTwoWay ( source, () => Value, sourceValue => UnitConverter.Convert(sourceValue, from: Units.Source, to: Units.Target), targetValue => UnitConverter.Convert(targetValue, from: Units.Target, to: Units.Source) ); MinSourceValue = minSourceValue; MaxSourceValue = maxSourceValue; Refresh(); }
protected virtual DataBinding CreateDataBinding(ISingleBindingSourceAccessor target, IBindingSourceAccessor source, IBindingManager manager = null) { if (manager != null) BindingServiceProvider.BindingManager = manager; return new DataBinding(target, source); }
public void BindTo(IBindingManager manager) { //manager.AddGetter("HEADING", delegate(CPU cpu) { return cpu.Vessel.vesselName; }); //manager.AddSetter("VESSELNAME", delegate(CPU cpu, object value) { cpu.Vessel.vesselName = value.ToString(); }); }
public void BindTo(IBindingManager manager) { manager.AddGetter("SESSIONTIME", cpu => cpu.SessionTime); manager.AddGetter("VERSION", cpu => Core.VersionInfo); manager.AddGetter("VOLUME:NAME", cpu => cpu.SelectedVolume.Name); }
public void EnableActiveFlyByWire(IBindingManager manager) { foreach (KeyValuePair<string, bool> kvp in flyByWire) { manager.ToggleFlyByWire(kvp.Key, kvp.Value); } }
public static void Initialize(IBindingProvider bindingProvider = null, IBindingManager bindingManager = null, IBindingResourceResolver resourceResolver = null, IBindingMemberProvider memberProvider = null, IVisualTreeManager visualTreeManager = null, IWeakEventManager weakEventManager = null, IObserverProvider observerProvider = null, IBindingContextManager contextManager = null, IBindingErrorProvider errorProvider = null, Func <IBindingMemberInfo, Type, object, object> converter = null, Func <string, IBindingPath> bindingPathFactory = null, Func <Type, string, IBindingMemberInfo> findUpdateEvent = null, Func <CultureInfo> bindingCultureInfo = null, IDictionary <string, IBindingBehavior> bindingModeBehaviors = null) { ValueConverter = converter ?? ((info, type, arg3) => arg3); BindingProvider = bindingProvider ?? new BindingProvider(); BindingManager = bindingManager ?? new BindingManager(); ResourceResolver = resourceResolver ?? new BindingResourceResolver(); MemberProvider = memberProvider ?? new BindingMemberProvider(); VisualTreeManager = visualTreeManager ?? new VisualTreeManager(); WeakEventManager = weakEventManager ?? new WeakEventManager(); ObserverProvider = observerProvider ?? new ObserverProvider(); ContextManager = contextManager ?? new BindingContextManager(); BindingPathFactory = bindingPathFactory ?? BindingPathFactoryDefaultImpl; UpdateEventFinder = findUpdateEvent ?? FindUpdateEventDefaultImpl; BindingCultureInfo = bindingCultureInfo ?? BindingCultureInfoDefaultImpl; ErrorProvider = errorProvider; if (bindingModeBehaviors == null) { InitializeDefaultBindingModeBehaviors(); } else { foreach (var behavior in bindingModeBehaviors) { BindingModeToBehavior[behavior.Key] = behavior.Value; } } }
protected virtual DataBinding CreateDataBinding(ISingleBindingSourceAccessor target, IBindingSourceAccessor source, IBindingManager manager = null) { if (manager != null) { BindingServiceProvider.BindingManager = manager; } return(new DataBinding(target, source)); }