Copytrading-UI: ein Fenster mit TabControl statt drei Launcher-Buttons
Statt je Ansicht ein eigenes Fenster (3 Launcher-Buttons) gibt es jetzt EIN Modul-Fenster mit Tabs – wie im alten PolyTrader. Skaliert sauber, wenn weitere Module dazukommen (ein Button je Modul). - MasterTradersView/ClosedTradesView/AccountSettingsView: von Form -> UserControl (Tab-Inhalte); Designer-Root auf Size statt ClientSize/Text/MinimumSize. - Neu: CopyTradingMainForm (Designer) mit TabControl + 3 TabPages, hostet die drei UserControls; Initialize(IServiceProvider) versorgt jeden Tab per DI. - CopyTradingModule.RegisterUi registriert nur noch EINE View "Copytrading". Verifiziert: Build grün, --smoke-ui grün (eine View copytrading.main + Launcher konstruieren fehlerfrei, 3 Accounts / 32 Trader hydriert). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
76007db93f
commit
c3d7e41e62
@@ -56,54 +56,20 @@ namespace PolyTrader.Modules.CopyTrading
|
||||
|
||||
public void RegisterUi(IModuleUiHost host, IServiceProvider services)
|
||||
{
|
||||
// EIN Fenster fürs ganze Modul: die einzelnen Ansichten sind Tabs im
|
||||
// CopyTradingMainForm (Master-Trader / geschlossene Trades / Account-Einstellungen).
|
||||
// So bleibt der Launcher schlank – ein Button je Modul statt je View.
|
||||
host.RegisterView(new ModuleView
|
||||
{
|
||||
Id = "copytrading.masters",
|
||||
Title = "Master-Trader",
|
||||
Id = "copytrading.main",
|
||||
Title = "Copytrading",
|
||||
Group = "CopyTrading",
|
||||
Order = 100,
|
||||
CreateForm = () =>
|
||||
{
|
||||
var view = new MasterTradersView();
|
||||
view.Initialize(
|
||||
services.GetRequiredService<ITrackedTraderRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>());
|
||||
return view;
|
||||
}
|
||||
});
|
||||
|
||||
host.RegisterView(new ModuleView
|
||||
{
|
||||
Id = "copytrading.closedtrades",
|
||||
Title = "Geschlossene Copytrades",
|
||||
Group = "CopyTrading",
|
||||
Order = 110,
|
||||
CreateForm = () =>
|
||||
{
|
||||
var view = new ClosedTradesView();
|
||||
view.Initialize(
|
||||
services.GetRequiredService<ICopyTradeLogRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>());
|
||||
return view;
|
||||
}
|
||||
});
|
||||
|
||||
host.RegisterView(new ModuleView
|
||||
{
|
||||
Id = "copytrading.accountsettings",
|
||||
Title = "Copytrading-Account-Einstellungen",
|
||||
Group = "CopyTrading",
|
||||
Order = 120,
|
||||
CreateForm = () =>
|
||||
{
|
||||
var view = new AccountSettingsView();
|
||||
view.Initialize(
|
||||
services.GetRequiredService<ICopyTradingAccountSettingsRepository>(),
|
||||
services.GetRequiredService<TradingState>(),
|
||||
services.GetRequiredService<CopyTradingState>());
|
||||
return view;
|
||||
var form = new CopyTradingMainForm();
|
||||
form.Initialize(services);
|
||||
return form;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user