public ConfigurationWindow(ConfigurationWindowSettings configurationWindowSettings) { InitializeComponent(); this.ConfigurationWindowSettings = configurationWindowSettings; this.lblTitle.Content = configurationWindowSettings.title; this.titleImage.Content = configurationWindowSettings.titleImage; this.DataContext = configurationWindowSettings.configuration; this.ConfigurationContent.Content = configurationWindowSettings.configurationControl; if (configurationWindowSettings.moduleDescription.Attributes.RequiresConnection) { ddSelectConnection.DataContext = configurationWindowSettings.connections; ddSelectConnection.SelectedItem = configurationWindowSettings.connections.FirstOrDefault(t => t.ConfigurationId == configurationWindowSettings.configuration.SelectedConnectionConfigurationId); } else { ConnectionRowUpperSpacer.Height = new GridLength(0); ConnectionRow.Height = new GridLength(0); } if (configurationWindowSettings.moduleDescription.Attributes.ModuleType == ModuleType.Transformation && configurationWindowSettings.datastore != null) { TransformationConfiguration transformationConfiguration = configurationWindowSettings.configuration as TransformationConfiguration; TabDataFilter.Visibility = System.Windows.Visibility.Visible; List <AttributeImplementation> dataConditionAttributes = AssemblyHelper.LoadAllClassesImplementingSpecificAttribute <DataConditionAttribute>(System.Reflection.Assembly.GetAssembly(typeof(DataConditionAttribute))); filterControlPlaceHolder.Content = new FilterControl(transformationConfiguration.DataFilter, configurationWindowSettings.datastore, dataConditionAttributes); } }
public static ConfigurationWindowSettings Get(DesignerItem designerItem, StepConfigurationBase configuration, ModuleLoader moduleLoader, List <IDatastore> dataStores, IEnumerable <ConnectionConfigurationBase> connections) { var module = Activator.CreateInstance(designerItem.ModuleDescription.ModuleType) as IModule; ConfigurationWindowSettings configurationWindowSettings = new ConfigurationWindowSettings() { title = designerItem.ItemLabel, titleImage = IntegrationTool.SDK.Diagram.IconLoader.GetFromAssembly(designerItem.ModuleDescription.ModuleType.Assembly, "Icon.xml"), connections = connections.Where(t => t.ModuleDescription.Attributes.ConnectionType == designerItem.ModuleDescription.Attributes.ConnectionType), moduleDescription = designerItem.ModuleDescription, configuration = configuration, originalConfiguration = ConfigurationSerializer.SerializeObject(configuration, moduleLoader.GetModuleTypeList()), }; if (!dataStores.Any()) { throw new InfoException("No incoming data available. Please connect a datasource first!"); } if (module is IDataMerge) { if (dataStores.Count != 2) { throw new InfoException("Make sure to connect exactly two incoming datasources!"); } configurationWindowSettings.configurationControl = ((IDataMerge)module).RenderConfigurationWindow(configuration, dataStores[0], dataStores[1]); } else { configurationWindowSettings.configurationControl = ((IModule)module).RenderConfigurationWindow(configuration, dataStores.First()); configurationWindowSettings.datastore = dataStores.First(); } return(configurationWindowSettings); }