public void OpenEffectSettings() { BaseLayerEffect layerEffect = LayerPropertyGroup.LayerEffect; LayerEffectConfigurationDialog configurationViewModel = (LayerEffectConfigurationDialog)layerEffect.ConfigurationDialog; if (configurationViewModel == null) { return; } try { // Limit to one constructor, there's no need to have more and it complicates things anyway ConstructorInfo[] constructors = configurationViewModel.Type.GetConstructors(); if (constructors.Length != 1) { throw new ArtemisUIException("Effect configuration dialogs must have exactly one constructor"); } ParameterInfo effectParameter = constructors.First().GetParameters().First(p => typeof(BaseLayerEffect).IsAssignableFrom(p.ParameterType)); ConstructorArgument argument = new(effectParameter.Name, layerEffect); EffectConfigurationViewModel viewModel = (EffectConfigurationViewModel)layerEffect.Descriptor.Provider.Plugin.Kernel.Get(configurationViewModel.Type, argument); _windowManager.ShowDialog(new LayerEffectSettingsWindowViewModel(viewModel)); } catch (Exception e) { _dialogService.ShowExceptionDialog("An exception occured while trying to show the effect's settings window", e); throw; } }
public override void EnableLayerEffect() { $if$($IncludeConfigurationWindow$ == True) ConfigurationDialog = new LayerEffectConfigurationDialog <CustomViewModel>(); $endif$ }
public override void EnableLayerEffect() { ConfigurationDialog = new LayerEffectConfigurationDialog <ColorMatrixConfigurationViewModel>(); }
public LayerEffectSettingsWindowViewModel(EffectConfigurationViewModel configurationViewModel, LayerEffectConfigurationDialog configuration) { _configuration = configuration; ActiveItem = configurationViewModel ?? throw new ArgumentNullException(nameof(configurationViewModel)); ActiveItem.Closed += ActiveItemOnClosed; }