public DeviceParams this[DeviceType deviceType] { get { var selectedDevice = SelectedDevices[deviceType]; var device = PluginDevice.CreateParameterizedEntity(selectedDevice.Device, selectedDevice.Params); var selectedConsumer = SelectedConsumers[deviceType]; var consumer = PluginStreamConsumer.CreateParameterizedEntity(selectedConsumer.Consumer, selectedConsumer.Params); return(new DeviceParams { Device = device, Consumers = new[] { consumer } }); } set { if (_deviceControlGroups[deviceType].DeviceComboBox.FindAndSelect(value.Device.Id ?? NoneIdentifier, null)) { var selectedDevice = SelectedDevices[deviceType]; selectedDevice.Params = selectedDevice.Device?.DeserializeParams(value.Device.Params) ?? (IReadonlyContext)EmptyContext.Instance; } var consumerEntity = value.Consumers.Length > 0 ? value.Consumers[0] : new ParameterizedEntity(); App.Instance.Registries.Registry <PluginStreamConsumer>().LookUp(consumerEntity.Id ?? NoneIdentifier, out var streamConsumer); SelectedConsumers[deviceType].Consumer = streamConsumer; SelectedConsumers[deviceType].Params = streamConsumer?.DeserializeParams(consumerEntity.Params) ?? (IReadonlyContext)EmptyContext.Instance; } }
private void InitializeConsumerConfigurationPanel(PluginStreamConsumer consumer) { ConsumerConfigurationPanel.Descriptors = AsGroup("", consumer?.Factory.Parameters.Cast <IDescriptor>().ToArray() ?? EmptyArray <IDescriptor> .Instance); ConsumerConfigurationPanel.Adapter = consumer?.Factory as IParameterPresentAdapter; _currentConsumer = consumer; ScrollView.InvalidateScrollInfo(); ScrollView.ScrollToTop(); _needResizeWindow = true; }
public bool ShowDialog(out IReadonlyContext deviceParams, out PluginStreamConsumer consumer, out IReadonlyContext consumerParams) { deviceParams = EmptyContext.Instance; consumer = null; consumerParams = EmptyContext.Instance; var dialogResult = ShowDialog() ?? false; if (!dialogResult) { return(false); } deviceParams = DeviceConfigurationPanel.Context; consumer = _currentConsumer; consumerParams = ConsumerConfigurationPanel.Context; return(true); }
public DeviceConfigWindow([NotNull] PluginDevice device, [CanBeNull] IReadonlyContext deviceParams, [CanBeNull] PluginStreamConsumer consumer, [CanBeNull] IReadonlyContext consumerParams) { InitializeComponent(); InitializeDeviceConfigurationPanel(device ?? throw new ArgumentNullException(nameof(device))); DeviceConfigurationPanel.Context = deviceParams ?? EmptyContext.Instance; var experimentPanel = ConsumerSelectionPanel.AddGroupPanel("Consumer", "Consumer Selection"); _consumerComboBox = new ComboBox(); _consumerComboBox.SelectionChanged += ConsumerComboBox_OnSelectionChanged; _consumerComboBox.ItemsSource = GetConsumerList(device.DeviceType); _consumerComboBox.FindAndSelect(consumer?.Identifier, 0); experimentPanel.AddRow("Consumer", _consumerComboBox, ViewConstants.DefaultRowHeight); InitializeConsumerConfigurationPanel(consumer); ConsumerConfigurationPanel.Context = consumerParams ?? EmptyContext.Instance; Title = $"{device.Identifier} Configuration"; }
public ConsumerChangedEventArgs(PluginStreamConsumer oldConsumer, PluginStreamConsumer newConsumer, IReadonlyContext oldConsumerParams) { OldConsumer = oldConsumer; NewConsumer = newConsumer; OldConsumerParams = oldConsumerParams; }