/// <summary> /// The configure. /// </summary> /// <param name="targetPlugin"> /// The target plugin. /// </param> /// <returns> /// The <see cref="IConfig"/>. /// </returns> public IConfig Configure(IPlugin targetPlugin) { IConfig currentConfig = targetPlugin.Configuration, defaultConfig = targetPlugin.DefaultConfig, targetConfig = currentConfig ?? defaultConfig; if (targetConfig != null && defaultConfig != null) { using ( var configDialog = new ObjectBrowserDialog( string.Format(CultureInfo.InvariantCulture, "{0} Configuration", targetPlugin.GetDetail().Key).Trim(), targetConfig, defaultConfig, this._logger)) { var result = configDialog.ShowDialog(); if (result == DialogResult.OK) { return configDialog.ResultObject as IConfig; } } } return currentConfig; }