Add project files.
This commit is contained in:
68
ModVersionChecker/forms/FormFactory.cs
Normal file
68
ModVersionChecker/forms/FormFactory.cs
Normal file
@@ -0,0 +1,68 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using ModVersionChecker.data.model;
|
||||
using ModVersionChecker.managers.interfaces;
|
||||
|
||||
namespace ModVersionChecker.forms
|
||||
{
|
||||
public class FormFactory : IFormFactory
|
||||
{
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
|
||||
public FormFactory(IServiceProvider serviceProvider)
|
||||
{
|
||||
_serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
|
||||
}
|
||||
|
||||
public AppDetailsForm CreateAppDetailsForm(AppConfig? app, bool isEditable, EventHandler<string>? onAppChanged)
|
||||
{
|
||||
var configManager = _serviceProvider.GetRequiredService<IConfigManager>();
|
||||
var appsManager = _serviceProvider.GetRequiredService<IAppsManager>();
|
||||
var sourcesDefManager = _serviceProvider.GetRequiredService<ISourcesDefManager>();
|
||||
var checkerTypesDefManager = _serviceProvider.GetRequiredService<ICheckerTypesDefManager>();
|
||||
var flightSimsManager = _serviceProvider.GetRequiredService<IFlightSimsManager>();
|
||||
var form = new AppDetailsForm(configManager, appsManager, sourcesDefManager, checkerTypesDefManager, flightSimsManager);
|
||||
form.SetApp(app, false);
|
||||
form.SetEditable(isEditable);
|
||||
if (onAppChanged != null)
|
||||
{
|
||||
form.OnAppChanged += onAppChanged;
|
||||
}
|
||||
return form;
|
||||
}
|
||||
|
||||
public GlobalConfigForm CreateGlobalConfigForm()
|
||||
{
|
||||
var configManager = _serviceProvider.GetRequiredService<IConfigManager>();
|
||||
var form = new GlobalConfigForm(configManager);
|
||||
return form;
|
||||
}
|
||||
|
||||
public SourcesConfigForm CreateSourcesConfigForm(EventHandler<string>? onSourcesChanged)
|
||||
{
|
||||
var sourcesDefManager = _serviceProvider.GetRequiredService<ISourcesDefManager>();
|
||||
var formFactory = _serviceProvider.GetRequiredService<IFormFactory>();
|
||||
var form = new SourcesConfigForm(formFactory, sourcesDefManager);
|
||||
if (onSourcesChanged != null)
|
||||
{
|
||||
form.OnSourcesChanged += onSourcesChanged;
|
||||
}
|
||||
return form;
|
||||
}
|
||||
|
||||
public SourceDetailForm CreateSourceDetailForm(SourceDef? sourceDef, EventHandler<string>? onSourceChanged)
|
||||
{
|
||||
var sourcesDefManager = _serviceProvider.GetRequiredService<ISourcesDefManager>();
|
||||
var checkerTypesDefManager = _serviceProvider.GetRequiredService<ICheckerTypesDefManager>();
|
||||
var formFactory = _serviceProvider.GetRequiredService<IFormFactory>();
|
||||
var form = new SourceDetailForm(formFactory, sourcesDefManager);
|
||||
form.SourceDef = sourceDef;
|
||||
|
||||
if (onSourceChanged != null)
|
||||
{
|
||||
form.UpdateFields();
|
||||
form.OnSourceChanged += onSourceChanged;
|
||||
}
|
||||
return form;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user